summary refs log tree commit diff
diff options
context:
space:
mode:
authorsternenseemann <sternenseemann@systemli.org>2022-01-07 12:58:21 +0100
committersternenseemann <sternenseemann@systemli.org>2022-01-07 14:52:13 +0100
commite238f456b8d643d5afe5370e942e82204907d0ef (patch)
tree728f67db125c338e0e0531903fc3f6265718d0e5
parent766f5ffb761bc916ea0f270f472d04ab30664d52 (diff)
downloadnixpkgs-e238f456b8d643d5afe5370e942e82204907d0ef.tar
nixpkgs-e238f456b8d643d5afe5370e942e82204907d0ef.tar.gz
nixpkgs-e238f456b8d643d5afe5370e942e82204907d0ef.tar.bz2
nixpkgs-e238f456b8d643d5afe5370e942e82204907d0ef.tar.lz
nixpkgs-e238f456b8d643d5afe5370e942e82204907d0ef.tar.xz
nixpkgs-e238f456b8d643d5afe5370e942e82204907d0ef.tar.zst
nixpkgs-e238f456b8d643d5afe5370e942e82204907d0ef.zip
llvmPackages_*.clang: pick clangUseLLVM if targetPlatform.useLLVM
libcxxClang still depends on cc wrapper's gccForLibs for libgcc which is
not available when useLLVM is set. In such cases we need to switch to
clangUseLLVM and (try) to use compiler-rt instead.

Resolves #153759: pkgsLLVM.llvmPackages.stdenv now correctly
clangUseLLVM as cc, allowing compilation to work as expected.
-rw-r--r--pkgs/development/compilers/llvm/10/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/11/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/12/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/13/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/5/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/6/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/7/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/8/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/9/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/git/default.nix4
10 files changed, 20 insertions, 20 deletions
diff --git a/pkgs/development/compilers/llvm/10/default.nix b/pkgs/development/compilers/llvm/10/default.nix
index 83840b4fd27..5cb6c278659 100644
--- a/pkgs/development/compilers/llvm/10/default.nix
+++ b/pkgs/development/compilers/llvm/10/default.nix
@@ -91,8 +91,8 @@ let
 
     # pick clang appropriate for package set we are targeting
     clang =
-      if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU
-      then tools.libstdcxxClang
+      /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
       else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/11/default.nix b/pkgs/development/compilers/llvm/11/default.nix
index b5c07091524..82a78af85ca 100644
--- a/pkgs/development/compilers/llvm/11/default.nix
+++ b/pkgs/development/compilers/llvm/11/default.nix
@@ -106,8 +106,8 @@ let
 
     # pick clang appropriate for package set we are targeting
     clang =
-      if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU
-      then tools.libstdcxxClang
+      /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
       else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/12/default.nix b/pkgs/development/compilers/llvm/12/default.nix
index 8de6bb420d4..4a2a7ee8789 100644
--- a/pkgs/development/compilers/llvm/12/default.nix
+++ b/pkgs/development/compilers/llvm/12/default.nix
@@ -94,8 +94,8 @@ let
 
     # pick clang appropriate for package set we are targeting
     clang =
-      if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU
-      then tools.libstdcxxClang
+      /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
       else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/13/default.nix b/pkgs/development/compilers/llvm/13/default.nix
index bdc07a68742..be5e9404cdd 100644
--- a/pkgs/development/compilers/llvm/13/default.nix
+++ b/pkgs/development/compilers/llvm/13/default.nix
@@ -95,8 +95,8 @@ let
 
     # pick clang appropriate for package set we are targeting
     clang =
-      if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU
-      then tools.libstdcxxClang
+      /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
       else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/5/default.nix b/pkgs/development/compilers/llvm/5/default.nix
index 4a6d55d5572..ef9886fb5ea 100644
--- a/pkgs/development/compilers/llvm/5/default.nix
+++ b/pkgs/development/compilers/llvm/5/default.nix
@@ -67,8 +67,8 @@ let
 
     # pick clang appropriate for package set we are targeting
     clang =
-      if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU
-      then tools.libstdcxxClang
+      /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
       else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix
index 1b9a793e885..4acfe6cd85d 100644
--- a/pkgs/development/compilers/llvm/6/default.nix
+++ b/pkgs/development/compilers/llvm/6/default.nix
@@ -68,8 +68,8 @@ let
 
     # pick clang appropriate for package set we are targeting
     clang =
-      if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU
-      then tools.libstdcxxClang
+      /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
       else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/7/default.nix b/pkgs/development/compilers/llvm/7/default.nix
index 841fc120d74..f0908f30775 100644
--- a/pkgs/development/compilers/llvm/7/default.nix
+++ b/pkgs/development/compilers/llvm/7/default.nix
@@ -98,8 +98,8 @@ let
 
     # pick clang appropriate for package set we are targeting
     clang =
-      if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU
-      then tools.libstdcxxClang
+      /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
       else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/8/default.nix b/pkgs/development/compilers/llvm/8/default.nix
index 234473c1ada..43050a72b92 100644
--- a/pkgs/development/compilers/llvm/8/default.nix
+++ b/pkgs/development/compilers/llvm/8/default.nix
@@ -99,8 +99,8 @@ let
 
     # pick clang appropriate for package set we are targeting
     clang =
-      if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU
-      then tools.libstdcxxClang
+      /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
       else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/9/default.nix b/pkgs/development/compilers/llvm/9/default.nix
index a10bac13824..7efe8486a38 100644
--- a/pkgs/development/compilers/llvm/9/default.nix
+++ b/pkgs/development/compilers/llvm/9/default.nix
@@ -99,8 +99,8 @@ let
 
     # pick clang appropriate for package set we are targeting
     clang =
-      if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU
-      then tools.libstdcxxClang
+      /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
       else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix
index 56904addb52..890270c851d 100644
--- a/pkgs/development/compilers/llvm/git/default.nix
+++ b/pkgs/development/compilers/llvm/git/default.nix
@@ -95,8 +95,8 @@ let
 
     # pick clang appropriate for package set we are targeting
     clang =
-      if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU
-      then tools.libstdcxxClang
+      /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
+      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
       else tools.libcxxClang;
 
     libstdcxxClang = wrapCCWith rec {