File tree Expand file tree Collapse file tree 2 files changed +7
-2
lines changed Expand file tree Collapse file tree 2 files changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -334,7 +334,8 @@ pub fn prepare_tool_cargo(
334334/// Determines how to build a `ToolTarget`, i.e. which compiler should be used to compile it.
335335/// The compiler stage is automatically bumped if we need to cross-compile a stage 1 tool.
336336pub enum ToolTargetBuildMode {
337- /// Build the tool using rustc that corresponds to the selected CLI stage.
337+ /// Build the tool for the given `target` using rustc that corresponds to the top CLI
338+ /// stage.
338339 Build ( TargetSelection ) ,
339340 /// Build the tool so that it can be attached to the sysroot of the passed compiler.
340341 /// Since we always dist stage 2+, the compiler that builds the tool in this case has to be
@@ -366,7 +367,10 @@ pub(crate) fn get_tool_target_compiler(
366367 } else {
367368 // If we are cross-compiling a stage 1 tool, we cannot do that with a stage 0 compiler,
368369 // so we auto-bump the tool's stage to 2, which means we need a stage 1 compiler.
369- builder. compiler ( build_compiler_stage. max ( 1 ) , builder. host_target )
370+ let build_compiler = builder. compiler ( build_compiler_stage. max ( 1 ) , builder. host_target ) ;
371+ // We also need the host stdlib to compile host code (proc macros/build scripts)
372+ builder. std ( build_compiler, builder. host_target ) ;
373+ build_compiler
370374 } ;
371375 builder. std ( compiler, target) ;
372376 compiler
Original file line number Diff line number Diff line change @@ -985,6 +985,7 @@ mod snapshot {
985985 . render_steps( ) , @r"
986986 [build] llvm <host>
987987 [build] rustc 0 <host> -> rustc 1 <host>
988+ [build] rustc 1 <host> -> std 1 <host>
988989 [build] rustc 1 <host> -> std 1 <target1>
989990 [build] rustc 1 <host> -> cargo 2 <target1>
990991 " ) ;
You can’t perform that action at this time.
0 commit comments