@@ -662,6 +662,8 @@ pub fn rustc_cargo_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetS
662
662
. env ( "CFG_VERSION" , builder. rust_version ( ) ) ;
663
663
664
664
let libdir_relative = builder. config . libdir_relative ( ) . unwrap_or_else ( || Path :: new ( "lib" ) ) ;
665
+ let target_config = builder. config . target_config . get ( & target) ;
666
+
665
667
cargo. env ( "CFG_LIBDIR_RELATIVE" , libdir_relative) ;
666
668
667
669
if let Some ( ref ver_date) = builder. rust_info . commit_date ( ) {
@@ -673,9 +675,15 @@ pub fn rustc_cargo_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetS
673
675
if !builder. unstable_features ( ) {
674
676
cargo. env ( "CFG_DISABLE_UNSTABLE_FEATURES" , "1" ) ;
675
677
}
676
- if let Some ( ref s) = builder. config . rustc_default_linker {
678
+
679
+ // Prefer the current target's own default_linker, else a globally
680
+ // specified one.
681
+ if let Some ( s) = target_config. and_then ( |c| c. default_linker . as_ref ( ) ) {
682
+ cargo. env ( "CFG_DEFAULT_LINKER" , s) ;
683
+ } else if let Some ( ref s) = builder. config . rustc_default_linker {
677
684
cargo. env ( "CFG_DEFAULT_LINKER" , s) ;
678
685
}
686
+
679
687
if builder. config . rustc_parallel {
680
688
cargo. rustflag ( "--cfg=parallel_compiler" ) ;
681
689
cargo. rustdocflag ( "--cfg=parallel_compiler" ) ;
@@ -700,7 +708,6 @@ pub fn rustc_cargo_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetS
700
708
}
701
709
let llvm_config = builder. ensure ( native:: Llvm { target } ) ;
702
710
cargo. env ( "LLVM_CONFIG" , & llvm_config) ;
703
- let target_config = builder. config . target_config . get ( & target) ;
704
711
if let Some ( s) = target_config. and_then ( |c| c. llvm_config . as_ref ( ) ) {
705
712
cargo. env ( "CFG_LLVM_ROOT" , s) ;
706
713
}
0 commit comments