The 4.09.1 tarball appears to have been acidentally generated as a
development tarball, which causes configure to enable -Werror.  This
means newer compilers will make the build fail.

diff a/configure b/configure
--- a/configure
+++ b/configure
@@ -12360,7 +12360,7 @@ case $ocaml_cv_cc_vendor in #(
   msvc-*) :
     outputobj=-Fo; CPP="cl -nologo -EP"; gcc_warnings="" ;; #(
   *) :
-    outputobj='-o $(EMPTY)'; case 4.09.1+dev1-2020-03-13 in #(
+    outputobj='-o $(EMPTY)'; case 4.09.1 in #(
   *+dev*) :
     gcc_warnings="-Wall -Werror" ;; #(
   *) :
