From ce6f0bee59f91f174e51dc92bfeb5698ca7da84a Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 26 Jun 2022 22:28:11 +0100 Subject: bs-platform: workaround -fno-common build failure on aarch64 Without the change -fno-common toolchain like llvm-11 fails as: ld: libcamlrun.a(minor_gc.o):/build/ocaml/byterun/caml/major_gc.h:67: multiple definition of `caml_major_ring'; libcamlrun.a(stacks.o):/build/ocaml/byterun/caml/major_gc.h:67: first defined here --- pkgs/development/compilers/bs-platform/ocaml.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/development/compilers/bs-platform/ocaml.nix b/pkgs/development/compilers/bs-platform/ocaml.nix index 05fb8b6b17e..3fe0e0b2eed 100644 --- a/pkgs/development/compilers/bs-platform/ocaml.nix +++ b/pkgs/development/compilers/bs-platform/ocaml.nix @@ -5,6 +5,13 @@ stdenv.mkDerivation rec { configurePhase = '' ./configure -prefix $out ''; + + # Workaround ocaml-4.06 limitation of duplicate definitions. + # ld: libcamlrun.a(minor_gc.o):/build/ocaml/byterun/caml/major_gc.h:67: multiple definition of + # `caml_major_ring'; libcamlrun.a(stacks.o):/build/ocaml/byterun/caml/major_gc.h:67: first defined here + # Match -fcommon workaround in ocaml-4.06 itself. + NIX_CFLAGS_COMPILE = "-fcommon"; + buildPhase = '' make -j9 world.opt ''; -- cgit 1.4.1