@@ -104,9 +104,13 @@ impl Step for ToolBuild {
104104 let is_ext_tool = self . is_ext_tool ;
105105
106106 match self . mode {
107- Mode :: ToolStd => builder. ensure ( compile:: Std { compiler, target } ) ,
108- Mode :: ToolTest => builder. ensure ( compile:: Test { compiler, target } ) ,
109- Mode :: ToolRustc => builder. ensure ( compile:: Rustc { compiler, target } ) ,
107+ Mode :: ToolRustc => {
108+ builder. ensure ( compile:: Rustc { compiler, target } )
109+ }
110+ Mode :: ToolStd => {
111+ builder. ensure ( compile:: Std { compiler, target } )
112+ }
113+ Mode :: ToolBootstrap => { } // uses downloaded stage0 compiler libs
110114 _ => panic ! ( "unexpected Mode for tool build" )
111115 }
112116
@@ -341,17 +345,17 @@ macro_rules! tool {
341345}
342346
343347tool ! (
344- Rustbook , "src/tools/rustbook" , "rustbook" , Mode :: ToolRustc ;
348+ Rustbook , "src/tools/rustbook" , "rustbook" , Mode :: ToolBootstrap ;
345349 ErrorIndex , "src/tools/error_index_generator" , "error_index_generator" , Mode :: ToolRustc ;
346- UnstableBookGen , "src/tools/unstable-book-gen" , "unstable-book-gen" , Mode :: ToolStd ;
347- Tidy , "src/tools/tidy" , "tidy" , Mode :: ToolStd ;
348- Linkchecker , "src/tools/linkchecker" , "linkchecker" , Mode :: ToolStd ;
349- CargoTest , "src/tools/cargotest" , "cargotest" , Mode :: ToolStd ;
350- Compiletest , "src/tools/compiletest" , "compiletest" , Mode :: ToolTest , llvm_tools = true ;
351- BuildManifest , "src/tools/build-manifest" , "build-manifest" , Mode :: ToolStd ;
352- RemoteTestClient , "src/tools/remote-test-client" , "remote-test-client" , Mode :: ToolStd ;
353- RustInstaller , "src/tools/rust-installer" , "fabricate" , Mode :: ToolStd ;
354- RustdocTheme , "src/tools/rustdoc-themes" , "rustdoc-themes" , Mode :: ToolStd ;
350+ UnstableBookGen , "src/tools/unstable-book-gen" , "unstable-book-gen" , Mode :: ToolBootstrap ;
351+ Tidy , "src/tools/tidy" , "tidy" , Mode :: ToolBootstrap ;
352+ Linkchecker , "src/tools/linkchecker" , "linkchecker" , Mode :: ToolBootstrap ;
353+ CargoTest , "src/tools/cargotest" , "cargotest" , Mode :: ToolBootstrap ;
354+ Compiletest , "src/tools/compiletest" , "compiletest" , Mode :: ToolBootstrap , llvm_tools = true ;
355+ BuildManifest , "src/tools/build-manifest" , "build-manifest" , Mode :: ToolBootstrap ;
356+ RemoteTestClient , "src/tools/remote-test-client" , "remote-test-client" , Mode :: ToolBootstrap ;
357+ RustInstaller , "src/tools/rust-installer" , "fabricate" , Mode :: ToolBootstrap ;
358+ RustdocTheme , "src/tools/rustdoc-themes" , "rustdoc-themes" , Mode :: ToolBootstrap ;
355359) ;
356360
357361#[ derive( Debug , Copy , Clone , Hash , PartialEq , Eq ) ]
@@ -604,7 +608,11 @@ impl<'a> Builder<'a> {
604608 fn prepare_tool_cmd ( & self , compiler : Compiler , tool : Tool , cmd : & mut Command ) {
605609 let host = & compiler. host ;
606610 let mut lib_paths: Vec < PathBuf > = vec ! [
607- PathBuf :: from( & self . sysroot_libdir( compiler, compiler. host) ) ,
611+ if compiler. stage == 0 {
612+ self . build. rustc_snapshot_libdir( )
613+ } else {
614+ PathBuf :: from( & self . sysroot_libdir( compiler, compiler. host) )
615+ } ,
608616 self . cargo_out( compiler, tool. get_mode( ) , * host) . join( "deps" ) ,
609617 ] ;
610618
0 commit comments