diff options
author | sternenseemann <sternenseemann@systemli.org> | 2024-04-16 17:44:08 +0200 |
---|---|---|
committer | sternenseemann <sternenseemann@systemli.org> | 2024-04-18 20:49:13 +0200 |
commit | 7be562d046bf8e3b74c325443f0fef4c74f76767 (patch) | |
tree | d8496e24ac3d4e00adb1820aff4b5950aed6adc1 /pkgs/build-support/cc-wrapper | |
parent | b2a568906aff1fe54b65e78b0a1a216247840734 (diff) |
wrapCC, wrapBintools: move expand-response-params bootstrapping out
The cc and bintools wrapper contained ad hoc bootstrapping logic for expand-response-params (which was callPackage-ed in a let binding). This lead to the strange situation that the bootstrapping logic related to expand-response-params is split between the wrapper derivations (where it is duplicated) and the actual stdenv bootstrapping. To clean this up, the wrappers simply should take expand-response-params as an ordinary input: They need an adjacent expand-response-params (i.e. one that runs on their host platform), but don't care about the how. Providing this is only problematic during stdenv bootstrapping where we have to pull it from the previous stage at times.
Diffstat (limited to 'pkgs/build-support/cc-wrapper')
-rw-r--r-- | pkgs/build-support/cc-wrapper/default.nix | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index 17aac3170971d..4adc1dcb1f8d8 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -16,7 +16,7 @@ , extraTools ? [], extraPackages ? [], extraBuildCommands ? "" , nixSupport ? {} , isGNU ? false, isClang ? cc.isClang or false, isCcache ? cc.isCcache or false, gnugrep ? null -, buildPackages ? {} +, expand-response-params , libcxx ? null # Whether or not to add `-B` and `-L` to `nix-support/cc-{c,ld}flags` @@ -113,9 +113,6 @@ let # unstable implementation detail, however. suffixSalt = replaceStrings ["-" "."] ["_" "_"] targetPlatform.config; - expand-response-params = - optionalString ((buildPackages.stdenv.hasCC or false) && buildPackages.stdenv.cc != "/dev/null") (import ../expand-response-params { inherit (buildPackages) stdenv; }); - useGccForLibs = useCcForLibs && libcxx == null && !targetPlatform.isDarwin @@ -298,6 +295,9 @@ stdenvNoCC.mkDerivation { '(${concatStringsSep " " (map (pkg: "\"${pkg}\"") pkgs)})) ''; + # Expose expand-response-params we are /actually/ using. In stdenv + # bootstrapping, expand-response-params usually comes from an earlier stage, + # so it is important to expose this for reference checking. inherit expand-response-params; inherit nixSupport; @@ -739,6 +739,7 @@ stdenvNoCC.mkDerivation { inherit isClang; # for substitution in utils.bash + # TODO(@sternenseemann): invent something cleaner than passing in "" in case of absence expandResponseParams = "${expand-response-params}/bin/expand-response-params"; # TODO(@sternenseemann): rename env var via stdenv rebuild shell = getBin runtimeShell + runtimeShell.shellPath or ""; |