@@ -115,7 +115,15 @@ impl Step for ToolBuild {
115115 _ => panic ! ( "unexpected Mode for tool build" )
116116 }
117117
118- let mut cargo = prepare_tool_cargo ( builder, compiler, self . mode , target, "build" , path) ;
118+ let mut cargo = prepare_tool_cargo (
119+ builder,
120+ compiler,
121+ self . mode ,
122+ target,
123+ "build" ,
124+ path,
125+ is_ext_tool,
126+ ) ;
119127 cargo. arg ( "--features" ) . arg ( self . extra_features . join ( " " ) ) ;
120128
121129 let _folder = builder. fold_output ( || format ! ( "stage{}-{}" , compiler. stage, tool) ) ;
@@ -238,6 +246,7 @@ pub fn prepare_tool_cargo(
238246 target : Interned < String > ,
239247 command : & ' static str ,
240248 path : & ' static str ,
249+ is_ext_tool : bool ,
241250) -> Command {
242251 let mut cargo = builder. cargo ( compiler, mode, target, command) ;
243252 let dir = builder. src . join ( path) ;
@@ -247,6 +256,10 @@ pub fn prepare_tool_cargo(
247256 // stages and such and it's just easier if they're not dynamically linked.
248257 cargo. env ( "RUSTC_NO_PREFER_DYNAMIC" , "1" ) ;
249258
259+ if is_ext_tool {
260+ cargo. env ( "RUSTC_EXT_TOOL" , "1" ) ;
261+ }
262+
250263 if let Some ( dir) = builder. openssl_install_dir ( target) {
251264 cargo. env ( "OPENSSL_STATIC" , "1" ) ;
252265 cargo. env ( "OPENSSL_DIR" , dir) ;
@@ -449,12 +462,15 @@ impl Step for Rustdoc {
449462 target : builder. config . build ,
450463 } ) ;
451464
452- let mut cargo = prepare_tool_cargo ( builder,
453- build_compiler,
454- Mode :: ToolRustc ,
455- target,
456- "build" ,
457- "src/tools/rustdoc" ) ;
465+ let mut cargo = prepare_tool_cargo (
466+ builder,
467+ build_compiler,
468+ Mode :: ToolRustc ,
469+ target,
470+ "build" ,
471+ "src/tools/rustdoc" ,
472+ false ,
473+ ) ;
458474
459475 // Most tools don't get debuginfo, but rustdoc should.
460476 cargo. env ( "RUSTC_DEBUGINFO" , builder. config . rust_debuginfo . to_string ( ) )
0 commit comments