From f384ebe65dbc1bf9b7d1a21880ab1678400b2928 Mon Sep 17 00:00:00 2001 From: Paul Murphy Date: Thu, 26 Feb 2026 14:49:53 -0600 Subject: [PATCH] Update to Rust 1.93.0 Resolves: RHEL-141238 --- .gitignore | 3 + 0001-Use-lld-provided-by-system.patch | 23 +++-- ...llow-disabling-target-self-contained.patch | 32 +++---- ...-propagate-CARGO_TARGET_-host-_LINKE.patch | 67 +++++++++++++++ ...xternal-library-path-for-wasm32-wasi.patch | 28 +++--- rust-key.gpg.ascii | 86 +++++++++++++++++++ rust.spec | 68 +++++++++++---- rustc-1.92.0-unbundle-sqlite.patch | 23 ----- ...atch => rustc-1.93.0-disable-libssh2.patch | 20 ++--- rustc-1.93.0-unbundle-sqlite.patch | 21 +++++ sources | 5 +- wasi-no-link-builtins.patch | 31 +++++++ 12 files changed, 312 insertions(+), 95 deletions(-) create mode 100644 0001-bootstrap-always-propagate-CARGO_TARGET_-host-_LINKE.patch create mode 100644 rust-key.gpg.ascii delete mode 100644 rustc-1.92.0-unbundle-sqlite.patch rename rustc-1.92.0-disable-libssh2.patch => rustc-1.93.0-disable-libssh2.patch (50%) create mode 100644 rustc-1.93.0-unbundle-sqlite.patch create mode 100644 wasi-no-link-builtins.patch diff --git a/.gitignore b/.gitignore index 6165b7c..c6ba45c 100644 --- a/.gitignore +++ b/.gitignore @@ -459,3 +459,6 @@ /rustc-1.90.0-src.tar.xz /rustc-1.91.0-src.tar.xz /rustc-1.92.0-src.tar.xz +/rustc-1.93.0-src.tar.xz +/wasi-libc-wasi-sdk-29.tar.gz +/rustc-1.93.0-src.tar.xz.asc diff --git a/0001-Use-lld-provided-by-system.patch b/0001-Use-lld-provided-by-system.patch index 522865f..71c55ed 100644 --- a/0001-Use-lld-provided-by-system.patch +++ b/0001-Use-lld-provided-by-system.patch @@ -1,15 +1,15 @@ -From e9405caf32dfb31bf17c3da0299df515a3755107 Mon Sep 17 00:00:00 2001 +From d2fa68624463426e82f2ba19703159a46867384b Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Fri, 16 Aug 2024 10:12:58 -0700 Subject: [PATCH] Use lld provided by system --- compiler/rustc_target/src/spec/base/wasm.rs | 3 +-- - .../src/spec/targets/aarch64_unknown_none_softfloat.rs | 2 +- + .../src/spec/targets/aarch64_unknown_none_softfloat.rs | 1 - compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs | 1 + compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs | 2 +- compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs | 1 + - 5 files changed, 5 insertions(+), 4 deletions(-) + 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/compiler/rustc_target/src/spec/base/wasm.rs b/compiler/rustc_target/src/spec/base/wasm.rs index 7ede45766ea..b22362227bb 100644 @@ -26,20 +26,19 @@ index 7ede45766ea..b22362227bb 100644 pre_link_args, diff --git a/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs b/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs -index 35a4dd72b86..a9c8fc5edb8 100644 +index ad444c139bf..f5f8f18f8b8 100644 --- a/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs +++ b/compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs -@@ -15,7 +15,7 @@ pub(crate) fn target() -> Target { +@@ -15,7 +15,6 @@ pub(crate) fn target() -> Target { let opts = TargetOptions { - abi: "softfloat".into(), + abi: Abi::SoftFloat, linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes), - linker: Some("rust-lld".into()), -+ linker: Some("lld".into()), - features: "+v8a,+strict-align,-neon,-fp-armv8".into(), + features: "+v8a,+strict-align,-neon".into(), relocation_model: RelocModel::Static, disable_redzone: true, diff --git a/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs b/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs -index 327b52389b9..17313d7e8b3 100644 +index e2c1888e408..4869f85d1e6 100644 --- a/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs +++ b/compiler/rustc_target/src/spec/targets/aarch64_unknown_uefi.rs @@ -9,6 +9,7 @@ pub(crate) fn target() -> Target { @@ -51,7 +50,7 @@ index 327b52389b9..17313d7e8b3 100644 Target { llvm_target: "aarch64-unknown-windows".into(), diff --git a/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs b/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs -index 1a6343595f5..8015b082cd1 100644 +index 520a59d6a6f..1606618b683 100644 --- a/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs +++ b/compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs @@ -19,7 +19,7 @@ pub(crate) fn target() -> Target { @@ -64,7 +63,7 @@ index 1a6343595f5..8015b082cd1 100644 features: "-mmx,-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2,+soft-float".into(), supported_sanitizers: SanitizerSet::KCFI | SanitizerSet::KERNELADDRESS, diff --git a/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs b/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs -index 0cf6a879462..3677fc662de 100644 +index 8a494d0e56d..d2f4f3f42b4 100644 --- a/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs +++ b/compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs @@ -15,6 +15,7 @@ pub(crate) fn target() -> Target { @@ -76,5 +75,5 @@ index 0cf6a879462..3677fc662de 100644 // We disable MMX and SSE for now, even though UEFI allows using them. Problem is, you have to // enable these CPU features explicitly before their first use, otherwise their instructions -- -2.51.0 +2.51.1 diff --git a/0001-bootstrap-allow-disabling-target-self-contained.patch b/0001-bootstrap-allow-disabling-target-self-contained.patch index 54ca101..ca811e9 100644 --- a/0001-bootstrap-allow-disabling-target-self-contained.patch +++ b/0001-bootstrap-allow-disabling-target-self-contained.patch @@ -1,7 +1,7 @@ -From 8364de4cb8edab85efcb895824ce06f4a95bd26f Mon Sep 17 00:00:00 2001 +From 5e8b069a530092bf57dc19d8f6e5df85db1bd7d3 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mon, 18 Aug 2025 17:11:07 -0700 -Subject: [PATCH] bootstrap: allow disabling target self-contained +Subject: [PATCH 1/2] bootstrap: allow disabling target self-contained --- bootstrap.example.toml | 5 +++++ @@ -12,10 +12,10 @@ Subject: [PATCH] bootstrap: allow disabling target self-contained 5 files changed, 23 insertions(+) diff --git a/bootstrap.example.toml b/bootstrap.example.toml -index 6f37e51a47d..ee21bc06bea 100644 +index 4e850810a30..a3ae9251cf5 100644 --- a/bootstrap.example.toml +++ b/bootstrap.example.toml -@@ -1077,3 +1077,8 @@ +@@ -1102,3 +1102,8 @@ # pass `off`: # - x86_64-unknown-linux-gnu #default-linker-linux-override = "off" (for most targets) @@ -25,10 +25,10 @@ index 6f37e51a47d..ee21bc06bea 100644 +# targets may ignore this setting if they have nothing to be contained. +#self-contained = (bool) diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs -index 6857a40ada8..9a98323a704 100644 +index 02940a80295..f3e7cbafc49 100644 --- a/src/bootstrap/src/core/build_steps/compile.rs +++ b/src/bootstrap/src/core/build_steps/compile.rs -@@ -368,6 +368,10 @@ fn copy_self_contained_objects( +@@ -370,6 +370,10 @@ fn copy_self_contained_objects( compiler: &Compiler, target: TargetSelection, ) -> Vec<(PathBuf, DependencyType)> { @@ -40,10 +40,10 @@ index 6857a40ada8..9a98323a704 100644 builder.sysroot_target_libdir(*compiler, target).join("self-contained"); t!(fs::create_dir_all(&libdir_self_contained)); diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs -index 4b7ae6df360..6bab269a33c 100644 +index 2f493658ec0..d1ceea0296e 100644 --- a/src/bootstrap/src/core/config/config.rs +++ b/src/bootstrap/src/core/config/config.rs -@@ -864,6 +864,7 @@ pub(crate) fn parse_inner( +@@ -877,6 +877,7 @@ pub(crate) fn parse_inner( runner: target_runner, optimized_compiler_builtins: target_optimized_compiler_builtins, jemalloc: target_jemalloc, @@ -51,7 +51,7 @@ index 4b7ae6df360..6bab269a33c 100644 } = cfg; let mut target = Target::from_triple(&triple); -@@ -921,6 +922,9 @@ pub(crate) fn parse_inner( +@@ -934,6 +935,9 @@ pub(crate) fn parse_inner( if let Some(s) = target_no_std { target.no_std = s; } @@ -62,10 +62,10 @@ index 4b7ae6df360..6bab269a33c 100644 target.cxx = target_cxx.map(PathBuf::from); target.ar = target_ar.map(PathBuf::from); diff --git a/src/bootstrap/src/core/config/toml/target.rs b/src/bootstrap/src/core/config/toml/target.rs -index 4c7afa50b96..83b8a1b50ca 100644 +index 847b75e696b..cbe36106a6f 100644 --- a/src/bootstrap/src/core/config/toml/target.rs +++ b/src/bootstrap/src/core/config/toml/target.rs -@@ -47,6 +47,7 @@ struct TomlTarget { +@@ -48,6 +48,7 @@ struct TomlTarget { runner: Option = "runner", optimized_compiler_builtins: Option = "optimized-compiler-builtins", jemalloc: Option = "jemalloc", @@ -73,7 +73,7 @@ index 4c7afa50b96..83b8a1b50ca 100644 } } -@@ -80,6 +81,7 @@ pub struct Target { +@@ -82,6 +83,7 @@ pub struct Target { pub codegen_backends: Option>, pub optimized_compiler_builtins: Option, pub jemalloc: Option, @@ -81,7 +81,7 @@ index 4c7afa50b96..83b8a1b50ca 100644 } impl Target { -@@ -91,6 +93,9 @@ pub fn from_triple(triple: &str) -> Self { +@@ -93,6 +95,9 @@ pub fn from_triple(triple: &str) -> Self { if triple.contains("emscripten") { target.runner = Some("node".into()); } @@ -92,10 +92,10 @@ index 4c7afa50b96..83b8a1b50ca 100644 } } diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs -index dd30f05b728..cc89a84071e 100644 +index a31eb0c1c80..ca28b2cb0d9 100644 --- a/src/bootstrap/src/lib.rs +++ b/src/bootstrap/src/lib.rs -@@ -1441,6 +1441,11 @@ fn no_std(&self, target: TargetSelection) -> Option { +@@ -1448,6 +1448,11 @@ fn no_std(&self, target: TargetSelection) -> Option { self.config.target_config.get(&target).map(|t| t.no_std) } @@ -108,5 +108,5 @@ index dd30f05b728..cc89a84071e 100644 /// and `remote-test-server` binaries. fn remote_tested(&self, target: TargetSelection) -> bool { -- -2.51.0 +2.51.1 diff --git a/0001-bootstrap-always-propagate-CARGO_TARGET_-host-_LINKE.patch b/0001-bootstrap-always-propagate-CARGO_TARGET_-host-_LINKE.patch new file mode 100644 index 0000000..b8e1ac0 --- /dev/null +++ b/0001-bootstrap-always-propagate-CARGO_TARGET_-host-_LINKE.patch @@ -0,0 +1,67 @@ +From cdd0ede64037938b5ef89da2b5ac3c77ea7c6375 Mon Sep 17 00:00:00 2001 +From: Josh Stone +Date: Tue, 3 Feb 2026 16:09:21 -0800 +Subject: [PATCH] bootstrap: always propagate `CARGO_TARGET_{host}_LINKER` + +We were already setting `CARGO_TARGET_{target}_LINKER` when there is a +setting in `bootstrap.toml`, and when the host and target are the same, +this is also used for build scripts and proc-macros. + +However, the host value wasn't set when building for any other target, +and Cargo would see that as a fingerprint change for those build +artifacts, rebuilding them. + +If we always set the `CARGO_TARGET_{host}_LINKER`, then those build +scripts will keep a consistent Cargo fingerprint, so they'll remain +cached no matter how we're alternating targets. +--- + src/bootstrap/src/core/builder/cargo.rs | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +diff --git a/src/bootstrap/src/core/builder/cargo.rs b/src/bootstrap/src/core/builder/cargo.rs +index 7150b2b0d59f..488125863ee0 100644 +--- a/src/bootstrap/src/core/builder/cargo.rs ++++ b/src/bootstrap/src/core/builder/cargo.rs +@@ -10,7 +10,7 @@ + use crate::core::config::SplitDebuginfo; + use crate::core::config::flags::Color; + use crate::utils::build_stamp; +-use crate::utils::helpers::{self, LldThreads, check_cfg_arg, linker_args, linker_flags}; ++use crate::utils::helpers::{self, LldThreads, check_cfg_arg, linker_flags}; + use crate::{ + BootstrapCommand, CLang, Compiler, Config, DryRun, EXTRA_CHECK_CFGS, GitRepo, Mode, + RemapScheme, TargetSelection, command, prepare_behaviour_dump_dir, t, +@@ -310,7 +310,15 @@ fn configure_linker(&mut self, builder: &Builder<'_>) -> &mut Cargo { + } + } + +- for arg in linker_args(builder, compiler.host, LldThreads::Yes) { ++ // We need to set host linker flags for compiling build scripts and proc-macros. ++ // This is done the same way as the target linker flags below, so cargo won't see ++ // any fingerprint difference between host==target versus cross-compiled targets ++ // when it comes to those host build artifacts. ++ if let Some(host_linker) = builder.linker(compiler.host) { ++ let host = crate::envify(&compiler.host.triple); ++ self.command.env(format!("CARGO_TARGET_{host}_LINKER"), host_linker); ++ } ++ for arg in linker_flags(builder, compiler.host, LldThreads::Yes) { + self.hostflags.arg(&arg); + } + +@@ -319,11 +327,11 @@ fn configure_linker(&mut self, builder: &Builder<'_>) -> &mut Cargo { + self.command.env(format!("CARGO_TARGET_{target}_LINKER"), target_linker); + } + // We want to set -Clinker using Cargo, therefore we only call `linker_flags` and not +- // `linker_args` here. ++ // `linker_args` here. Cargo will pass that to both rustc and rustdoc invocations. + for flag in linker_flags(builder, target, LldThreads::Yes) { + self.rustflags.arg(&flag); + } +- for arg in linker_args(builder, target, LldThreads::Yes) { ++ for arg in linker_flags(builder, target, LldThreads::Yes) { + self.rustdocflags.arg(&arg); + } + +-- +2.52.0 + diff --git a/0002-set-an-external-library-path-for-wasm32-wasi.patch b/0002-set-an-external-library-path-for-wasm32-wasi.patch index 89b148f..871f613 100644 --- a/0002-set-an-external-library-path-for-wasm32-wasi.patch +++ b/0002-set-an-external-library-path-for-wasm32-wasi.patch @@ -1,4 +1,4 @@ -From 862d09fe2e8b0f5ce8fe7bfc592cda66a1d74c08 Mon Sep 17 00:00:00 2001 +From 51178db0fd3d40917a78e4b039c0412bcd332e31 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mon, 18 Aug 2025 17:13:28 -0700 Subject: [PATCH 2/2] set an external library path for wasm32-wasi @@ -11,10 +11,10 @@ Subject: [PATCH 2/2] set an external library path for wasm32-wasi 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs -index 48b01ea2df19..59b87396fed2 100644 +index d35c3b6bb18..f2a067a9e8c 100644 --- a/compiler/rustc_codegen_ssa/src/back/link.rs +++ b/compiler/rustc_codegen_ssa/src/back/link.rs -@@ -1559,6 +1559,12 @@ fn get_object_file_path(sess: &Session, name: &str, self_contained: bool) -> Pat +@@ -1565,6 +1565,12 @@ fn get_object_file_path(sess: &Session, name: &str, self_contained: bool) -> Pat return file_path; } } @@ -27,7 +27,7 @@ index 48b01ea2df19..59b87396fed2 100644 for search_path in sess.target_filesearch().search_paths(PathKind::Native) { let file_path = search_path.dir.join(name); if file_path.exists() { -@@ -2140,6 +2146,10 @@ fn add_library_search_dirs( +@@ -2142,6 +2148,10 @@ fn add_library_search_dirs( } ControlFlow::<()>::Continue(()) }); @@ -39,7 +39,7 @@ index 48b01ea2df19..59b87396fed2 100644 /// Add options making relocation sections in the produced ELF files read-only diff --git a/compiler/rustc_target/src/spec/json.rs b/compiler/rustc_target/src/spec/json.rs -index f236be92b3b6..eea6e0c203d2 100644 +index a972299deea..b3a6fe7c5ac 100644 --- a/compiler/rustc_target/src/spec/json.rs +++ b/compiler/rustc_target/src/spec/json.rs @@ -81,6 +81,7 @@ macro_rules! forward_opt { @@ -50,7 +50,7 @@ index f236be92b3b6..eea6e0c203d2 100644 forward!(pre_link_objects_self_contained); forward!(post_link_objects_self_contained); -@@ -301,6 +302,7 @@ macro_rules! target_option_val { +@@ -308,6 +309,7 @@ macro_rules! target_option_val { target_option_val!(linker_is_gnu_json, "linker-is-gnu"); target_option_val!(pre_link_objects); target_option_val!(post_link_objects); @@ -58,7 +58,7 @@ index f236be92b3b6..eea6e0c203d2 100644 target_option_val!(pre_link_objects_self_contained, "pre-link-objects-fallback"); target_option_val!(post_link_objects_self_contained, "post-link-objects-fallback"); target_option_val!(link_args - pre_link_args_json, "pre-link-args"); -@@ -511,6 +513,8 @@ struct TargetSpecJson { +@@ -520,6 +522,8 @@ struct TargetSpecJson { pre_link_objects: Option, #[serde(rename = "post-link-objects")] post_link_objects: Option, @@ -68,10 +68,10 @@ index f236be92b3b6..eea6e0c203d2 100644 pre_link_objects_self_contained: Option, #[serde(rename = "post-link-objects-fallback")] diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs -index 07fb1ce63f7c..c076c2836f84 100644 +index 424026bdcea..3e0d565b00d 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs -@@ -1992,6 +1992,7 @@ pub struct TargetOptions { +@@ -2218,6 +2218,7 @@ pub struct TargetOptions { /// Objects to link before and after all other object code. pub pre_link_objects: CrtObjects, pub post_link_objects: CrtObjects, @@ -79,7 +79,7 @@ index 07fb1ce63f7c..c076c2836f84 100644 /// Same as `(pre|post)_link_objects`, but when self-contained linking mode is enabled. pub pre_link_objects_self_contained: CrtObjects, pub post_link_objects_self_contained: CrtObjects, -@@ -2518,6 +2519,7 @@ fn default() -> TargetOptions { +@@ -2758,6 +2759,7 @@ fn default() -> TargetOptions { relro_level: RelroLevel::None, pre_link_objects: Default::default(), post_link_objects: Default::default(), @@ -88,11 +88,11 @@ index 07fb1ce63f7c..c076c2836f84 100644 post_link_objects_self_contained: Default::default(), link_self_contained: LinkSelfContainedDefault::False, diff --git a/compiler/rustc_target/src/spec/targets/wasm32_wasip1.rs b/compiler/rustc_target/src/spec/targets/wasm32_wasip1.rs -index 26add451ed25..3eaf050e6823 100644 +index 2d3dd0862d6..130ce1f225a 100644 --- a/compiler/rustc_target/src/spec/targets/wasm32_wasip1.rs +++ b/compiler/rustc_target/src/spec/targets/wasm32_wasip1.rs -@@ -21,11 +21,12 @@ pub(crate) fn target() -> Target { - options.env = "p1".into(); +@@ -22,11 +22,12 @@ pub(crate) fn target() -> Target { + options.env = Env::P1; options.add_pre_link_args(LinkerFlavor::WasmLld(Cc::Yes), &["--target=wasm32-wasip1"]); - options.pre_link_objects_self_contained = crt_objects::pre_wasi_self_contained(); @@ -108,5 +108,5 @@ index 26add451ed25..3eaf050e6823 100644 // Right now this is a bit of a workaround but we're currently saying that // the target by default has a static crt which we're taking as a signal -- -2.51.0 +2.51.1 diff --git a/rust-key.gpg.ascii b/rust-key.gpg.ascii new file mode 100644 index 0000000..93e2282 --- /dev/null +++ b/rust-key.gpg.ascii @@ -0,0 +1,86 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1 + +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 +Mve696B5tlHyc1KxjHR6w9GRsh4= +=5FXw +-----END PGP PUBLIC KEY BLOCK----- diff --git a/rust.spec b/rust.spec index af88a70..7c0b418 100644 --- a/rust.spec +++ b/rust.spec @@ -1,5 +1,5 @@ Name: rust -Version: 1.92.0 +Version: 1.93.0 Release: %autorelease 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-3.0) @@ -14,9 +14,9 @@ ExclusiveArch: %{rust_arches} # To bootstrap from scratch, set the channel and date from src/stage0 # e.g. 1.89.0 wants rustc: 1.88.0-2025-06-26 # or nightly wants some beta-YYYY-MM-DD -%global bootstrap_version 1.91.0 -%global bootstrap_channel 1.91.0 -%global bootstrap_date 2025-10-30 +%global bootstrap_version 1.92.0 +%global bootstrap_channel 1.92.0 +%global bootstrap_date 2025-12-11 # Only the specified arches will use bootstrap binaries. # NOTE: Those binaries used to be uploaded with every new release, but that was @@ -28,7 +28,7 @@ ExclusiveArch: %{rust_arches} # We need CRT files for *-wasi targets, at least as new as the commit in # src/ci/docker/host-x86_64/dist-various-2/build-wasi-toolchain.sh %global wasi_libc_url https://github.com/WebAssembly/wasi-libc -%global wasi_libc_ref wasi-sdk-27 +%global wasi_libc_ref wasi-sdk-29 %global wasi_libc_name wasi-libc-%{wasi_libc_ref} %global wasi_libc_source %{wasi_libc_url}/archive/%{wasi_libc_ref}/%{wasi_libc_name}.tar.gz %global wasi_libc_dir %{_builddir}/%{wasi_libc_name} @@ -44,8 +44,9 @@ ExclusiveArch: %{rust_arches} # We can also choose to just use Rust's bundled LLVM, in case the system LLVM # is insufficient. Rust currently requires LLVM 19.0+. # See src/bootstrap/src/core/build_steps/llvm.rs, fn check_llvm_version +# See src/llvm-project/cmake/Modules/LLVMVersion.cmake for bundled version. %global min_llvm_version 20.0.0 -%global bundled_llvm_version 21.1.3 +%global bundled_llvm_version 21.1.5 #global llvm_compat_version 19 %global llvm llvm%{?llvm_compat_version} %bcond_with bundled_llvm @@ -118,7 +119,11 @@ ExclusiveArch: %{rust_arches} rpm.define("rustc_package rustc-" .. version_channel .. "-src") end} Source0: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz -Source1: %{wasi_libc_source} +Source1: https://static.rust-lang.org/dist/%{rustc_package}.tar.xz.asc +Source2: https://static.rust-lang.org/rust-key.gpg.ascii + +Source10: %{wasi_libc_source} + # Sources for bootstrap_arches are inserted by lua below # By default, rust tries to use "rust-lld" as a linker for some targets. @@ -138,11 +143,15 @@ Patch4: 0001-bootstrap-allow-disabling-target-self-contained.patch Patch5: 0002-set-an-external-library-path-for-wasm32-wasi.patch # We don't want to use the bundled library in libsqlite3-sys -Patch6: rustc-1.92.0-unbundle-sqlite.patch +Patch6: rustc-1.93.0-unbundle-sqlite.patch # stage0 tries to copy all of /usr/lib, sometimes unsuccessfully, see #143735 Patch7: 0001-only-copy-rustlib-into-stage0-sysroot.patch +# bootstrap: always propagate `CARGO_TARGET_{host}_LINKER` +# https://github.com/rust-lang/rust/pull/152077 +Patch8: 0001-bootstrap-always-propagate-CARGO_TARGET_-host-_LINKE.patch + ### RHEL-specific patches below ### # Simple rpm macros for rust-toolset (as opposed to full rust-packaging) @@ -152,7 +161,10 @@ Source102: cargo_vendor.attr Source103: cargo_vendor.prov # Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949) -Patch100: rustc-1.92.0-disable-libssh2.patch +Patch100: rustc-1.93.0-disable-libssh2.patch + +# When building wasi, prevent linking a compiler-rt builtins library we don't have. +Patch1000: wasi-no-link-builtins.patch # Get the Rust triple for any architecture and ABI. %{lua: function rust_triple(arch, abi) @@ -218,15 +230,21 @@ end} local channel = rpm.expand("%{bootstrap_channel}") local target_arch = rpm.expand("%{_target_cpu}") for i, arch in ipairs(bootstrap_arches) do - i = 1000 + i * 3 + i = 1000 + i * 6 local suffix = channel.."-"..rust_triple(arch) print(string.format("Source%d: %s/cargo-%s.tar.xz\n", i, base, suffix)) - print(string.format("Source%d: %s/rustc-%s.tar.xz\n", i+1, base, suffix)) - print(string.format("Source%d: %s/rust-std-%s.tar.xz\n", i+2, base, suffix)) + print(string.format("Source%d: %s/cargo-%s.tar.xz.asc\n", i+1, base, suffix)) + print(string.format("Source%d: %s/rustc-%s.tar.xz\n", i+2, base, suffix)) + print(string.format("Source%d: %s/rustc-%s.tar.xz.asc\n", i+3, base, suffix)) + print(string.format("Source%d: %s/rust-std-%s.tar.xz\n", i+4, base, suffix)) + print(string.format("Source%d: %s/rust-std-%s.tar.xz.asc\n", i+5, base, suffix)) if arch == target_arch then rpm.define("bootstrap_source_cargo "..i) - rpm.define("bootstrap_source_rustc "..i+1) - rpm.define("bootstrap_source_std "..i+2) + rpm.define("bootstrap_sig_cargo "..i+1) + rpm.define("bootstrap_source_rustc "..i+2) + rpm.define("bootstrap_sig_rustc "..i+3) + rpm.define("bootstrap_source_std "..i+4) + rpm.define("bootstrap_sig_std "..i+5) rpm.define("bootstrap_suffix "..suffix) end end @@ -242,6 +260,12 @@ BuildRequires: (%{name} >= %{bootstrap_version} with %{name} <= %{version}) %global local_rust_root %{_prefix} %endif +%if 0%{?rhel} && 0%{?rhel} < 11 +BuildRequires: gnupg2 +%else +BuildRequires: gpgverify +%endif + BuildRequires: make BuildRequires: gcc BuildRequires: gcc-c++ @@ -663,8 +687,12 @@ the Cargo package manager, and a few convenience macros for rpm builds. %prep +%gpgverify -k 2 -s 1 -d 0 %ifarch %{bootstrap_arches} +%gpgverify -k 2 -s %{bootstrap_sig_cargo} -d %{bootstrap_source_cargo} +%gpgverify -k 2 -s %{bootstrap_sig_rustc} -d %{bootstrap_source_rustc} +%gpgverify -k 2 -s %{bootstrap_sig_std} -d %{bootstrap_source_std} rm -rf %{local_rust_root} %setup -q -n cargo-%{bootstrap_suffix} -T -b %{bootstrap_source_cargo} ./install.sh --prefix=%{local_rust_root} --disable-ldconfig @@ -677,8 +705,10 @@ test -f '%{local_rust_root}/bin/rustc' %endif %if %{defined wasm_targets} && %{with bundled_wasi_libc} -%setup -q -n %{wasi_libc_name} -T -b 1 +%setup -q -n %{wasi_libc_name} -T -b 10 rm -rf %{wasi_libc_dir}/dlmalloc/ + +%patch -P1000 -p1 %endif %setup -q -n %{rustc_package} @@ -694,6 +724,7 @@ rm -rf %{wasi_libc_dir}/dlmalloc/ %patch -P6 -p1 %endif %patch -P7 -p1 +%patch -P8 -p1 %if %with disabled_libssh2 %patch -P100 -p1 @@ -727,6 +758,7 @@ rm -rf src/tools/rustc-perf/collector/*-benchmarks/ %clear_dir vendor/libz-sys*/src/zlib{,-ng}/ %clear_dir vendor/lzma-sys*/xz-*/ %clear_dir vendor/openssl-src*/openssl/ +%clear_dir vendor/capstone-sys-*/capstone/ %if %without bundled_libgit2 %clear_dir vendor/libgit2-sys*/libgit2/ @@ -1079,9 +1111,11 @@ rm -rf "./build/%{rust_triple}/test/" %endif %if %with disabled_libssh2 # These tests need ssh - guaranteed to fail when libssh2 is disabled. -%global cargo_test_skip_list %{cargo_test_skip_list} \\\ - net_err_suggests_fetch_with_cli \\\ +%global cargo_test_skip_list %{shrink: + %{cargo_test_skip_list} + net_err_suggests_fetch_with_cli ssh_something_happens +} %endif %if "%{cargo_test_skip_list}" != "" %define cargo_test_skip --test-args "%(printf -- '--skip %%s ' %{cargo_test_skip_list})" diff --git a/rustc-1.92.0-unbundle-sqlite.patch b/rustc-1.92.0-unbundle-sqlite.patch deleted file mode 100644 index fb0b284..0000000 --- a/rustc-1.92.0-unbundle-sqlite.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools/cargo/Cargo.lock ---- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2025-11-07 13:31:19.003737886 +0100 -+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2025-11-07 13:14:41.637982893 +0100 -@@ -2835,7 +2835,6 @@ version = "0.35.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "133c182a6a2c87864fe97778797e46c7e999672690dc9fa3ee8e241aa4a9c13f" - dependencies = [ -- "cc", - "pkg-config", - "vcpkg", - ] -diff -up rustc-beta-src/src/tools/cargo/Cargo.toml.orig rustc-beta-src/src/tools/cargo/Cargo.toml ---- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2025-11-07 13:31:28.338643618 +0100 -+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2025-11-07 13:15:00.266505214 +0100 -@@ -81,7 +81,7 @@ proptest = "1.8.0" - pulldown-cmark = { version = "0.13.0", default-features = false, features = ["html"] } - rand = "0.9.2" - regex = "1.11.3" --rusqlite = { version = "0.37.0", features = ["bundled"] } -+rusqlite = { version = "0.37.0", features = [] } - rustc-hash = "2.1.1" - rustc-stable-hash = "0.1.2" - rustfix = { version = "0.9.2", path = "crates/rustfix" } diff --git a/rustc-1.92.0-disable-libssh2.patch b/rustc-1.93.0-disable-libssh2.patch similarity index 50% rename from rustc-1.92.0-disable-libssh2.patch rename to rustc-1.93.0-disable-libssh2.patch index a03668f..2598b1b 100644 --- a/rustc-1.92.0-disable-libssh2.patch +++ b/rustc-1.93.0-disable-libssh2.patch @@ -1,7 +1,6 @@ -diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools/cargo/Cargo.lock ---- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2025-08-16 15:47:14.000000000 -0700 -+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2025-08-18 17:31:39.554771554 -0700 -@@ -2800,7 +2800,6 @@ checksum = "1c42fe03df2bd3c53a3a9c7317ad +--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2025-12-18 15:41:44.817782261 -0600 ++++ rustc-beta-src/src/tools/cargo/Cargo.lock 2025-12-18 15:45:06.653151595 -0600 +@@ -2775,7 +2775,6 @@ checksum = "1c42fe03df2bd3c53a3a9c7317ad dependencies = [ "cc", "libc", @@ -9,7 +8,7 @@ diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools "libz-sys", "openssl-sys", "pkg-config", -@@ -2847,20 +2846,6 @@ dependencies = [ +@@ -2822,20 +2821,6 @@ dependencies = [ "pkg-config", "vcpkg", ] @@ -30,15 +29,14 @@ diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools [[package]] name = "libz-rs-sys" -diff -up rustc-beta-src/src/tools/cargo/Cargo.toml.orig rustc-beta-src/src/tools/cargo/Cargo.toml ---- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2025-08-16 15:47:14.000000000 -0700 -+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2025-08-18 17:33:02.401743230 -0700 -@@ -46,7 +46,7 @@ curl = "0.4.48" +--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2025-12-18 15:41:49.665815151 -0600 ++++ rustc-beta-src/src/tools/cargo/Cargo.toml 2025-12-18 15:45:45.253541794 -0600 +@@ -48,7 +48,7 @@ curl = "0.4.49" curl-sys = "0.4.83" filetime = "0.2.26" - flate2 = { version = "1.1.2", default-features = false, features = ["zlib-rs"] } + flate2 = { version = "1.1.5", default-features = false, features = ["zlib-rs"] } -git2 = "0.20.2" +git2 = { version = "0.20.2", default-features = false, features = ["https"] } git2-curl = "0.21.0" # When updating this, also see if `gix-transport` further down needs updating or some auth-related tests will fail. - gix = { version = "0.73.0", default-features = false, features = ["progress-tree", "parallel", "dirwalk", "status"] } + gix = { version = "0.74.1", default-features = false, features = ["progress-tree", "parallel", "dirwalk", "status"] } diff --git a/rustc-1.93.0-unbundle-sqlite.patch b/rustc-1.93.0-unbundle-sqlite.patch new file mode 100644 index 0000000..955a1fc --- /dev/null +++ b/rustc-1.93.0-unbundle-sqlite.patch @@ -0,0 +1,21 @@ +--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2025-12-18 15:09:44.157650741 -0600 ++++ rustc-beta-src/src/tools/cargo/Cargo.lock 2025-12-18 15:10:14.837395011 -0600 +@@ -2817,7 +2817,6 @@ version = "0.35.0" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "133c182a6a2c87864fe97778797e46c7e999672690dc9fa3ee8e241aa4a9c13f" + dependencies = [ +- "cc", + "pkg-config", + "vcpkg", + ] +--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2025-12-18 15:09:57.641723932 -0600 ++++ rustc-beta-src/src/tools/cargo/Cargo.toml 2025-12-18 15:10:36.866959259 -0600 +@@ -83,7 +83,7 @@ proptest = "1.9.0" + pulldown-cmark = { version = "0.13.0", default-features = false, features = ["html"] } + rand = "0.9.2" + regex = "1.12.2" +-rusqlite = { version = "0.37.0", features = ["bundled"] } ++rusqlite = { version = "0.37.0", features = [] } + rustc-hash = "2.1.1" + rustc-stable-hash = "0.1.2" + rustfix = { version = "0.9.2", path = "crates/rustfix" } diff --git a/sources b/sources index 08ae3f4..df084a1 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ -SHA512 (wasi-libc-wasi-sdk-27.tar.gz) = dfc2c36fabf32f465fc833ed0b10efffc9a35c68162ecc3e8d656d1d684d170b734d55e790614d12d925d17f49d60f0d2d01c46cecac941cf62d68eda84df13e -SHA512 (rustc-1.92.0-src.tar.xz) = a2c0b127933595b9bc2063d7b7c88d9af512c4664b18f29d44c9a6e2c68d194b87a3071717e8f1b7c858ae940baca888e10be95cd31e0201916d0bfc312a3b15 +SHA512 (rustc-1.93.0-src.tar.xz) = 9362a4b56529ce29362e256daf382b73c73204d0e9fe5b39addf07ff66a30aa66c967e34df9021ea007c13a9f3bb6efdefca1c8e4ea1bde9aac050a9fb0c736b +SHA512 (wasi-libc-wasi-sdk-29.tar.gz) = ee803c0eb6c5dab119660926cb2d3ce044cc6f1f32b7cc266d89c25c031480f34c27ab2638df34e192321add629699c6a473438b94f899a28ae9e806ab07d87b +SHA512 (rustc-1.93.0-src.tar.xz.asc) = a6ea05bb6b7d3b429a1c863622c93ac4c97b25f56027f7f06f085acde26d1395f3515cc764ae3ef941d1669556a02365755b34e28ccaebe70c1ccb84c977228f diff --git a/wasi-no-link-builtins.patch b/wasi-no-link-builtins.patch new file mode 100644 index 0000000..77a4c66 --- /dev/null +++ b/wasi-no-link-builtins.patch @@ -0,0 +1,31 @@ +--- wasi-libc-wasi-sdk-29/Makefile.orig 2026-01-08 16:43:58.310813769 -0600 ++++ wasi-libc-wasi-sdk-29/Makefile 2026-01-08 16:49:21.516204812 -0600 +@@ -643,17 +643,15 @@ builtins: $(BUILTINS_LIB_PATH) + + # Note: libc.so is special because it shouldn't link to libc.so, and the + # -nodefaultlibs flag here disables the default `-lc` logic that clang +-# has. Note though that this also disables linking of compiler-rt +-# libraries so that is explicitly passed in via `$(BUILTINS_LIB_PATH)` ++# has. + # + # Note: --allow-undefined-file=linker-provided-symbols.txt is + # a workaround for https://github.com/llvm/llvm-project/issues/103592 +-$(SYSROOT_LIB)/libc.so: $(OBJDIR)/libc.so.a $(BUILTINS_LIB_PATH) ++$(SYSROOT_LIB)/libc.so: $(OBJDIR)/libc.so.a + $(CC) --target=${TARGET_TRIPLE} -nodefaultlibs \ + -shared --sysroot=$(SYSROOT) \ + -o $@ -Wl,--whole-archive $< -Wl,--no-whole-archive \ + -Wl,--allow-undefined-file=linker-provided-symbols.txt \ +- $(BUILTINS_LIB_PATH) \ + $(EXTRA_CFLAGS) $(LDFLAGS) + + # Note that unlike `libc.so` above this rule does not pass `-nodefaultlibs` +@@ -865,7 +863,7 @@ STATIC_LIBS += \ + $(SYSROOT_LIB)/libsetjmp.a + endif + +-libc: $(INCLUDE_DIRS) $(STATIC_LIBS) builtins ++libc: $(INCLUDE_DIRS) $(STATIC_LIBS) + + DUMMY := m rt pthread crypt util xnet resolv + DUMMY_LIBS := $(patsubst %,$(SYSROOT_LIB)/lib%.a,$(DUMMY))