summary refs log tree commit diff
path: root/pkgs/development/compilers/llvm
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2022-05-03 10:51:22 -0400
committerShea Levy <shea@shealevy.com>2022-05-09 10:05:47 -0400
commit078a07708a6add846447272f0797fbde778a0522 (patch)
treee8428c335bca643b35365d5758d43253492dc7fb /pkgs/development/compilers/llvm
parent4c0d5f80fcdef2024f73c584f7450a6f37ced8cd (diff)
downloadnixpkgs-078a07708a6add846447272f0797fbde778a0522.tar
nixpkgs-078a07708a6add846447272f0797fbde778a0522.tar.gz
nixpkgs-078a07708a6add846447272f0797fbde778a0522.tar.bz2
nixpkgs-078a07708a6add846447272f0797fbde778a0522.tar.lz
nixpkgs-078a07708a6add846447272f0797fbde778a0522.tar.xz
nixpkgs-078a07708a6add846447272f0797fbde778a0522.tar.zst
nixpkgs-078a07708a6add846447272f0797fbde778a0522.zip
libunwind: Fix build against compiler-rt-using clang
Diffstat (limited to 'pkgs/development/compilers/llvm')
-rw-r--r--pkgs/development/compilers/llvm/13/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/13/libunwind/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/14/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/14/libunwind/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/git/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/git/libunwind/default.nix4
6 files changed, 18 insertions, 3 deletions
diff --git a/pkgs/development/compilers/llvm/13/default.nix b/pkgs/development/compilers/llvm/13/default.nix
index 874be111ade..b72d4244285 100644
--- a/pkgs/development/compilers/llvm/13/default.nix
+++ b/pkgs/development/compilers/llvm/13/default.nix
@@ -168,6 +168,7 @@ let
       '' + lib.optionalString stdenv.targetPlatform.isWasm ''
         echo "-fno-exceptions" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
+      isCompilerRT = true;
     };
 
     clangNoLibcxx = wrapCCWith rec {
@@ -182,6 +183,7 @@ let
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
         echo "-nostdlib++" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
+      isCompilerRT = true;
     };
 
     clangNoLibc = wrapCCWith rec {
@@ -195,6 +197,7 @@ let
         echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
+      isCompilerRT = true;
     };
 
     clangNoCompilerRt = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/13/libunwind/default.nix b/pkgs/development/compilers/llvm/13/libunwind/default.nix
index b6017e74172..c6cc148239e 100644
--- a/pkgs/development/compilers/llvm/13/libunwind/default.nix
+++ b/pkgs/development/compilers/llvm/13/libunwind/default.nix
@@ -17,7 +17,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+  cmakeFlags =
+     lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF"
+  ++ lib.optional (stdenv.cc.isCompilerRT) "-DLIBUNWIND_USE_COMPILER_RT=TRUE";
 
   meta = llvm_meta // {
     # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
diff --git a/pkgs/development/compilers/llvm/14/default.nix b/pkgs/development/compilers/llvm/14/default.nix
index 4e5e85684a2..4de667d894e 100644
--- a/pkgs/development/compilers/llvm/14/default.nix
+++ b/pkgs/development/compilers/llvm/14/default.nix
@@ -168,6 +168,7 @@ let
       '' + lib.optionalString stdenv.targetPlatform.isWasm ''
         echo "-fno-exceptions" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
+      isCompilerRT = true;
     };
 
     clangNoLibcxx = wrapCCWith rec {
@@ -182,6 +183,7 @@ let
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
         echo "-nostdlib++" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
+      isCompilerRT = true;
     };
 
     clangNoLibc = wrapCCWith rec {
@@ -195,6 +197,7 @@ let
         echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
+      isCompilerRT = true;
     };
 
     clangNoCompilerRt = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/14/libunwind/default.nix b/pkgs/development/compilers/llvm/14/libunwind/default.nix
index 109b92f1e02..7940fa4b3a1 100644
--- a/pkgs/development/compilers/llvm/14/libunwind/default.nix
+++ b/pkgs/development/compilers/llvm/14/libunwind/default.nix
@@ -31,7 +31,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+  cmakeFlags =
+     lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF"
+  ++ lib.optional (stdenv.cc.isCompilerRT) "-DLIBUNWIND_USE_COMPILER_RT=TRUE";
 
   meta = llvm_meta // {
     # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix
index 0f45acffb27..6b96190c042 100644
--- a/pkgs/development/compilers/llvm/git/default.nix
+++ b/pkgs/development/compilers/llvm/git/default.nix
@@ -168,6 +168,7 @@ let
       '' + lib.optionalString stdenv.targetPlatform.isWasm ''
         echo "-fno-exceptions" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
+      isCompilerRT = true;
     };
 
     clangNoLibcxx = wrapCCWith rec {
@@ -182,6 +183,7 @@ let
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
         echo "-nostdlib++" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
+      isCompilerRT = true;
     };
 
     clangNoLibc = wrapCCWith rec {
@@ -195,6 +197,7 @@ let
         echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
         echo "-B${targetLlvmLibraries.compiler-rt}/lib" >> $out/nix-support/cc-cflags
       '' + mkExtraBuildCommands cc;
+      isCompilerRT = true;
     };
 
     clangNoCompilerRt = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/git/libunwind/default.nix b/pkgs/development/compilers/llvm/git/libunwind/default.nix
index c6d9eda5e47..30874588d8d 100644
--- a/pkgs/development/compilers/llvm/git/libunwind/default.nix
+++ b/pkgs/development/compilers/llvm/git/libunwind/default.nix
@@ -31,7 +31,9 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  cmakeFlags = lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+  cmakeFlags =
+     lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF"
+  ++ lib.optional stdenv.cc.isCompilerRT "-DLIBUNWIND_USE_COMPILER_RT=TRUE";
 
   meta = llvm_meta // {
     # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst