From fa6c8445c768a64c908fcd4d2955843622ba2550 Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Mon, 27 Jul 2015 14:25:34 -0700 Subject: [PATCH] make libcxxStdenv work on both darwin and linux --- pkgs/development/compilers/llvm/3.5/libc++/default.nix | 2 ++ pkgs/development/compilers/llvm/3.5/libc++/setup-hook.sh | 3 ++- pkgs/development/compilers/llvm/3.6/libc++/default.nix | 2 ++ pkgs/development/compilers/llvm/3.6/libc++/setup-hook.sh | 3 ++- pkgs/stdenv/pure-darwin/default.nix | 3 ++- 5 files changed, 10 insertions(+), 3 deletions(-) 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 {