diff --git a/.gitignore b/.gitignore index 65f499a..1c16ae6 100644 --- a/.gitignore +++ b/.gitignore @@ -236,3 +236,11 @@ /rust-1.38.0-powerpc64-unknown-linux-gnu.tar.xz /rust-1.38.0-s390x-unknown-linux-gnu.tar.xz /rust-1.38.0-x86_64-unknown-linux-gnu.tar.xz +/rustc-1.40.0-src.tar.xz +/rust-1.39.0-aarch64-unknown-linux-gnu.tar.xz +/rust-1.39.0-armv7-unknown-linux-gnueabihf.tar.xz +/rust-1.39.0-i686-unknown-linux-gnu.tar.xz +/rust-1.39.0-powerpc64le-unknown-linux-gnu.tar.xz +/rust-1.39.0-powerpc64-unknown-linux-gnu.tar.xz +/rust-1.39.0-s390x-unknown-linux-gnu.tar.xz +/rust-1.39.0-x86_64-unknown-linux-gnu.tar.xz diff --git a/0001-Compiletest-bump-to-stage0-bootstrap-libtest.patch b/0001-Compiletest-bump-to-stage0-bootstrap-libtest.patch new file mode 100644 index 0000000..c8062bf --- /dev/null +++ b/0001-Compiletest-bump-to-stage0-bootstrap-libtest.patch @@ -0,0 +1,32 @@ +From f6832adadb84364ce0c81fa02910b3706f441abc Mon Sep 17 00:00:00 2001 +From: Mark Rousskov +Date: Wed, 6 Nov 2019 15:17:02 -0500 +Subject: [PATCH] Compiletest bump to stage0 bootstrap libtest + +--- + src/tools/compiletest/src/main.rs | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/tools/compiletest/src/main.rs b/src/tools/compiletest/src/main.rs +index 34435819a2c4..b115539b4af3 100644 +--- a/src/tools/compiletest/src/main.rs ++++ b/src/tools/compiletest/src/main.rs +@@ -568,6 +568,7 @@ pub fn test_opts(config: &Config) -> test::TestOpts { + skip: vec![], + list: false, + options: test::Options::new(), ++ time_options: None, + } + } + +@@ -703,6 +704,7 @@ pub fn make_test(config: &Config, testpaths: &TestPaths) -> Vec +Date: Wed, 1 Jan 2020 17:11:45 +0100 +Subject: [PATCH] Update the barrier cache during ARM EHABI unwinding + +--- + src/libpanic_unwind/gcc.rs | 8 +++++++- + src/libunwind/libunwind.rs | 2 ++ + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/src/libpanic_unwind/gcc.rs b/src/libpanic_unwind/gcc.rs +index 4f572fe21b30..328d0d4ce7be 100644 +--- a/src/libpanic_unwind/gcc.rs ++++ b/src/libpanic_unwind/gcc.rs +@@ -187,7 +187,13 @@ cfg_if::cfg_if! { + match eh_action { + EHAction::None | + EHAction::Cleanup(_) => return continue_unwind(exception_object, context), +- EHAction::Catch(_) => return uw::_URC_HANDLER_FOUND, ++ EHAction::Catch(_) => { ++ // EHABI requires the personality routine to update the ++ // SP value in the barrier cache of the exception object. ++ (*exception_object).private[5] = ++ uw::_Unwind_GetGR(context, uw::UNWIND_SP_REG); ++ return uw::_URC_HANDLER_FOUND; ++ } + EHAction::Terminate => return uw::_URC_FAILURE, + } + } else { +diff --git a/src/libunwind/libunwind.rs b/src/libunwind/libunwind.rs +index 0b39503c0d03..30658ce328d8 100644 +--- a/src/libunwind/libunwind.rs ++++ b/src/libunwind/libunwind.rs +@@ -23,6 +23,7 @@ pub type _Unwind_Word = uintptr_t; + pub type _Unwind_Ptr = uintptr_t; + pub type _Unwind_Trace_Fn = extern "C" fn(ctx: *mut _Unwind_Context, arg: *mut c_void) + -> _Unwind_Reason_Code; ++ + #[cfg(target_arch = "x86")] + pub const unwinder_private_data_size: usize = 5; + +@@ -151,6 +152,7 @@ if #[cfg(all(any(target_os = "ios", target_os = "netbsd", not(target_arch = "arm + use _Unwind_VRS_DataRepresentation::*; + + pub const UNWIND_POINTER_REG: c_int = 12; ++ pub const UNWIND_SP_REG: c_int = 13; + pub const UNWIND_IP_REG: c_int = 15; + + #[cfg_attr(all(feature = "llvm-libunwind", +-- +2.24.1 + diff --git a/rust-issue-67242-ignore-arm-foreign-exceptions.patch b/rust-issue-67242-ignore-arm-foreign-exceptions.patch deleted file mode 100644 index 127c435..0000000 --- a/rust-issue-67242-ignore-arm-foreign-exceptions.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- rustc-beta-src/src/test/run-make-fulldeps/foreign-exceptions/Makefile.orig 2019-12-07 18:36:56.000000000 -0800 -+++ rustc-beta-src/src/test/run-make-fulldeps/foreign-exceptions/Makefile 2019-12-12 15:49:24.655515206 -0800 -@@ -1,3 +1,7 @@ -+# ignore-arm -+# ignore-armeb -+# https://github.com/rust-lang/rust/issues/67242 -+ - -include ../tools.mk - - all: foo diff --git a/rust-pr68019-in-tree-compiletest.patch b/rust-pr68019-in-tree-compiletest.patch new file mode 100644 index 0000000..a0b28bf --- /dev/null +++ b/rust-pr68019-in-tree-compiletest.patch @@ -0,0 +1,97 @@ +From ed8e55fe8d732d8a87343441db3bfbb974f043df Mon Sep 17 00:00:00 2001 +From: Josh Stone +Date: Wed, 8 Jan 2020 09:44:45 -0800 +Subject: [PATCH 1/2] Remove obsolete llvm_tools flag + +--- + src/bootstrap/tool.rs | 12 +----------- + 1 file changed, 1 insertion(+), 11 deletions(-) + +diff --git a/src/bootstrap/tool.rs b/src/bootstrap/tool.rs +index 815498047fd5..f785a0989a36 100644 +--- a/src/bootstrap/tool.rs ++++ b/src/bootstrap/tool.rs +@@ -293,7 +293,6 @@ fn rustbook_features() -> Vec { + macro_rules! bootstrap_tool { + ($( + $name:ident, $path:expr, $tool_name:expr +- $(,llvm_tools = $llvm:expr)* + $(,is_external_tool = $external:expr)* + $(,features = $features:expr)* + ; +@@ -305,15 +304,6 @@ macro_rules! bootstrap_tool { + )+ + } + +- impl Tool { +- /// Whether this tool requires LLVM to run +- pub fn uses_llvm_tools(&self) -> bool { +- match self { +- $(Tool::$name => false $(|| $llvm)*,)+ +- } +- } +- } +- + impl<'a> Builder<'a> { + pub fn tool_exe(&self, tool: Tool) -> PathBuf { + match tool { +@@ -381,7 +371,7 @@ bootstrap_tool!( + Tidy, "src/tools/tidy", "tidy"; + Linkchecker, "src/tools/linkchecker", "linkchecker"; + CargoTest, "src/tools/cargotest", "cargotest"; +- Compiletest, "src/tools/compiletest", "compiletest", llvm_tools = true; ++ Compiletest, "src/tools/compiletest", "compiletest"; + BuildManifest, "src/tools/build-manifest", "build-manifest"; + RemoteTestClient, "src/tools/remote-test-client", "remote-test-client"; + RustInstaller, "src/tools/rust-installer", "fabricate", is_external_tool = true; +-- +2.24.1 + + +From cc4688d66d75e149a0136f701045cbf7ee672725 Mon Sep 17 00:00:00 2001 +From: Josh Stone +Date: Wed, 8 Jan 2020 10:04:18 -0800 +Subject: [PATCH 2/2] Build compiletest with in-tree libtest + +--- + src/bootstrap/tool.rs | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/bootstrap/tool.rs b/src/bootstrap/tool.rs +index f785a0989a36..73a4dda74e88 100644 +--- a/src/bootstrap/tool.rs ++++ b/src/bootstrap/tool.rs +@@ -294,6 +294,7 @@ macro_rules! bootstrap_tool { + ($( + $name:ident, $path:expr, $tool_name:expr + $(,is_external_tool = $external:expr)* ++ $(,is_unstable_tool = $unstable:expr)* + $(,features = $features:expr)* + ; + )+) => { +@@ -344,7 +345,12 @@ macro_rules! bootstrap_tool { + compiler: self.compiler, + target: self.target, + tool: $tool_name, +- mode: Mode::ToolBootstrap, ++ mode: if false $(|| $unstable)* { ++ // use in-tree libraries for unstable features ++ Mode::ToolStd ++ } else { ++ Mode::ToolBootstrap ++ }, + path: $path, + is_optional_tool: false, + source_type: if false $(|| $external)* { +@@ -371,7 +377,7 @@ bootstrap_tool!( + Tidy, "src/tools/tidy", "tidy"; + Linkchecker, "src/tools/linkchecker", "linkchecker"; + CargoTest, "src/tools/cargotest", "cargotest"; +- Compiletest, "src/tools/compiletest", "compiletest"; ++ Compiletest, "src/tools/compiletest", "compiletest", is_unstable_tool = true; + BuildManifest, "src/tools/build-manifest", "build-manifest"; + RemoteTestClient, "src/tools/remote-test-client", "remote-test-client"; + RustInstaller, "src/tools/rust-installer", "fabricate", is_external_tool = true; +-- +2.24.1 + diff --git a/rust.spec b/rust.spec index 2a55a97..a4385bb 100644 --- a/rust.spec +++ b/rust.spec @@ -49,7 +49,7 @@ Name: rust Version: 1.40.0 -Release: 0.1.beta.5%{?dist} +Release: 3%{?dist} Summary: The Rust Programming Language License: (ASL 2.0 or MIT) and (BSD and MIT) # ^ written as: (rust itself) and (bundled libraries) @@ -71,9 +71,15 @@ Patch1: rust-pr57840-llvm7-debuginfo-variants.patch # https://github.com/rust-lang/rust/pull/66317 Patch2: rust-pr66317-bindir-relative.patch -# ARM loops when C++ tries to catch and rethrow a Rust exception -# https://github.com/rust-lang/rust/issues/67242 -Patch3: rust-issue-67242-ignore-arm-foreign-exceptions.patch +# Fix compiletest with newer (local-rebuild) libtest +# https://github.com/rust-lang/rust/pull/66156/commits/f6832adadb84364ce0c81fa02910b3706f441abc +Patch3: 0001-Compiletest-bump-to-stage0-bootstrap-libtest.patch +# https://github.com/rust-lang/rust/pull/68019 +Patch4: rust-pr68019-in-tree-compiletest.patch + +# Fix ARM unwinding for foreign-exceptions +# https://github.com/rust-lang/rust/pull/67779 +Patch5: 0001-Update-the-barrier-cache-during-ARM-EHABI-unwinding.patch # Get the Rust triple for any arch. %{lua: function rust_triple(arch) @@ -407,6 +413,8 @@ test -f '%{local_rust_root}/bin/rustc' %patch1 -p1 -R %patch2 -p1 %patch3 -p1 +%patch4 -p1 +%patch5 -p1 %if "%{python}" == "python3" sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure @@ -713,6 +721,16 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py* %changelog +* Thu Jan 16 2020 Josh Stone - 1.40.0-3 +- Build compiletest with in-tree libtest + +* Tue Jan 07 2020 Josh Stone - 1.40.0-2 +- Fix compiletest with newer (local-rebuild) libtest +- Fix ARM EHABI unwinding + +* Thu Dec 19 2019 Josh Stone - 1.40.0-1 +- Update to 1.40.0. + * Tue Nov 12 2019 Josh Stone - 1.39.0-2 - Fix a couple build and test issues with rustdoc. diff --git a/sources b/sources index 3be13be..f2f74e3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (rustc-1.39.0-src.tar.xz) = 8610b2ec77722087c572bd84ac562a5b7c5f1a644aea58c5d5daa07a9aed242703b7816e73e2eaa049f773d5907859e259744a0de700622df005584fd798dab0 +SHA512 (rustc-1.40.0-src.tar.xz) = b5ac3079acefb62d3c985b77f624d7fb68de23a59396fed9ccb292db61641c064f3146ee54d3cf59067b17ebfaadd14a6b2b466def60316bb5b13ba3aef01e1f diff --git a/sources-bootstrap b/sources-bootstrap index 820432c..b6006b2 100644 --- a/sources-bootstrap +++ b/sources-bootstrap @@ -1,8 +1,8 @@ -SHA512 (rustc-1.39.0-src.tar.xz) = 8610b2ec77722087c572bd84ac562a5b7c5f1a644aea58c5d5daa07a9aed242703b7816e73e2eaa049f773d5907859e259744a0de700622df005584fd798dab0 -SHA512 (rust-1.38.0-aarch64-unknown-linux-gnu.tar.xz) = c9dea8907d05af938c1936139c1fb8673d0db90503552f53645d71637bb7248263fd20b1c16db140694b2d467a12c474015a2077d9b26c782b44e965a01544c6 -SHA512 (rust-1.38.0-armv7-unknown-linux-gnueabihf.tar.xz) = ddbb2c8d2e7112c5871155890c8308080ac800795c685c4b4d06b9dd8c5abd28ee13961686c9be465d1bbd33d476c6478b90af8de0ca5a451f8b07eaff42f97d -SHA512 (rust-1.38.0-i686-unknown-linux-gnu.tar.xz) = ffdea264378510c6df687a173211427f4cb5930553c9d14e33c5776b0e15d435d1be719bba8a1db50f50a3171a38802e090451dc92a6ea764cc8fdca24651f24 -SHA512 (rust-1.38.0-powerpc64le-unknown-linux-gnu.tar.xz) = 5f3e1dd233ef17d8a296dcb55738fa119e40c32b154a7575f149bf1475b64e34f7e805f206b9862dc6499be470f179290d8abb7ad8d2b5cb355cef03d95ae374 -SHA512 (rust-1.38.0-powerpc64-unknown-linux-gnu.tar.xz) = 26240976834e510fa5a47c35b747b42db4651ea8decdb5498704432c9a21563e603046994fcc2b070d06361bf2c36fe02a15c7f02d88161b299a410f1995983a -SHA512 (rust-1.38.0-s390x-unknown-linux-gnu.tar.xz) = 7af64849236e0173d2aea723f3462682fde7d2e1e04d61c28d215163415e1b15cfb8cac57010ce55bdd928ea74076506ef50376d7550999e0fb00f9d20c4f5ff -SHA512 (rust-1.38.0-x86_64-unknown-linux-gnu.tar.xz) = 0b25c3049a7a213e9151c898979ec9b5b45e46a9072f9853d8f048cf401ef7ac343526d6919e68607a490e3e7bd0375b12ed9fb253caed26bb60f46473d3699b +SHA512 (rustc-1.40.0-src.tar.xz) = b5ac3079acefb62d3c985b77f624d7fb68de23a59396fed9ccb292db61641c064f3146ee54d3cf59067b17ebfaadd14a6b2b466def60316bb5b13ba3aef01e1f +SHA512 (rust-1.39.0-aarch64-unknown-linux-gnu.tar.xz) = ad37a8454acb8985a5c2b42d7f8bc4212651a16fb5af6b4314dd97faa47de79893f2f74b516af89cd7e77ef3db64247c4764585eb0a17ac328c9cba5e5b9c407 +SHA512 (rust-1.39.0-armv7-unknown-linux-gnueabihf.tar.xz) = db2b001a5587e2d5c8cdcb53c974f2332e76f58e362cba55fc971d7244754f1fa0b7e708ad7e73e7250652b442f06929dc1e8981536d7d76850b45ade275d406 +SHA512 (rust-1.39.0-i686-unknown-linux-gnu.tar.xz) = 930546e79c0b1105eb0604ae33ccdbd8b00b56e56d069f19f0d802093a052fd3f940eaf1390cdecd79833b0c70457ebfee2ce3b9674fff72df1367076584394a +SHA512 (rust-1.39.0-powerpc64le-unknown-linux-gnu.tar.xz) = e15585150370514e580e171faa749218aeef04ce0493f5ad3928a0cb6cd0bddbf7c75ba8ed0783a2c954bbd7166e0445b4c33be4ab48479b0104f032b3d4b0af +SHA512 (rust-1.39.0-powerpc64-unknown-linux-gnu.tar.xz) = ff99ad6b120631346af8afac092f8b620e50fb8e118ef1e0ff5668103c01f4b9f082fae72e31a767be35d0647fd9fecc7e6b7b215bb1906e06b20bf3e2685619 +SHA512 (rust-1.39.0-s390x-unknown-linux-gnu.tar.xz) = d2b588f802d4fbe153dbd88cb745d34d1f5434cb3134cc9e091ebfb336a48b4c886cd80311cf92b5e1c6a16374302853a67e8a0576b02a89dbcf61d27919a045 +SHA512 (rust-1.39.0-x86_64-unknown-linux-gnu.tar.xz) = 02ca6c821877379d8bd0bcc38281a87e6f86bdbae1270da19e41336cc3a812d9c11c1e976655c192c39153f92cda90ddbd7b4b0bcb4f6787d6d354d2be827a8a