about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-12-28 17:27:13 +0000
committerbors <bors@rust-lang.org>2016-12-28 17:27:13 +0000
commit02b22ec7bd8fa542dd3b08a8497ad5cd3a20c417 (patch)
treea256074c231f98218a9a7bcd010f9ff76ab72ddf
parent371f4d6bf697ac4b08845b6e739ab263df6f8395 (diff)
parentcf894535069f67a1192ae7999ae2a82ba31b4877 (diff)
downloadrust-02b22ec7bd8fa542dd3b08a8497ad5cd3a20c417.tar.gz
rust-02b22ec7bd8fa542dd3b08a8497ad5cd3a20c417.zip
Auto merge of #38639 - xen0n:nightly-dist-hotfix, r=brson
rustbuild: Hotfix to unbreak nightly

Fixes an oversight unnoticed in #38468 that eventually broke nightly packaging. I didn't realize this until some moments ago, when I finally found out the failure is actually deterministic. Many apologies for eating 3 nightlies during the holidays.

r? @alexcrichton
-rw-r--r--src/bootstrap/step.rs19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/bootstrap/step.rs b/src/bootstrap/step.rs
index c5898c1119a..52caa3f0958 100644
--- a/src/bootstrap/step.rs
+++ b/src/bootstrap/step.rs
@@ -838,14 +838,21 @@ invalid rule dependency graph detected, was a rule added and maybe typo'd?
             } else {
                 &self.build.config.target
             };
-            // If --target was specified but --host wasn't specified, don't run
-            // any host-only tests
+            // Determine the actual targets participating in this rule.
+            // NOTE: We should keep the full projection from build triple to
+            // the hosts for the dist steps, now that the hosts array above is
+            // truncated to avoid duplication of work in that case. Therefore
+            // the original non-shadowed hosts array is used below.
             let arr = if rule.host {
-                if self.build.flags.target.len() > 0 &&
-                   self.build.flags.host.len() == 0 {
-                    &hosts[..0]
+                // If --target was specified but --host wasn't specified,
+                // don't run any host-only tests. Also, respect any `--host`
+                // overrides as done for `hosts`.
+                if self.build.flags.host.len() > 0 {
+                    &self.build.flags.host[..]
+                } else if self.build.flags.target.len() > 0 {
+                    &[]
                 } else {
-                    hosts
+                    &self.build.config.host[..]
                 }
             } else {
                 targets