about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2017-01-05 11:16:48 -0800
committerAlex Crichton <alex@alexcrichton.com>2017-01-05 11:17:57 -0800
commitbe5e322f040b2b8e29173fc054a3b40f75ab311a (patch)
treeef254526120f3462d10c6b1171fb3b338b9ae6fd
parent74e5b7d96af721b98474f6d4982b5eb594cd022c (diff)
downloadrust-be5e322f040b2b8e29173fc054a3b40f75ab311a.tar.gz
rust-be5e322f040b2b8e29173fc054a3b40f75ab311a.zip
rustbuild: Don't build target compilers in stage0
The `doc-book` and `doc-nomicon` steps accidentally depended on a rustbook
compiled by a cross-compiled compiler, which isn't necessary. Be sure to set the
`host` on these dependency edges to the build compiler to ensure that we're
always using a tool compiled for the host platform.

This was discovered trawling the build logs for the new dist bots and
discovering that they're building one too many compilers in stage0.
-rw-r--r--src/bootstrap/step.rs14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/bootstrap/step.rs b/src/bootstrap/step.rs
index bf815a817ed..c3e10405eb5 100644
--- a/src/bootstrap/step.rs
+++ b/src/bootstrap/step.rs
@@ -517,11 +517,21 @@ pub fn build_rules<'a>(build: &'a Build) -> Rules {
     // ========================================================================
     // Documentation targets
     rules.doc("doc-book", "src/doc/book")
-         .dep(move |s| s.name("tool-rustbook").target(&build.config.build).stage(0))
+         .dep(move |s| {
+             s.name("tool-rustbook")
+              .host(&build.config.build)
+              .target(&build.config.build)
+              .stage(0)
+         })
          .default(build.config.docs)
          .run(move |s| doc::rustbook(build, s.target, "book"));
     rules.doc("doc-nomicon", "src/doc/nomicon")
-         .dep(move |s| s.name("tool-rustbook").target(&build.config.build).stage(0))
+         .dep(move |s| {
+             s.name("tool-rustbook")
+              .host(&build.config.build)
+              .target(&build.config.build)
+              .stage(0)
+         })
          .default(build.config.docs)
          .run(move |s| doc::rustbook(build, s.target, "nomicon"));
     rules.doc("doc-standalone", "src/doc")