3212aa76cb
We don't need to rebuild for this patch now, but it will correct the FTBFS that Koschei is currently reporting.
41 lines
1.6 KiB
Diff
41 lines
1.6 KiB
Diff
From e8e5eb58c0d6890f73ea01354e18f51b1a6697f8 Mon Sep 17 00:00:00 2001
|
|
From: Josh Stone <jistone@redhat.com>
|
|
Date: Tue, 15 May 2018 17:48:02 -0700
|
|
Subject: [PATCH] Ensure libraries built in stage0 have unique metadata
|
|
|
|
Issue #50786 shows a case with local rebuild where the libraries built
|
|
by stage0 had the same suffix as stage0's own, and were accidentally
|
|
loaded by that stage0 rustc when compiling `librustc_trans`.
|
|
|
|
Now we set `__CARGO_DEFAULT_LIB_METADATA` to "bootstrap" during stage0,
|
|
rather than the release channel like usual, so the library suffix will
|
|
always be completely distinct from the stage0 compiler.
|
|
---
|
|
src/bootstrap/builder.rs | 10 +++++++++-
|
|
1 file changed, 9 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
|
|
index 17f19222e6ea..e5824010ef2c 100644
|
|
--- a/src/bootstrap/builder.rs
|
|
+++ b/src/bootstrap/builder.rs
|
|
@@ -592,7 +592,15 @@ impl<'a> Builder<'a> {
|
|
|
|
// FIXME: Temporary fix for https://github.com/rust-lang/cargo/issues/3005
|
|
// Force cargo to output binaries with disambiguating hashes in the name
|
|
- cargo.env("__CARGO_DEFAULT_LIB_METADATA", &self.config.channel);
|
|
+ let metadata = if compiler.stage == 0 {
|
|
+ // Treat stage0 like special channel, whether it's a normal prior-
|
|
+ // release rustc or a local rebuild with the same version, so we
|
|
+ // never mix these libraries by accident.
|
|
+ "bootstrap"
|
|
+ } else {
|
|
+ &self.config.channel
|
|
+ };
|
|
+ cargo.env("__CARGO_DEFAULT_LIB_METADATA", &metadata);
|
|
|
|
let stage;
|
|
if compiler.stage == 0 && self.local_rebuild {
|
|
--
|
|
2.17.0
|
|
|