diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2018-06-14 10:22:33 -0400 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2018-06-14 19:19:54 -0400 |
commit | fc9644d4c9c9d29958e9bcf1676d48d4b3026bb4 (patch) | |
tree | c5ae58a61ecae149ba8f8ecdbc5e2a26a2a270b4 /pkgs/development/compilers/llvm | |
parent | 1eacf21bd4cf88fe284bb1687e35a52389e6caac (diff) | |
download | nixlib-fc9644d4c9c9d29958e9bcf1676d48d4b3026bb4.tar nixlib-fc9644d4c9c9d29958e9bcf1676d48d4b3026bb4.tar.gz nixlib-fc9644d4c9c9d29958e9bcf1676d48d4b3026bb4.tar.bz2 nixlib-fc9644d4c9c9d29958e9bcf1676d48d4b3026bb4.tar.lz nixlib-fc9644d4c9c9d29958e9bcf1676d48d4b3026bb4.tar.xz nixlib-fc9644d4c9c9d29958e9bcf1676d48d4b3026bb4.tar.zst nixlib-fc9644d4c9c9d29958e9bcf1676d48d4b3026bb4.zip |
llvm 6: Fix libcxxabi impurity and darwin sanitizers
Diffstat (limited to 'pkgs/development/compilers/llvm')
-rw-r--r-- | pkgs/development/compilers/llvm/6/compiler-rt.nix | 10 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/6/default.nix | 35 |
2 files changed, 24 insertions, 21 deletions
diff --git a/pkgs/development/compilers/llvm/6/compiler-rt.nix b/pkgs/development/compilers/llvm/6/compiler-rt.nix index 333818f7dbde..88bccca36476 100644 --- a/pkgs/development/compilers/llvm/6/compiler-rt.nix +++ b/pkgs/development/compilers/llvm/6/compiler-rt.nix @@ -1,4 +1,4 @@ -{ stdenv, version, fetch, cmake, python, llvm }: +{ stdenv, version, fetch, cmake, python, llvm, libcxxabi }: with stdenv.lib; stdenv.mkDerivation rec { name = "compiler-rt-${version}"; @@ -6,12 +6,13 @@ stdenv.mkDerivation rec { src = fetch "compiler-rt" "16m7rvh3w6vq10iwkjrr1nn293djld3xm62l5zasisaprx117k6h"; nativeBuildInputs = [ cmake python llvm ]; + buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi; configureFlags = [ "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" ]; - outputs = [ "dev" "out" ]; + outputs = [ "out" "dev" ]; patches = [ ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory @@ -27,5 +28,10 @@ stdenv.mkDerivation rec { --replace 'set(COMPILER_RT_HAS_TSAN TRUE)' 'set(COMPILER_RT_HAS_TSAN FALSE)' ''; + # Hack around weird upsream RPATH bug + postInstall = stdenv.lib.optionalString stdenv.isDarwin '' + ln -s "$out/lib"/*/* "$out/lib" + ''; + enableParallelBuilding = true; } diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix index 8fe68bad213d..40d602e222ed 100644 --- a/pkgs/development/compilers/llvm/6/default.nix +++ b/pkgs/development/compilers/llvm/6/default.nix @@ -23,9 +23,19 @@ let tools = stdenv.lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake libxml2 python2 isl release_version version fetch; }); + mkExtraBuildCommands = cc: '' + rsrc="$out/resource-root" + mkdir "$rsrc" + ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc" + ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" + echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + '' + stdenv.lib.optionalString stdenv.targetPlatform.isLinux '' + echo "--gcc-toolchain=${tools.clang-unwrapped.gcc}" >> $out/nix-support/cc-cflags + ''; in { llvm = overrideManOutput (callPackage ./llvm.nix { }); + clang-unwrapped = overrideManOutput (callPackage ./clang { inherit clang-tools-extra_src; }); @@ -38,16 +48,11 @@ let libstdcxxClang = wrapCCWith rec { cc = tools.clang-unwrapped; - extraPackages = [ libstdcxxHook targetLlvmLibraries.compiler-rt ]; - extraBuildCommands = '' - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc" - ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - '' + stdenv.lib.optionalString stdenv.targetPlatform.isLinux '' - echo "--gcc-toolchain=${tools.clang-unwrapped.gcc}" >> $out/nix-support/cc-cflags - ''; + extraPackages = [ + libstdcxxHook + targetLlvmLibraries.compiler-rt + ]; + extraBuildCommands = mkExtraBuildCommands cc; }; libcxxClang = wrapCCWith rec { @@ -57,15 +62,7 @@ let targetLlvmLibraries.libcxxabi targetLlvmLibraries.compiler-rt ]; - extraBuildCommands = '' - rsrc="$out/resource-root" - mkdir "$rsrc" - ln -s "${cc}/lib/clang/${release_version}/include" "$rsrc" - ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib" - echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags - '' + stdenv.lib.optionalString stdenv.targetPlatform.isLinux '' - echo "--gcc-toolchain=${tools.clang-unwrapped.gcc}" >> $out/nix-support/cc-cflags - ''; + extraBuildCommands = mkExtraBuildCommands cc; }; lld = callPackage ./lld.nix {}; |