@@ -48,7 +48,12 @@ impl Step for Std {
4848 const DEFAULT : bool = true ;
4949
5050 fn should_run ( run : ShouldRun < ' _ > ) -> ShouldRun < ' _ > {
51- let stage = run. builder . top_stage ;
51+ let builder = run. builder ;
52+ let stage = if builder. config . is_explicit_stage ( ) || builder. top_stage >= 1 {
53+ builder. top_stage
54+ } else {
55+ 1
56+ } ;
5257
5358 let mut run = run;
5459 for c in Std :: CRATE_OR_DEPS {
@@ -66,10 +71,16 @@ impl Step for Std {
6671 fn run ( self , builder : & Builder < ' _ > ) {
6772 builder. require_submodule ( "library/stdarch" , None ) ;
6873
74+ let stage = if builder. config . is_explicit_stage ( ) || builder. top_stage >= 1 {
75+ builder. top_stage
76+ } else {
77+ 1
78+ } ;
79+
6980 let target = self . target ;
70- let compiler = builder. compiler ( builder . top_stage , builder. config . build ) ;
81+ let compiler = builder. compiler ( stage , builder. config . build ) ;
7182
72- if builder . top_stage == 0 {
83+ if stage == 0 {
7384 let mut is_explicitly_called =
7485 builder. paths . iter ( ) . any ( |p| p. starts_with ( "library" ) || p. starts_with ( "std" ) ) ;
7586
@@ -110,6 +121,7 @@ impl Step for Std {
110121 let _guard = builder. msg_check (
111122 format_args ! ( "library artifacts{}" , crate_description( & self . crates) ) ,
112123 target,
124+ Some ( stage) ,
113125 ) ;
114126
115127 let stamp = build_stamp:: libstd_stamp ( builder, compiler, target) . with_prefix ( "check" ) ;
@@ -162,7 +174,7 @@ impl Step for Std {
162174 }
163175
164176 let stamp = build_stamp:: libstd_stamp ( builder, compiler, target) . with_prefix ( "check-test" ) ;
165- let _guard = builder. msg_check ( "library test/bench/example targets" , target) ;
177+ let _guard = builder. msg_check ( "library test/bench/example targets" , target, Some ( stage ) ) ;
166178 run_cargo ( builder, cargo, builder. config . free_args . clone ( ) , & stamp, vec ! [ ] , true , false ) ;
167179 }
168180}
@@ -263,6 +275,7 @@ impl Step for Rustc {
263275 let _guard = builder. msg_check (
264276 format_args ! ( "compiler artifacts{}" , crate_description( & self . crates) ) ,
265277 target,
278+ None ,
266279 ) ;
267280
268281 let stamp = build_stamp:: librustc_stamp ( builder, compiler, target) . with_prefix ( "check" ) ;
@@ -323,7 +336,7 @@ impl Step for CodegenBackend {
323336 . arg ( builder. src . join ( format ! ( "compiler/rustc_codegen_{backend}/Cargo.toml" ) ) ) ;
324337 rustc_cargo_env ( builder, & mut cargo, target, compiler. stage ) ;
325338
326- let _guard = builder. msg_check ( backend, target) ;
339+ let _guard = builder. msg_check ( backend, target, None ) ;
327340
328341 let stamp = build_stamp:: codegen_backend_stamp ( builder, compiler, target, backend)
329342 . with_prefix ( "check" ) ;
@@ -390,7 +403,7 @@ impl Step for RustAnalyzer {
390403 let stamp = BuildStamp :: new ( & builder. cargo_out ( compiler, Mode :: ToolRustc , target) )
391404 . with_prefix ( "rust-analyzer-check" ) ;
392405
393- let _guard = builder. msg_check ( "rust-analyzer artifacts" , target) ;
406+ let _guard = builder. msg_check ( "rust-analyzer artifacts" , target, None ) ;
394407 run_cargo ( builder, cargo, builder. config . free_args . clone ( ) , & stamp, vec ! [ ] , true , false ) ;
395408 }
396409}
@@ -453,7 +466,7 @@ impl Step for Compiletest {
453466 let stamp = BuildStamp :: new ( & builder. cargo_out ( compiler, mode, self . target ) )
454467 . with_prefix ( "compiletest-check" ) ;
455468
456- let _guard = builder. msg_check ( "compiletest artifacts" , self . target ) ;
469+ let _guard = builder. msg_check ( "compiletest artifacts" , self . target , None ) ;
457470 run_cargo ( builder, cargo, builder. config . free_args . clone ( ) , & stamp, vec ! [ ] , true , false ) ;
458471 }
459472}
@@ -531,7 +544,7 @@ fn run_tool_check_step(
531544 let stamp = BuildStamp :: new ( & builder. cargo_out ( compiler, Mode :: ToolRustc , target) )
532545 . with_prefix ( & format ! ( "{}-check" , step_type_name. to_lowercase( ) ) ) ;
533546
534- let _guard = builder. msg_check ( format ! ( "{display_name} artifacts" ) , target) ;
547+ let _guard = builder. msg_check ( format ! ( "{display_name} artifacts" ) , target, None ) ;
535548 run_cargo ( builder, cargo, builder. config . free_args . clone ( ) , & stamp, vec ! [ ] , true , false ) ;
536549}
537550
0 commit comments