From 55249c817f2a170e6a0b4d1f8f675bb0d3adf8e8 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 7 Jan 2024 22:11:49 +0000 Subject: [PATCH] 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 '...'`. --- pkgs/stdenv/adapters.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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