From 6050c3a1b2df417ed4b51ec830477506078f4dee Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 20 Oct 2016 19:09:42 -0700 Subject: [PATCH] Update to 1.12.1. --- rust-boot-1.12.1-from-1.12.0.diff | 299 ++++++++++++++++++++++++++++++ rust.spec | 17 +- 2 files changed, 312 insertions(+), 4 deletions(-) create mode 100644 rust-boot-1.12.1-from-1.12.0.diff diff --git a/rust-boot-1.12.1-from-1.12.0.diff b/rust-boot-1.12.1-from-1.12.0.diff new file mode 100644 index 0000000..86b3a26 --- /dev/null +++ b/rust-boot-1.12.1-from-1.12.0.diff @@ -0,0 +1,299 @@ +diff --git a/src/bootstrap/Cargo.lock b/src/bootstrap/Cargo.lock +index d52577e..36b94e4 100644 +--- a/src/bootstrap/Cargo.lock ++++ b/src/bootstrap/Cargo.lock +@@ -157,3 +157,24 @@ name = "winapi-build" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" + ++[metadata] ++"checksum aho-corasick 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2b3fb52b09c1710b961acb35390d514be82e4ac96a9969a8e38565a29b878dc9" ++"checksum cmake 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "dfcf5bcece56ef953b8ea042509e9dcbdfe97820b7e20d86beb53df30ed94978" ++"checksum filetime 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "5363ab8e4139b8568a6237db5248646e5a8a2f89bd5ccb02092182b11fd3e922" ++"checksum gcc 0.3.31 (git+https://github.com/alexcrichton/gcc-rs)" = "" ++"checksum gcc 0.3.31 (registry+https://github.com/rust-lang/crates.io-index)" = "cfe877476e53690ebb0ce7325d0bf43e198d9500291b54b3c65e518de5039b07" ++"checksum getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9047cfbd08a437050b363d35ef160452c5fe8ea5187ae0a624708c91581d685" ++"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" ++"checksum libc 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "55f3730be7e803cf350d32061958171731c2395831fbd67a61083782808183e0" ++"checksum md5 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a5539a8dee9b4ae308c9c406a379838b435a8f2c84cf9fedc6d5a576be9888db" ++"checksum memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20" ++"checksum num_cpus 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "51fedae97a05f7353612fe017ab705a37e6db8f4d67c5c6fe739a9e70d6eed09" ++"checksum regex 0.1.73 (registry+https://github.com/rust-lang/crates.io-index)" = "56b7ee9f764ecf412c6e2fff779bca4b22980517ae335a21aeaf4e32625a5df2" ++"checksum regex-syntax 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "31040aad7470ad9d8c46302dcffba337bb4289ca5da2e3cd6e37b64109a85199" ++"checksum rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)" = "6159e4e6e559c81bd706afe9c8fd68f547d3e851ce12e76b1de7914bab61691b" ++"checksum thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03" ++"checksum thread_local 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "55dd963dbaeadc08aa7266bf7f91c3154a7805e32bb94b820b769d2ef3b4744d" ++"checksum toml 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "fcd27a04ca509aff336ba5eb2abc58d456f52c4ff64d9724d88acb85ead560b6" ++"checksum utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f" ++"checksum winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4dfaaa8fbdaa618fa6914b59b2769d690dd7521920a18d84b42d254678dd5fd4" ++"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" +diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs +index 0af6082..b40dbfd 100644 +--- a/src/bootstrap/lib.rs ++++ b/src/bootstrap/lib.rs +@@ -543,6 +543,10 @@ impl Build { + .arg("-j").arg(self.jobs().to_string()) + .arg("--target").arg(target); + ++ // 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", "1"); ++ + let stage; + if compiler.stage == 0 && self.local_rebuild { + // Assume the local-rebuild rustc already has stage1 features. +diff --git a/src/libcore/cmp.rs b/src/libcore/cmp.rs +index bb7c971..9bba6cd 100644 +--- a/src/libcore/cmp.rs ++++ b/src/libcore/cmp.rs +@@ -699,38 +699,29 @@ mod impls { + + ord_impl! { char usize u8 u16 u32 u64 isize i8 i16 i32 i64 } + +- // Note: This macro is a temporary hack that can be remove once we are building with a compiler +- // that supports `!` +- macro_rules! not_stage0 { +- () => { +- #[unstable(feature = "never_type", issue = "35121")] +- impl PartialEq for ! { +- fn eq(&self, _: &!) -> bool { +- *self +- } +- } ++ #[unstable(feature = "never_type", issue = "35121")] ++ impl PartialEq for ! { ++ fn eq(&self, _: &!) -> bool { ++ *self ++ } ++ } + +- #[unstable(feature = "never_type", issue = "35121")] +- impl Eq for ! {} ++ #[unstable(feature = "never_type", issue = "35121")] ++ impl Eq for ! {} + +- #[unstable(feature = "never_type", issue = "35121")] +- impl PartialOrd for ! { +- fn partial_cmp(&self, _: &!) -> Option { +- *self +- } +- } +- +- #[unstable(feature = "never_type", issue = "35121")] +- impl Ord for ! { +- fn cmp(&self, _: &!) -> Ordering { +- *self +- } +- } ++ #[unstable(feature = "never_type", issue = "35121")] ++ impl PartialOrd for ! { ++ fn partial_cmp(&self, _: &!) -> Option { ++ *self + } + } + +- #[cfg(not(stage0))] +- not_stage0!(); ++ #[unstable(feature = "never_type", issue = "35121")] ++ impl Ord for ! { ++ fn cmp(&self, _: &!) -> Ordering { ++ *self ++ } ++ } + + // & pointers + +diff --git a/src/libcore/fmt/mod.rs b/src/libcore/fmt/mod.rs +index dbd715c..7688da9 100644 +--- a/src/libcore/fmt/mod.rs ++++ b/src/libcore/fmt/mod.rs +@@ -1363,28 +1363,19 @@ macro_rules! fmt_refs { + + fmt_refs! { Debug, Display, Octal, Binary, LowerHex, UpperHex, LowerExp, UpperExp } + +-// Note: This macro is a temporary hack that can be remove once we are building with a compiler +-// that supports `!` +-macro_rules! not_stage0 { +- () => { +- #[unstable(feature = "never_type", issue = "35121")] +- impl Debug for ! { +- fn fmt(&self, _: &mut Formatter) -> Result { +- *self +- } +- } +- +- #[unstable(feature = "never_type", issue = "35121")] +- impl Display for ! { +- fn fmt(&self, _: &mut Formatter) -> Result { +- *self +- } +- } ++#[unstable(feature = "never_type", issue = "35121")] ++impl Debug for ! { ++ fn fmt(&self, _: &mut Formatter) -> Result { ++ *self + } + } + +-#[cfg(not(stage0))] +-not_stage0!(); ++#[unstable(feature = "never_type", issue = "35121")] ++impl Display for ! { ++ fn fmt(&self, _: &mut Formatter) -> Result { ++ *self ++ } ++} + + #[stable(feature = "rust1", since = "1.0.0")] + impl Debug for bool { +diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs +index 7831464..e2ce8ae 100644 +--- a/src/libcore/lib.rs ++++ b/src/libcore/lib.rs +@@ -62,8 +62,6 @@ + #![deny(missing_debug_implementations)] + #![cfg_attr(not(stage0), deny(warnings))] + +-#![cfg_attr(stage0, allow(unused_attributes))] +- + #![feature(allow_internal_unstable)] + #![feature(asm)] + #![feature(associated_type_defaults)] +@@ -87,9 +85,7 @@ + #![feature(staged_api)] + #![feature(unboxed_closures)] + #![feature(question_mark)] +- +-// NOTE: remove the cfg_attr next snapshot +-#![cfg_attr(not(stage0), feature(never_type))] ++#![feature(never_type)] + + #[macro_use] + mod macros; +diff --git a/src/libpanic_unwind/gcc.rs b/src/libpanic_unwind/gcc.rs +index fdae8f6..bd0c2f5 100644 +--- a/src/libpanic_unwind/gcc.rs ++++ b/src/libpanic_unwind/gcc.rs +@@ -264,30 +264,6 @@ unsafe fn find_eh_action(context: *mut uw::_Unwind_Context) -> EHAction { + eh::find_eh_action(lsda, &eh_context) + } + +-// *** Delete after a new snapshot *** +-#[cfg(all(stage0, any(target_os = "ios", not(target_arch = "arm"))))] +-#[lang = "eh_personality_catch"] +-#[no_mangle] +-pub unsafe extern "C" fn rust_eh_personality_catch(version: c_int, +- actions: uw::_Unwind_Action, +- exception_class: uw::_Unwind_Exception_Class, +- ue_header: *mut uw::_Unwind_Exception, +- context: *mut uw::_Unwind_Context) +- -> uw::_Unwind_Reason_Code { +- rust_eh_personality(version, actions, exception_class, ue_header, context) +-} +- +-// *** Delete after a new snapshot *** +-#[cfg(all(stage0, target_arch = "arm", not(target_os = "ios")))] +-#[lang = "eh_personality_catch"] +-#[no_mangle] +-pub unsafe extern "C" fn rust_eh_personality_catch(state: uw::_Unwind_State, +- ue_header: *mut uw::_Unwind_Exception, +- context: *mut uw::_Unwind_Context) +- -> uw::_Unwind_Reason_Code { +- rust_eh_personality(state, ue_header, context) +-} +- + // See docs in the `unwind` module. + #[cfg(all(target_os="windows", target_arch = "x86", target_env="gnu"))] + #[lang = "eh_unwind_resume"] +diff --git a/src/libpanic_unwind/seh64_gnu.rs b/src/libpanic_unwind/seh64_gnu.rs +index 3642e24..e6d3920 100644 +--- a/src/libpanic_unwind/seh64_gnu.rs ++++ b/src/libpanic_unwind/seh64_gnu.rs +@@ -81,21 +81,6 @@ pub unsafe fn cleanup(ptr: *mut u8) -> Box { + // This is considered acceptable, because the behavior of throwing exceptions + // through a C ABI boundary is undefined. + +-// *** Delete after a new snapshot *** +-#[cfg(stage0)] +-#[lang = "eh_personality_catch"] +-#[cfg(not(test))] +-unsafe extern "C" fn rust_eh_personality_catch(exceptionRecord: *mut c::EXCEPTION_RECORD, +- establisherFrame: c::LPVOID, +- contextRecord: *mut c::CONTEXT, +- dispatcherContext: *mut c::DISPATCHER_CONTEXT) +- -> c::EXCEPTION_DISPOSITION { +- rust_eh_personality(exceptionRecord, +- establisherFrame, +- contextRecord, +- dispatcherContext) +-} +- + #[lang = "eh_personality"] + #[cfg(not(test))] + unsafe extern "C" fn rust_eh_personality(exceptionRecord: *mut c::EXCEPTION_RECORD, +diff --git a/src/rustc/Cargo.lock b/src/rustc/Cargo.lock +index 0b2287c..8cc22f3 100644 +--- a/src/rustc/Cargo.lock ++++ b/src/rustc/Cargo.lock +@@ -399,3 +399,5 @@ dependencies = [ + "serialize 0.0.0", + ] + ++[metadata] ++"checksum gcc 0.3.28 (registry+https://github.com/rust-lang/crates.io-index)" = "3da3a2cbaeb01363c8e3704fd9fd0eb2ceb17c6f27abd4c1ef040fb57d20dc79" +diff --git a/src/rustc/std_shim/Cargo.lock b/src/rustc/std_shim/Cargo.lock +index 70aef55..d47b541 100644 +--- a/src/rustc/std_shim/Cargo.lock ++++ b/src/rustc/std_shim/Cargo.lock +@@ -118,3 +118,5 @@ dependencies = [ + "libc 0.0.0", + ] + ++[metadata] ++"checksum gcc 0.3.27 (registry+https://github.com/rust-lang/crates.io-index)" = "806e63121fbf30760b060a5fc2d1e9f47e1bd356d183e8870367c6c12cc9d5ed" +diff --git a/src/stage0.txt b/src/stage0.txt +index b07347c..9c2fc4d 100644 +--- a/src/stage0.txt ++++ b/src/stage0.txt +@@ -12,6 +12,6 @@ + # tarball for a stable release you'll likely see `1.x.0-$date` where `1.x.0` was + # released on `$date` + +-rustc: 1.11.0-2016-08-16 +-rustc_key: 39b92f95 +-cargo: nightly-2016-07-05 ++rustc: 1.12.0-2016-09-27 ++rustc_key: 40393716 ++cargo: nightly-2016-08-21 +diff --git a/src/tools/compiletest/Cargo.lock b/src/tools/compiletest/Cargo.lock +index 24c8b20..7556978 100644 +--- a/src/tools/compiletest/Cargo.lock ++++ b/src/tools/compiletest/Cargo.lock +@@ -80,3 +80,13 @@ name = "utf8-ranges" + version = "0.1.3" + source = "registry+https://github.com/rust-lang/crates.io-index" + ++[metadata] ++"checksum aho-corasick 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "67077478f0a03952bed2e6786338d400d40c25e9836e08ad50af96607317fd03" ++"checksum env_logger 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "aba65b63ffcc17ffacd6cf5aa843da7c5a25e3bd4bbe0b7def8b214e411250e5" ++"checksum libc 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "95ca44454e7cfe7f8a2095a41a10c79d96a177c0b1672cbf1a30d901a9c16ee5" ++"checksum log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ab83497bf8bf4ed2a74259c1c802351fcd67a65baa86394b6ba73c36f4838054" ++"checksum memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20" ++"checksum mempool 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f997e65fe3eb7a6f8557a7a477de9ed5c511850c85363d13f7b0145b526ed36a" ++"checksum regex 0.1.62 (registry+https://github.com/rust-lang/crates.io-index)" = "22bdab319e36735729aa280752c9293b29ec0053a6810679d697515f80a986fe" ++"checksum regex-syntax 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "841591b1e05609a643e3b4d0045fce04f701daba7151ddcd3ad47b080693d5a9" ++"checksum utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f" +diff --git a/src/tools/linkchecker/Cargo.lock b/src/tools/linkchecker/Cargo.lock +index ed5fe08..d71df6d 100644 +--- a/src/tools/linkchecker/Cargo.lock ++++ b/src/tools/linkchecker/Cargo.lock +@@ -42,3 +42,9 @@ dependencies = [ + "matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + ] + ++[metadata] ++"checksum idna 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1053236e00ce4f668aeca4a769a09b3bf5a682d802abd6f3cb39374f6b162c11" ++"checksum matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "15305656809ce5a4805b1ff2946892810992197ce1270ff79baded852187942e" ++"checksum unicode-bidi 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c1f7ceb96afdfeedee42bade65a0d585a6a0106f681b6749c8ff4daa8df30b3f" ++"checksum unicode-normalization 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "26643a2f83bac55f1976fb716c10234485f9202dcd65cfbdf9da49867b271172" ++"checksum url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afe9ec54bc4db14bc8744b7fed060d785ac756791450959b2248443319d5b119" diff --git a/rust.spec b/rust.spec index 6be3e9e..e8d4213 100644 --- a/rust.spec +++ b/rust.spec @@ -18,14 +18,14 @@ # ABI for linking. However, eu-strip was then clobbering .dynsym when it tried # to remove the rust_metadata symbol referencing .rustc (rhbz1380961). # So for unfixed elfutils, we'll leave .rustc alone and only strip debuginfo. -%if 0%{?fedora} < 26 +%if 0%{?fedora} < 25 %global _find_debuginfo_opts -g %undefine _include_minidebuginfo %endif Name: rust -Version: 1.12.0 -Release: 7%{?dist} +Version: 1.12.1 +Release: 1%{?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) @@ -61,6 +61,11 @@ Patch1: rust-pr35814-armv7-no-neon.patch # merged for 1.14.0 Patch2: rust-pr36933-less-neon-again.patch +# temporary measure for building 1.12.1 from 1.12.0 +# https://users.rust-lang.org/t/bootstrapping-1-12-1-from-1-12-0/7715 +# https://gist.github.com/brson/ff61fef70ac30ed4a33672e2b230e7e1 +Patch3: rust-boot-1.12.1-from-1.12.0.diff + BuildRequires: make BuildRequires: cmake BuildRequires: gcc @@ -152,6 +157,7 @@ test -f '%{local_rust_root}/bin/rustc' %patch1 -p1 -b .no-neon %patch2 -p1 -b .less-neon +%patch3 -p1 -b .bootstrap # unbundle rm -rf src/jemalloc/ @@ -226,7 +232,7 @@ find %{buildroot}/%{_libdir}/ -type f -name '*.so' -exec chmod -v +x '{}' '+' # They also don't need the .rustc metadata anymore, so they won't support linking. # (but this needs the rhbz1380961 fix, or else eu-strip will clobber .dynsym) -%if 0%{?fedora} >= 26 +%if 0%{?fedora} >= 25 find %{buildroot}/%{_libdir}/ -type f -name '*.so' -exec objcopy -R .rustc '{}' ';' %endif @@ -290,6 +296,9 @@ make check-lite VERBOSE=1 -k || python2 src/etc/check-summary.py tmp/*.log || : %changelog +* Thu Oct 20 2016 Josh Stone - 1.12.1-1 +- Update to 1.12.1. + * Fri Oct 14 2016 Josh Stone - 1.12.0-7 - Rebuild with LLVM 3.9. - Add ncurses-devel for llvm-config's -ltinfo.