]> git.lizzy.rs Git - rust.git/commitdiff
rustbuild: Skip some more non-relevant dist steps
authorAlex Crichton <alex@alexcrichton.com>
Tue, 13 Dec 2016 17:17:33 +0000 (09:17 -0800)
committerAlex Crichton <alex@alexcrichton.com>
Tue, 13 Dec 2016 17:17:33 +0000 (09:17 -0800)
This commit skips a few more dist tragets during compilation which shouldn't be
necessary.

* First, when packaging std we only take action when the host target is the
  build target. Otherwise we package the same artifacts a number of times, which
  shouldn't be necessary.
* Next, we apply the same logic to the save-analysis build. This is actually
  required for correctness as the build compiler is the only one which actually
  has save analysis information. This should fix an error seen on nightlies.

src/bootstrap/dist.rs

index a015f4852056d1a4bc1b133eefd8f9fc01f05f40..245859b78d02917cd35ce4d52e20b86365e0bc67 100644 (file)
@@ -260,6 +260,14 @@ pub fn debugger_scripts(build: &Build,
 pub fn std(build: &Build, compiler: &Compiler, target: &str) {
     println!("Dist std stage{} ({} -> {})", compiler.stage, compiler.host,
              target);
+
+    // The only true set of target libraries came from the build triple, so
+    // let's reduce redundant work by only producing archives from that host.
+    if compiler.host != build.config.build {
+        println!("\tskipping, not a build host");
+        return
+    }
+
     let name = format!("rust-std-{}", package_vers(build));
     let image = tmpdir(build).join(format!("{}-{}-image", name, target));
     let _ = fs::remove_dir_all(&image);
@@ -294,10 +302,15 @@ pub fn analysis(build: &Build, compiler: &Compiler, target: &str) {
     println!("Dist analysis");
 
     if build.config.channel != "nightly" {
-        println!("Skipping dist-analysis - not on nightly channel");
+        println!("\tskipping - not on nightly channel");
         return;
     }
+    if compiler.host != build.config.build {
+        println!("\tskipping - not a build host");
+        return
+    }
     if compiler.stage != 2 {
+        println!("\tskipping - not stage2");
         return
     }