diff --git a/.gitignore b/.gitignore index 4559fe5..a2f7a4b 100644 --- a/.gitignore +++ b/.gitignore @@ -383,3 +383,4 @@ /rust-1.57.0-s390x-unknown-linux-gnu.tar.xz /rust-1.57.0-x86_64-unknown-linux-gnu.tar.xz /rustc-1.58.1-src.tar.xz +/rustc-1.59.0-src.tar.xz diff --git a/rust-pr94505-mono-item-sort-local.patch b/rust-pr94505-mono-item-sort-local.patch new file mode 100644 index 0000000..7710704 --- /dev/null +++ b/rust-pr94505-mono-item-sort-local.patch @@ -0,0 +1,34 @@ +diff --git a/compiler/rustc_middle/src/mir/mono.rs b/compiler/rustc_middle/src/mir/mono.rs +index 892808386dee..13c325a14e40 100644 +--- a/compiler/rustc_middle/src/mir/mono.rs ++++ b/compiler/rustc_middle/src/mir/mono.rs +@@ -7,6 +7,7 @@ + use rustc_data_structures::stable_hasher::{HashStable, StableHasher}; + use rustc_hir::def_id::{CrateNum, DefId, LOCAL_CRATE}; + use rustc_hir::ItemId; ++use rustc_index::vec::Idx; + use rustc_query_system::ich::{NodeIdHashingMode, StableHashingContext}; + use rustc_session::config::OptLevel; + use rustc_span::source_map::Span; +@@ -380,7 +381,7 @@ fn item_sort_key<'tcx>(tcx: TyCtxt<'tcx>, item: MonoItem<'tcx>) -> ItemSortKey<' + // instances into account. The others don't matter for + // the codegen tests and can even make item order + // unstable. +- InstanceDef::Item(def) => Some(def.did.index.as_usize()), ++ InstanceDef::Item(def) => def.did.as_local().map(Idx::index), + InstanceDef::VtableShim(..) + | InstanceDef::ReifyShim(..) + | InstanceDef::Intrinsic(..) +@@ -391,10 +392,8 @@ fn item_sort_key<'tcx>(tcx: TyCtxt<'tcx>, item: MonoItem<'tcx>) -> ItemSortKey<' + | InstanceDef::CloneShim(..) => None, + } + } +- MonoItem::Static(def_id) => Some(def_id.index.as_usize()), +- MonoItem::GlobalAsm(item_id) => { +- Some(item_id.def_id.to_def_id().index.as_usize()) +- } ++ MonoItem::Static(def_id) => def_id.as_local().map(Idx::index), ++ MonoItem::GlobalAsm(item_id) => Some(item_id.def_id.index()), + }, + item.symbol_name(tcx), + ) diff --git a/rust.spec b/rust.spec index 2420fbe..4ff55bd 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.57.0 -%global bootstrap_cargo 1.57.0 -%global bootstrap_channel 1.57.0 -%global bootstrap_date 2021-12-02 +%global bootstrap_rust 1.58.0 +%global bootstrap_cargo 1.58.0 +%global bootstrap_channel 1.58.0 +%global bootstrap_date 2022-01-13 # Only the specified arches will use bootstrap binaries. #global bootstrap_arches %%{rust_arches} @@ -46,8 +46,10 @@ %global bundled_llvm_version 13.0.0 %bcond_with bundled_llvm -# Requires stable libgit2 1.3 +# Requires stable libgit2 1.3, and not the next minor soname change. +# This needs to be consistent with the bindings in vendor/libgit2-sys. %global min_libgit2_version 1.3.0 +%global next_libgit2_version 1.4.0~ %global bundled_libgit2_version 1.3.0 %if 0%{?fedora} >= 36 %bcond_with bundled_libgit2 @@ -78,7 +80,7 @@ %endif Name: rust -Version: 1.58.1 +Version: 1.59.0 Release: 1%{?dist} Summary: The Rust Programming Language License: (ASL 2.0 or MIT) and (BSD and MIT) @@ -98,14 +100,18 @@ Source1: %{wasi_libc_source} # By default, rust tries to use "rust-lld" as a linker for WebAssembly. Patch1: 0001-Use-lld-provided-by-system-for-wasm.patch +# This regressed in 1.59, hanging builds on s390x, rhbz#2058803 +# https://github.com/rust-lang/rust/pull/94505 +Patch2: rust-pr94505-mono-item-sort-local.patch + ### RHEL-specific patches below ### # Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949) -Patch100: rustc-1.56.0-disable-libssh2.patch +Patch100: rustc-1.59.0-disable-libssh2.patch # libcurl on RHEL7 doesn't have http2, but since cargo requests it, curl-sys # will try to build it statically -- instead we turn off the feature. -Patch101: rustc-1.58.0-disable-http2.patch +Patch101: rustc-1.59.0-disable-http2.patch # kernel rh1410097 causes too-small stacks for PIE. # (affects RHEL6 kernels when building for RHEL7) @@ -179,7 +185,7 @@ BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(zlib) %if %{without bundled_libgit2} -BuildRequires: pkgconfig(libgit2) >= %{min_libgit2_version} +BuildRequires: (pkgconfig(libgit2) >= %{min_libgit2_version} with pkgconfig(libgit2) < %{next_libgit2_version}) %endif %if %{without disabled_libssh2} @@ -281,16 +287,21 @@ BuildRequires: %{devtoolset_name}-gcc-c++ %if %defined mingw_targets BuildRequires: mingw32-filesystem >= 95 BuildRequires: mingw64-filesystem >= 95 +BuildRequires: mingw32-crt +BuildRequires: mingw64-crt BuildRequires: mingw32-gcc BuildRequires: mingw64-gcc +BuildRequires: mingw32-winpthreads-static +BuildRequires: mingw64-winpthreads-static %endif %if %defined wasm_targets BuildRequires: clang +BuildRequires: lld # brp-strip-static-archive breaks the archive index for wasm %global __os_install_post \ %__os_install_post \ -find '%{buildroot}%{rustlibdir}' -type f -path '*/wasm*/lib/*.rlib' -print -exec '%{llvm_root}/bin/llvm-ranlib' '{}' ';' \ +find '%{buildroot}%{rustlibdir}'/wasm*/lib -type f -regex '.*\\.\\(a\\|rlib\\)' -print -exec '%{llvm_root}/bin/llvm-ranlib' '{}' ';' \ %{nil} %endif @@ -532,6 +543,7 @@ test -f '%{local_rust_root}/bin/rustc' %setup -q -n %{rustc_package} %patch1 -p1 +%patch2 -p1 %if %with disabled_libssh2 %patch100 -p1 @@ -793,6 +805,13 @@ env RUSTC=%{buildroot}%{_bindir}/rustc \ LD_LIBRARY_PATH="%{buildroot}%{_libdir}:$LD_LIBRARY_PATH" \ %{buildroot}%{_bindir}/cargo run --manifest-path build/hello-world/Cargo.toml +# Try a build sanity-check for other targets +for triple in %{?mingw_targets} %{?wasm_targets}; do + env RUSTC=%{buildroot}%{_bindir}/rustc \ + LD_LIBRARY_PATH="%{buildroot}%{_libdir}:$LD_LIBRARY_PATH" \ + %{buildroot}%{_bindir}/cargo build --manifest-path build/hello-world/Cargo.toml --target=$triple +done + # The results are not stable on koji, so mask errors and just log it. # Some of the larger test artifacts are manually cleaned to save space. %{__python3} ./x.py test --no-fail-fast --stage 2 || : @@ -970,6 +989,9 @@ end} %changelog +* Tue Apr 19 2022 Josh Stone - 1.59.0-1 +- Update to 1.59.0. + * Thu Jan 20 2022 Josh Stone - 1.58.1-1 - Update to 1.58.1. diff --git a/rustc-1.58.0-disable-http2.patch b/rustc-1.59.0-disable-http2.patch similarity index 73% rename from rustc-1.58.0-disable-http2.patch rename to rustc-1.59.0-disable-http2.patch index 215e0c7..603bd32 100644 --- a/rustc-1.58.0-disable-http2.patch +++ b/rustc-1.59.0-disable-http2.patch @@ -1,5 +1,5 @@ ---- rustc-1.58.0-src/Cargo.lock.orig 2022-01-11 16:13:10.125323813 -0800 -+++ rustc-1.58.0-src/Cargo.lock 2022-01-11 16:22:54.313011908 -0800 +--- rustc-1.59.0-src/Cargo.lock.orig 2022-02-22 10:19:00.330367749 -0800 ++++ rustc-1.59.0-src/Cargo.lock 2022-02-22 10:19:00.332367706 -0800 @@ -909,7 +909,6 @@ dependencies = [ "cc", @@ -8,7 +8,7 @@ "libz-sys", "openssl-sys", "pkg-config", -@@ -1927,16 +1926,6 @@ +@@ -1957,16 +1956,6 @@ checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" [[package]] @@ -25,19 +25,19 @@ name = "libz-sys" version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" ---- rustc-1.58.0-src/src/tools/cargo/Cargo.toml.orig 2022-01-11 16:13:10.127323771 -0800 -+++ rustc-1.58.0-src/src/tools/cargo/Cargo.toml 2022-01-11 16:14:50.721203730 -0800 +--- rustc-1.59.0-src/src/tools/cargo/Cargo.toml.orig 2022-02-22 10:19:00.332367706 -0800 ++++ rustc-1.59.0-src/src/tools/cargo/Cargo.toml 2022-02-22 10:19:54.029231795 -0800 @@ -22,7 +22,7 @@ - cargo-util = { path = "crates/cargo-util", version = "0.1.1" } - crates-io = { path = "crates/crates-io", version = "0.33.0" } + cargo-util = { path = "crates/cargo-util", version = "0.1.2" } + crates-io = { path = "crates/crates-io", version = "0.33.1" } crossbeam-utils = "0.8" -curl = { version = "0.4.41", features = ["http2"] } +curl = { version = "0.4.41", features = [] } curl-sys = "0.4.50" env_logger = "0.9.0" pretty_env_logger = { version = "0.4", optional = true } ---- rustc-1.58.0-src/src/tools/cargo/src/cargo/core/package.rs.orig 2022-01-11 03:18:44.000000000 -0800 -+++ rustc-1.58.0-src/src/tools/cargo/src/cargo/core/package.rs 2022-01-11 16:13:10.127323771 -0800 +--- rustc-1.59.0-src/src/tools/cargo/src/cargo/core/package.rs.orig 2022-02-21 18:48:53.000000000 -0800 ++++ rustc-1.59.0-src/src/tools/cargo/src/cargo/core/package.rs 2022-02-22 10:19:00.332367706 -0800 @@ -419,14 +419,8 @@ // Also note that pipelining is disabled as curl authors have indicated // that it's buggy, and we've empirically seen that it's buggy with HTTP diff --git a/rustc-1.56.0-disable-libssh2.patch b/rustc-1.59.0-disable-libssh2.patch similarity index 59% rename from rustc-1.56.0-disable-libssh2.patch rename to rustc-1.59.0-disable-libssh2.patch index 4d9331b..4afd67c 100644 --- a/rustc-1.56.0-disable-libssh2.patch +++ b/rustc-1.59.0-disable-libssh2.patch @@ -1,6 +1,6 @@ ---- rustc-1.56.0-src/Cargo.lock.orig 2021-10-18 02:52:36.000000000 -0700 -+++ rustc-1.56.0-src/Cargo.lock 2021-10-19 18:00:47.999793566 -0700 -@@ -1895,7 +1895,6 @@ +--- rustc-1.59.0-src/Cargo.lock.orig 2022-02-21 18:48:37.000000000 -0800 ++++ rustc-1.59.0-src/Cargo.lock 2022-02-22 10:16:10.381962862 -0800 +@@ -1935,7 +1935,6 @@ dependencies = [ "cc", "libc", @@ -8,14 +8,14 @@ "libz-sys", "openssl-sys", "pkg-config", -@@ -1918,20 +1917,6 @@ +@@ -1968,20 +1967,6 @@ ] [[package]] -name = "libssh2-sys" --version = "0.2.19" +-version = "0.2.23" -source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ca46220853ba1c512fc82826d0834d87b06bcd3c2a42241b7de72f3d2fe17056" +-checksum = "b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca" -dependencies = [ - "cc", - "libc", @@ -29,9 +29,9 @@ name = "libz-sys" version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" ---- rustc-1.56.0-src/vendor/git2/Cargo.toml.orig 2021-10-18 04:05:54.000000000 -0700 -+++ rustc-1.56.0-src/vendor/git2/Cargo.toml 2021-10-19 17:57:37.960500359 -0700 -@@ -52,7 +52,7 @@ +--- rustc-1.59.0-src/vendor/git2/Cargo.toml.orig 2022-02-21 20:14:37.000000000 -0800 ++++ rustc-1.59.0-src/vendor/git2/Cargo.toml 2022-02-22 10:12:23.021772490 -0800 +@@ -51,7 +51,7 @@ version = "0.1.39" [features] diff --git a/sources b/sources index 32eee25..fa999c3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (rustc-1.58.1-src.tar.xz) = eff3279d2e519343cea542a9ae2daab592e44f35af344e33ff43ed55fc7c824511790d1991dd36a603d12465de8c3688e7194c2b9557f288c587ffa04738c2ce +SHA512 (rustc-1.59.0-src.tar.xz) = acace866871d13a55d365f65d7e15c192c3cd33096862571df6317e066b7474d668b95ae281e0244967778c05f1e33966c3c55616218bd25d3770a2b2d4f0365 SHA512 (wasi-libc-ad5133410f66b93a2381db5b542aad5e0964db96.tar.gz) = 04cb3a25fef7949bf77f262bd939102f5b36e2ae85f28cdbfcd8a8984425fba54fae68049b777974bdbad96882fab383b44203e8f19a776d8a56a55475c4aab6 diff --git a/sources-bootstrap b/sources-bootstrap deleted file mode 100644 index 6495a48..0000000 --- a/sources-bootstrap +++ /dev/null @@ -1,7 +0,0 @@ -SHA512 (rustc-1.58.1-src.tar.xz) = eff3279d2e519343cea542a9ae2daab592e44f35af344e33ff43ed55fc7c824511790d1991dd36a603d12465de8c3688e7194c2b9557f288c587ffa04738c2ce -SHA512 (wasi-libc-ad5133410f66b93a2381db5b542aad5e0964db96.tar.gz) = 04cb3a25fef7949bf77f262bd939102f5b36e2ae85f28cdbfcd8a8984425fba54fae68049b777974bdbad96882fab383b44203e8f19a776d8a56a55475c4aab6 -SHA512 (rust-1.57.0-aarch64-unknown-linux-gnu.tar.xz) = 71d32e1ed3fc4a2eaf3594112b3b43ab82bd28b35e547542f6c1ed006175d7cf805be373a4da8b962762962dd32fe951c8ca7c0a424addad5d4e828441d5386c -SHA512 (rust-1.57.0-i686-unknown-linux-gnu.tar.xz) = 9dc7d650bbe35d3967a883e91bfd2a3dcad633c41c00a41d9ca78bc336b1e3262bbb4100a76d42169700dc3b15d4066fa065e785aed1c0a46df4736dfd00d7c6 -SHA512 (rust-1.57.0-powerpc64le-unknown-linux-gnu.tar.xz) = 7e0809b66086f1c9dde14df5bd9f08757e32bb58041b74150415f798d81cb4ca01a6d69d529efe8a93026f251aa8f1711520defa8d86de64f20d9055ee1568e5 -SHA512 (rust-1.57.0-s390x-unknown-linux-gnu.tar.xz) = 4cc63e93bbafcbba2122a862200bf1dd241fe84f526778e1877c14237984fdeccdd3d2b3dfe73428b1b97bd253c1ddf98f4302f40709abbdd52ec721d5ccdb6e -SHA512 (rust-1.57.0-x86_64-unknown-linux-gnu.tar.xz) = 54016b58fe85208c0d98e61cb52f2549bbb9731d7d631b4964663c91c91b7ea0ff4c224c3d29a770de433e6a0bcd92d2fe757563bf68e224a20c1cec6d031a7e