@@ -1003,7 +1003,7 @@ impl Step for Rustc {
1003
1003
pub fn rustc_cargo ( builder : & Builder < ' _ > , cargo : & mut Cargo , target : TargetSelection , stage : u32 ) {
1004
1004
cargo
1005
1005
. arg ( "--features" )
1006
- . arg ( builder. rustc_features ( builder. kind ) )
1006
+ . arg ( builder. rustc_features ( builder. kind , target ) )
1007
1007
. arg ( "--manifest-path" )
1008
1008
. arg ( builder. src . join ( "compiler/rustc/Cargo.toml" ) ) ;
1009
1009
@@ -1060,7 +1060,7 @@ pub fn rustc_cargo_env(
1060
1060
cargo. env ( "CFG_OMIT_GIT_HASH" , "1" ) ;
1061
1061
}
1062
1062
1063
- if let Some ( backend) = builder. config . default_codegen_backend ( ) {
1063
+ if let Some ( backend) = builder. config . default_codegen_backend ( target ) {
1064
1064
cargo. env ( "CFG_DEFAULT_CODEGEN_BACKEND" , backend) ;
1065
1065
}
1066
1066
@@ -1101,7 +1101,7 @@ pub fn rustc_cargo_env(
1101
1101
// build. If we are in a check build we still go ahead here presuming we've
1102
1102
// detected that LLVM is already built and good to go which helps prevent
1103
1103
// busting caches (e.g. like #71152).
1104
- if builder. config . llvm_enabled ( ) {
1104
+ if builder. config . llvm_enabled ( target ) {
1105
1105
let building_is_expensive =
1106
1106
crate :: core:: build_steps:: llvm:: prebuilt_llvm_config ( builder, target) . is_err ( ) ;
1107
1107
// `top_stage == stage` might be false for `check --stage 1`, if we are building the stage 1 compiler
@@ -1250,7 +1250,7 @@ pub(crate) const CODEGEN_BACKEND_PREFIX: &str = "rustc_codegen_";
1250
1250
fn is_codegen_cfg_needed ( path : & TaskPath , run : & RunConfig < ' _ > ) -> bool {
1251
1251
if path. path . to_str ( ) . unwrap ( ) . contains ( & CODEGEN_BACKEND_PREFIX ) {
1252
1252
let mut needs_codegen_backend_config = true ;
1253
- for & backend in & run. builder . config . rust_codegen_backends {
1253
+ for & backend in run. builder . config . codegen_backends ( run . target ) {
1254
1254
if path
1255
1255
. path
1256
1256
. to_str ( )
@@ -1287,7 +1287,7 @@ impl Step for CodegenBackend {
1287
1287
return ;
1288
1288
}
1289
1289
1290
- for & backend in & run. builder . config . rust_codegen_backends {
1290
+ for & backend in run. builder . config . codegen_backends ( run . target ) {
1291
1291
if backend == "llvm" {
1292
1292
continue ; // Already built as part of rustc
1293
1293
}
@@ -1387,7 +1387,7 @@ fn copy_codegen_backends_to_sysroot(
1387
1387
return ;
1388
1388
}
1389
1389
1390
- for backend in builder. config . rust_codegen_backends . iter ( ) {
1390
+ for backend in builder. config . codegen_backends ( target ) {
1391
1391
if backend == "llvm" {
1392
1392
continue ; // Already built as part of rustc
1393
1393
}
@@ -1694,7 +1694,7 @@ impl Step for Assemble {
1694
1694
// to not fail while linking the artifacts.
1695
1695
build_compiler. stage = actual_stage;
1696
1696
1697
- for & backend in builder. config . rust_codegen_backends . iter ( ) {
1697
+ for & backend in builder. config . codegen_backends ( target_compiler . host ) {
1698
1698
if backend == "llvm" {
1699
1699
continue ; // Already built as part of rustc
1700
1700
}
@@ -1779,7 +1779,7 @@ impl Step for Assemble {
1779
1779
}
1780
1780
}
1781
1781
1782
- if builder. config . rust_codegen_backends . contains ( & INTERNER . intern_str ( "llvm" ) ) {
1782
+ if builder. config . llvm_enabled ( target_compiler . host ) {
1783
1783
let llvm:: LlvmResult { llvm_config, .. } =
1784
1784
builder. ensure ( llvm:: Llvm { target : target_compiler. host } ) ;
1785
1785
if !builder. config . dry_run ( ) && builder. config . llvm_tools_enabled {
0 commit comments