diff --git a/.gitignore b/.gitignore index 972bcbd..5935600 100644 --- a/.gitignore +++ b/.gitignore @@ -204,3 +204,11 @@ /rust-1.34.2-powerpc64-unknown-linux-gnu.tar.xz /rust-1.34.2-s390x-unknown-linux-gnu.tar.xz /rust-1.34.2-x86_64-unknown-linux-gnu.tar.xz +/rustc-1.36.0-src.tar.xz +/rust-1.35.0-aarch64-unknown-linux-gnu.tar.xz +/rust-1.35.0-armv7-unknown-linux-gnueabihf.tar.xz +/rust-1.35.0-i686-unknown-linux-gnu.tar.xz +/rust-1.35.0-powerpc64le-unknown-linux-gnu.tar.xz +/rust-1.35.0-powerpc64-unknown-linux-gnu.tar.xz +/rust-1.35.0-s390x-unknown-linux-gnu.tar.xz +/rust-1.35.0-x86_64-unknown-linux-gnu.tar.xz diff --git a/0001-Limit-internalization-in-LLVM-8-ThinLTO.patch b/0001-Limit-internalization-in-LLVM-8-ThinLTO.patch deleted file mode 100644 index 3c09947..0000000 --- a/0001-Limit-internalization-in-LLVM-8-ThinLTO.patch +++ /dev/null @@ -1,29 +0,0 @@ -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-pr61085-fix-ICE-with-incorrect-turbofish.patch b/rust-pr61085-fix-ICE-with-incorrect-turbofish.patch deleted file mode 100644 index 9929aaa..0000000 --- a/rust-pr61085-fix-ICE-with-incorrect-turbofish.patch +++ /dev/null @@ -1,229 +0,0 @@ -From 476732995c2f5dc08e20eb8f9f03c628a48f5f41 Mon Sep 17 00:00:00 2001 -From: Oliver Scherer -Date: Thu, 23 May 2019 17:05:48 +0200 -Subject: [PATCH 1/3] WIP - ---- - src/librustc_typeck/check/mod.rs | 22 +++++++++++----------- - src/test/run-pass/issue-60989.rs | 4 ++++ - 2 files changed, 15 insertions(+), 11 deletions(-) - create mode 100644 src/test/run-pass/issue-60989.rs - -diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs -index 313ed19b945d..088729f12b1e 100644 ---- a/src/librustc_typeck/check/mod.rs -+++ b/src/librustc_typeck/check/mod.rs -@@ -5396,17 +5396,6 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { - - let tcx = self.tcx; - -- match def { -- Def::Local(nid) | Def::Upvar(nid, ..) => { -- let hid = self.tcx.hir().node_to_hir_id(nid); -- let ty = self.local_ty(span, hid).decl_ty; -- let ty = self.normalize_associated_types_in(span, &ty); -- self.write_ty(hir_id, ty); -- return (ty, def); -- } -- _ => {} -- } -- - let (def, def_id, ty) = self.rewrite_self_ctor(def, span); - let path_segs = AstConv::def_ids_for_path_segments(self, segments, self_ty, def); - -@@ -5469,6 +5458,17 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { - user_self_ty = None; - } - -+ match def { -+ Def::Local(nid) | Def::Upvar(nid, ..) => { -+ let hid = self.tcx.hir().node_to_hir_id(nid); -+ let ty = self.local_ty(span, hid).decl_ty; -+ let ty = self.normalize_associated_types_in(span, &ty); -+ self.write_ty(hir_id, ty); -+ return (ty, def); -+ } -+ _ => {} -+ } -+ - // Now we have to compare the types that the user *actually* - // provided against the types that were *expected*. If the user - // did not provide any types, then we want to substitute inference -diff --git a/src/test/run-pass/issue-60989.rs b/src/test/run-pass/issue-60989.rs -new file mode 100644 -index 000000000000..efaa74da3baa ---- /dev/null -+++ b/src/test/run-pass/issue-60989.rs -@@ -0,0 +1,4 @@ -+fn main() { -+ let c1 = (); -+ c1::<()>; -+} --- -2.21.0 - - -From 97f204e6ae43bfe0fed64221d709a194bef728a4 Mon Sep 17 00:00:00 2001 -From: Oliver Scherer -Date: Thu, 23 May 2019 17:21:32 +0200 -Subject: [PATCH 2/3] Make regression test a compile-fail test - ---- - src/test/{run-pass => compile-fail}/issue-60989.rs | 0 - 1 file changed, 0 insertions(+), 0 deletions(-) - rename src/test/{run-pass => compile-fail}/issue-60989.rs (100%) - -diff --git a/src/test/run-pass/issue-60989.rs b/src/test/compile-fail/issue-60989.rs -similarity index 100% -rename from src/test/run-pass/issue-60989.rs -rename to src/test/compile-fail/issue-60989.rs --- -2.21.0 - - -From 6e81f8205a6d47648d086d26e96bf05e962e3715 Mon Sep 17 00:00:00 2001 -From: Eduard-Mihai Burtescu -Date: Thu, 23 May 2019 19:23:00 +0300 -Subject: [PATCH 3/3] rustc_typeck: don't produce a `DefId` or `Ty` from - `rewrite_self_ctor`, only a `Def`. - ---- - src/librustc_typeck/check/mod.rs | 30 ++++++++++++++++++---------- - src/test/compile-fail/issue-60989.rs | 4 ---- - src/test/ui/issue-60989.rs | 18 +++++++++++++++++ - src/test/ui/issue-60989.stderr | 15 ++++++++++++++ - 4 files changed, 52 insertions(+), 15 deletions(-) - delete mode 100644 src/test/compile-fail/issue-60989.rs - create mode 100644 src/test/ui/issue-60989.rs - create mode 100644 src/test/ui/issue-60989.stderr - -diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs -index 088729f12b1e..b6adcdbf35e9 100644 ---- a/src/librustc_typeck/check/mod.rs -+++ b/src/librustc_typeck/check/mod.rs -@@ -5330,7 +5330,7 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { - } - - // Rewrite `SelfCtor` to `Ctor` -- pub fn rewrite_self_ctor(&self, def: Def, span: Span) -> (Def, DefId, Ty<'tcx>) { -+ pub fn rewrite_self_ctor(&self, def: Def, span: Span) -> Def { - let tcx = self.tcx; - if let Def::SelfCtor(impl_def_id) = def { - let ty = self.impl_self_ty(span, impl_def_id).ty; -@@ -5340,8 +5340,7 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { - Some(adt_def) if adt_def.has_ctor() => { - let variant = adt_def.non_enum_variant(); - let ctor_def_id = variant.ctor_def_id.unwrap(); -- let def = Def::Ctor(ctor_def_id, CtorOf::Struct, variant.ctor_kind); -- (def, ctor_def_id, tcx.type_of(ctor_def_id)) -+ Def::Ctor(ctor_def_id, CtorOf::Struct, variant.ctor_kind) - } - _ => { - let mut err = tcx.sess.struct_span_err(span, -@@ -5364,16 +5363,11 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { - } - err.emit(); - -- (def, impl_def_id, tcx.types.err) -+ def - } - } - } else { -- let def_id = def.def_id(); -- -- // The things we are substituting into the type should not contain -- // escaping late-bound regions, and nor should the base type scheme. -- let ty = tcx.type_of(def_id); -- (def, def_id, ty) -+ def - } - } - -@@ -5396,7 +5390,7 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { - - let tcx = self.tcx; - -- let (def, def_id, ty) = self.rewrite_self_ctor(def, span); -+ let def = self.rewrite_self_ctor(def, span); - let path_segs = AstConv::def_ids_for_path_segments(self, segments, self_ty, def); - - let mut user_self_ty = None; -@@ -5501,6 +5495,20 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { - tcx.generics_of(*def_id).has_self - }).unwrap_or(false); - -+ let (def_id, ty) = if let Def::SelfCtor(impl_def_id) = def { -+ // NOTE(eddyb) an error has already been emitted by `rewrite_self_ctor`, -+ // avoid using the wrong type here. This isn't in `rewrite_self_ctor` -+ // itself because that runs too early (see #60989). -+ (impl_def_id, tcx.types.err) -+ } else { -+ let def_id = def.def_id(); -+ -+ // The things we are substituting into the type should not contain -+ // escaping late-bound regions, and nor should the base type scheme. -+ let ty = tcx.type_of(def_id); -+ (def_id, ty) -+ }; -+ - let substs = AstConv::create_substs_for_generic_args( - tcx, - def_id, -diff --git a/src/test/compile-fail/issue-60989.rs b/src/test/compile-fail/issue-60989.rs -deleted file mode 100644 -index efaa74da3baa..000000000000 ---- a/src/test/compile-fail/issue-60989.rs -+++ /dev/null -@@ -1,4 +0,0 @@ --fn main() { -- let c1 = (); -- c1::<()>; --} -diff --git a/src/test/ui/issue-60989.rs b/src/test/ui/issue-60989.rs -new file mode 100644 -index 000000000000..930e98bedce8 ---- /dev/null -+++ b/src/test/ui/issue-60989.rs -@@ -0,0 +1,18 @@ -+struct A {} -+struct B {} -+ -+impl From for B { -+ fn from(a: A) -> B { -+ B{} -+ } -+} -+ -+fn main() { -+ let c1 = (); -+ c1::<()>; -+ //~^ ERROR type arguments are not allowed for this type -+ -+ let c1 = A {}; -+ c1::>; -+ //~^ ERROR type arguments are not allowed for this type -+} -diff --git a/src/test/ui/issue-60989.stderr b/src/test/ui/issue-60989.stderr -new file mode 100644 -index 000000000000..55a0b9626df7 ---- /dev/null -+++ b/src/test/ui/issue-60989.stderr -@@ -0,0 +1,15 @@ -+error[E0109]: type arguments are not allowed for this type -+ --> $DIR/issue-60989.rs:12:10 -+ | -+LL | c1::<()>; -+ | ^^ type argument not allowed -+ -+error[E0109]: type arguments are not allowed for this type -+ --> $DIR/issue-60989.rs:16:10 -+ | -+LL | c1::>; -+ | ^^^^^^^ type argument not allowed -+ -+error: aborting due to 2 previous errors -+ -+For more information about this error, try `rustc --explain E0109`. --- -2.21.0 - diff --git a/rust.spec b/rust.spec index 015bf89..5b5650f 100644 --- a/rust.spec +++ b/rust.spec @@ -9,10 +9,10 @@ # e.g. 1.10.0 wants rustc: 1.9.0-2016-05-24 # or nightly wants some beta-YYYY-MM-DD # Note that cargo matches the program version here, not its crate version. -%global bootstrap_rust 1.34.0 -%global bootstrap_cargo 1.34.0 -%global bootstrap_channel 1.34.2 -%global bootstrap_date 2019-05-14 +%global bootstrap_rust 1.35.0 +%global bootstrap_cargo 1.35.0 +%global bootstrap_channel 1.35.0 +%global bootstrap_date 2019-05-23 # Only the specified arches will use bootstrap binaries. #global bootstrap_arches %%{rust_arches} @@ -21,7 +21,7 @@ %bcond_with llvm_static # We can also choose to just use Rust's bundled LLVM, in case the system LLVM -# is insufficient. Rust currently requires LLVM 5.0+. +# is insufficient. Rust currently requires LLVM 6.0+. %if 0%{?rhel} && !0%{?epel} %bcond_without bundled_llvm %else @@ -48,7 +48,7 @@ %endif Name: rust -Version: 1.35.0 +Version: 1.36.0 Release: 1%{?dist} Summary: The Rust Programming Language License: (ASL 2.0 or MIT) and (BSD and MIT) @@ -67,12 +67,6 @@ 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 - -# https://github.com/rust-lang/rust/pull/61085 -Patch3: rust-pr61085-fix-ICE-with-incorrect-turbofish.patch - # Get the Rust triple for any arch. %{lua: function rust_triple(arch) local abi = "gnu" @@ -153,7 +147,7 @@ BuildRequires: %{python} %if %with bundled_llvm BuildRequires: cmake3 >= 3.4.3 -Provides: bundled(llvm) = 8.0.0~svn +Provides: bundled(llvm) = 8.0.0 %else BuildRequires: cmake >= 2.8.11 %if 0%{?epel} @@ -262,7 +256,11 @@ programs. Summary: LLDB pretty printers for Rust BuildArch: noarch Requires: lldb +%if 0%{?fedora} >= 31 +Requires: python3-lldb +%else Requires: python2-lldb +%endif Requires: %{name}-debugger-common = %{version}-%{release} %description lldb @@ -394,8 +392,6 @@ test -f '%{local_rust_root}/bin/rustc' %setup -q -n %{rustc_package} %patch1 -p1 -R -%patch2 -p1 -%patch3 -p1 %if "%{python}" == "python3" sed -i.try-py3 -e '/try python2.7/i try python3 "$@"' ./configure @@ -630,6 +626,7 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py* %{_docdir}/%{name}/html/*.svg %{_docdir}/%{name}/html/*.woff %license %{_docdir}/%{name}/html/*.txt +%license %{_docdir}/%{name}/html/*.md %files -n cargo @@ -679,6 +676,12 @@ rm -f %{buildroot}%{rustlibdir}/etc/lldb_*.py* %changelog +* Thu Jul 04 2019 Josh Stone - 1.36.0-1 +- Update to 1.36.0. + +* Wed May 29 2019 Josh Stone - 1.35.0-2 +- Fix compiletest for rebuild testing. + * Thu May 23 2019 Josh Stone - 1.35.0-1 - Update to 1.35.0. diff --git a/sources b/sources index 470d41c..a9ffdf5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (rustc-1.35.0-src.tar.xz) = 477c10b780bd54776be7ecbda0ab970416253e4a87c3e701825a7d07bcbcd91601b8e61129c5d04d4259e89c2e81e87cdbdee853375a8de5c9cf8372be2c9129 +SHA512 (rustc-1.36.0-src.tar.xz) = 1adbb3b67d599f926dc19258e2596cb3b990e152e75e71645637098526207aa5632d7915fd5b67c7a045f63860cc7be3d28be014ad6141a342adc16b2fe8a879 diff --git a/sources-bootstrap b/sources-bootstrap index 06903ea..3cc8f44 100644 --- a/sources-bootstrap +++ b/sources-bootstrap @@ -1,8 +1,8 @@ -SHA512 (rustc-1.35.0-src.tar.xz) = 477c10b780bd54776be7ecbda0ab970416253e4a87c3e701825a7d07bcbcd91601b8e61129c5d04d4259e89c2e81e87cdbdee853375a8de5c9cf8372be2c9129 -SHA512 (rust-1.34.2-aarch64-unknown-linux-gnu.tar.xz) = 7103362b8840d094661a16053d8f07eba413c369bf3a2b686313875aa97c30b35697fceefbfc90dffd5cfd4de946e7f848f2b791736443639b30bb75709b7122 -SHA512 (rust-1.34.2-armv7-unknown-linux-gnueabihf.tar.xz) = fe5be9a345d10ee2b3a47986977be91cd2dd94f2076571f810ac21cea36f79f073eb16915c090861cf46c6835f86db64c2ed1ef036f911b3be829d7927ecb747 -SHA512 (rust-1.34.2-i686-unknown-linux-gnu.tar.xz) = 056243d226cd9a36dfcd266f2aba88adde58dbcfa87f20613183c5dcc514bb413e25f6d6963494dc141f4e91649b17b1db91e6a9d313af7ef7b1893b64337c33 -SHA512 (rust-1.34.2-powerpc64le-unknown-linux-gnu.tar.xz) = 3c881e7bcf622237f279855ebaeb544f4df9bfe5bc1f74578093d67befed8f027692ea56dc773c653bef8a124e9ebac2544d0c197a0e3a1ec8da63ef9d434412 -SHA512 (rust-1.34.2-powerpc64-unknown-linux-gnu.tar.xz) = d1ab37d68c0b52e3780ea133f8ba4d5b823c7f874bbf15f97f304c21405b1fdbde3d28e83381f08095fca8e2ea615f46accad725ee854ad9db168ab4629e30a3 -SHA512 (rust-1.34.2-s390x-unknown-linux-gnu.tar.xz) = 181f58b00cdccb205be853f5d00fc0a0c939b7e4dc801717b21ece0f714a8f3b501f1196eb2e3f3081932a0417a6218763c3d095cdd036e9f202cc41291876a1 -SHA512 (rust-1.34.2-x86_64-unknown-linux-gnu.tar.xz) = 64d6b7da08ffd877c10d819605a37b0bc178c4ab80e2f7449f3d5ac9254a438e148da3729408b4c9429ed499d7f142c9d2926f5c916e0a32bebaaefe4b0a09a6 +SHA512 (rustc-1.36.0-src.tar.xz) = 1adbb3b67d599f926dc19258e2596cb3b990e152e75e71645637098526207aa5632d7915fd5b67c7a045f63860cc7be3d28be014ad6141a342adc16b2fe8a879 +SHA512 (rust-1.35.0-aarch64-unknown-linux-gnu.tar.xz) = 9231e4acf26dc19a31c6c9623c939eafd0fdefc18debb8569baae36d3ad3410e21097ae2306b5adc48bc5e219da1dc1df38569e1d0ae9b0178d5a2e815c20db8 +SHA512 (rust-1.35.0-armv7-unknown-linux-gnueabihf.tar.xz) = 4d80fdc7483566999d8c38b6772c1f1c6cf0f537f68bff9dd9ed68931afab569e02fc9d5ed2999fb1d3478113527840676d903630f93c3d79c30fdba0b98a2bb +SHA512 (rust-1.35.0-i686-unknown-linux-gnu.tar.xz) = 33a603f638ced850c4572cc81041b1ab47d95a062c66ea24695e449cca7ac6353757c794a85af4a15e43e0ce091c7cc47dbd01fd30e23e1bae6ced194a08a667 +SHA512 (rust-1.35.0-powerpc64le-unknown-linux-gnu.tar.xz) = 3b63dac50a92693d13066aa6e96de05fceb2da6c07834adfab8c12e6a78f59051dfa008062b1d2ad410a009e2164fc716d689231e552379e419161d1620d0066 +SHA512 (rust-1.35.0-powerpc64-unknown-linux-gnu.tar.xz) = a89094b58ffdb4940e51c4c2e5f5efa094d7d6c1a2b2382397dbfb05eeaf99e9329a8e7c51da602a6b8935ebb4f6df475a1873748139d9f9a97b8bd40c49849b +SHA512 (rust-1.35.0-s390x-unknown-linux-gnu.tar.xz) = 11539eb25e474bbaa8e57f21c3f64506859bc86baec74df24bb4aaf5361745840b82ff715fc54fbd6ba654a8f7fd4f064af0538b983dd489cd69498bd70d1bf7 +SHA512 (rust-1.35.0-x86_64-unknown-linux-gnu.tar.xz) = 49976ac2fbac5b1709c4a7f3785eb99ab827464ec4d99ee7190df16c3be23e98de606566b57df2231a15097c7fe984e0d19496ce7478ccc1f0f2c7aeb32ecb04