diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2017-09-15 09:34:17 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2017-09-15 09:35:08 -0700 |
| commit | 61e255a5345751d64e6d2e784d0abc4c2c255715 (patch) | |
| tree | ade32e209f2d024803aa30ea1ca43fd8136b897d /src/bootstrap | |
| parent | fd4bef54abafe6d93ec3c87498de696da6ef5819 (diff) | |
| download | rust-61e255a5345751d64e6d2e784d0abc4c2c255715.tar.gz rust-61e255a5345751d64e6d2e784d0abc4c2c255715.zip | |
rustbuild: Compile the error-index in stage 2
Right now we comiple rustdoc in stage 2 and the error index in stage 0, which ends up compiling rustdoc twice! To avoid compiling rustdoc twice (which takes awhile) let's just compile it once in stage 2.
Diffstat (limited to 'src/bootstrap')
| -rw-r--r-- | src/bootstrap/tool.rs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/bootstrap/tool.rs b/src/bootstrap/tool.rs index eaa2b124423..9b861ae429d 100644 --- a/src/bootstrap/tool.rs +++ b/src/bootstrap/tool.rs @@ -148,15 +148,27 @@ macro_rules! tool { impl<'a> Builder<'a> { pub fn tool_exe(&self, tool: Tool) -> PathBuf { + let stage = self.tool_default_stage(tool); match tool { $(Tool::$name => self.ensure($name { - compiler: self.compiler(0, self.build.build), + compiler: self.compiler(stage, self.build.build), target: self.build.build, }), )+ } } + + pub fn tool_default_stage(&self, tool: Tool) -> u32 { + // Compile the error-index in the top stage as it depends on + // rustdoc, so we want to avoid recompiling rustdoc twice if we + // can. Otherwise compile everything else in stage0 as there's + // no need to rebootstrap everything + match tool { + Tool::ErrorIndex => self.top_stage, + _ => 0, + } + } } $( @@ -436,7 +448,7 @@ impl<'a> Builder<'a> { /// `host`. pub fn tool_cmd(&self, tool: Tool) -> Command { let mut cmd = Command::new(self.tool_exe(tool)); - let compiler = self.compiler(0, self.build.build); + let compiler = self.compiler(self.tool_default_stage(tool), self.build.build); self.prepare_tool_cmd(compiler, &mut cmd); cmd } |
