summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergei Trofimovich <slyich@gmail.com>2022-05-28 20:57:22 +0100
committerSergei Trofimovich <slyich@gmail.com>2022-05-28 21:02:07 +0100
commit77a11bce4f27356c27fdb183140e49932b24067a (patch)
treeeea872716267a4366a3f0080aa2a19f8dc860af1
parent0831857a140328c5c40be233eaa73130620a44b2 (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
-rw-r--r--pkgs/development/pharo/vm/build-vm-legacy.nix6
-rw-r--r--pkgs/development/pharo/vm/build-vm.nix7
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 88ef9f9efde8..6e00aa5f789e 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 498e5c414727..1331df3b7d60 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";