diff --git a/.gitignore b/.gitignore index 3e84863..83aeea4 100644 --- a/.gitignore +++ b/.gitignore @@ -426,3 +426,4 @@ /wasi-libc-7018e24d8fe248596819d2e884761676f3542a04.tar.gz /rustc-1.72.1-src.tar.xz /wasi-libc-bd950eb128bff337153de217b11270f948d04bb4.tar.gz +/rustc-1.73.0-src.tar.xz diff --git a/0001-Allow-using-external-builds-of-the-compiler-rt-profi.patch b/0001-Allow-using-external-builds-of-the-compiler-rt-profi.patch deleted file mode 100644 index 01f7847..0000000 --- a/0001-Allow-using-external-builds-of-the-compiler-rt-profi.patch +++ /dev/null @@ -1,142 +0,0 @@ -From e276ae1cb702fa830be126cccce4bb9e8676f9fb Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Tue, 25 Jul 2023 13:11:50 -0700 -Subject: [PATCH] Allow using external builds of the compiler-rt profile lib - -This changes the bootstrap config `target.*.profiler` from a plain bool -to also allow a string, which will be used as a path to the pre-built -profiling runtime for that target. Then `profiler_builtins/build.rs` -reads that in a `LLVM_PROFILER_RT_LIB` environment variable. ---- - config.example.toml | 6 ++++-- - library/profiler_builtins/build.rs | 6 ++++++ - src/bootstrap/compile.rs | 4 ++++ - src/bootstrap/config.rs | 30 ++++++++++++++++++++++++------ - 4 files changed, 38 insertions(+), 8 deletions(-) - -diff --git a/config.example.toml b/config.example.toml -index 0c65b25fe138..249847013259 100644 ---- a/config.example.toml -+++ b/config.example.toml -@@ -752,8 +752,10 @@ changelog-seen = 2 - # This option will override the same option under [build] section. - #sanitizers = build.sanitizers (bool) - --# Build the profiler runtime for this target(required when compiling with options that depend --# on this runtime, such as `-C profile-generate` or `-C instrument-coverage`). -+# When true, build the profiler runtime for this target(required when compiling -+# with options that depend on this runtime, such as `-C profile-generate` or -+# `-C instrument-coverage`). This may also be given a path to an existing build -+# of the profiling runtime library from LLVM's compiler-rt. - # This option will override the same option under [build] section. - #profiler = build.profiler (bool) - -diff --git a/library/profiler_builtins/build.rs b/library/profiler_builtins/build.rs -index 1b1f11798d74..d14d0b82229a 100644 ---- a/library/profiler_builtins/build.rs -+++ b/library/profiler_builtins/build.rs -@@ -6,6 +6,12 @@ - use std::path::Path; - - fn main() { -+ println!("cargo:rerun-if-env-changed=LLVM_PROFILER_RT_LIB"); -+ if let Ok(rt) = env::var("LLVM_PROFILER_RT_LIB") { -+ println!("cargo:rustc-link-lib=static:+verbatim={rt}"); -+ return; -+ } -+ - let target = env::var("TARGET").expect("TARGET was not set"); - let cfg = &mut cc::Build::new(); - -diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs -index 14c3ef79a78f..64bdcd1a3b97 100644 ---- a/src/bootstrap/compile.rs -+++ b/src/bootstrap/compile.rs -@@ -336,6 +336,10 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car - cargo.env("MACOSX_DEPLOYMENT_TARGET", target); - } - -+ if let Some(path) = builder.config.profiler_path(target) { -+ cargo.env("LLVM_PROFILER_RT_LIB", path); -+ } -+ - // Determine if we're going to compile in optimized C intrinsics to - // the `compiler-builtins` crate. These intrinsics live in LLVM's - // `compiler-rt` repository, but our `src/llvm-project` submodule isn't -diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs -index fe932fd6bd30..45a743082415 100644 ---- a/src/bootstrap/config.rs -+++ b/src/bootstrap/config.rs -@@ -533,7 +533,7 @@ pub struct Target { - pub linker: Option, - pub ndk: Option, - pub sanitizers: Option, -- pub profiler: Option, -+ pub profiler: Option, - pub rpath: Option, - pub crt_static: Option, - pub musl_root: Option, -@@ -862,9 +862,9 @@ struct Dist { - } - } - --#[derive(Debug, Deserialize)] -+#[derive(Clone, Debug, Deserialize)] - #[serde(untagged)] --enum StringOrBool { -+pub enum StringOrBool { - String(String), - Bool(bool), - } -@@ -875,6 +875,12 @@ fn default() -> StringOrBool { - } - } - -+impl StringOrBool { -+ fn is_string_or_true(&self) -> bool { -+ matches!(self, Self::String(_) | Self::Bool(true)) -+ } -+} -+ - #[derive(Clone, Debug, Deserialize, PartialEq, Eq)] - #[serde(untagged)] - pub enum RustOptimize { -@@ -991,7 +997,7 @@ struct TomlTarget { - llvm_libunwind: Option = "llvm-libunwind", - android_ndk: Option = "android-ndk", - sanitizers: Option = "sanitizers", -- profiler: Option = "profiler", -+ profiler: Option = "profiler", - rpath: Option = "rpath", - crt_static: Option = "crt-static", - musl_root: Option = "musl-root", -@@ -1864,12 +1870,24 @@ pub fn any_sanitizers_enabled(&self) -> bool { - self.target_config.values().any(|t| t.sanitizers == Some(true)) || self.sanitizers - } - -+ pub fn profiler_path(&self, target: TargetSelection) -> Option<&str> { -+ match self.target_config.get(&target)?.profiler.as_ref()? { -+ StringOrBool::String(s) => Some(s), -+ StringOrBool::Bool(_) => None, -+ } -+ } -+ - pub fn profiler_enabled(&self, target: TargetSelection) -> bool { -- self.target_config.get(&target).map(|t| t.profiler).flatten().unwrap_or(self.profiler) -+ self.target_config -+ .get(&target) -+ .and_then(|t| t.profiler.as_ref()) -+ .map(StringOrBool::is_string_or_true) -+ .unwrap_or(self.profiler) - } - - pub fn any_profiler_enabled(&self) -> bool { -- self.target_config.values().any(|t| t.profiler == Some(true)) || self.profiler -+ self.target_config.values().any(|t| matches!(&t.profiler, Some(p) if p.is_string_or_true())) -+ || self.profiler - } - - pub fn rpath_enabled(&self, target: TargetSelection) -> bool { --- -2.41.0 - diff --git a/0001-Don-t-fail-early-if-try_run-returns-an-error.patch b/0001-Don-t-fail-early-if-try_run-returns-an-error.patch deleted file mode 100644 index d77ddc7..0000000 --- a/0001-Don-t-fail-early-if-try_run-returns-an-error.patch +++ /dev/null @@ -1,201 +0,0 @@ -From 98336f8f6e701ea99275f32d6e2127a621041994 Mon Sep 17 00:00:00 2001 -From: Guillaume Gomez -Date: Tue, 11 Jul 2023 17:01:35 +0200 -Subject: [PATCH] Don't fail early if `try_run` returns an error - ---- - src/bootstrap/download.rs | 2 +- - src/bootstrap/run.rs | 11 +++++------ - src/bootstrap/test.rs | 36 ++++++++++++++++-------------------- - 3 files changed, 22 insertions(+), 27 deletions(-) - -diff --git a/src/bootstrap/download.rs b/src/bootstrap/download.rs -index cb40521dda76..9478ac7d9cea 100644 ---- a/src/bootstrap/download.rs -+++ b/src/bootstrap/download.rs -@@ -188,7 +188,7 @@ fn fix_bin_or_dylib(&self, fname: &Path) { - patchelf.args(&["--set-interpreter", dynamic_linker.trim_end()]); - } - -- self.try_run(patchelf.arg(fname)).unwrap(); -+ let _ = self.try_run(patchelf.arg(fname)); - } - - fn download_file(&self, url: &str, dest_path: &Path, help_on_error: &str) { -diff --git a/src/bootstrap/run.rs b/src/bootstrap/run.rs -index c97b75927371..70b917000433 100644 ---- a/src/bootstrap/run.rs -+++ b/src/bootstrap/run.rs -@@ -27,8 +27,7 @@ fn run(self, builder: &Builder<'_>) { - try_run( - builder, - &mut builder.tool_cmd(Tool::ExpandYamlAnchors).arg("generate").arg(&builder.src), -- ) -- .unwrap(); -+ ); - } - - fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { -@@ -40,17 +39,17 @@ fn make_run(run: RunConfig<'_>) { - } - } - --fn try_run(builder: &Builder<'_>, cmd: &mut Command) -> Result<(), ()> { -+fn try_run(builder: &Builder<'_>, cmd: &mut Command) -> bool { - if !builder.fail_fast { -- if let Err(e) = builder.try_run(cmd) { -+ if builder.try_run(cmd).is_err() { - let mut failures = builder.delayed_failures.borrow_mut(); - failures.push(format!("{:?}", cmd)); -- return Err(e); -+ return false; - } - } else { - builder.run(cmd); - } -- Ok(()) -+ true - } - - #[derive(Debug, PartialOrd, Ord, Copy, Clone, Hash, PartialEq, Eq)] -diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs -index 0907291b54da..13576aa787b6 100644 ---- a/src/bootstrap/test.rs -+++ b/src/bootstrap/test.rs -@@ -48,17 +48,17 @@ - // build for, so there is no entry for "aarch64-apple-darwin" here. - ]; - --fn try_run(builder: &Builder<'_>, cmd: &mut Command) -> Result<(), ()> { -+fn try_run(builder: &Builder<'_>, cmd: &mut Command) -> bool { - if !builder.fail_fast { -- if let Err(e) = builder.try_run(cmd) { -+ if builder.try_run(cmd).is_err() { - let mut failures = builder.delayed_failures.borrow_mut(); - failures.push(format!("{:?}", cmd)); -- return Err(e); -+ return false; - } - } else { - builder.run(cmd); - } -- Ok(()) -+ true - } - - fn try_run_quiet(builder: &Builder<'_>, cmd: &mut Command) -> bool { -@@ -187,8 +187,7 @@ fn run(self, builder: &Builder<'_>) { - try_run( - builder, - builder.tool_cmd(Tool::Linkchecker).arg(builder.out.join(host.triple).join("doc")), -- ) -- .unwrap(); -+ ); - } - - fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { -@@ -241,8 +240,7 @@ fn run(self, builder: &Builder<'_>) { - builder.default_doc(&[]); - builder.ensure(crate::doc::Rustc::new(builder.top_stage, self.target, builder)); - -- try_run(builder, builder.tool_cmd(Tool::HtmlChecker).arg(builder.doc_out(self.target))) -- .unwrap(); -+ try_run(builder, builder.tool_cmd(Tool::HtmlChecker).arg(builder.doc_out(self.target))); - } - } - -@@ -288,8 +286,7 @@ fn run(self, builder: &Builder<'_>) { - .args(builder.config.test_args()) - .env("RUSTC", builder.rustc(compiler)) - .env("RUSTDOC", builder.rustdoc(compiler)), -- ) -- .unwrap(); -+ ); - } - } - -@@ -855,7 +852,7 @@ fn run(self, builder: &Builder<'_>) { - util::lld_flag_no_threads(self.compiler.host.contains("windows")), - ); - } -- try_run(builder, &mut cmd).unwrap(); -+ try_run(builder, &mut cmd); - } - } - -@@ -1106,7 +1103,7 @@ fn run(self, builder: &Builder<'_>) { - } - - builder.info("tidy check"); -- try_run(builder, &mut cmd).unwrap(); -+ try_run(builder, &mut cmd); - - builder.ensure(ExpandYamlAnchors); - -@@ -1154,8 +1151,7 @@ fn run(self, builder: &Builder<'_>) { - try_run( - builder, - &mut builder.tool_cmd(Tool::ExpandYamlAnchors).arg("check").arg(&builder.src), -- ) -- .unwrap(); -+ ); - } - - fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { -@@ -1948,7 +1944,7 @@ fn run_ext_doc(self, builder: &Builder<'_>) { - compiler.host, - ); - let _time = util::timeit(&builder); -- let toolstate = if try_run(builder, &mut rustbook_cmd).is_ok() { -+ let toolstate = if try_run(builder, &mut rustbook_cmd) { - ToolState::TestPass - } else { - ToolState::TestFail -@@ -2106,7 +2102,7 @@ fn markdown_test(builder: &Builder<'_>, compiler: Compiler, markdown: &Path) -> - cmd.arg("--test-args").arg(test_args); - - if builder.config.verbose_tests { -- try_run(builder, &mut cmd).is_ok() -+ try_run(builder, &mut cmd) - } else { - try_run_quiet(builder, &mut cmd) - } -@@ -2134,7 +2130,7 @@ fn run(self, builder: &Builder<'_>) { - - let src = builder.src.join(relative_path); - let mut rustbook_cmd = builder.tool_cmd(Tool::Rustbook); -- let toolstate = if try_run(builder, rustbook_cmd.arg("linkcheck").arg(&src)).is_ok() { -+ let toolstate = if try_run(builder, rustbook_cmd.arg("linkcheck").arg(&src)) { - ToolState::TestPass - } else { - ToolState::TestFail -@@ -2684,7 +2680,7 @@ fn run(self, builder: &Builder<'_>) { - .current_dir(builder.src.join("src/bootstrap/")); - // NOTE: we intentionally don't pass test_args here because the args for unittest and cargo test are mutually incompatible. - // Use `python -m unittest` manually if you want to pass arguments. -- try_run(builder, &mut check_bootstrap).unwrap(); -+ try_run(builder, &mut check_bootstrap); - - let host = builder.config.build; - let compiler = builder.compiler(0, host); -@@ -2756,7 +2752,7 @@ fn run(self, builder: &Builder<'_>) { - } - - builder.info("platform support check"); -- try_run(builder, &mut cargo.into()).unwrap(); -+ try_run(builder, &mut cargo.into()); - } - } - -@@ -2836,7 +2832,7 @@ fn run(self, builder: &Builder<'_>) { - cmd.env("CARGO", &builder.initial_cargo); - cmd.env("RUSTC", &builder.initial_rustc); - cmd.env("TMP_DIR", &tmpdir); -- try_run(builder, &mut cmd).unwrap(); -+ try_run(builder, &mut cmd); - } - - fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { --- -2.41.0 - diff --git a/0001-Skip-ExpandYamlAnchors-when-the-config-is-missing.patch b/0001-Skip-ExpandYamlAnchors-when-the-config-is-missing.patch index 62b4c56..6806d2a 100644 --- a/0001-Skip-ExpandYamlAnchors-when-the-config-is-missing.patch +++ b/0001-Skip-ExpandYamlAnchors-when-the-config-is-missing.patch @@ -1,21 +1,19 @@ -From ab9c5148956c2b7d177cc94533370d6a01a8d15f Mon Sep 17 00:00:00 2001 +From 35187c7e6474d346eea3113c4ae34d26d6b18756 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 22 Aug 2023 10:42:12 -0700 Subject: [PATCH] Skip ExpandYamlAnchors when the config is missing The dist-src tarball does not include `.github/` at all, so we can't check whether it needs to be regenerated. - -(cherry picked from commit 35187c7e6474d346eea3113c4ae34d26d6b18756) --- src/bootstrap/test.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs -index eed7a584b603..d41850783c6d 100644 +index db3b7ffbea4e..d1018978f78c 100644 --- a/src/bootstrap/test.rs +++ b/src/bootstrap/test.rs -@@ -1150,6 +1150,11 @@ impl Step for ExpandYamlAnchors { +@@ -1174,6 +1174,11 @@ impl Step for ExpandYamlAnchors { /// appropriate configuration for all our CI providers. This step ensures the tool was called /// by the user before committing CI changes. fn run(self, builder: &Builder<'_>) { @@ -25,8 +23,8 @@ index eed7a584b603..d41850783c6d 100644 + return; + } builder.info("Ensuring the YAML anchors in the GitHub Actions config were expanded"); - try_run( - builder, + builder.run_delaying_failure( + &mut builder.tool_cmd(Tool::ExpandYamlAnchors).arg("check").arg(&builder.src), -- 2.41.0 diff --git a/rust.spec b/rust.spec index 67c25ad..b35408d 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.71.0 -%global bootstrap_channel 1.71.0 -%global bootstrap_date 2023-07-13 +%global bootstrap_version 1.72.0 +%global bootstrap_channel 1.72.0 +%global bootstrap_date 2023-08-24 # Only the specified arches will use bootstrap binaries. # NOTE: Those binaries used to be uploaded with every new release, but that was @@ -26,9 +26,7 @@ %if 0%{?fedora} %global mingw_targets i686-pc-windows-gnu x86_64-pc-windows-gnu %endif -%if 0%{?fedora} || 0%{?rhel} >= 8 %global wasm_targets wasm32-unknown-unknown wasm32-wasi -%endif %if 0%{?fedora} || 0%{?rhel} >= 10 %global extra_targets x86_64-unknown-none x86_64-unknown-uefi %endif @@ -57,9 +55,9 @@ %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 14.0+. -%global min_llvm_version 14.0.0 -%global bundled_llvm_version 16.0.5 +# is insufficient. Rust currently requires LLVM 15.0+. +%global min_llvm_version 15.0.0 +%global bundled_llvm_version 17.0.2 %bcond_with bundled_llvm # Requires stable libgit2 1.6, and not the next minor soname change. @@ -82,22 +80,9 @@ %bcond_with disabled_libssh2 %endif -%if 0%{?rhel} && 0%{?rhel} < 8 -%bcond_with curl_http2 -%else -%bcond_without curl_http2 -%endif - -# LLDB isn't available everywhere... -%if 0%{?rhel} && 0%{?rhel} < 8 -%bcond_with lldb -%else -%bcond_without lldb -%endif - Name: rust -Version: 1.72.1 -Release: 3%{?dist} +Version: 1.73.0 +Release: 1%{?dist} Summary: The Rust Programming Language License: (Apache-2.0 OR MIT) AND (Artistic-2.0 AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0 AND Unicode-DFS-2016) # ^ written as: (rust itself) and (bundled libraries) @@ -129,21 +114,13 @@ Patch3: 0001-Let-environment-variables-override-some-default-CPUs.patch Patch4: 0001-bootstrap-allow-disabling-target-self-contained.patch Patch5: 0002-set-an-external-library-path-for-wasm32-wasi.patch -# Enable the profiler runtime for native hosts -# https://github.com/rust-lang/rust/pull/114069 -Patch6: 0001-Allow-using-external-builds-of-the-compiler-rt-profi.patch - -# Fix --no-fail-fast -# https://github.com/rust-lang/rust/pull/113214 -Patch7: 0001-Don-t-fail-early-if-try_run-returns-an-error.patch - # The dist-src tarball doesn't include .github/ # https://github.com/rust-lang/rust/pull/115109 -Patch8: 0001-Skip-ExpandYamlAnchors-when-the-config-is-missing.patch +Patch6: 0001-Skip-ExpandYamlAnchors-when-the-config-is-missing.patch # wasi: round up the size for aligned_alloc # https://github.com/rust-lang/rust/pull/115254 -Patch9: 0001-wasi-round-up-the-size-for-aligned_alloc.patch +Patch7: 0001-wasi-round-up-the-size-for-aligned_alloc.patch ### RHEL-specific patches below ### @@ -151,11 +128,7 @@ Patch9: 0001-wasi-round-up-the-size-for-aligned_alloc.patch Source100: macros.rust-toolset # Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949) -Patch100: rustc-1.72.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.72.0-disable-http2.patch +Patch100: rustc-1.73.0-disable-libssh2.patch # Get the Rust triple for any arch. %{lua: function rust_triple(arch) @@ -212,12 +185,7 @@ end} Provides: bundled(%{name}-bootstrap) = %{bootstrap_version} %else BuildRequires: cargo >= %{bootstrap_version} -%if 0%{?rhel} && 0%{?rhel} < 8 -BuildRequires: %{name} >= %{bootstrap_version} -BuildConflicts: %{name} > %{version} -%else BuildRequires: (%{name} >= %{bootstrap_version} with %{name} <= %{version}) -%endif %global local_rust_root %{_prefix} %endif @@ -256,10 +224,6 @@ BuildRequires: cmake >= 2.8.11 %if 0%{?epel} == 7 %global llvm llvm14 %endif -# not ready for llvm-17 yet... -%if 0%{?fedora} >= 39 || 0%{?rhel} >= 10 -%global llvm llvm16 -%endif %if %defined llvm %global llvm_root %{_libdir}/%{llvm} %else @@ -319,14 +283,7 @@ BuildRequires: %{devtoolset_name}-gcc-c++ # While we don't want to encourage dynamic linking to Rust shared libraries, as # there's no stable ABI, we still need the unallocated metadata (.rustc) to # support custom-derive plugins like #[proc_macro_derive(Foo)]. -%if 0%{?rhel} && 0%{?rhel} < 8 -# eu-strip is very eager by default, so we have to limit it to -g, only debugging symbols. -%global _find_debuginfo_opts -g -%undefine _include_minidebuginfo -%else -# Newer find-debuginfo.sh supports --keep-section, which is preferable. rhbz1465997 %global _find_debuginfo_opts --keep-section .rustc -%endif %if %{without bundled_llvm} %if "%{llvm_root}" == "%{_prefix}" || 0%{?scl:1} @@ -364,10 +321,8 @@ find '%{buildroot}%{rustlibdir}'/wasm*/lib -type f -regex '.*\\.\\(a\\|rlib\\)' %{nil} %endif -%if 0%{?fedora} || 0%{?rhel} >= 8 # For profiler_builtins BuildRequires: compiler-rt -%endif # This component was removed as of Rust 1.69.0. # https://github.com/rust-lang/rust/pull/101841 @@ -473,8 +428,6 @@ This package includes the rust-gdb script, which allows easier debugging of Rust programs. -%if %with lldb - %package lldb Summary: LLDB pretty printers for Rust BuildArch: noarch @@ -486,8 +439,6 @@ Requires: %{name}-debugger-common = %{version}-%{release} This package includes the rust-lldb script, which allows easier debugging of Rust programs. -%endif - %package doc Summary: Documentation for Rust @@ -546,11 +497,7 @@ A tool for formatting Rust code according to style guidelines. Summary: Rust implementation of the Language Server Protocol # The standard library sources are needed for most functionality. -%if 0%{?rhel} && 0%{?rhel} < 8 -Requires: %{name}-src -%else Recommends: %{name}-src -%endif # RLS is no longer available as of Rust 1.65, but we're including the stub # binary that implements LSP just enough to recommend rust-analyzer. @@ -581,11 +528,7 @@ A collection of lints to catch common mistakes and improve your Rust code. %package src Summary: Sources for the Rust standard library BuildArch: noarch -%if 0%{?rhel} && 0%{?rhel} < 8 -Requires: %{name}-std-static = %{version}-%{release} -%else Recommends: %{name}-std-static = %{version}-%{release} -%endif %description src This package includes source files for the Rust standard library. It may be @@ -637,18 +580,11 @@ rm -rf %{wasi_libc_dir}/dlmalloc/ %endif %patch -P6 -p1 %patch -P7 -p1 -%patch -P8 -p1 -%patch -P9 -p1 %if %with disabled_libssh2 %patch -P100 -p1 %endif -%if %without curl_http2 -%patch -P101 -p1 -rm -rf vendor/libnghttp2-sys*/ -%endif - # Use our explicit python3 first sed -i.try-python -e '/^try python3 /i try "%{__python3}" "$@"' ./configure @@ -740,13 +676,7 @@ end} %ifarch %{arm} %{ix86} # full debuginfo is exhausting memory; just do libstd for now # https://github.com/rust-lang/rust/issues/45854 -%if 0%{?rhel} && 0%{?rhel} < 8 -# Older rpmbuild didn't work with partial debuginfo coverage. -%global debug_package %{nil} -%define enable_debuginfo --debuginfo-level=0 -%else %define enable_debuginfo --debuginfo-level=0 --debuginfo-level-std=2 -%endif %else %define enable_debuginfo --debuginfo-level=2 %endif @@ -786,16 +716,14 @@ fi %endif %endif -%if 0%{?fedora} || 0%{?rhel} >= 8 # Find the compiler-rt library for the Rust profiler_builtins crate. %if 0%{?clang_major_version} >= 17 -PROFILER='%{clang_resource_dir}/lib/%{_arch}-redhat-linux-gnu/libclang_rt.profile.a' +%define profiler %{clang_resource_dir}/lib/%{_arch}-redhat-linux-gnu/libclang_rt.profile.a %else # The exact profiler path is version dependent.. -PROFILER=$(echo %{_libdir}/clang/*/lib/libclang_rt.profile-%{_arch}.a) -%endif -test -r "$PROFILER" +%define profiler %(echo %{_libdir}/clang/*/lib/libclang_rt.profile-%{_arch}.a) %endif +test -r "%{profiler}" %configure --disable-option-checking \ --libdir=%{common_libdir} \ @@ -805,7 +733,7 @@ test -r "$PROFILER" --set target.%{rust_triple}.cxx=%{__cxx} \ --set target.%{rust_triple}.ar=%{__ar} \ --set target.%{rust_triple}.ranlib=%{__ranlib} \ - ${PROFILER:+--set target.%{rust_triple}.profiler="$PROFILER"} \ + --set target.%{rust_triple}.profiler="%{profiler}" \ %{?mingw_target_config} \ %{?wasm_target_config} \ --python=%{__python3} \ @@ -916,11 +844,6 @@ mkdir -p %{buildroot}%{_datadir}/cargo/registry mkdir -p %{buildroot}%{_docdir}/cargo ln -sT ../rust/html/cargo/ %{buildroot}%{_docdir}/cargo/html -%if %without lldb -rm -f %{buildroot}%{_bindir}/rust-lldb -rm -f %{buildroot}%{rustlibdir}/etc/lldb_* -%endif - # We don't want Rust copies of LLVM tools (rust-lld, rust-llvm-dwp) rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll* @@ -944,11 +867,9 @@ rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll* LD_LIBRARY_PATH="%{buildroot}%{_libdir}:$LD_LIBRARY_PATH" %{buildroot}%{_bindir}/cargo run --verbose -%if 0%{?fedora} || 0%{?rhel} >= 8 # Sanity-check that code-coverage builds and runs env RUSTFLAGS="-Cinstrument-coverage" %{buildroot}%{_bindir}/cargo run --verbose test -r default_*.profraw -%endif # Try a build sanity-check for other std-enabled targets for triple in %{?mingw_targets} %{?wasm_targets}; do @@ -961,7 +882,7 @@ rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll* # Bootstrap is excluded because it's not something we ship, and a lot of its # tests are geared toward the upstream CI environment. -%{__python3} ./x.py test --no-fail-fast --exclude src/bootstrap || : +%{__python3} ./x.py test --no-fail-fast --skip src/bootstrap || : rm -rf "./build/%{rust_triple}/test/" %{__python3} ./x.py test --no-fail-fast cargo || : @@ -1053,11 +974,9 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %exclude %{_bindir}/rust-gdbgui -%if %with lldb %files lldb %{_bindir}/rust-lldb %{rustlibdir}/etc/lldb_* -%endif %files doc @@ -1074,7 +993,6 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %license src/tools/cargo/LICENSE-{APACHE,MIT,THIRD-PARTY} %doc src/tools/cargo/README.md %{_bindir}/cargo -%{_libexecdir}/cargo* %{_mandir}/man1/cargo*.1* %{_sysconfdir}/bash_completion.d/cargo %{_datadir}/zsh/site-functions/_cargo @@ -1115,6 +1033,10 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %changelog +* Thu Oct 05 2023 Josh Stone - 1.73.0-1 +- Update to 1.73.0. +- Drop el7 conditionals from the spec. + * Fri Sep 29 2023 Josh Stone - 1.72.1-3 - Fix the profiler runtime with compiler-rt-17 - Switch to unbundled wasi-libc on Fedora diff --git a/rustc-1.72.0-disable-http2.patch b/rustc-1.72.0-disable-http2.patch deleted file mode 100644 index db2213e..0000000 --- a/rustc-1.72.0-disable-http2.patch +++ /dev/null @@ -1,92 +0,0 @@ ---- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2023-08-21 11:00:15.341608892 -0700 -+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2023-08-21 11:00:46.074984901 -0700 -@@ -743,7 +743,6 @@ - dependencies = [ - "cc", - "libc", -- "libnghttp2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", -@@ -2011,16 +2010,6 @@ - checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" - - [[package]] --name = "libnghttp2-sys" --version = "0.1.7+1.45.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f" --dependencies = [ -- "cc", -- "libc", --] -- --[[package]] - name = "libz-sys" - version = "1.1.9" - source = "registry+https://github.com/rust-lang/crates.io-index" ---- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2023-08-21 11:00:15.341608892 -0700 -+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2023-08-21 11:00:15.342608871 -0700 -@@ -118,7 +118,7 @@ - cargo-util.workspace = true - clap = { workspace = true, features = ["wrap_help"] } - crates-io.workspace = true --curl = { workspace = true, features = ["http2"] } -+curl = { workspace = true, features = [] } - curl-sys.workspace = true - env_logger.workspace = true - filetime.workspace = true ---- rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs.orig 2023-08-17 20:58:39.000000000 -0700 -+++ rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs 2023-08-21 11:00:15.343608851 -0700 -@@ -408,16 +408,9 @@ - sources: SourceMap<'cfg>, - config: &'cfg Config, - ) -> CargoResult> { -- // We've enabled the `http2` feature of `curl` in Cargo, so treat -- // failures here as fatal as it would indicate a build-time problem. -- 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)?; -+ // Multiplexing is disabled because the system libcurl doesn't support it. -+ let multi = Multi::new(); -+ let multiplexing = false; - - Ok(PackageSet { - packages: package_ids ---- rustc-beta-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs.orig 2023-08-17 20:58:39.000000000 -0700 -+++ rustc-beta-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs 2023-08-21 11:00:15.343608851 -0700 -@@ -250,16 +250,8 @@ - } - self.fetch_started = true; - -- // We've enabled the `http2` feature of `curl` in Cargo, so treat -- // failures here as fatal as it would indicate a build-time problem. -- self.multiplexing = self.config.http_config()?.multiplexing.unwrap_or(true); -- -- self.multi -- .pipelining(false, self.multiplexing) -- .with_context(|| "failed to enable multiplexing/pipelining in curl")?; -- -- // let's not flood the server with connections -- self.multi.set_max_host_connections(2)?; -+ // Multiplexing is disabled because the system libcurl doesn't support it. -+ self.multiplexing = false; - - if !self.quiet { - self.config ---- rustc-beta-src/src/tools/cargo/src/cargo/util/network/mod.rs.orig 2023-08-21 11:00:15.343608851 -0700 -+++ rustc-beta-src/src/tools/cargo/src/cargo/util/network/mod.rs 2023-08-21 11:02:01.969443986 -0700 -@@ -27,7 +27,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 { - ::log::warn!("ignoring libcurl {} error: {}", $msg, e); - } diff --git a/rustc-1.72.0-disable-libssh2.patch b/rustc-1.73.0-disable-libssh2.patch similarity index 58% rename from rustc-1.72.0-disable-libssh2.patch rename to rustc-1.73.0-disable-libssh2.patch index 1198954..96b5f4f 100644 --- a/rustc-1.72.0-disable-libssh2.patch +++ b/rustc-1.73.0-disable-libssh2.patch @@ -1,6 +1,6 @@ ---- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2023-08-17 20:58:39.000000000 -0700 -+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2023-08-21 10:52:50.520622927 -0700 -@@ -1999,7 +1999,6 @@ +--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2023-09-01 10:51:15.000000000 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.lock 2023-09-05 16:59:08.837345133 -0700 +@@ -1973,7 +1973,6 @@ dependencies = [ "cc", "libc", @@ -8,7 +8,7 @@ "libz-sys", "openssl-sys", "pkg-config", -@@ -2022,20 +2021,6 @@ +@@ -2006,20 +2005,6 @@ ] [[package]] @@ -29,14 +29,14 @@ name = "libz-sys" version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" ---- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2023-08-21 10:49:34.852578202 -0700 -+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2023-08-21 10:52:11.858404449 -0700 -@@ -31,7 +31,7 @@ - filetime = "0.2.9" - flate2 = { version = "1.0.3", default-features = false, features = ["zlib"] } +--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2023-09-05 16:59:08.837345133 -0700 ++++ rustc-beta-src/src/tools/cargo/Cargo.toml 2023-09-05 17:00:00.828461993 -0700 +@@ -37,7 +37,7 @@ + filetime = "0.2.21" + flate2 = { version = "1.0.26", default-features = false, features = ["zlib"] } fwdansi = "1.1.0" --git2 = "0.17.1" -+git2 = { version = "0.17.1", default-features = false, features = ["https"] } +-git2 = "0.17.2" ++git2 = { version = "0.17.2", default-features = false, features = ["https"] } git2-curl = "0.18.0" gix = { version = "0.45.1", default-features = false, features = ["blocking-http-transport-curl", "progress-tree"] } gix-features-for-configuration-only = { version = "0.30.0", package = "gix-features", features = [ "parallel" ] } diff --git a/sources b/sources index c0c8375..1626147 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (rustc-1.72.1-src.tar.xz) = 08232b5bf36f82a995d67f3d03d5e35b7d8914d31fb4491d4c37b72a830bc438e9d18d9e138d398b1b6ae4aa09f7f8e1e9b68da6273ab74bdae4c6123586a21b +SHA512 (rustc-1.73.0-src.tar.xz) = 75c59680a82cb9d076b9434744a1c65908524ef769293952f5d9c5779d9a9c6fa4d9aa0c7e7d6b7566a21a50a27cd6ae452b5283a4d4606b2fa1acc24dfd8e0c SHA512 (wasi-libc-bd950eb128bff337153de217b11270f948d04bb4.tar.gz) = 01e5cc3ebdab239f57816ff80f939fd87a5491a28951daf74b3310b118b4820c098ac9417771c9c6af55ca91d2cabe6498975ab9db4914aba754d87067cd1066