@@ -4,8 +4,6 @@ use std::fs;
44use std:: path:: PathBuf ;
55use std:: process:: { exit, Command } ;
66
7- use build_helper:: t;
8-
97use crate :: builder:: { Builder , Cargo as CargoCommand , RunConfig , ShouldRun , Step } ;
108use crate :: channel:: GitInfo ;
119use crate :: compile;
@@ -214,10 +212,17 @@ impl Step for ToolBuild {
214212 if tool == "tidy" {
215213 tool = "rust-tidy" ;
216214 }
217- let cargo_out =
218- builder. cargo_out ( compiler, self . mode , target) . join ( exe ( tool , compiler . host ) ) ;
219- let bin = builder. tools_dir ( compiler) . join ( exe ( tool , compiler . host ) ) ;
215+ let exe = exe ( tool , compiler . host ) ;
216+ let cargo_out = builder. cargo_out ( compiler, self . mode , target) . join ( & exe) ;
217+ let bin = builder. tools_dir ( compiler) . join ( & exe) ;
220218 builder. copy ( & cargo_out, & bin) ;
219+
220+ // Don't create a stage0-sysroot/bin directory.
221+ if compiler. stage > 0 {
222+ let sysroot_bin = builder. sysroot_bindir ( compiler) . join ( & exe) ;
223+ builder. copy ( & cargo_out, & sysroot_bin) ;
224+ }
225+
221226 Some ( bin)
222227 }
223228 }
@@ -565,11 +570,9 @@ impl Step for Rustdoc {
565570 . cargo_out ( build_compiler, Mode :: ToolRustc , target)
566571 . join ( exe ( "rustdoc_tool_binary" , target_compiler. host ) ) ;
567572
568- // don 't create a stage0-sysroot/bin directory.
573+ // Don 't create a stage0-sysroot/bin directory.
569574 if target_compiler. stage > 0 {
570- let sysroot = builder. sysroot ( target_compiler) ;
571- let bindir = sysroot. join ( "bin" ) ;
572- t ! ( fs:: create_dir_all( & bindir) ) ;
575+ let bindir = builder. sysroot_bindir ( target_compiler) ;
573576 let bin_rustdoc = bindir. join ( exe ( "rustdoc" , target_compiler. host ) ) ;
574577 let _ = fs:: remove_file ( & bin_rustdoc) ;
575578 builder. copy ( & tool_rustdoc, & bin_rustdoc) ;
0 commit comments