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
|
Name: rust
|
||||||
Version: 1.24.0
|
Version: 1.24.0
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: The Rust Programming Language
|
Summary: The Rust Programming Language
|
||||||
License: (ASL 2.0 or MIT) and (BSD and ISC and MIT)
|
License: (ASL 2.0 or MIT) and (BSD and ISC and MIT)
|
||||||
# ^ written as: (rust itself) and (bundled libraries)
|
# ^ 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
|
Patch7: rust-pr46592-bootstrap-libdir.patch
|
||||||
Patch8: rust-pr48362-libdir-relative.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.
|
# Get the Rust triple for any arch.
|
||||||
%{lua: function rust_triple(arch)
|
%{lua: function rust_triple(arch)
|
||||||
local abi = "gnu"
|
local abi = "gnu"
|
||||||
@ -317,6 +320,7 @@ popd
|
|||||||
%patch6 -p1 -b .out-of-stack
|
%patch6 -p1 -b .out-of-stack
|
||||||
%patch7 -p1 -b .bootstrap-libdir
|
%patch7 -p1 -b .bootstrap-libdir
|
||||||
%patch8 -p1 -b .bootstrap-libdir-relative
|
%patch8 -p1 -b .bootstrap-libdir-relative
|
||||||
|
%patch9 -p1 -b .absolute-extended-errors
|
||||||
|
|
||||||
%if "%{python}" == "python3"
|
%if "%{python}" == "python3"
|
||||||
sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure
|
sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure
|
||||||
@ -518,6 +522,9 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py*
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%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
|
* Mon Feb 19 2018 Josh Stone <jistone@redhat.com> - 1.24.0-2
|
||||||
- rhbz1546541: drop full-bootstrap; cmp libs before symlinking.
|
- rhbz1546541: drop full-bootstrap; cmp libs before symlinking.
|
||||||
- Backport pr46592 to fix local_rebuild bootstrapping.
|
- Backport pr46592 to fix local_rebuild bootstrapping.
|
||||||
|
Loading…
Reference in New Issue
Block a user