@@ -321,8 +321,15 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car
321321 ""
322322 } ;
323323
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+
324331 if builder. no_std ( target) == Some ( true ) {
325- let mut features = "compiler-builtins-mem" . to_string ( ) ;
332+ features + = " compiler-builtins-mem" ;
326333 if !target. starts_with ( "bpf" ) {
327334 features. push_str ( compiler_builtins_c_feature) ;
328335 }
@@ -335,7 +342,7 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car
335342 . arg ( "--features" )
336343 . arg ( features) ;
337344 } else {
338- let mut features = builder. std_features ( target) ;
345+ features += & builder. std_features ( target) ;
339346 features. push_str ( compiler_builtins_c_feature) ;
340347
341348 cargo
@@ -754,7 +761,7 @@ pub fn rustc_cargo_env(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetS
754761 . env ( "CFG_RELEASE_CHANNEL" , & builder. config . channel )
755762 . env ( "CFG_VERSION" , builder. rust_version ( ) ) ;
756763
757- if let Some ( backend) = builder. config . rust_codegen_backends . get ( 0 ) {
764+ if let Some ( backend) = builder. config . default_codegen_backend ( ) {
758765 cargo. env ( "CFG_DEFAULT_CODEGEN_BACKEND" , backend) ;
759766 }
760767
0 commit comments