about summary refs log tree commit diff
path: root/pkgs/stdenv/adapters.nix
diff options
context:
space:
mode:
authorSergei Trofimovich <slyich@gmail.com>2024-01-07 22:11:49 +0000
committerSergei Trofimovich <slyich@gmail.com>2024-01-07 22:11:49 +0000
commit55249c817f2a170e6a0b4d1f8f675bb0d3adf8e8 (patch)
treed2f25d506d71c544ae4671e22f7d1264ed10d1a7 /pkgs/stdenv/adapters.nix
parent88f163d66217005b123381654e5e85a26cdb7a7c (diff)
downloadnixlib-55249c817f2a170e6a0b4d1f8f675bb0d3adf8e8.tar
nixlib-55249c817f2a170e6a0b4d1f8f675bb0d3adf8e8.tar.gz
nixlib-55249c817f2a170e6a0b4d1f8f675bb0d3adf8e8.tar.bz2
nixlib-55249c817f2a170e6a0b4d1f8f675bb0d3adf8e8.tar.lz
nixlib-55249c817f2a170e6a0b4d1f8f675bb0d3adf8e8.tar.xz
nixlib-55249c817f2a170e6a0b4d1f8f675bb0d3adf8e8.tar.zst
nixlib-55249c817f2a170e6a0b4d1f8f675bb0d3adf8e8.zip
stdenv.adapters: fixx `overrideLibcxx` to refer to existing `compiler-rt`
Before the change `pkgsLLVM` attributes were failing to pull in
`compiler-rt` on `x86_64-linux`:

    $ nix build --no-link -f. pkgsLLVM.asciidoc-full
    error:
       error: attribute 'llvmPackages_13' missing

       at pkgs/stdenv/adapters.nix:86:32:

           85|       inherit libcxx;
           86|       extraPackages = [ cxxabi pkgs.pkgsTargetTarget."llvmPackages_${lib.versions.major llvmLibcxxVersion}".compiler-rt ];
             |                                ^
           87|     });

It happens because `pkgs.pkgsTargetTarget` are always empty for
cross-packages like `pkgsLLVM.`, `pkgsCross.*.` or
`--arg crossSystem '...'`.
Diffstat (limited to 'pkgs/stdenv/adapters.nix')
-rw-r--r--pkgs/stdenv/adapters.nix5
1 files changed, 4 insertions, 1 deletions
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix
index dd2987190718..cde718df1aba 100644
--- a/pkgs/stdenv/adapters.nix
+++ b/pkgs/stdenv/adapters.nix
@@ -83,7 +83,10 @@ rec {
     in
     overrideCC stdenv (stdenv.cc.override {
       inherit libcxx;
-      extraPackages = [ cxxabi pkgs.pkgsTargetTarget."llvmPackages_${lib.versions.major llvmLibcxxVersion}".compiler-rt ];
+      extraPackages = [
+        cxxabi
+        pkgs.buildPackages.targetPackages."llvmPackages_${lib.versions.major llvmLibcxxVersion}".compiler-rt
+      ];
     });
 
   # Override the setup script of stdenv.  Useful for testing new