diff options
author | Sergei Trofimovich <slyich@gmail.com> | 2022-05-28 20:57:22 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyich@gmail.com> | 2022-05-28 21:02:07 +0100 |
commit | 77a11bce4f27356c27fdb183140e49932b24067a (patch) | |
tree | eea872716267a4366a3f0080aa2a19f8dc860af1 /pkgs/development/pharo | |
parent | 0831857a140328c5c40be233eaa73130620a44b2 (diff) |
pharo-spur64, pharo-cog32: add -fcommon workaround
Workaround build failure on -fno-common toolchains like upstream gcc-10. Otherwise build fails as: ld: vm/vm.a(cogit.o):/build/source/spur64src/vm/cointerp.h:358: multiple definition of `checkAllocFiller'; vm/vm.a(gcc3x-cointerp.o):/build/source/spur64src/vm/cointerp.h:358: first defined here
Diffstat (limited to 'pkgs/development/pharo')
-rw-r--r-- | pkgs/development/pharo/vm/build-vm-legacy.nix | 6 | ||||
-rw-r--r-- | pkgs/development/pharo/vm/build-vm.nix | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/pkgs/development/pharo/vm/build-vm-legacy.nix b/pkgs/development/pharo/vm/build-vm-legacy.nix index 88ef9f9efde89..6e00aa5f789ef 100644 --- a/pkgs/development/pharo/vm/build-vm-legacy.nix +++ b/pkgs/development/pharo/vm/build-vm-legacy.nix @@ -40,6 +40,12 @@ stdenv.mkDerivation rec { cd build/ ''; + # -fcommon is a workaround build failure on -fno-common toolchains like upstream + # gcc-10. Otherwise build fails as: + # ld: CMakeFiles/pharo.dir/build/pharo-vm-2016.02.18/src/vm/gcc3x-cointerp.c.o:(.bss+0x88): multiple definition of + # `sendTrace'; CMakeFiles/pharo.dir/build/pharo-vm-2016.02.18/src/vm/cogit.c.o:(.bss+0x84): first defined here + NIX_CFLAGS_COMPILE = "-fcommon"; + installPhase = '' mkdir -p "$prefix/lib/$name" diff --git a/pkgs/development/pharo/vm/build-vm.nix b/pkgs/development/pharo/vm/build-vm.nix index 498e5c4147277..1331df3b7d60a 100644 --- a/pkgs/development/pharo/vm/build-vm.nix +++ b/pkgs/development/pharo/vm/build-vm.nix @@ -85,6 +85,13 @@ stdenv.mkDerivation rec { configureFlags = [ "--without-npsqueak" "--with-vmversion=5.0" "--with-src=${vm}" ]; + + # -fcommon is a workaround build failure on -fno-common toolchains like upstream + # gcc-10. Otherwise build fails as: + # ld: vm/vm.a(cogit.o):/build/source/spur64src/vm/cointerp.h:358: multiple definition of `checkAllocFiller'; + # vm/vm.a(gcc3x-cointerp.o):/build/source/spur64src/vm/cointerp.h:358: first defined here + NIX_CFLAGS_COMPILE = "-fcommon"; + CFLAGS = "-DPharoVM -DIMMUTABILITY=1 -msse2 -D_GNU_SOURCE -DCOGMTVM=0 -g -O2 -DNDEBUG -DDEBUGVM=0"; LDFLAGS = "-Wl,-z,now"; |