summary refs log tree commit diff
diff options
context:
space:
mode:
authorDanny Wilson <danny@prime.vc>2015-11-08 02:44:38 +0100
committerDanny Wilson <danny@prime.vc>2015-11-16 17:20:16 +0100
commitf17dea3b3dcae065c6ddb187111bef2975ad2eba (patch)
treed016c96ab40c9761959e4c70a9baac97c855e62f
parentbab0a82983d9b230ababcb6501f1b58a8541fbbf (diff)
downloadnixlib-f17dea3b3dcae065c6ddb187111bef2975ad2eba.tar
nixlib-f17dea3b3dcae065c6ddb187111bef2975ad2eba.tar.gz
nixlib-f17dea3b3dcae065c6ddb187111bef2975ad2eba.tar.bz2
nixlib-f17dea3b3dcae065c6ddb187111bef2975ad2eba.tar.lz
nixlib-f17dea3b3dcae065c6ddb187111bef2975ad2eba.tar.xz
nixlib-f17dea3b3dcae065c6ddb187111bef2975ad2eba.tar.zst
nixlib-f17dea3b3dcae065c6ddb187111bef2975ad2eba.zip
Fix compilation of GCC 4.9 on SmartOS.
Fix ld-solaris-wrapper never calling ld (since gcc->cc-wrapper refactor).
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix2
-rw-r--r--pkgs/build-support/cc-wrapper/ld-solaris-wrapper.sh2
-rw-r--r--pkgs/development/compilers/gcc/4.9/default.nix4
3 files changed, 4 insertions, 4 deletions
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 9822b1a026a1..bea7e07a2029 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -145,7 +145,7 @@ stdenv.mkDerivation {
     + optionalString (stdenv.isSunOS && nativePrefix != "") ''
       # Solaris needs an additional ld wrapper.
       ldPath="${nativePrefix}/bin"
-      ld="$out/bin/ld-solaris"
+      exec="$ldPath/ld"
       wrap ld-solaris ${./ld-solaris-wrapper.sh}
     '')
 
diff --git a/pkgs/build-support/cc-wrapper/ld-solaris-wrapper.sh b/pkgs/build-support/cc-wrapper/ld-solaris-wrapper.sh
index 9216ea3198dd..5a7b92b5ad7d 100644
--- a/pkgs/build-support/cc-wrapper/ld-solaris-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/ld-solaris-wrapper.sh
@@ -6,7 +6,7 @@ set -u
 # I've also tried adding -z direct and -z lazyload, but it gave too many problems with C++ exceptions :'(
 # Also made sure libgcc would not be lazy-loaded, as suggested here: https://www.illumos.org/issues/2534#note-3
 #   but still no success.
-cmd="@prog@ -z ignore"
+cmd="@ld@ -z ignore"
 
 args=("$@");
 
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index 13154ddd27a6..fecdd85cd415 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -293,9 +293,8 @@ stdenv.mkDerivation ({
     ++ (optional stdenv.isDarwin gnused)
     ;
 
-  NIX_LDFLAGS = stdenv.lib.optionalString  stdenv.isSunOS "-lm -ldl";
-
   preConfigure = stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit) ''
+    sed -i -e "s/-lrt//g" libstdc++-v3/configure
     export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
     export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET"
     export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET"
@@ -518,6 +517,7 @@ stdenv.mkDerivation ({
     platforms =
       stdenv.lib.platforms.linux ++
       stdenv.lib.platforms.freebsd ++
+      stdenv.lib.platforms.illumos ++
       optionals (langAda == false) stdenv.lib.platforms.darwin;
   };
 }