diff --git a/pkgs/development/compilers/llvm/3.5/libc++/default.nix b/pkgs/development/compilers/llvm/3.5/libc++/default.nix index a23daf4f14a..75a5761a19e 100644 --- a/pkgs/development/compilers/llvm/3.5/libc++/default.nix +++ b/pkgs/development/compilers/llvm/3.5/libc++/default.nix @@ -34,6 +34,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + linkCxxAbi = stdenv.isLinux; + setupHook = ./setup-hook.sh; meta = { diff --git a/pkgs/development/compilers/llvm/3.5/libc++/setup-hook.sh b/pkgs/development/compilers/llvm/3.5/libc++/setup-hook.sh index 62ab46ac310..9022fced6ec 100644 --- a/pkgs/development/compilers/llvm/3.5/libc++/setup-hook.sh +++ b/pkgs/development/compilers/llvm/3.5/libc++/setup-hook.sh @@ -1,2 +1,3 @@ +linkCxxAbi="@linkCxxAbi@" export NIX_CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1" -export NIX_CXXSTDLIB_LINK=" -lc++ -lc++abi" +export NIX_CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}" diff --git a/pkgs/development/compilers/llvm/3.6/libc++/default.nix b/pkgs/development/compilers/llvm/3.6/libc++/default.nix index 81c1d96afc8..c02c75ac02d 100644 --- a/pkgs/development/compilers/llvm/3.6/libc++/default.nix +++ b/pkgs/development/compilers/llvm/3.6/libc++/default.nix @@ -29,6 +29,8 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + linkCxxAbi = stdenv.isLinux; + setupHook = ./setup-hook.sh; meta = { diff --git a/pkgs/development/compilers/llvm/3.6/libc++/setup-hook.sh b/pkgs/development/compilers/llvm/3.6/libc++/setup-hook.sh index 62ab46ac310..9022fced6ec 100644 --- a/pkgs/development/compilers/llvm/3.6/libc++/setup-hook.sh +++ b/pkgs/development/compilers/llvm/3.6/libc++/setup-hook.sh @@ -1,2 +1,3 @@ +linkCxxAbi="@linkCxxAbi@" export NIX_CXXSTDLIB_COMPILE+=" -isystem @out@/include/c++/v1" -export NIX_CXXSTDLIB_LINK=" -lc++ -lc++abi" +export NIX_CXXSTDLIB_LINK=" -stdlib=libc++${linkCxxAbi:+" -lc++abi"}" diff --git a/pkgs/stdenv/pure-darwin/default.nix b/pkgs/stdenv/pure-darwin/default.nix index 92c6f321d36..b40fbd8d446 100644 --- a/pkgs/stdenv/pure-darwin/default.nix +++ b/pkgs/stdenv/pure-darwin/default.nix @@ -134,7 +134,8 @@ in rec { ln -s ${bootstrapTools}/lib/libc++.dylib $out/lib/libc++.dylib ln -s ${bootstrapTools}/include/c++ $out/include/c++ ''; - setupHook = ../../development/compilers/llvm/3.5/libc++/setup-hook.sh; + linkCxxAbi = false; + setupHook = ../../development/compilers/llvm/3.6/libc++/setup-hook.sh; }; libcxxabi = stdenv.mkDerivation {