@@ -48,7 +48,12 @@ impl Step for Std {
48
48
const DEFAULT : bool = true ;
49
49
50
50
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
+ } ;
52
57
53
58
let mut run = run;
54
59
for c in Std :: CRATE_OR_DEPS {
@@ -66,10 +71,16 @@ impl Step for Std {
66
71
fn run ( self , builder : & Builder < ' _ > ) {
67
72
builder. require_submodule ( "library/stdarch" , None ) ;
68
73
74
+ let stage = if builder. config . is_explicit_stage ( ) || builder. top_stage >= 1 {
75
+ builder. top_stage
76
+ } else {
77
+ 1
78
+ } ;
79
+
69
80
let target = self . target ;
70
- let compiler = builder. compiler ( builder . top_stage , builder. config . build ) ;
81
+ let compiler = builder. compiler ( stage , builder. config . build ) ;
71
82
72
- if builder . top_stage == 0 {
83
+ if stage == 0 {
73
84
let mut is_explicitly_called =
74
85
builder. paths . iter ( ) . any ( |p| p. starts_with ( "library" ) || p. starts_with ( "std" ) ) ;
75
86
@@ -110,6 +121,7 @@ impl Step for Std {
110
121
let _guard = builder. msg_check (
111
122
format_args ! ( "library artifacts{}" , crate_description( & self . crates) ) ,
112
123
target,
124
+ Some ( stage) ,
113
125
) ;
114
126
115
127
let stamp = build_stamp:: libstd_stamp ( builder, compiler, target) . with_prefix ( "check" ) ;
@@ -162,7 +174,7 @@ impl Step for Std {
162
174
}
163
175
164
176
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 ) ) ;
166
178
run_cargo ( builder, cargo, builder. config . free_args . clone ( ) , & stamp, vec ! [ ] , true , false ) ;
167
179
}
168
180
}
@@ -263,6 +275,7 @@ impl Step for Rustc {
263
275
let _guard = builder. msg_check (
264
276
format_args ! ( "compiler artifacts{}" , crate_description( & self . crates) ) ,
265
277
target,
278
+ None ,
266
279
) ;
267
280
268
281
let stamp = build_stamp:: librustc_stamp ( builder, compiler, target) . with_prefix ( "check" ) ;
@@ -323,7 +336,7 @@ impl Step for CodegenBackend {
323
336
. arg ( builder. src . join ( format ! ( "compiler/rustc_codegen_{backend}/Cargo.toml" ) ) ) ;
324
337
rustc_cargo_env ( builder, & mut cargo, target, compiler. stage ) ;
325
338
326
- let _guard = builder. msg_check ( backend, target) ;
339
+ let _guard = builder. msg_check ( backend, target, None ) ;
327
340
328
341
let stamp = build_stamp:: codegen_backend_stamp ( builder, compiler, target, backend)
329
342
. with_prefix ( "check" ) ;
@@ -390,7 +403,7 @@ impl Step for RustAnalyzer {
390
403
let stamp = BuildStamp :: new ( & builder. cargo_out ( compiler, Mode :: ToolRustc , target) )
391
404
. with_prefix ( "rust-analyzer-check" ) ;
392
405
393
- let _guard = builder. msg_check ( "rust-analyzer artifacts" , target) ;
406
+ let _guard = builder. msg_check ( "rust-analyzer artifacts" , target, None ) ;
394
407
run_cargo ( builder, cargo, builder. config . free_args . clone ( ) , & stamp, vec ! [ ] , true , false ) ;
395
408
}
396
409
}
@@ -453,7 +466,7 @@ impl Step for Compiletest {
453
466
let stamp = BuildStamp :: new ( & builder. cargo_out ( compiler, mode, self . target ) )
454
467
. with_prefix ( "compiletest-check" ) ;
455
468
456
- let _guard = builder. msg_check ( "compiletest artifacts" , self . target ) ;
469
+ let _guard = builder. msg_check ( "compiletest artifacts" , self . target , None ) ;
457
470
run_cargo ( builder, cargo, builder. config . free_args . clone ( ) , & stamp, vec ! [ ] , true , false ) ;
458
471
}
459
472
}
@@ -531,7 +544,7 @@ fn run_tool_check_step(
531
544
let stamp = BuildStamp :: new ( & builder. cargo_out ( compiler, Mode :: ToolRustc , target) )
532
545
. with_prefix ( & format ! ( "{}-check" , step_type_name. to_lowercase( ) ) ) ;
533
546
534
- let _guard = builder. msg_check ( format ! ( "{display_name} artifacts" ) , target) ;
547
+ let _guard = builder. msg_check ( format ! ( "{display_name} artifacts" ) , target, None ) ;
535
548
run_cargo ( builder, cargo, builder. config . free_args . clone ( ) , & stamp, vec ! [ ] , true , false ) ;
536
549
}
537
550
0 commit comments