diff --git a/.gitignore b/.gitignore index b19c5b2..1b3ca29 100644 --- a/.gitignore +++ b/.gitignore @@ -398,3 +398,4 @@ /rust-1.58.0-powerpc64le-unknown-linux-gnu.tar.xz /rust-1.58.0-s390x-unknown-linux-gnu.tar.xz /rust-1.58.0-x86_64-unknown-linux-gnu.tar.xz +/rustc-1.60.0-src.tar.xz diff --git a/rust.spec b/rust.spec index 9ea2a6b..fc844a8 100644 --- a/rust.spec +++ b/rust.spec @@ -8,9 +8,9 @@ # To bootstrap from scratch, set the channel and date from src/stage0.json # e.g. 1.59.0 wants rustc: 1.58.0-2022-01-13 # or nightly wants some beta-YYYY-MM-DD -%global bootstrap_version 1.58.0 -%global bootstrap_channel 1.58.0 -%global bootstrap_date 2022-01-13 +%global bootstrap_version 1.59.0 +%global bootstrap_channel 1.59.0 +%global bootstrap_date 2022-02-24 # Only the specified arches will use bootstrap binaries. # NOTE: Those binaries used to be uploaded with every new release, but that was @@ -45,7 +45,7 @@ # We can also choose to just use Rust's bundled LLVM, in case the system LLVM # is insufficient. Rust currently requires LLVM 12.0+. %global min_llvm_version 12.0.0 -%global bundled_llvm_version 13.0.0 +%global bundled_llvm_version 14.0.0 %bcond_with bundled_llvm # Requires stable libgit2 1.3, and not the next minor soname change. @@ -82,8 +82,8 @@ %endif Name: rust -Version: 1.59.0 -Release: 4%{?dist} +Version: 1.60.0 +Release: 1%{?dist} Summary: The Rust Programming Language License: (ASL 2.0 or MIT) and (BSD and MIT) # ^ written as: (rust itself) and (bundled libraries) @@ -106,6 +106,10 @@ Patch1: 0001-Use-lld-provided-by-system-for-wasm.patch # https://github.com/rust-lang/rust/pull/94505 Patch2: rust-pr94505-mono-item-sort-local.patch +# Clang 14 adds new builtin macros that wasi-libc doesn't expect yet +# See https://github.com/WebAssembly/wasi-libc/pull/265 +Patch3: wasi-libc-clang-14-compat.patch + ### RHEL-specific patches below ### # Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949) @@ -113,7 +117,7 @@ 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.59.0-disable-http2.patch +Patch101: rustc-1.60.0-disable-http2.patch # kernel rh1410097 causes too-small stacks for PIE. # (affects RHEL6 kernels when building for RHEL7) @@ -548,6 +552,7 @@ test -f '%{local_rust_root}/bin/rustc' %if %defined wasm_targets %setup -q -n %{wasi_libc_name} -T -b 1 +%patch3 -p1 %endif %setup -q -n %{rustc_package} @@ -656,14 +661,6 @@ if [ "$max_cpus" -ge 1 -a "$max_cpus" -lt "$ncpus" ]; then ncpus="$max_cpus" fi -%define target_config %{shrink: - --set target.%{rust_triple}.linker=%{__cc} - --set target.%{rust_triple}.cc=%{__cc} - --set target.%{rust_triple}.cxx=%{__cxx} - --set target.%{rust_triple}.ar=%{__ar} - --set target.%{rust_triple}.ranlib=%{__ranlib} -} - %if %defined mingw_targets %{lua: do local cfg = "" @@ -672,14 +669,15 @@ fi triple = triple, mingw = string.sub(triple, 1, 4) == "i686" and "mingw32" or "mingw64", } - local s = string.gsub([[%{shrink: + local s = string.gsub([[ --set target.{{triple}}.linker=%{{{mingw}}_cc} --set target.{{triple}}.cc=%{{{mingw}}_cc} --set target.{{triple}}.ar=%{{{mingw}}_ar} --set target.{{triple}}.ranlib=%{{{mingw}}_ranlib} - }]], "{{(%w+)}}", subs) + ]], "{{(%w+)}}", subs) cfg = cfg .. " " .. s end + cfg = string.gsub(cfg, "%s+", " ") rpm.define("mingw_target_config " .. cfg) end} %endif @@ -701,11 +699,16 @@ end} %configure --disable-option-checking \ --libdir=%{common_libdir} \ --build=%{rust_triple} --host=%{rust_triple} --target=%{rust_triple} \ - %{target_config} \ + --set target.%{rust_triple}.linker=%{__cc} \ + --set target.%{rust_triple}.cc=%{__cc} \ + --set target.%{rust_triple}.cxx=%{__cxx} \ + --set target.%{rust_triple}.ar=%{__ar} \ + --set target.%{rust_triple}.ranlib=%{__ranlib} \ %{?mingw_target_config} \ %{?wasm_target_config} \ --python=%{__python3} \ --local-rust-root=%{local_rust_root} \ + --set build.rustfmt=/bin/true \ %{!?with_bundled_llvm: --llvm-root=%{llvm_root} \ %{!?llvm_has_filecheck: --disable-codegen-tests} \ %{!?with_llvm_static: --enable-llvm-link-shared } } \ @@ -999,6 +1002,9 @@ end} %changelog +* Thu Apr 07 2022 Josh Stone - 1.60.0-1 +- Update to 1.60.0. + * Fri Mar 25 2022 Josh Stone - 1.59.0-4 - Fix the archive index for wasm32-wasi's libc.a diff --git a/rustc-1.59.0-disable-http2.patch b/rustc-1.59.0-disable-http2.patch deleted file mode 100644 index 603bd32..0000000 --- a/rustc-1.59.0-disable-http2.patch +++ /dev/null @@ -1,66 +0,0 @@ ---- 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", - "libc", -- "libnghttp2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", -@@ -1957,16 +1956,6 @@ - checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" - - [[package]] --name = "libnghttp2-sys" --version = "0.1.4+1.41.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "03624ec6df166e79e139a2310ca213283d6b3c30810c54844f307086d4488df1" --dependencies = [ -- "cc", -- "libc", --] -- --[[package]] - name = "libz-sys" - version = "1.1.3" - source = "registry+https://github.com/rust-lang/crates.io-index" ---- 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.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.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 - // proxies. -- let mut multi = Multi::new(); -- let multiplexing = config.http_config()?.multiplexing.unwrap_or(true); -- multi -- .pipelining(false, multiplexing) -- .with_context(|| "failed to enable multiplexing/pipelining in curl")?; -- -- // let's not flood crates.io with connections -- multi.set_max_host_connections(2)?; -+ let multi = Multi::new(); -+ let multiplexing = false; - - Ok(PackageSet { - packages: package_ids -@@ -655,7 +649,7 @@ - macro_rules! try_old_curl { - ($e:expr, $msg:expr) => { - let result = $e; -- if cfg!(target_os = "macos") { -+ if cfg!(any(target_os = "linux", target_os = "macos")) { - if let Err(e) = result { - warn!("ignoring libcurl {} error: {}", $msg, e); - } diff --git a/sources b/sources index fa999c3..c832043 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (rustc-1.59.0-src.tar.xz) = acace866871d13a55d365f65d7e15c192c3cd33096862571df6317e066b7474d668b95ae281e0244967778c05f1e33966c3c55616218bd25d3770a2b2d4f0365 +SHA512 (rustc-1.60.0-src.tar.xz) = d0c113e8c2c67bf10773c9403dc4c4700c4deb2fb287bfec51e565d3473d2b481d8ae2c90b272cd67b3a87d7443ea25a34c7b40ba8cd7106bf5d71126ab141c3 SHA512 (wasi-libc-ad5133410f66b93a2381db5b542aad5e0964db96.tar.gz) = 04cb3a25fef7949bf77f262bd939102f5b36e2ae85f28cdbfcd8a8984425fba54fae68049b777974bdbad96882fab383b44203e8f19a776d8a56a55475c4aab6 diff --git a/wasi-libc-clang-14-compat.patch b/wasi-libc-clang-14-compat.patch new file mode 100644 index 0000000..32d52f0 --- /dev/null +++ b/wasi-libc-clang-14-compat.patch @@ -0,0 +1,15 @@ +diff --git a/Makefile b/Makefile +index a93b10a6757a..518bab0aaf78 100644 +--- a/Makefile ++++ b/Makefile +@@ -538,6 +538,10 @@ check-symbols: startup_files libc + -U__GNUC_PATCHLEVEL__ \ + -U__VERSION__ \ + -U__FLOAT128__ \ ++ -U__NO_MATH_ERRNO__ \ ++ -U__BITINT_MAXWIDTH__ \ ++ | grep -vE '^#define __(BOOL|INT|LLONG|LONG|SHRT)_WIDTH__' \ ++ | grep -vE '^#define __INT_(FAST|LEAST)(8|16|32|64)_WIDTH__' \ + | sed -e 's/__[[:upper:][:digit:]]*_ATOMIC_\([[:upper:][:digit:]_]*\)_LOCK_FREE/__compiler_ATOMIC_\1_LOCK_FREE/' \ + | grep -v '^#define __FLT16_' \ + > "$(SYSROOT_SHARE)/predefined-macros.txt"