rust.envVars: use wrapped LLD for aarch64 musl

The unwrapped version doesn't know where to look for libraries, so
this is required to e.g. build anything that uses openssl-sys with
OPENSSL_NO_VENDOR. A randomly chosen example package that's fixed by
this change is pkgsStatic.gitoxide.

Changed files
+8 -4
pkgs
build-support
rust
development
compilers
+3 -2
pkgs/build-support/rust/lib/default.nix
··· 1 1 { lib 2 2 , stdenv 3 3 , pkgsBuildHost 4 + , pkgsBuildTarget 4 5 , pkgsTargetTarget 5 6 }: 6 7 ··· 24 25 cxxForHost = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"; 25 26 linkerForHost = if shouldUseLLD stdenv.targetPlatform 26 27 && !stdenv.cc.bintools.isLLVM 27 - then "${pkgsBuildHost.lld}/bin/ld.lld" 28 + then "${pkgsBuildHost.llvmPackages.bintools}/bin/${stdenv.cc.targetPrefix}ld.lld" 28 29 else ccForHost; 29 30 30 31 # Unfortunately we must use the dangerous `pkgsTargetTarget` here ··· 35 36 cxxForTarget = "${pkgsTargetTarget.stdenv.cc}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}c++"; 36 37 linkerForTarget = if shouldUseLLD pkgsTargetTarget.stdenv.targetPlatform 37 38 && !pkgsTargetTarget.stdenv.cc.bintools.isLLVM # whether stdenv's linker is lld already 38 - then "${pkgsBuildHost.lld}/bin/ld.lld" 39 + then "${pkgsBuildTarget.llvmPackages.bintools}/bin/${pkgsTargetTarget.stdenv.cc.targetPrefix}ld.lld" 39 40 else ccForTarget; 40 41 41 42 rustBuildPlatform = stdenv.buildPlatform.rust.rustcTarget;
+1 -1
pkgs/development/compilers/rust/1_75.nix
··· 56 56 rustcPatches = [ ]; 57 57 } 58 58 59 - (builtins.removeAttrs args [ "pkgsBuildTarget" "llvmPackages_17" "llvm_17"]) 59 + (builtins.removeAttrs args [ "llvmPackages_17" "llvm_17"])
+4 -1
pkgs/development/compilers/rust/default.nix
··· 16 16 , CoreFoundation, Security, SystemConfiguration 17 17 , pkgsBuildBuild 18 18 , pkgsBuildHost 19 + , pkgsBuildTarget 19 20 , pkgsTargetTarget 20 21 , makeRustPlatform 21 22 , wrapRustcWith ··· 23 24 24 25 let 25 26 # Use `import` to make sure no packages sneak in here. 26 - lib' = import ../../../build-support/rust/lib { inherit lib stdenv pkgsBuildHost pkgsTargetTarget; }; 27 + lib' = import ../../../build-support/rust/lib { 28 + inherit lib stdenv pkgsBuildHost pkgsBuildTarget pkgsTargetTarget; 29 + }; 27 30 # Allow faster cross compiler generation by reusing Build artifacts 28 31 fastCross = (stdenv.buildPlatform == stdenv.hostPlatform) && (stdenv.hostPlatform != stdenv.targetPlatform); 29 32 in