@@ -662,6 +662,8 @@ pub fn rustc_cargo_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetS
662662 . env ( "CFG_VERSION" , builder. rust_version ( ) ) ;
663663
664664 let libdir_relative = builder. config . libdir_relative ( ) . unwrap_or_else ( || Path :: new ( "lib" ) ) ;
665+ let target_config = builder. config . target_config . get ( & target) ;
666+
665667 cargo. env ( "CFG_LIBDIR_RELATIVE" , libdir_relative) ;
666668
667669 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
673675 if !builder. unstable_features ( ) {
674676 cargo. env ( "CFG_DISABLE_UNSTABLE_FEATURES" , "1" ) ;
675677 }
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 {
677684 cargo. env ( "CFG_DEFAULT_LINKER" , s) ;
678685 }
686+
679687 if builder. config . rustc_parallel {
680688 cargo. rustflag ( "--cfg=parallel_compiler" ) ;
681689 cargo. rustdocflag ( "--cfg=parallel_compiler" ) ;
@@ -700,7 +708,6 @@ pub fn rustc_cargo_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetS
700708 }
701709 let llvm_config = builder. ensure ( native:: Llvm { target } ) ;
702710 cargo. env ( "LLVM_CONFIG" , & llvm_config) ;
703- let target_config = builder. config . target_config . get ( & target) ;
704711 if let Some ( s) = target_config. and_then ( |c| c. llvm_config . as_ref ( ) ) {
705712 cargo. env ( "CFG_LLVM_ROOT" , s) ;
706713 }
0 commit comments