From 907222098acbbf68d3c565c6cbd9bad36e0255a8 Mon Sep 17 00:00:00 2001 From: Daiderd Jordan Date: Mon, 4 Sep 2017 21:23:57 +0200 Subject: [PATCH] clang-stdenv: use libstdcxxHook when targeting linux --- pkgs/development/compilers/gcc/libstdc++-hook.sh | 1 + pkgs/development/compilers/llvm/4/default.nix | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/pkgs/development/compilers/gcc/libstdc++-hook.sh b/pkgs/development/compilers/gcc/libstdc++-hook.sh index c699d5460eb..2d30c845b5a 100644 --- a/pkgs/development/compilers/gcc/libstdc++-hook.sh +++ b/pkgs/development/compilers/gcc/libstdc++-hook.sh @@ -1 +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 9e5bccff355..11a9a46c15e 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