Errors compiling with OCaml 5.4.0

Richard W.M. Jones
2025-10-15T10:50:29Z

On OCaml 5.4.0:

+ gcc -O2 -fno-strict-aliasing -fwrapv -O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer   -g  -fno-omit-frame-pointer -fPIC  -pthread   -D_FILE_OFFSET_BITS=64    -c   -O -g  -I'/usr/lib64/ocaml' 'netsys_c.c'
In file included from netsys_c.c:5:
netsys_c.h:218:12: error: conflicting types for ‘caml_ba_element_size’; have ‘int[]’
  218 | extern int caml_ba_element_size[];
      |            ^~~~~~~~~~~~~~~~~~~~
In file included from netsys_c.h:70:
/usr/lib64/ocaml/caml/bigarray.h:113:22: note: previous declaration of ‘caml_ba_element_size’ with type ‘const int[]’
  113 | CAMLextern const int caml_ba_element_size[];
      |                      ^~~~~~~~~~~~~~~~~~~~
netsys_c.c:463:9: warning: ‘unix_cloexec_default’ redefined
  463 | #define unix_cloexec_default 0
      |         ^~~~~~~~~~~~~~~~~~~~
In file included from netsys_c.h:72:
/usr/lib64/ocaml/caml/unixsupport.h:148:9: note: this is the location of the previous definition
  148 | #define unix_cloexec_default caml_unix_cloexec_default
      |         ^~~~~~~~~~~~~~~~~~~~
gmake[1]: Leaving directory '/builddir/build/BUILD/ocaml-ocamlnet-4.1.9-build/ocamlnet-4.1.9/src/netsys'
gmake[1]: *** [../../Makefile.rules:143: netsys_c.o] Error 2
make: *** [Makefile:23: all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.qUbpuf (%build)