rust: use pkgsBuildHost/pkgsTargetTarget

We're already using pkgsBuildBuild, and we'll soon be using
pkgsBuildTarget, so for consistency, change buildPackages and
targetPackages to their corresponding two-component names.

Changed files
+23 -25
pkgs
build-support
rust
development
compilers
+16 -16
pkgs/build-support/rust/lib/default.nix
··· 1 1 { lib 2 2 , stdenv 3 - , buildPackages 4 - , targetPackages 3 + , pkgsBuildHost 4 + , pkgsTargetTarget 5 5 }: 6 6 7 7 rec { ··· 16 16 # As a workaround for https://github.com/rust-lang/rust/issues/89626 use lld on pkgsStatic aarch64 17 17 shouldUseLLD = platform: platform.isAarch64 && platform.isStatic && !stdenv.isDarwin; 18 18 19 - ccForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc"; 20 - cxxForBuild = "${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}c++"; 19 + ccForBuild = "${pkgsBuildHost.stdenv.cc}/bin/${pkgsBuildHost.stdenv.cc.targetPrefix}cc"; 20 + cxxForBuild = "${pkgsBuildHost.stdenv.cc}/bin/${pkgsBuildHost.stdenv.cc.targetPrefix}c++"; 21 21 linkerForBuild = ccForBuild; 22 22 23 23 ccForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"; 24 24 cxxForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"; 25 25 linkerForHost = if shouldUseLLD stdenv.targetPlatform 26 26 && !stdenv.cc.bintools.isLLVM 27 - then "${buildPackages.lld}/bin/ld.lld" 27 + then "${pkgsBuildHost.lld}/bin/ld.lld" 28 28 else ccForHost; 29 29 30 - # Unfortunately we must use the dangerous `targetPackages` here 30 + # Unfortunately we must use the dangerous `pkgsTargetTarget` here 31 31 # because hooks are artificially phase-shifted one slot earlier 32 32 # (they go in nativeBuildInputs, so the hostPlatform looks like 33 33 # a targetPlatform to them). 34 - ccForTarget = "${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc"; 35 - cxxForTarget = "${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++"; 36 - linkerForTarget = if shouldUseLLD targetPackages.stdenv.targetPlatform 37 - && !targetPackages.stdenv.cc.bintools.isLLVM # whether stdenv's linker is lld already 38 - then "${buildPackages.lld}/bin/ld.lld" 34 + ccForTarget = "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}cc"; 35 + cxxForTarget = "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}c++"; 36 + linkerForTarget = if shouldUseLLD pkgsTargetTarget.stdenv.targetPlatform 37 + && !pkgsTargetTarget.stdenv.cc.bintools.isLLVM # whether stdenv's linker is lld already 38 + then "${pkgsBuildHost.lld}/bin/ld.lld" 39 39 else ccForTarget; 40 40 41 41 rustBuildPlatform = stdenv.buildPlatform.rust.rustcTarget; ··· 56 56 setEnv = '' 57 57 env \ 58 58 '' 59 - # Due to a bug in how splicing and targetPackages works, in 60 - # situations where targetPackages is irrelevant 61 - # targetPackages.stdenv.cc is often simply wrong. We must omit 59 + # Due to a bug in how splicing and pkgsTargetTarget works, in 60 + # situations where pkgsTargetTarget is irrelevant 61 + # pkgsTargetTarget.stdenv.cc is often simply wrong. We must omit 62 62 # the following lines when rustTargetPlatform collides with 63 63 # rustHostPlatform. 64 64 + lib.optionalString (rustTargetPlatform != rustHostPlatform) '' ··· 74 74 "CXX_${stdenv.buildPlatform.rust.cargoEnvVarTarget}=${cxxForBuild}" \ 75 75 "CARGO_TARGET_${stdenv.buildPlatform.rust.cargoEnvVarTarget}_LINKER=${linkerForBuild}" \ 76 76 "CARGO_BUILD_TARGET=${rustBuildPlatform}" \ 77 - "HOST_CC=${buildPackages.stdenv.cc}/bin/cc" \ 78 - "HOST_CXX=${buildPackages.stdenv.cc}/bin/c++" \ 77 + "HOST_CC=${pkgsBuildHost.stdenv.cc}/bin/cc" \ 78 + "HOST_CXX=${pkgsBuildHost.stdenv.cc}/bin/c++" \ 79 79 ''; 80 80 }; 81 81 } // lib.mapAttrs (old: new: platform:
+2 -4
pkgs/development/compilers/rust/1_75.nix
··· 10 10 # 3. Firefox and Thunderbird should still build on x86_64-linux. 11 11 12 12 { stdenv, lib 13 - , buildPackages 14 - , targetPackages 15 13 , newScope, callPackage 16 14 , CoreFoundation, Security, SystemConfiguration 17 - , pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost 15 + , pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost, pkgsTargetTarget 18 16 , makeRustPlatform 19 17 , wrapRustcWith 20 18 , llvmPackages_17, llvm_17 ··· 58 56 rustcPatches = [ ]; 59 57 } 60 58 61 - (builtins.removeAttrs args [ "pkgsBuildTarget" "pkgsBuildHost" "llvmPackages_17" "llvm_17"]) 59 + (builtins.removeAttrs args [ "pkgsBuildTarget" "llvmPackages_17" "llvm_17"])
+5 -5
pkgs/development/compilers/rust/default.nix
··· 12 12 , llvmPackages # Exposed through rustc for LTO in Firefox 13 13 }: 14 14 { stdenv, lib 15 - , buildPackages 16 - , targetPackages 17 15 , newScope, callPackage 18 16 , CoreFoundation, Security, SystemConfiguration 19 17 , pkgsBuildBuild 18 + , pkgsBuildHost 19 + , pkgsTargetTarget 20 20 , makeRustPlatform 21 21 , wrapRustcWith 22 22 }: 23 23 24 24 let 25 25 # Use `import` to make sure no packages sneak in here. 26 - lib' = import ../../../build-support/rust/lib { inherit lib stdenv buildPackages targetPackages; }; 26 + lib' = import ../../../build-support/rust/lib { inherit lib stdenv pkgsBuildHost pkgsTargetTarget; }; 27 27 # Allow faster cross compiler generation by reusing Build artifacts 28 28 fastCross = (stdenv.buildPlatform == stdenv.hostPlatform) && (stdenv.hostPlatform != stdenv.targetPlatform); 29 29 in ··· 58 58 else 59 59 self.buildRustPackages.overrideScope (_: _: 60 60 lib.optionalAttrs (stdenv.buildPlatform == stdenv.hostPlatform) 61 - (selectRustPackage buildPackages).packages.prebuilt); 61 + (selectRustPackage pkgsBuildHost).packages.prebuilt); 62 62 bootRustPlatform = makeRustPlatform bootstrapRustPackages; 63 63 in { 64 64 # Packages suitable for build-time, e.g. `build.rs`-type stuff. 65 - buildRustPackages = (selectRustPackage buildPackages).packages.stable // { __attrsFailEvaluation = true; }; 65 + buildRustPackages = (selectRustPackage pkgsBuildHost).packages.stable // { __attrsFailEvaluation = true; }; 66 66 # Analogous to stdenv 67 67 rustPlatform = makeRustPlatform self.buildRustPackages; 68 68 rustc-unwrapped = self.callPackage ./rustc.nix ({