From f17dea3b3dcae065c6ddb187111bef2975ad2eba Mon Sep 17 00:00:00 2001 From: Danny Wilson Date: Sun, 8 Nov 2015 02:44:38 +0100 Subject: [PATCH] Fix compilation of GCC 4.9 on SmartOS. Fix ld-solaris-wrapper never calling ld (since gcc->cc-wrapper refactor). --- pkgs/build-support/cc-wrapper/default.nix | 2 +- pkgs/build-support/cc-wrapper/ld-solaris-wrapper.sh | 2 +- pkgs/development/compilers/gcc/4.9/default.nix | 4 ++-- 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 9822b1a026a..bea7e07a202 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 9216ea3198d..5a7b92b5ad7 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 13154ddd27a..fecdd85cd41 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; }; }