Update to Rust 1.90.0

This commit is contained in:
Josh Stone 2025-09-18 09:27:17 -07:00
commit dfeceeebed
12 changed files with 152 additions and 182 deletions

1
.gitignore vendored
View file

@ -456,3 +456,4 @@
/rustc-1.88.0-src.tar.xz
/wasi-libc-wasi-sdk-27.tar.gz
/rustc-1.89.0-src.tar.xz
/rustc-1.90.0-src.tar.xz

View file

@ -1,4 +1,4 @@
From b5cdd50a21e27bde3fbbff5fe67df79b88fadb05 Mon Sep 17 00:00:00 2001
From 4815c3cd733812bec777970ff4b1e73c2fcad1a6 Mon Sep 17 00:00:00 2001
From: Paul Murphy <paumurph@redhat.com>
Date: Tue, 24 Jun 2025 11:07:54 -0500
Subject: [PATCH] Allow linking a prebuilt optimized compiler-rt builtins
@ -7,6 +7,8 @@ Subject: [PATCH] Allow linking a prebuilt optimized compiler-rt builtins
Extend the <target>.optimized-compiler-builtins bootstrap option to accept a
path to a prebuilt compiler-rt builtins library, and update compiler-builtins
to enable optimized builtins without building compiler-rt builtins.
(cherry picked from commit b382478bba7b8f75c73673c239fa86a29db66223)
---
bootstrap.example.toml | 4 +-
.../compiler-builtins/build.rs | 55 ++++++++++++++++---
@ -17,10 +19,10 @@ to enable optimized builtins without building compiler-rt builtins.
6 files changed, 87 insertions(+), 34 deletions(-)
diff --git a/bootstrap.example.toml b/bootstrap.example.toml
index 916bae8dc7d..cb80c9dd31e 100644
index 82041167b444..a11aec1b60e5 100644
--- a/bootstrap.example.toml
+++ b/bootstrap.example.toml
@@ -967,7 +967,9 @@
@@ -1038,7 +1038,9 @@
# sources are available.
#
# Setting this to `false` generates slower code, but removes the requirement for a C toolchain in
@ -32,10 +34,10 @@ index 916bae8dc7d..cb80c9dd31e 100644
# Link the compiler and LLVM against `jemalloc` instead of the default libc allocator.
diff --git a/library/compiler-builtins/compiler-builtins/build.rs b/library/compiler-builtins/compiler-builtins/build.rs
index 018899faf1d..3ad888ed26a 100644
index 8f51c12b535d..b8de1789ebc7 100644
--- a/library/compiler-builtins/compiler-builtins/build.rs
+++ b/library/compiler-builtins/compiler-builtins/build.rs
@@ -548,12 +548,20 @@ pub fn compile(llvm_target: &[&str], target: &Target) {
@@ -547,12 +547,20 @@ pub fn compile(llvm_target: &[&str], target: &Target) {
sources.extend(&[("__emutls_get_address", "emutls.c")]);
}
@ -56,7 +58,7 @@ index 018899faf1d..3ad888ed26a 100644
None => {
panic!(
"RUST_COMPILER_RT_ROOT is not set. You may need to run \
@@ -561,7 +569,7 @@ pub fn compile(llvm_target: &[&str], target: &Target) {
@@ -560,7 +568,7 @@ pub fn compile(llvm_target: &[&str], target: &Target) {
);
}
};
@ -65,7 +67,7 @@ index 018899faf1d..3ad888ed26a 100644
panic!("RUST_COMPILER_RT_ROOT={} does not exist", root.display());
}
@@ -577,7 +585,7 @@ pub fn compile(llvm_target: &[&str], target: &Target) {
@@ -576,7 +584,7 @@ pub fn compile(llvm_target: &[&str], target: &Target) {
let src_dir = root.join("lib/builtins");
if target.arch == "aarch64" && target.env != "msvc" && target.os != "uefi" {
// See below for why we're building these as separate libraries.
@ -74,7 +76,7 @@ index 018899faf1d..3ad888ed26a 100644
// Some run-time CPU feature detection is necessary, as well.
let cpu_model_src = if src_dir.join("cpu_model.c").exists() {
@@ -591,20 +599,45 @@ pub fn compile(llvm_target: &[&str], target: &Target) {
@@ -590,20 +598,45 @@ pub fn compile(llvm_target: &[&str], target: &Target) {
let mut added_sources = HashSet::new();
for (sym, src) in sources.map.iter() {
let src = src_dir.join(src);
@ -124,7 +126,7 @@ index 018899faf1d..3ad888ed26a 100644
cfg.include(&builtins_dir);
@@ -617,6 +650,13 @@ fn build_aarch64_out_of_line_atomics_libraries(builtins_dir: &Path, cfg: &mut cc
@@ -616,6 +649,13 @@ fn build_aarch64_out_of_line_atomics_libraries(builtins_dir: &Path, cfg: &mut cc
for (model_number, model_name) in
&[(1, "relax"), (2, "acq"), (3, "rel"), (4, "acq_rel")]
{
@ -138,7 +140,7 @@ index 018899faf1d..3ad888ed26a 100644
// The original compiler-rt build system compiles the same
// source file multiple times with different compiler
// options. Here we do something slightly different: we
@@ -640,9 +680,6 @@ fn build_aarch64_out_of_line_atomics_libraries(builtins_dir: &Path, cfg: &mut cc
@@ -639,9 +679,6 @@ fn build_aarch64_out_of_line_atomics_libraries(builtins_dir: &Path, cfg: &mut cc
.unwrap();
drop(file);
cfg.file(path);
@ -149,10 +151,10 @@ index 018899faf1d..3ad888ed26a 100644
}
}
diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs
index 4ef70dd9b97..e9393f7dcaa 100644
index 7a5533346adf..39c9db3d6c35 100644
--- a/src/bootstrap/src/core/build_steps/compile.rs
+++ b/src/bootstrap/src/core/build_steps/compile.rs
@@ -578,25 +578,31 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car
@@ -572,25 +572,31 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car
// `compiler-builtins` crate is enabled and it's configured to learn where
// `compiler-rt` is located.
let compiler_builtins_c_feature = if builder.config.optimized_compiler_builtins(target) {
@ -204,10 +206,10 @@ index 4ef70dd9b97..e9393f7dcaa 100644
} else {
""
diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs
index d3393afcae0..5834be7643c 100644
index 6055876c4757..588c3489f898 100644
--- a/src/bootstrap/src/core/config/config.rs
+++ b/src/bootstrap/src/core/config/config.rs
@@ -1728,10 +1728,18 @@ pub fn rpath_enabled(&self, target: TargetSelection) -> bool {
@@ -1769,10 +1769,18 @@ pub fn rpath_enabled(&self, target: TargetSelection) -> bool {
pub fn optimized_compiler_builtins(&self, target: TargetSelection) -> bool {
self.target_config
.get(&target)
@ -225,10 +227,10 @@ index d3393afcae0..5834be7643c 100644
+ }
+
pub fn llvm_enabled(&self, target: TargetSelection) -> bool {
self.codegen_backends(target).contains(&"llvm".to_owned())
self.codegen_backends(target).contains(&CodegenBackendKind::Llvm)
}
diff --git a/src/bootstrap/src/core/config/tests.rs b/src/bootstrap/src/core/config/tests.rs
index 50eba12aba7..c32e4384cf6 100644
index 50eba12aba74..c32e4384cf62 100644
--- a/src/bootstrap/src/core/config/tests.rs
+++ b/src/bootstrap/src/core/config/tests.rs
@@ -17,7 +17,7 @@
@ -250,7 +252,7 @@ index 50eba12aba7..c32e4384cf6 100644
};
assert_eq!(
diff --git a/src/bootstrap/src/core/config/toml/target.rs b/src/bootstrap/src/core/config/toml/target.rs
index 41a4a815d31..022d042d271 100644
index 69afa8af3419..5ddb8c50c146 100644
--- a/src/bootstrap/src/core/config/toml/target.rs
+++ b/src/bootstrap/src/core/config/toml/target.rs
@@ -45,7 +45,7 @@ struct TomlTarget {
@ -265,7 +267,7 @@ index 41a4a815d31..022d042d271 100644
@@ -78,7 +78,7 @@ pub struct Target {
pub runner: Option<String>,
pub no_std: bool,
pub codegen_backends: Option<Vec<String>>,
pub codegen_backends: Option<Vec<CodegenBackendKind>>,
- pub optimized_compiler_builtins: Option<bool>,
+ pub optimized_compiler_builtins: Option<StringOrBool>,
pub jemalloc: Option<bool>,

View file

@ -1,39 +0,0 @@
From 9bdd3b0ee6a6fd5914fea0f56f3b754410733e53 Mon Sep 17 00:00:00 2001
From: Paul Murphy <paumurph@redhat.com>
Date: Thu, 10 Jul 2025 10:58:58 -0500
Subject: [PATCH] Don't always panic if WASI_SDK_PATH is not set when detecting
compilers
They are not always needed when building std, as is the case when
packaging on Fedora. Panic if building from CI, but warn otherwise.
---
src/bootstrap/src/utils/cc_detect.rs | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/bootstrap/src/utils/cc_detect.rs b/src/bootstrap/src/utils/cc_detect.rs
index dcafeb80f90..2569f95e3ef 100644
--- a/src/bootstrap/src/utils/cc_detect.rs
+++ b/src/bootstrap/src/utils/cc_detect.rs
@@ -221,10 +221,15 @@ fn default_compiler(
}
t if t.contains("-wasi") => {
- let root = build
- .wasi_sdk_path
- .as_ref()
- .expect("WASI_SDK_PATH mut be configured for a -wasi target");
+ let root = if let Some(path) = build.wasi_sdk_path.as_ref() {
+ path
+ } else {
+ if build.config.is_running_on_ci {
+ panic!("ERROR: WASI_SDK_PATH must be configured for a -wasi target on CI");
+ }
+ println!("WARNING: WASI_SDK_PATH not set, using default cc/cxx compiler");
+ return None;
+ };
let compiler = match compiler {
Language::C => format!("{t}-clang"),
Language::CPlusPlus => format!("{t}-clang++"),
--
2.49.0

View file

@ -1,6 +1,6 @@
From 6af71d8ff0932bc14102cd9cbfbca16354c5cd2a Mon Sep 17 00:00:00 2001
From: Jesus Checa Hidalgo <jchecahi@redhat.com>
Date: Mon, 7 Apr 2025 16:59:10 +0200
From b51b8d1854e7e2e7b7b431da26adad6b3677f6d2 Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone@redhat.com>
Date: Mon, 18 Aug 2025 17:11:07 -0700
Subject: [PATCH 1/2] bootstrap: allow disabling target self-contained
---
@ -11,26 +11,23 @@ Subject: [PATCH 1/2] bootstrap: allow disabling target self-contained
4 files changed, 22 insertions(+)
diff --git a/bootstrap.example.toml b/bootstrap.example.toml
index 19cf360b0fb..916bae8dc7d 100644
index 31966af33012..82041167b444 100644
--- a/bootstrap.example.toml
+++ b/bootstrap.example.toml
@@ -974,6 +974,11 @@
@@ -1044,3 +1044,8 @@
# Link the compiler and LLVM against `jemalloc` instead of the default libc allocator.
# This overrides the global `rust.jemalloc` option. See that option for more info.
#jemalloc = rust.jemalloc (bool)
+
+# Copy libc and CRT objects into the target lib/self-contained/ directory.
+# Enabled by default on `musl`, `wasi`, and `windows-gnu` targets. Other
+# targets may ignore this setting if they have nothing to be contained.
+#self-contained = <platform-specific> (bool)
+
# =============================================================================
# Distribution options
#
diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs
index f6efb23e8d8..4d0ae54e1ef 100644
index 59541bf12def..7a5533346adf 100644
--- a/src/bootstrap/src/core/build_steps/compile.rs
+++ b/src/bootstrap/src/core/build_steps/compile.rs
@@ -374,6 +374,10 @@ fn copy_self_contained_objects(
@@ -370,6 +370,10 @@ fn copy_self_contained_objects(
compiler: &Compiler,
target: TargetSelection,
) -> Vec<(PathBuf, DependencyType)> {
@ -42,7 +39,7 @@ index f6efb23e8d8..4d0ae54e1ef 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/toml/target.rs b/src/bootstrap/src/core/config/toml/target.rs
index b9f6780ca3f..41a4a815d31 100644
index 9dedadff3a19..69afa8af3419 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 {
@ -54,7 +51,7 @@ index b9f6780ca3f..41a4a815d31 100644
}
@@ -79,6 +80,7 @@ pub struct Target {
pub codegen_backends: Option<Vec<String>>,
pub codegen_backends: Option<Vec<CodegenBackendKind>>,
pub optimized_compiler_builtins: Option<bool>,
pub jemalloc: Option<bool>,
+ pub self_contained: bool,
@ -82,10 +79,10 @@ index b9f6780ca3f..41a4a815d31 100644
target.cxx = cfg.cxx.map(PathBuf::from);
target.ar = cfg.ar.map(PathBuf::from);
diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs
index f44fe4548a1..8ce9f09efb1 100644
index 011b52df97bb..77b2d9205a43 100644
--- a/src/bootstrap/src/lib.rs
+++ b/src/bootstrap/src/lib.rs
@@ -1331,6 +1331,11 @@ fn no_std(&self, target: TargetSelection) -> Option<bool> {
@@ -1423,6 +1423,11 @@ fn no_std(&self, target: TargetSelection) -> Option<bool> {
self.config.target_config.get(&target).map(|t| t.no_std)
}
@ -98,5 +95,5 @@ index f44fe4548a1..8ce9f09efb1 100644
/// and `remote-test-server` binaries.
fn remote_tested(&self, target: TargetSelection) -> bool {
--
2.49.0
2.50.1

View file

@ -1,4 +1,4 @@
From aa701b52fb9b24b7540d49e76e0376f78cc9fdfc Mon Sep 17 00:00:00 2001
From 8ff00974436f25585850e3029d8e5a3e2a8340da Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone@redhat.com>
Date: Thu, 14 Aug 2025 16:02:31 -0700
Subject: [PATCH] rustc_expand: ensure stack in
@ -24,18 +24,18 @@ regress the original issue across those refactors.
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/compiler/rustc_expand/src/expand.rs b/compiler/rustc_expand/src/expand.rs
index 0474413e7626..49c9ca1f0508 100644
index f02aa6c120f9..0cfda7c4739f 100644
--- a/compiler/rustc_expand/src/expand.rs
+++ b/compiler/rustc_expand/src/expand.rs
@@ -14,6 +14,7 @@
};
@@ -15,6 +15,7 @@
use rustc_ast_pretty::pprust;
use rustc_attr_parsing::{EvalConfigResult, ShouldEmit};
use rustc_data_structures::flat_map_in_place::FlatMapInPlace;
+use rustc_data_structures::stack::ensure_sufficient_stack;
use rustc_errors::PResult;
use rustc_feature::Features;
use rustc_parse::parser::{
@@ -2428,7 +2429,7 @@ fn visit_expr(&mut self, node: &mut ast::Expr) {
@@ -2439,7 +2440,7 @@ fn visit_expr(&mut self, node: &mut ast::Expr) {
if let Some(attr) = node.attrs.first() {
self.cfg().maybe_emit_expr_attr_err(attr);
}

View file

@ -1,17 +1,17 @@
From 0539027ae7a60cd6ddf2190450240d35a147599d Mon Sep 17 00:00:00 2001
From: Jesus Checa Hidalgo <jchecahi@redhat.com>
Date: Mon, 7 Apr 2025 17:22:56 +0200
From 3730abcf2b86d650da97a11190af8dcbfeae311a Mon Sep 17 00:00:00 2001
From: Josh Stone <jistone@redhat.com>
Date: Mon, 18 Aug 2025 17:13:28 -0700
Subject: [PATCH 2/2] set an external library path for wasm32-wasi
---
compiler/rustc_codegen_ssa/src/back/link.rs | 10 ++++++++++
compiler/rustc_target/src/spec/json.rs | 2 ++
compiler/rustc_target/src/spec/json.rs | 4 ++++
compiler/rustc_target/src/spec/mod.rs | 2 ++
.../rustc_target/src/spec/targets/wasm32_wasip1.rs | 7 ++++---
4 files changed, 18 insertions(+), 3 deletions(-)
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 8882ba359b7..914e5c1398f 100644
index 162fbf3d6e24..2acfd6dd96b2 100644
--- a/compiler/rustc_codegen_ssa/src/back/link.rs
+++ b/compiler/rustc_codegen_ssa/src/back/link.rs
@@ -1548,6 +1548,12 @@ fn get_object_file_path(sess: &Session, name: &str, self_contained: bool) -> Pat
@ -39,18 +39,18 @@ index 8882ba359b7..914e5c1398f 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 6c716f87125..187cc93b2d3 100644
index d27c1929aef7..b995896450e0 100644
--- a/compiler/rustc_target/src/spec/json.rs
+++ b/compiler/rustc_target/src/spec/json.rs
@@ -572,6 +572,7 @@ macro_rules! key {
key!(linker_is_gnu_json = "linker-is-gnu", bool);
key!(pre_link_objects = "pre-link-objects", link_objects);
key!(post_link_objects = "post-link-objects", link_objects);
+ key!(external_lib_path, optional);
key!(pre_link_objects_self_contained = "pre-link-objects-fallback", link_objects);
key!(post_link_objects_self_contained = "post-link-objects-fallback", link_objects);
// Deserializes the backwards-compatible variants of `-Clink-self-contained`
@@ -771,6 +772,7 @@ macro_rules! target_option_val {
@@ -84,6 +84,7 @@ macro_rules! forward_opt {
forward!(linker_is_gnu_json);
forward!(pre_link_objects);
forward!(post_link_objects);
+ forward_opt!(external_lib_path);
forward!(pre_link_objects_self_contained);
forward!(post_link_objects_self_contained);
@@ -306,6 +307,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,11 +58,20 @@ index 6c716f87125..187cc93b2d3 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");
@@ -490,6 +492,8 @@ struct TargetSpecJson {
pre_link_objects: Option<CrtObjects>,
#[serde(rename = "post-link-objects")]
post_link_objects: Option<CrtObjects>,
+ #[serde(rename = "external-lib-path")]
+ external_lib_path: Option<StaticCow<str>>,
#[serde(rename = "pre-link-objects-fallback")]
pre_link_objects_self_contained: Option<CrtObjects>,
#[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 7a49f004072..a693fd74887 100644
index 033590e01a67..15a012639472 100644
--- a/compiler/rustc_target/src/spec/mod.rs
+++ b/compiler/rustc_target/src/spec/mod.rs
@@ -2293,6 +2293,7 @@ pub struct TargetOptions {
@@ -2439,6 +2439,7 @@ pub struct TargetOptions {
/// Objects to link before and after all other object code.
pub pre_link_objects: CrtObjects,
pub post_link_objects: CrtObjects,
@ -70,7 +79,7 @@ index 7a49f004072..a693fd74887 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,
@@ -2813,6 +2814,7 @@ fn default() -> TargetOptions {
@@ -2964,6 +2965,7 @@ fn default() -> TargetOptions {
relro_level: RelroLevel::None,
pre_link_objects: Default::default(),
post_link_objects: Default::default(),
@ -79,7 +88,7 @@ index 7a49f004072..a693fd74887 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 26add451ed2..3eaf050e682 100644
index 26add451ed25..3eaf050e6823 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 {
@ -99,5 +108,5 @@ index 26add451ed2..3eaf050e682 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.49.0
2.50.1

View file

@ -1,5 +1,5 @@
Name: rust
Version: 1.89.0
Version: 1.90.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.88.0
%global bootstrap_channel 1.88.0
%global bootstrap_date 2025-06-26
%global bootstrap_version 1.89.0
%global bootstrap_channel 1.89.0
%global bootstrap_date 2025-08-07
# 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 @@ ExclusiveArch: %{rust_arches}
# is insufficient. Rust currently requires LLVM 19.0+.
# See src/bootstrap/src/core/build_steps/llvm.rs, fn check_llvm_version
%global min_llvm_version 19.0.0
%global bundled_llvm_version 20.1.7
%global bundled_llvm_version 20.1.8
#global llvm_compat_version 19
%global llvm llvm%{?llvm_compat_version}
%bcond_with bundled_llvm
@ -54,7 +54,7 @@ ExclusiveArch: %{rust_arches}
# This needs to be consistent with the bindings in vendor/libgit2-sys.
%global min_libgit2_version 1.9.0
%global next_libgit2_version 1.10.0~
%global bundled_libgit2_version 1.9.0
%global bundled_libgit2_version 1.9.1
%if 0%{?fedora} >= 41
%bcond_with bundled_libgit2
%else
@ -72,7 +72,7 @@ ExclusiveArch: %{rust_arches}
# Cargo uses UPSERTs with omitted conflict targets
%global min_sqlite3_version 3.35
%global bundled_sqlite3_version 3.49.1
%global bundled_sqlite3_version 3.49.2
%if 0%{?rhel} && 0%{?rhel} < 10
%bcond_without bundled_sqlite3
%else
@ -138,20 +138,18 @@ 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.88.0-unbundle-sqlite.patch
Patch6: rustc-1.90.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
# PR #143752, fixed upstream.
Patch8: 0001-Don-t-always-panic-if-WASI_SDK_PATH-is-not-set-when-.patch
# Support optimized-compiler-builtins via linking against compiler-rt builtins.
Patch9: 0001-Allow-linking-a-prebuilt-optimized-compiler-rt-built.patch
# https://github.com/rust-lang/rust/pull/143689
Patch8: 0001-Allow-linking-a-prebuilt-optimized-compiler-rt-built.patch
# Fix a compiler stack overflow on ppc64le with PGO
# https://github.com/rust-lang/rust/pull/145410
Patch10: 0001-rustc_expand-ensure-stack-in-InvocationCollector-vis.patch
Patch9: 0001-rustc_expand-ensure-stack-in-InvocationCollector-vis.patch
### RHEL-specific patches below ###
@ -162,7 +160,7 @@ 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.89.0-disable-libssh2.patch
Patch100: rustc-1.90.0-disable-libssh2.patch
# Get the Rust triple for any architecture and ABI.
%{lua: function rust_triple(arch, abi)
@ -706,7 +704,6 @@ rm -rf %{wasi_libc_dir}/dlmalloc/
%patch -P7 -p1
%patch -P8 -p1
%patch -P9 -p1
%patch -P10 -p1
%if %with disabled_libssh2
%patch -P100 -p1
@ -866,8 +863,9 @@ end}
test -r "%{profiler}"
# llvm < 21 does not provide a builtins library for s390x.
%ifnarch s390x
%if "%{_arch}" != "s390x" || 0%{?clang_major_version} >= 21
%define optimized_builtins %{clang_lib}/%{_arch}-redhat-linux-gnu/libclang_rt.builtins.a
test -r "%{optimized_builtins}"
%else
%define optimized_builtins false
%endif

View file

@ -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-06-13 01:10:18.000000000 -0700
+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2025-06-13 15:39:38.597882622 -0700
@@ -2573,7 +2573,6 @@ version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbb8270bb4060bd76c6e96f20c52d80620f1d82a3470885694e41e0f81ef6fe7"
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-06-13 01:10:18.000000000 -0700
+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2025-06-13 15:39:34.583102112 -0700
@@ -80,7 +80,7 @@ proptest = "1.6.0"
pulldown-cmark = { version = "0.13.0", default-features = false, features = ["html"] }
rand = "0.9.0"
regex = "1.11.1"
-rusqlite = { version = "0.34.0", features = ["bundled"] }
+rusqlite = { version = "0.34.0", features = [] }
rustc-hash = "2.1.1"
rustc-stable-hash = "0.1.2"
rustfix = { version = "0.9.0", path = "crates/rustfix" }

View file

@ -1,42 +0,0 @@
--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2025-07-14 11:57:13.773604132 -0500
+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2025-07-14 11:58:13.305337361 -0500
@@ -2523,7 +2523,6 @@
dependencies = [
"cc",
"libc",
- "libssh2-sys",
"libz-sys",
"openssl-sys",
"pkg-config",
@@ -2569,20 +2568,6 @@
"pkg-config",
"vcpkg",
]
-
-[[package]]
-name = "libssh2-sys"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "220e4f05ad4a218192533b300327f5150e809b54c4ec83b5a1d91833601811b9"
-dependencies = [
- "cc",
- "libc",
- "libz-sys",
- "openssl-sys",
- "pkg-config",
- "vcpkg",
-]
[[package]]
name = "libz-rs-sys"
--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2025-07-14 11:57:13.773954247 -0500
+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2025-07-14 11:58:13.305708130 -0500
@@ -46,7 +46,7 @@
curl-sys = "0.4.79"
filetime = "0.2.25"
flate2 = { version = "1.1.1", default-features = false, features = ["zlib-rs"] }
-git2 = "0.20.0"
+git2 = { version = "0.20.0", 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.72.0", default-features = false, features = ["blocking-http-transport-curl", "progress-tree", "parallel", "dirwalk"] }

View file

@ -0,0 +1,44 @@
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
dependencies = [
"cc",
"libc",
- "libssh2-sys",
"libz-sys",
"openssl-sys",
"pkg-config",
@@ -2847,20 +2846,6 @@ dependencies = [
"pkg-config",
"vcpkg",
]
-
-[[package]]
-name = "libssh2-sys"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "220e4f05ad4a218192533b300327f5150e809b54c4ec83b5a1d91833601811b9"
-dependencies = [
- "cc",
- "libc",
- "libz-sys",
- "openssl-sys",
- "pkg-config",
- "vcpkg",
-]
[[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"
curl-sys = "0.4.82"
filetime = "0.2.25"
flate2 = { version = "1.1.2", 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"] }

View file

@ -0,0 +1,23 @@
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:17:50.150641231 -0700
@@ -2843,7 +2843,6 @@ version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91632f3b4fb6bd1d72aa3d78f41ffecfcf2b1a6648d8c241dbe7dbfaf4875e15"
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-08-16 15:47:14.000000000 -0700
+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2025-08-18 17:17:46.729082558 -0700
@@ -81,7 +81,7 @@ proptest = "1.7.0"
pulldown-cmark = { version = "0.13.0", default-features = false, features = ["html"] }
rand = "0.9.1"
regex = "1.11.1"
-rusqlite = { version = "0.36.0", features = ["bundled"] }
+rusqlite = { version = "0.36.0", features = [] }
rustc-hash = "2.1.1"
rustc-stable-hash = "0.1.2"
rustfix = { version = "0.9.2", path = "crates/rustfix" }

View file

@ -1,2 +1,2 @@
SHA512 (rustc-1.90.0-src.tar.xz) = fb0798b4c7450754db2fcbb641202909d209c6db2d9181d7df7282217b8320dc52f5e9853de9d7bdb79177f1f920389450cab07674dea5fb5501eaab5816662a
SHA512 (wasi-libc-wasi-sdk-27.tar.gz) = dfc2c36fabf32f465fc833ed0b10efffc9a35c68162ecc3e8d656d1d684d170b734d55e790614d12d925d17f49d60f0d2d01c46cecac941cf62d68eda84df13e
SHA512 (rustc-1.89.0-src.tar.xz) = 3ac0f02baaff12c67fe35cef4d56b315134d0a043bb6103a248a2842456c74733c6e3039f079bacfb8b8ab9b7487f92d678987e588bd41276abf9bf7c2f7870b