Backport a rebuild fix for rust#48308.
This commit is contained in:
parent
1fe43a8148
commit
c25b6ed664
115
0001-rustc-Don-t-use-relative-paths-for-extended-errors.patch
Normal file
115
0001-rustc-Don-t-use-relative-paths-for-extended-errors.patch
Normal file
@ -0,0 +1,115 @@
|
||||
From b445a52ea322758fb7b60fab5f890ef8c0f8df9c Mon Sep 17 00:00:00 2001
|
||||
From: Alex Crichton <alex@alexcrichton.com>
|
||||
Date: Tue, 2 Jan 2018 16:21:35 -0800
|
||||
Subject: [PATCH] rustc: Don't use relative paths for extended errors
|
||||
|
||||
These no longer work now that Cargo changes the cwd of rustc while it's running.
|
||||
Instead use an absolute path that's set by rustbuild.
|
||||
---
|
||||
src/bootstrap/builder.rs | 4 ++--
|
||||
src/bootstrap/check.rs | 3 ++-
|
||||
src/bootstrap/doc.rs | 3 ++-
|
||||
src/bootstrap/lib.rs | 5 +++++
|
||||
src/libsyntax/diagnostics/metadata.rs | 11 ++++++-----
|
||||
5 files changed, 17 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/bootstrap/builder.rs b/src/bootstrap/builder.rs
|
||||
index 16de31406f84..ce30d1f4cec4 100644
|
||||
--- a/src/bootstrap/builder.rs
|
||||
+++ b/src/bootstrap/builder.rs
|
||||
@@ -484,8 +484,8 @@ impl<'a> Builder<'a> {
|
||||
} else {
|
||||
PathBuf::from("/path/to/nowhere/rustdoc/not/required")
|
||||
})
|
||||
- .env("TEST_MIRI", self.config.test_miri.to_string());
|
||||
-
|
||||
+ .env("TEST_MIRI", self.config.test_miri.to_string())
|
||||
+ .env("RUSTC_ERROR_METADATA_DST", self.extended_error_dir());
|
||||
if let Some(n) = self.config.rust_codegen_units {
|
||||
cargo.env("RUSTC_CODEGEN_UNITS", n.to_string());
|
||||
}
|
||||
diff --git a/src/bootstrap/check.rs b/src/bootstrap/check.rs
|
||||
index 48b3d356985c..e4fbae3ff0d8 100644
|
||||
--- a/src/bootstrap/check.rs
|
||||
+++ b/src/bootstrap/check.rs
|
||||
@@ -980,7 +980,8 @@ impl Step for ErrorIndex {
|
||||
build.run(builder.tool_cmd(Tool::ErrorIndex)
|
||||
.arg("markdown")
|
||||
.arg(&output)
|
||||
- .env("CFG_BUILD", &build.build));
|
||||
+ .env("CFG_BUILD", &build.build)
|
||||
+ .env("RUSTC_ERROR_METADATA_DST", build.extended_error_dir()));
|
||||
|
||||
markdown_test(builder, compiler, &output);
|
||||
}
|
||||
diff --git a/src/bootstrap/doc.rs b/src/bootstrap/doc.rs
|
||||
index 3c12cfc4c7ff..832da24c994d 100644
|
||||
--- a/src/bootstrap/doc.rs
|
||||
+++ b/src/bootstrap/doc.rs
|
||||
@@ -671,7 +671,8 @@ impl Step for ErrorIndex {
|
||||
index.arg(out.join("error-index.html"));
|
||||
|
||||
// FIXME: shouldn't have to pass this env var
|
||||
- index.env("CFG_BUILD", &build.build);
|
||||
+ index.env("CFG_BUILD", &build.build)
|
||||
+ .env("RUSTC_ERROR_METADATA_DST", build.extended_error_dir());
|
||||
|
||||
build.run(&mut index);
|
||||
}
|
||||
diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs
|
||||
index 63a9c3ab905d..52767b403e4e 100644
|
||||
--- a/src/bootstrap/lib.rs
|
||||
+++ b/src/bootstrap/lib.rs
|
||||
@@ -721,6 +721,11 @@ impl Build {
|
||||
self.config.python.as_ref().unwrap()
|
||||
}
|
||||
|
||||
+ /// Temporary directory that extended error information is emitted to.
|
||||
+ fn extended_error_dir(&self) -> PathBuf {
|
||||
+ self.out.join("tmp/extended-error-metadata")
|
||||
+ }
|
||||
+
|
||||
/// Tests whether the `compiler` compiling for `target` should be forced to
|
||||
/// use a stage1 compiler instead.
|
||||
///
|
||||
diff --git a/src/libsyntax/diagnostics/metadata.rs b/src/libsyntax/diagnostics/metadata.rs
|
||||
index 5f06475919fe..dc01a79190b3 100644
|
||||
--- a/src/libsyntax/diagnostics/metadata.rs
|
||||
+++ b/src/libsyntax/diagnostics/metadata.rs
|
||||
@@ -14,9 +14,10 @@
|
||||
//! currently always a crate name.
|
||||
|
||||
use std::collections::BTreeMap;
|
||||
-use std::path::PathBuf;
|
||||
+use std::env;
|
||||
use std::fs::{remove_file, create_dir_all, File};
|
||||
use std::io::Write;
|
||||
+use std::path::PathBuf;
|
||||
use std::error::Error;
|
||||
use rustc_serialize::json::as_json;
|
||||
|
||||
@@ -24,9 +25,6 @@ use syntax_pos::{Span, FileName};
|
||||
use ext::base::ExtCtxt;
|
||||
use diagnostics::plugin::{ErrorMap, ErrorInfo};
|
||||
|
||||
-// Default metadata directory to use for extended error JSON.
|
||||
-const ERROR_METADATA_PREFIX: &'static str = "tmp/extended-errors";
|
||||
-
|
||||
/// JSON encodable/decodable version of `ErrorInfo`.
|
||||
#[derive(PartialEq, RustcDecodable, RustcEncodable)]
|
||||
pub struct ErrorMetadata {
|
||||
@@ -59,7 +57,10 @@ impl ErrorLocation {
|
||||
///
|
||||
/// See `output_metadata`.
|
||||
pub fn get_metadata_dir(prefix: &str) -> PathBuf {
|
||||
- PathBuf::from(ERROR_METADATA_PREFIX).join(prefix)
|
||||
+ env::var_os("RUSTC_ERROR_METADATA_DST")
|
||||
+ .map(PathBuf::from)
|
||||
+ .expect("env var `RUSTC_ERROR_METADATA_DST` isn't set")
|
||||
+ .join(prefix)
|
||||
}
|
||||
|
||||
/// Map `name` to a path in the given directory: <directory>/<name>.json
|
||||
--
|
||||
2.14.3
|
||||
|
@ -48,7 +48,7 @@
|
||||
|
||||
Name: rust
|
||||
Version: 1.24.0
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Summary: The Rust Programming Language
|
||||
License: (ASL 2.0 or MIT) and (BSD and ISC and MIT)
|
||||
# ^ written as: (rust itself) and (bundled libraries)
|
||||
@ -83,6 +83,9 @@ Patch6: 0002-Use-a-range-to-identify-SIGSEGV-in-stack-guards.patch
|
||||
Patch7: rust-pr46592-bootstrap-libdir.patch
|
||||
Patch8: rust-pr48362-libdir-relative.patch
|
||||
|
||||
# https://github.com/rust-lang/rust/issues/48308
|
||||
Patch9: 0001-rustc-Don-t-use-relative-paths-for-extended-errors.patch
|
||||
|
||||
# Get the Rust triple for any arch.
|
||||
%{lua: function rust_triple(arch)
|
||||
local abi = "gnu"
|
||||
@ -317,6 +320,7 @@ popd
|
||||
%patch6 -p1 -b .out-of-stack
|
||||
%patch7 -p1 -b .bootstrap-libdir
|
||||
%patch8 -p1 -b .bootstrap-libdir-relative
|
||||
%patch9 -p1 -b .absolute-extended-errors
|
||||
|
||||
%if "%{python}" == "python3"
|
||||
sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure
|
||||
@ -518,6 +522,9 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py*
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Feb 21 2018 Josh Stone <jistone@redhat.com> - 1.24.0-3
|
||||
- Backport a rebuild fix for rust#48308.
|
||||
|
||||
* Mon Feb 19 2018 Josh Stone <jistone@redhat.com> - 1.24.0-2
|
||||
- rhbz1546541: drop full-bootstrap; cmp libs before symlinking.
|
||||
- Backport pr46592 to fix local_rebuild bootstrapping.
|
||||
|
Loading…
Reference in New Issue
Block a user