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