diff options
| author | bors <bors@rust-lang.org> | 2017-11-06 18:04:13 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-11-06 18:04:13 +0000 |
| commit | dbe8055f5a23b3cee27058b828364bb280c86d12 (patch) | |
| tree | d79d01d504133cf458e8c43d025d6f49c77f5f8c | |
| parent | 58557fafae060c500394d5df13cd0cf68170903e (diff) | |
| parent | 32cf6e64c1c0437521fa13faff6359e435e490ef (diff) | |
| download | rust-dbe8055f5a23b3cee27058b828364bb280c86d12.tar.gz rust-dbe8055f5a23b3cee27058b828364bb280c86d12.zip | |
Auto merge of #45322 - infinity0:master, r=alexcrichton
When cross-compiling, also build target-arch tarballs for libstd. (Closes: #42320) Half of the logic is actually in there already in install.rs:install_std but it fails with an error like: sh: 0: Can't open /<<BUILDDIR>>/rustc-1.21.0+dfsg1/build/tmp/dist/rust-std-1.21.0-powerpc64le-unknown-linux-gnu/install.sh because the target-arch dist tarball wasn't built as well. This commit fixes that so the overall install works. There is one minor bug in the existing code which this commit doesn't fix - the install.log from multiple runs of the installer gets clobbered, which seems like it might interfere with the uninstall process (I didn't look very deeply into this, because it doesn't affect what I need to do.) The actual installed files under DESTDIR seem fine though - either they are installed under an arch-specific path, or the multiple runs will clobber the same path with the same arch-independent file.
| -rw-r--r-- | src/bootstrap/install.rs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/bootstrap/install.rs b/src/bootstrap/install.rs index 608924c9c28..5ca9cb5e521 100644 --- a/src/bootstrap/install.rs +++ b/src/bootstrap/install.rs @@ -27,10 +27,8 @@ pub fn install_docs(builder: &Builder, stage: u32, host: Interned<String>) { install_sh(builder, "docs", "rust-docs", stage, Some(host)); } -pub fn install_std(builder: &Builder, stage: u32) { - for target in &builder.build.targets { - install_sh(builder, "std", "rust-std", stage, Some(*target)); - } +pub fn install_std(builder: &Builder, stage: u32, target: Interned<String>) { + install_sh(builder, "std", "rust-std", stage, Some(target)); } pub fn install_cargo(builder: &Builder, stage: u32, host: Interned<String>) { @@ -175,11 +173,13 @@ install!((self, builder, _config), install_docs(builder, self.stage, self.target); }; Std, "src/libstd", true, only_hosts: true, { - builder.ensure(dist::Std { - compiler: builder.compiler(self.stage, self.host), - target: self.target - }); - install_std(builder, self.stage); + for target in &builder.build.targets { + builder.ensure(dist::Std { + compiler: builder.compiler(self.stage, self.host), + target: *target + }); + install_std(builder, self.stage, *target); + } }; Cargo, "cargo", _config.extended, only_hosts: true, { builder.ensure(dist::Cargo { stage: self.stage, target: self.target }); |
