about summary refs log tree commit diff
path: root/pkgs/development/compilers/ocaml/4.07.nix
diff options
context:
space:
mode:
authorSergei Trofimovich <slyich@gmail.com>2022-05-28 13:35:49 +0100
committerSergei Trofimovich <slyich@gmail.com>2022-05-28 13:37:55 +0100
commit1bdc32f97002440304c620ef6f1dadc49ab9a6b1 (patch)
treec09af53ac5604253e1b542da73147c3922234d73 /pkgs/development/compilers/ocaml/4.07.nix
parentc2efec21ca3c9ead79c9bd8d6d08ba5a957ba369 (diff)
ocaml-ng.ocamlPackages_4_00_1.ocaml, ocaml-ng.ocamlPackages_4_08.ocaml: add -fcommon workaround
Workaround build failure on -fno-common toolchains like upstream
gcc-10. Otherwise build fails as:

    $ nix build --impure --expr 'with import ./. {}; ocaml-ng.ocamlPackages_4_00_1.ocaml.overrideAttrs (oa: {   NIX_CFLAGS_COMPILE = (["-fno-common"] ++ [oa.NIX_CFLAGS_COMPILE or ""]); })'
    ...
    > ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here
    > collect2: error: ld returned 1 exit status
Diffstat (limited to 'pkgs/development/compilers/ocaml/4.07.nix')
-rw-r--r--pkgs/development/compilers/ocaml/4.07.nix6
1 files changed, 6 insertions, 0 deletions
diff --git a/pkgs/development/compilers/ocaml/4.07.nix b/pkgs/development/compilers/ocaml/4.07.nix
index 8292213bf46d6..1356a2b3c8e40 100644
--- a/pkgs/development/compilers/ocaml/4.07.nix
+++ b/pkgs/development/compilers/ocaml/4.07.nix
@@ -12,4 +12,10 @@ import ./generic.nix {
     { url = "https://github.com/ocaml/ocaml/commit/00b8c4d503732343d5d01761ad09650fe50ff3a0.patch";
       sha256 = "sha256:02cfya5ff5szx0fsl5x8ax76jyrla9zmf3qxavf3adhwq5ssrfcv"; }
   ];
+
+  # Workaround build failure on -fno-common toolchains like upstream
+  # gcc-10. Otherwise build fails as:
+  #   ld: libcamlrun.a(startup.o):(.bss+0x800): multiple definition of
+  #     `caml_code_fragments_table'; libcamlrun.a(backtrace.o):(.bss+0x20): first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
 }