@@ -185,8 +185,17 @@ impl Step for Rustc {
185185 let compiler = builder. compiler ( builder. top_stage , builder. config . build ) ;
186186 let target = self . target ;
187187
188- builder. ensure ( compile:: Std :: new ( compiler, compiler. host ) ) ;
189- builder. ensure ( compile:: Std :: new ( compiler, target) ) ;
188+ if compiler. stage != 0 {
189+ // If we're not in stage 0, then we won't have a std from the beta
190+ // compiler around. That means we need to make sure there's one in
191+ // the sysroot for the compiler to find. Otherwise, we're going to
192+ // fail when building crates that need to generate code (e.g., build
193+ // scripts and their dependencies).
194+ builder. ensure ( compile:: Std :: new ( compiler, compiler. host ) ) ;
195+ builder. ensure ( compile:: Std :: new ( compiler, target) ) ;
196+ } else {
197+ builder. ensure ( check:: Std :: new ( target) ) ;
198+ }
190199
191200 let mut cargo = builder:: Cargo :: new (
192201 builder,
@@ -224,9 +233,7 @@ impl Step for Rustc {
224233macro_rules! lint_any {
225234 ( $(
226235 $name: ident, $path: expr, $readable_name: expr
227- $( , is_external_tool = $external: expr) *
228- $( , is_unstable_tool = $unstable: expr) *
229- $( , allow_features = $allow_features: expr) ?
236+ $( , lint_by_default = $lint_by_default: expr) *
230237 ;
231238 ) +) => {
232239 $(
@@ -238,6 +245,7 @@ macro_rules! lint_any {
238245
239246 impl Step for $name {
240247 type Output = ( ) ;
248+ const DEFAULT : bool = if false $( || $lint_by_default) * { true } else { false } ;
241249
242250 fn should_run( run: ShouldRun <' _>) -> ShouldRun <' _> {
243251 run. path( $path)
@@ -275,11 +283,15 @@ macro_rules! lint_any {
275283 & target,
276284 ) ;
277285
286+ let stamp = builder
287+ . cargo_out( compiler, Mode :: ToolRustc , target)
288+ . join( format!( ".{}-check.stamp" , stringify!( $name) . to_lowercase( ) ) ) ;
289+
278290 run_cargo(
279291 builder,
280292 cargo,
281293 lint_args( builder, & [ ] ) ,
282- & libstd_stamp ( builder , compiler , target ) ,
294+ & stamp ,
283295 vec![ ] ,
284296 true ,
285297 false ,
@@ -291,11 +303,11 @@ macro_rules! lint_any {
291303}
292304
293305lint_any ! (
294- Bootstrap , "src/bootstrap" , "bootstrap" ;
295- BuildHelper , "src/tools/build_helper" , "build_helper" ;
306+ Bootstrap , "src/bootstrap" , "bootstrap" , lint_by_default = true ;
307+ BuildHelper , "src/tools/build_helper" , "build_helper" , lint_by_default = true ;
296308 CoverageDump , "src/tools/coverage-dump" , "coverage-dump" ;
297- Tidy , "src/tools/tidy" , "tidy" ;
298- Compiletest , "src/tools/compiletest" , "compiletest" ;
309+ Tidy , "src/tools/tidy" , "tidy" , lint_by_default = true ;
310+ Compiletest , "src/tools/compiletest" , "compiletest" , lint_by_default = true ;
299311 RemoteTestServer , "src/tools/remote-test-server" , "remote-test-server" ;
300312 RemoteTestClient , "src/tools/remote-test-client" , "remote-test-client" ;
301313) ;
0 commit comments