diff options
author | Daiderd Jordan <daiderd@gmail.com> | 2017-09-05 21:40:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-05 21:40:31 +0200 |
commit | 0adb83e2a2b4140a97d90ddcc0c801808e3f4af8 (patch) | |
tree | d64c13cc91f683ee2a1315b015e131e2ea8c82e8 /pkgs | |
parent | 402e6ac0893d59c3e86c38f86ac82a114881950d (diff) | |
parent | 907222098acbbf68d3c565c6cbd9bad36e0255a8 (diff) | |
download | nixlib-0adb83e2a2b4140a97d90ddcc0c801808e3f4af8.tar nixlib-0adb83e2a2b4140a97d90ddcc0c801808e3f4af8.tar.gz nixlib-0adb83e2a2b4140a97d90ddcc0c801808e3f4af8.tar.bz2 nixlib-0adb83e2a2b4140a97d90ddcc0c801808e3f4af8.tar.lz nixlib-0adb83e2a2b4140a97d90ddcc0c801808e3f4af8.tar.xz nixlib-0adb83e2a2b4140a97d90ddcc0c801808e3f4af8.tar.zst nixlib-0adb83e2a2b4140a97d90ddcc0c801808e3f4af8.zip |
Merge pull request #28998 from LnL7/libstdcxx-hook
libstdc++: add setup-hook
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/development/compilers/gcc/libstdc++-hook.sh | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/4/default.nix | 14 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 4 |
3 files changed, 18 insertions, 2 deletions
diff --git a/pkgs/development/compilers/gcc/libstdc++-hook.sh b/pkgs/development/compilers/gcc/libstdc++-hook.sh new file mode 100644 index 000000000000..2d30c845b5a3 --- /dev/null +++ b/pkgs/development/compilers/gcc/libstdc++-hook.sh @@ -0,0 +1,2 @@ +export NIX_CXXSTDLIB_COMPILE+="-isystem $(echo -n @gcc@/include/c++/*) -isystem $(echo -n @gcc@/include/c++/*)/$(@gcc@/bin/gcc -dumpmachine)" +export NIX_CXXSTDLIB_LINK=" -stdlib=libstdc++" diff --git a/pkgs/development/compilers/llvm/4/default.nix b/pkgs/development/compilers/llvm/4/default.nix index 9e5bccff3556..11a9a46c15e5 100644 --- a/pkgs/development/compilers/llvm/4/default.nix +++ b/pkgs/development/compilers/llvm/4/default.nix @@ -1,4 +1,8 @@ -{ lowPrio, newScope, stdenv, cmake, libxml2, python2, isl, fetchurl, overrideCC, wrapCC, darwin, ccWrapperFun }: +{ lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook +, libxml2, python2, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun +, darwin +}: + let callPackage = newScope (self // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; }); @@ -46,7 +50,12 @@ let extraPackages = [ self.libcxx self.libcxxabi ]; }; - stdenv = overrideCC stdenv self.clang; + stdenv = stdenv.override (drv: { + allowedRequisites = null; + cc = self.clang; + # Use the gcc libstdc++ when targeting linux. + extraBuildInputs = if stdenv.cc.isGNU then [ libstdcxxHook ] else drv.extraBuildInputs; + }); libcxxStdenv = overrideCC stdenv self.libcxxClang; @@ -58,4 +67,5 @@ let libcxxabi = callPackage ./libc++abi.nix {}; }; + in self diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2f4fb44653d4..1aa06ccfa116 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5360,6 +5360,10 @@ with pkgs; gccApple = throw "gccApple is no longer supported"; + libstdcxxHook = makeSetupHook + { substitutions = { gcc = gcc-unwrapped; }; } + ../development/compilers/gcc/libstdc++-hook.sh; + # Can't just overrideCC, because then the stdenv-cross mkDerivation will be # thrown away. TODO: find a better solution for this. crossLibcStdenv = buildPackages.makeStdenvCross { |