diff --git a/.gitignore b/.gitignore index fc4950c..87d20f6 100644 --- a/.gitignore +++ b/.gitignore @@ -194,3 +194,4 @@ /rust-1.33.0-powerpc64-unknown-linux-gnu.tar.xz /rust-1.33.0-s390x-unknown-linux-gnu.tar.xz /rust-1.33.0-x86_64-unknown-linux-gnu.tar.xz +/rustc-1.34.1-src.tar.xz diff --git a/0001-Limit-internalization-in-LLVM-8-ThinLTO.patch b/0001-Limit-internalization-in-LLVM-8-ThinLTO.patch new file mode 100644 index 0000000..3c09947 --- /dev/null +++ b/0001-Limit-internalization-in-LLVM-8-ThinLTO.patch @@ -0,0 +1,29 @@ +From b4131e297e18fde119f6f461b3e622218166b009 Mon Sep 17 00:00:00 2001 +From: Josh Stone +Date: Fri, 26 Apr 2019 08:58:14 -0700 +Subject: [PATCH] Limit internalization in LLVM 8 ThinLTO + +--- + src/rustllvm/PassWrapper.cpp | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp +index 319c66a21f17..0ebef82d3768 100644 +--- a/src/rustllvm/PassWrapper.cpp ++++ b/src/rustllvm/PassWrapper.cpp +@@ -873,8 +873,11 @@ LLVMRustCreateThinLTOData(LLVMRustThinLTOModule *modules, + return PrevailingType::Unknown; + }; + #if LLVM_VERSION_GE(8, 0) ++ // We don't have a complete picture in our use of ThinLTO, just our immediate ++ // crate, so we need `ImportEnabled = false` to limit internalization. ++ // Otherwise, we sometimes lose `static` values -- see #60184. + computeDeadSymbolsWithConstProp(Ret->Index, Ret->GUIDPreservedSymbols, +- deadIsPrevailing, /* ImportEnabled = */ true); ++ deadIsPrevailing, /* ImportEnabled = */ false); + #else + computeDeadSymbols(Ret->Index, Ret->GUIDPreservedSymbols, deadIsPrevailing); + #endif +-- +2.20.1 + diff --git a/rust.spec b/rust.spec index 3af0df1..c9ca2a5 100644 --- a/rust.spec +++ b/rust.spec @@ -53,7 +53,7 @@ %endif Name: rust -Version: 1.34.0 +Version: 1.34.1 Release: 1%{?dist} Summary: The Rust Programming Language License: (ASL 2.0 or MIT) and (BSD and MIT) @@ -72,6 +72,9 @@ Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz # We do have the necessary fix in our LLVM 7. Patch1: rust-pr57840-llvm7-debuginfo-variants.patch +# https://github.com/rust-lang/rust/pull/60313 +Patch2: 0001-Limit-internalization-in-LLVM-8-ThinLTO.patch + # Get the Rust triple for any arch. %{lua: function rust_triple(arch) local abi = "gnu" @@ -396,6 +399,7 @@ test -f '%{local_rust_root}/bin/rustc' %setup -q -n %{rustc_package} %patch1 -p1 -R +%patch2 -p1 %if "%{python}" == "python3" sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure @@ -671,6 +675,10 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py* %changelog +* Thu Apr 25 2019 Josh Stone - 1.34.1-1 +- Update to 1.34.1. +- Add a ThinLTO fix for rhbz1701339. + * Thu Apr 11 2019 Josh Stone - 1.34.0-1 - Update to 1.34.0. diff --git a/sources b/sources index 9ce87f1..ace308b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (rustc-1.34.0-src.tar.xz) = cf9952cafe42987f84a6fe9e351a401f2db35c33ddc87d2efb762c4c33a643ffe516f00d848a1ae759f48cea1504243b6169c29ab28ba2e6b00a51422c745861 +SHA512 (rustc-1.34.1-src.tar.xz) = c9ee59a98e0300c16a9044424fbaad0e1d5f026279b9cb238ab5bfe02c6b111780ec5f9884c4cac67d5ee91833e301bc23bd457026982587982b2fb80a528dca diff --git a/sources-bootstrap b/sources-bootstrap index 49aac26..868ba06 100644 --- a/sources-bootstrap +++ b/sources-bootstrap @@ -1,4 +1,4 @@ -SHA512 (rustc-1.34.0-src.tar.xz) = cf9952cafe42987f84a6fe9e351a401f2db35c33ddc87d2efb762c4c33a643ffe516f00d848a1ae759f48cea1504243b6169c29ab28ba2e6b00a51422c745861 +SHA512 (rustc-1.34.1-src.tar.xz) = c9ee59a98e0300c16a9044424fbaad0e1d5f026279b9cb238ab5bfe02c6b111780ec5f9884c4cac67d5ee91833e301bc23bd457026982587982b2fb80a528dca SHA512 (rust-1.33.0-aarch64-unknown-linux-gnu.tar.xz) = 51f6ca909411fd3b3c05baedc38be8a29923966e7cd6960a10152886687132d4ef9750140c5121b9486d6f6ee1ed7ff35f8105c9f0731fe98ce750d0ea9c528f SHA512 (rust-1.33.0-armv7-unknown-linux-gnueabihf.tar.xz) = 25a16c576d826115fdac5a55b89bf3372dfb39c563f2ce7d39b0a7a3c9bdc43eaf10974dfa42e26c5aa04aee169ced3e797fa46fa82bd9f4ceddeddaf6687659 SHA512 (rust-1.33.0-i686-unknown-linux-gnu.tar.xz) = f61f97c529232fd6d7587bbf34c41dd9cc334272b1d523464d7b964aba5a102edaff8d387445e3fdb2b9587c1cdd870e97b9572c9421e79ee047479443f1896d