@@ -321,8 +321,15 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car
321
321
""
322
322
} ;
323
323
324
+ let mut features = String :: new ( ) ;
325
+
326
+ // Cranelift doesn't support `asm`.
327
+ if stage != 0 && builder. config . default_codegen_backend ( ) . unwrap_or_default ( ) == "cranelift" {
328
+ features += " compiler-builtins-no-asm" ;
329
+ }
330
+
324
331
if builder. no_std ( target) == Some ( true ) {
325
- let mut features = "compiler-builtins-mem" . to_string ( ) ;
332
+ features + = " compiler-builtins-mem" ;
326
333
if !target. starts_with ( "bpf" ) {
327
334
features. push_str ( compiler_builtins_c_feature) ;
328
335
}
@@ -335,7 +342,7 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car
335
342
. arg ( "--features" )
336
343
. arg ( features) ;
337
344
} else {
338
- let mut features = builder. std_features ( target) ;
345
+ features += & builder. std_features ( target) ;
339
346
features. push_str ( compiler_builtins_c_feature) ;
340
347
341
348
cargo
@@ -754,7 +761,7 @@ pub fn rustc_cargo_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetS
754
761
. env ( "CFG_RELEASE_CHANNEL" , & builder. config . channel )
755
762
. env ( "CFG_VERSION" , builder. rust_version ( ) ) ;
756
763
757
- if let Some ( backend) = builder. config . rust_codegen_backends . get ( 0 ) {
764
+ if let Some ( backend) = builder. config . default_codegen_backend ( ) {
758
765
cargo. env ( "CFG_DEFAULT_CODEGEN_BACKEND" , backend) ;
759
766
}
760
767
0 commit comments