From a057e85147979d256af6598ac764deaa851bfced Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 7 Dec 2023 09:56:29 -0800 Subject: [PATCH 1/3] Update to 1.74.1. --- .gitignore | 1 + rust.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 63526cf..10f6c12 100644 --- a/.gitignore +++ b/.gitignore @@ -428,3 +428,4 @@ /wasi-libc-bd950eb128bff337153de217b11270f948d04bb4.tar.gz /rustc-1.73.0-src.tar.xz /rustc-1.74.0-src.tar.xz +/rustc-1.74.1-src.tar.xz diff --git a/rust.spec b/rust.spec index 6b51a37..200e668 100644 --- a/rust.spec +++ b/rust.spec @@ -1,5 +1,5 @@ Name: rust -Version: 1.74.0 +Version: 1.74.1 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) @@ -1027,6 +1027,9 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %changelog +* Thu Dec 07 2023 Josh Stone - 1.74.1-1 +- Update to 1.74.1. + * Thu Nov 16 2023 Josh Stone - 1.74.0-1 - Update to 1.74.0. diff --git a/sources b/sources index 032c72b..e71ba42 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (rustc-1.74.0-src.tar.xz) = d949987fab5b7fa4d92910cd4384debd11e598fd2b31d003439dd479977f3389e399d9fd9b43b9a856c54e8777fd10339e169dbb9e87b1a8b07a7ff2ff280c34 +SHA512 (rustc-1.74.1-src.tar.xz) = 14c7e7ed2f38ab60299d8c7d41d78f042b6b57ef822d577b5138e60bdde31cf141eccd4332a25bc5da3d58eb5313d63c1448b5dfe9e11b8055bb8ea133a9038d SHA512 (wasi-libc-bd950eb128bff337153de217b11270f948d04bb4.tar.gz) = 01e5cc3ebdab239f57816ff80f939fd87a5491a28951daf74b3310b118b4820c098ac9417771c9c6af55ca91d2cabe6498975ab9db4914aba754d87067cd1066 From 162f7919e2ee4f206a607549c6f279d787ff5702 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Sun, 31 Dec 2023 11:00:36 -0800 Subject: [PATCH 2/3] Update to 1.75.0. --- .gitignore | 1 + ...variables-override-some-default-CPUs.patch | 38 ++++++------- 0001-Use-lld-provided-by-system.patch | 36 ++++++------ ...llow-disabling-target-self-contained.patch | 56 +++++++++---------- ...-only-show-PGO-warnings-when-verbose.patch | 33 +++++++++++ ...xternal-library-path-for-wasm32-wasi.patch | 28 +++++----- rust.spec | 27 ++++++--- ...atch => rustc-1.75.0-disable-libssh2.patch | 20 +++---- sources | 2 +- 9 files changed, 142 insertions(+), 99 deletions(-) create mode 100644 0001-bootstrap-only-show-PGO-warnings-when-verbose.patch rename rustc-1.74.0-disable-libssh2.patch => rustc-1.75.0-disable-libssh2.patch (57%) diff --git a/.gitignore b/.gitignore index 10f6c12..8b53132 100644 --- a/.gitignore +++ b/.gitignore @@ -429,3 +429,4 @@ /rustc-1.73.0-src.tar.xz /rustc-1.74.0-src.tar.xz /rustc-1.74.1-src.tar.xz +/rustc-1.75.0-src.tar.xz diff --git a/0001-Let-environment-variables-override-some-default-CPUs.patch b/0001-Let-environment-variables-override-some-default-CPUs.patch index 04a0c9c..dc8be55 100644 --- a/0001-Let-environment-variables-override-some-default-CPUs.patch +++ b/0001-Let-environment-variables-override-some-default-CPUs.patch @@ -1,33 +1,33 @@ -From 87caaab3681b95fa633aac48b9794364e18c467d Mon Sep 17 00:00:00 2001 +From 184d61d2c12aa2db01de9a14ccb2be0cfae5039b Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Fri, 9 Jun 2023 15:23:08 -0700 Subject: [PATCH] Let environment variables override some default CPUs --- - compiler/rustc_target/src/spec/powerpc64le_unknown_linux_gnu.rs | 2 +- - compiler/rustc_target/src/spec/s390x_unknown_linux_gnu.rs | 2 +- - compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs | 2 +- + .../src/spec/targets/powerpc64le_unknown_linux_gnu.rs | 2 +- + .../rustc_target/src/spec/targets/s390x_unknown_linux_gnu.rs | 2 +- + .../rustc_target/src/spec/targets/x86_64_unknown_linux_gnu.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) -diff --git a/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_gnu.rs -index fd896e086b54..08d0c43d20b4 100644 ---- a/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_gnu.rs -+++ b/compiler/rustc_target/src/spec/powerpc64le_unknown_linux_gnu.rs +diff --git a/compiler/rustc_target/src/spec/targets/powerpc64le_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/targets/powerpc64le_unknown_linux_gnu.rs +index 194c3170e683..9806ca78297c 100644 +--- a/compiler/rustc_target/src/spec/targets/powerpc64le_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/powerpc64le_unknown_linux_gnu.rs @@ -2,7 +2,7 @@ pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = base::linux_gnu::opts(); - base.cpu = "ppc64le".into(); + base.cpu = option_env!("RUSTC_TARGET_CPU_PPC64LE").unwrap_or("ppc64le").into(); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); base.max_atomic_width = Some(64); base.stack_probes = StackProbeType::Inline; -diff --git a/compiler/rustc_target/src/spec/s390x_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/s390x_unknown_linux_gnu.rs -index f2c722b9a89d..17a14d10b27e 100644 ---- a/compiler/rustc_target/src/spec/s390x_unknown_linux_gnu.rs -+++ b/compiler/rustc_target/src/spec/s390x_unknown_linux_gnu.rs +diff --git a/compiler/rustc_target/src/spec/targets/s390x_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/targets/s390x_unknown_linux_gnu.rs +index 6fc410eb2235..c8f84edb9715 100644 +--- a/compiler/rustc_target/src/spec/targets/s390x_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/s390x_unknown_linux_gnu.rs @@ -5,7 +5,7 @@ pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = base::linux_gnu::opts(); base.endian = Endian::Big; // z10 is the oldest CPU supported by LLVM - base.cpu = "z10".into(); @@ -35,14 +35,14 @@ index f2c722b9a89d..17a14d10b27e 100644 // FIXME: The ABI implementation in cabi_s390x.rs is for now hard-coded to assume the no-vector // ABI. Pass the -vector feature string to LLVM to respect this assumption. On LLVM < 16, we // also strip v128 from the data_layout below to match the older LLVM's expectation. -diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs -index 2f970f87cc64..7ee62cd62a5c 100644 ---- a/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs -+++ b/compiler/rustc_target/src/spec/x86_64_unknown_linux_gnu.rs +diff --git a/compiler/rustc_target/src/spec/targets/x86_64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/targets/x86_64_unknown_linux_gnu.rs +index 80e267c163fa..8436a00e66d5 100644 +--- a/compiler/rustc_target/src/spec/targets/x86_64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/x86_64_unknown_linux_gnu.rs @@ -2,7 +2,7 @@ pub fn target() -> Target { - let mut base = super::linux_gnu_base::opts(); + let mut base = base::linux_gnu::opts(); - base.cpu = "x86-64".into(); + base.cpu = option_env!("RUSTC_TARGET_CPU_X86_64").unwrap_or("x86-64").into(); base.plt_by_default = false; diff --git a/0001-Use-lld-provided-by-system.patch b/0001-Use-lld-provided-by-system.patch index dc1f1ba..bee8e16 100644 --- a/0001-Use-lld-provided-by-system.patch +++ b/0001-Use-lld-provided-by-system.patch @@ -1,19 +1,19 @@ -From b6ca6a363a7c91136c723a21fda4816d3009e479 Mon Sep 17 00:00:00 2001 +From 61b5cc96337da2121221dd1bcdb63fd36551d065 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 1 Nov 2023 15:21:15 -0700 Subject: [PATCH] Use lld provided by system --- - compiler/rustc_target/src/spec/wasm_base.rs | 3 +-- - compiler/rustc_target/src/spec/x86_64_unknown_none.rs | 2 +- - compiler/rustc_target/src/spec/x86_64_unknown_uefi.rs | 1 + + compiler/rustc_target/src/spec/base/wasm.rs | 3 +-- + compiler/rustc_target/src/spec/targets/x86_64_unknown_none.rs | 2 +- + compiler/rustc_target/src/spec/targets/x86_64_unknown_uefi.rs | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) -diff --git a/compiler/rustc_target/src/spec/wasm_base.rs b/compiler/rustc_target/src/spec/wasm_base.rs -index 341763aadbaf..ee6358e72955 100644 ---- a/compiler/rustc_target/src/spec/wasm_base.rs -+++ b/compiler/rustc_target/src/spec/wasm_base.rs -@@ -89,8 +89,7 @@ macro_rules! args { +diff --git a/compiler/rustc_target/src/spec/base/wasm.rs b/compiler/rustc_target/src/spec/base/wasm.rs +index 87ade9e58cf4..2ddff95febab 100644 +--- a/compiler/rustc_target/src/spec/base/wasm.rs ++++ b/compiler/rustc_target/src/spec/base/wasm.rs +@@ -91,8 +91,7 @@ macro_rules! args { // arguments just yet limit_rdylib_exports: false, @@ -23,10 +23,10 @@ index 341763aadbaf..ee6358e72955 100644 linker_flavor: LinkerFlavor::WasmLld(Cc::No), pre_link_args, -diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_none.rs b/compiler/rustc_target/src/spec/x86_64_unknown_none.rs -index fe3b24f2d4af..1f1731d202ca 100644 ---- a/compiler/rustc_target/src/spec/x86_64_unknown_none.rs -+++ b/compiler/rustc_target/src/spec/x86_64_unknown_none.rs +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 9aa95a35f8e5..a9172f9441b7 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 @@ -17,7 +17,7 @@ pub fn target() -> Target { static_position_independent_executables: true, relro_level: RelroLevel::Full, @@ -36,11 +36,11 @@ index fe3b24f2d4af..1f1731d202ca 100644 features: "-mmx,-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-3dnow,-3dnowa,-avx,-avx2,+soft-float" .into(), -diff --git a/compiler/rustc_target/src/spec/x86_64_unknown_uefi.rs b/compiler/rustc_target/src/spec/x86_64_unknown_uefi.rs -index 41ba768068a3..2eea4c76f1ca 100644 ---- a/compiler/rustc_target/src/spec/x86_64_unknown_uefi.rs -+++ b/compiler/rustc_target/src/spec/x86_64_unknown_uefi.rs -@@ -13,6 +13,7 @@ pub fn target() -> Target { +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 5abfb8162f70..13cb43bda1a4 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 +@@ -16,6 +16,7 @@ pub fn target() -> Target { base.plt_by_default = false; base.max_atomic_width = Some(64); base.entry_abi = Conv::X86_64Win64; diff --git a/0001-bootstrap-allow-disabling-target-self-contained.patch b/0001-bootstrap-allow-disabling-target-self-contained.patch index a2cb874..2a3cbd7 100644 --- a/0001-bootstrap-allow-disabling-target-self-contained.patch +++ b/0001-bootstrap-allow-disabling-target-self-contained.patch @@ -1,20 +1,20 @@ -From 4acc7d53182cf83f2c776c4005fc12756ecdfe8f Mon Sep 17 00:00:00 2001 +From df0d6f1d8b46db82d7599ca8eff6e8f844cf52f2 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 28 Sep 2023 18:14:28 -0700 Subject: [PATCH 1/2] bootstrap: allow disabling target self-contained --- - config.example.toml | 5 +++++ - src/bootstrap/compile.rs | 4 ++++ - src/bootstrap/config.rs | 8 ++++++++ - src/bootstrap/lib.rs | 5 +++++ + config.example.toml | 5 +++++ + src/bootstrap/src/core/build_steps/compile.rs | 4 ++++ + src/bootstrap/src/core/config/config.rs | 8 ++++++++ + src/bootstrap/src/lib.rs | 5 +++++ 4 files changed, 22 insertions(+) diff --git a/config.example.toml b/config.example.toml -index f3c2366d674e..c6c5e24fb592 100644 +index e5df28a49af6..2fcd8b8cb057 100644 --- a/config.example.toml +++ b/config.example.toml -@@ -798,6 +798,11 @@ changelog-seen = 2 +@@ -807,6 +807,11 @@ change-id = 116881 # target triples containing `-none`, `nvptx`, `switch`, or `-uefi`. #no-std = (bool) @@ -26,11 +26,11 @@ index f3c2366d674e..c6c5e24fb592 100644 # ============================================================================= # Distribution options # -diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs -index 292ccc5780fa..d4d79ce982af 100644 ---- a/src/bootstrap/compile.rs -+++ b/src/bootstrap/compile.rs -@@ -251,6 +251,10 @@ fn copy_self_contained_objects( +diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs +index 7021a9543582..11555c65ca87 100644 +--- a/src/bootstrap/src/core/build_steps/compile.rs ++++ b/src/bootstrap/src/core/build_steps/compile.rs +@@ -302,6 +302,10 @@ fn copy_self_contained_objects( compiler: &Compiler, target: TargetSelection, ) -> Vec<(PathBuf, DependencyType)> { @@ -41,11 +41,11 @@ index 292ccc5780fa..d4d79ce982af 100644 let libdir_self_contained = builder.sysroot_libdir(*compiler, target).join("self-contained"); t!(fs::create_dir_all(&libdir_self_contained)); let mut target_deps = vec![]; -diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs -index 836328f94ef8..4ae3d853ed88 100644 ---- a/src/bootstrap/config.rs -+++ b/src/bootstrap/config.rs -@@ -527,6 +527,7 @@ pub struct Target { +diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs +index 0a9175aa3ea5..a2e028b25036 100644 +--- a/src/bootstrap/src/core/config/config.rs ++++ b/src/bootstrap/src/core/config/config.rs +@@ -533,6 +533,7 @@ pub struct Target { pub wasi_root: Option, pub qemu_rootfs: Option, pub no_std: bool, @@ -53,7 +53,7 @@ index 836328f94ef8..4ae3d853ed88 100644 } impl Target { -@@ -535,6 +536,9 @@ pub fn from_triple(triple: &str) -> Self { +@@ -541,6 +542,9 @@ pub fn from_triple(triple: &str) -> Self { if triple.contains("-none") || triple.contains("nvptx") || triple.contains("switch") { target.no_std = true; } @@ -63,7 +63,7 @@ index 836328f94ef8..4ae3d853ed88 100644 target } } -@@ -1033,6 +1037,7 @@ struct TomlTarget { +@@ -1051,6 +1055,7 @@ struct TomlTarget { wasi_root: Option = "wasi-root", qemu_rootfs: Option = "qemu-rootfs", no_std: Option = "no-std", @@ -71,21 +71,21 @@ index 836328f94ef8..4ae3d853ed88 100644 } } -@@ -1587,6 +1592,9 @@ fn get_table(option: &str) -> Result { +@@ -1600,6 +1605,9 @@ fn get_table(option: &str) -> Result { if let Some(s) = cfg.no_std { target.no_std = s; } + if let Some(s) = cfg.self_contained { + target.self_contained = s; + } - target.cc = cfg.cc.map(PathBuf::from).or_else(|| { - target.ndk.as_ref().map(|ndk| ndk_compiler(Language::C, &triple, ndk)) - }); -diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs -index 8b8d4b237953..c3e7a1ccc00f 100644 ---- a/src/bootstrap/lib.rs -+++ b/src/bootstrap/lib.rs -@@ -1320,6 +1320,11 @@ fn no_std(&self, target: TargetSelection) -> Option { + target.cc = cfg.cc.map(PathBuf::from); + 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 33b8f1a7ce72..f36e53187576 100644 +--- a/src/bootstrap/src/lib.rs ++++ b/src/bootstrap/src/lib.rs +@@ -1335,6 +1335,11 @@ fn no_std(&self, target: TargetSelection) -> Option { self.config.target_config.get(&target).map(|t| t.no_std) } diff --git a/0001-bootstrap-only-show-PGO-warnings-when-verbose.patch b/0001-bootstrap-only-show-PGO-warnings-when-verbose.patch new file mode 100644 index 0000000..ca36844 --- /dev/null +++ b/0001-bootstrap-only-show-PGO-warnings-when-verbose.patch @@ -0,0 +1,33 @@ +From 776146e9ebb6bbe17a37bfad955f3dac95317275 Mon Sep 17 00:00:00 2001 +From: Josh Stone +Date: Thu, 16 Nov 2023 10:42:23 -0800 +Subject: [PATCH] bootstrap: only show PGO warnings when verbose + +Building rustc with `--rust-profile-use` is currently dumping a lot of +warnings of "no profile data available for function" from `rustc_smir` +and `stable_mir`. These simply aren't exercised by the current profile- +gathering steps, but that's to be expected for new or experimental +functionality. I think for most people, these warnings will be just +noise, so it makes sense to only have them in verbose builds. +--- + src/bootstrap/src/core/build_steps/compile.rs | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs +index af69860df1c5..51e4195827fc 100644 +--- a/src/bootstrap/src/core/build_steps/compile.rs ++++ b/src/bootstrap/src/core/build_steps/compile.rs +@@ -887,7 +887,9 @@ fn run(self, builder: &Builder<'_>) { + } else if let Some(path) = &builder.config.rust_profile_use { + if compiler.stage == 1 { + cargo.rustflag(&format!("-Cprofile-use={path}")); +- cargo.rustflag("-Cllvm-args=-pgo-warn-missing-function"); ++ if builder.is_verbose() { ++ cargo.rustflag("-Cllvm-args=-pgo-warn-missing-function"); ++ } + true + } else { + false +-- +2.43.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 951e360..e2da2fe 100644 --- a/0002-set-an-external-library-path-for-wasm32-wasi.patch +++ b/0002-set-an-external-library-path-for-wasm32-wasi.patch @@ -1,19 +1,19 @@ -From 461f64c60ec897d8e9caa85190ac27fe81871ebf Mon Sep 17 00:00:00 2001 +From 79bb610c8fc5d9df7dd4720ae847b8f17e7b1ad4 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 28 Sep 2023 18:18:16 -0700 Subject: [PATCH 2/2] set an external library path for wasm32-wasi --- - compiler/rustc_codegen_ssa/src/back/link.rs | 9 +++++++++ - compiler/rustc_target/src/spec/mod.rs | 2 ++ - compiler/rustc_target/src/spec/wasm32_wasi.rs | 6 +++++- + compiler/rustc_codegen_ssa/src/back/link.rs | 9 +++++++++ + compiler/rustc_target/src/spec/mod.rs | 2 ++ + compiler/rustc_target/src/spec/targets/wasm32_wasi.rs | 6 +++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs -index c4a0f6291e7f..9421f2fda303 100644 +index dd9d277fb775..3d0f0502f255 100644 --- a/compiler/rustc_codegen_ssa/src/back/link.rs +++ b/compiler/rustc_codegen_ssa/src/back/link.rs -@@ -1490,6 +1490,12 @@ fn get_object_file_path(sess: &Session, name: &str, self_contained: bool) -> Pat +@@ -1496,6 +1496,12 @@ fn get_object_file_path(sess: &Session, name: &str, self_contained: bool) -> Pat return file_path; } } @@ -37,10 +37,10 @@ index c4a0f6291e7f..9421f2fda303 100644 /// Add options making relocation sections in the produced ELF files read-only diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs -index 1bcb1f353159..33d9c54922cb 100644 +index f04799482c83..25410b37ba24 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs -@@ -1701,6 +1701,7 @@ pub struct TargetOptions { +@@ -1874,6 +1874,7 @@ pub struct TargetOptions { /// Objects to link before and after all other object code. pub pre_link_objects: CrtObjects, pub post_link_objects: CrtObjects, @@ -48,7 +48,7 @@ index 1bcb1f353159..33d9c54922cb 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, -@@ -2175,6 +2176,7 @@ fn default() -> TargetOptions { +@@ -2352,6 +2353,7 @@ fn default() -> TargetOptions { relro_level: RelroLevel::None, pre_link_objects: Default::default(), post_link_objects: Default::default(), @@ -56,11 +56,11 @@ index 1bcb1f353159..33d9c54922cb 100644 pre_link_objects_self_contained: Default::default(), post_link_objects_self_contained: Default::default(), link_self_contained: LinkSelfContainedDefault::False, -diff --git a/compiler/rustc_target/src/spec/wasm32_wasi.rs b/compiler/rustc_target/src/spec/wasm32_wasi.rs -index a0476d542e64..ad7160bf5fcd 100644 ---- a/compiler/rustc_target/src/spec/wasm32_wasi.rs -+++ b/compiler/rustc_target/src/spec/wasm32_wasi.rs -@@ -85,7 +85,11 @@ pub fn target() -> Target { +diff --git a/compiler/rustc_target/src/spec/targets/wasm32_wasi.rs b/compiler/rustc_target/src/spec/targets/wasm32_wasi.rs +index 6dbcb01ea436..2151f86d0648 100644 +--- a/compiler/rustc_target/src/spec/targets/wasm32_wasi.rs ++++ b/compiler/rustc_target/src/spec/targets/wasm32_wasi.rs +@@ -86,7 +86,11 @@ pub fn target() -> Target { options.post_link_objects_self_contained = crt_objects::post_wasi_self_contained(); // FIXME: Figure out cases in which WASM needs to link with a native toolchain. diff --git a/rust.spec b/rust.spec index 200e668..8852909 100644 --- a/rust.spec +++ b/rust.spec @@ -1,5 +1,5 @@ Name: rust -Version: 1.74.1 +Version: 1.75.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) @@ -14,9 +14,9 @@ ExclusiveArch: %{rust_arches} # 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.73.0 -%global bootstrap_channel 1.73.0 -%global bootstrap_date 2023-10-05 +%global bootstrap_version 1.74.0 +%global bootstrap_channel 1.74.0 +%global bootstrap_date 2023-11-16 # Only the specified arches will use bootstrap binaries. # NOTE: Those binaries used to be uploaded with every new release, but that was @@ -63,7 +63,7 @@ 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 15.0+. %global min_llvm_version 15.0.0 -%global bundled_llvm_version 17.0.4 +%global bundled_llvm_version 17.0.5 %bcond_with bundled_llvm # Requires stable libgit2 1.7, and not the next minor soname change. @@ -118,13 +118,16 @@ 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 +# https://github.com/rust-lang/rust/pull/117982 +Patch6: 0001-bootstrap-only-show-PGO-warnings-when-verbose.patch + ### RHEL-specific patches below ### # Simple rpm macros for rust-toolset (as opposed to full rust-packaging) Source100: macros.rust-toolset # Disable cargo->libgit2->libssh2 on RHEL, as it's not approved for FIPS (rhbz1732949) -Patch100: rustc-1.74.0-disable-libssh2.patch +Patch100: rustc-1.75.0-disable-libssh2.patch # Get the Rust triple for any arch. %{lua: function rust_triple(arch) @@ -558,6 +561,7 @@ rm -rf %{wasi_libc_dir}/dlmalloc/ %if %without bundled_wasi_libc %patch -P5 -p1 %endif +%patch -P6 -p1 %if %with disabled_libssh2 %patch -P100 -p1 @@ -596,7 +600,7 @@ rm -rf vendor/libssh2-sys*/ %endif # This only affects the transient rust-installer, but let it use our dynamic xz-libs -sed -i.lzma -e '/LZMA_API_STATIC/d' src/bootstrap/tool.rs +sed -i.lzma -e '/LZMA_API_STATIC/d' src/bootstrap/src/core/build_steps/tool.rs %if %{without bundled_llvm} && %{with llvm_static} # Static linking to distro LLVM needs to add -lffi @@ -854,11 +858,12 @@ rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll* %{export_rust_env} # Sanity-check the installed binaries, debuginfo-stripped and all. -%{buildroot}%{_bindir}/cargo new build/hello-world +TMP_HELLO=$(mktemp -d) ( - cd build/hello-world + cd "$TMP_HELLO" export RUSTC=%{buildroot}%{_bindir}/rustc \ LD_LIBRARY_PATH="%{buildroot}%{_libdir}:$LD_LIBRARY_PATH" + %{buildroot}%{_bindir}/cargo init --name hello-world %{buildroot}%{_bindir}/cargo run --verbose # Sanity-check that code-coverage builds and runs @@ -870,6 +875,7 @@ rm -f %{buildroot}%{rustlibdir}/%{rust_triple}/bin/rust-ll* %{buildroot}%{_bindir}/cargo build --verbose --target=$triple done ) +rm -rf "$TMP_HELLO" # The results are not stable on koji, so mask errors and just log it. # Some of the larger test artifacts are manually cleaned to save space. @@ -1027,6 +1033,9 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %changelog +* Sun Dec 31 2023 Josh Stone - 1.75.0-1 +- Update to 1.75.0. + * Thu Dec 07 2023 Josh Stone - 1.74.1-1 - Update to 1.74.1. diff --git a/rustc-1.74.0-disable-libssh2.patch b/rustc-1.75.0-disable-libssh2.patch similarity index 57% rename from rustc-1.74.0-disable-libssh2.patch rename to rustc-1.75.0-disable-libssh2.patch index 81c30b4..2b06046 100644 --- a/rustc-1.74.0-disable-libssh2.patch +++ b/rustc-1.75.0-disable-libssh2.patch @@ -1,6 +1,6 @@ ---- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2023-10-20 22:31:52.000000000 -0700 -+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2023-11-01 15:33:13.224745542 -0700 -@@ -2009,7 +2009,6 @@ +--- ./rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2023-11-12 12:24:35.000000000 -0800 ++++ rustc-beta-src/src/tools/cargo/Cargo.lock 2023-11-14 17:01:32.010125953 -0800 +@@ -2027,7 +2027,6 @@ dependencies = [ "cc", "libc", @@ -8,7 +8,7 @@ "libz-sys", "openssl-sys", "pkg-config", -@@ -2042,20 +2041,6 @@ +@@ -2060,20 +2059,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-11-01 15:33:13.225745528 -0700 -+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2023-11-01 15:34:51.883397544 -0700 +--- ./rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2023-11-14 17:01:32.010125953 -0800 ++++ rustc-beta-src/src/tools/cargo/Cargo.toml 2023-11-14 17:02:44.645097701 -0800 @@ -40,7 +40,7 @@ curl-sys = "0.4.68" filetime = "0.2.22" - flate2 = { version = "1.0.27", default-features = false, features = ["zlib"] } --git2 = "0.18.0" -+git2 = { version = "0.18.0", default-features = false, features = ["https"] } + flate2 = { version = "1.0.28", default-features = false, features = ["zlib"] } +-git2 = "0.18.1" ++git2 = { version = "0.18.1", default-features = false, features = ["https"] } git2-curl = "0.19.0" - gix = { version = "0.54.1", default-features = false, features = ["blocking-http-transport-curl", "progress-tree", "revision"] } + gix = { version = "0.55.2", default-features = false, features = ["blocking-http-transport-curl", "progress-tree", "revision"] } gix-features-for-configuration-only = { version = "0.35.0", package = "gix-features", features = [ "parallel" ] } diff --git a/sources b/sources index e71ba42..c4c9dac 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (rustc-1.74.1-src.tar.xz) = 14c7e7ed2f38ab60299d8c7d41d78f042b6b57ef822d577b5138e60bdde31cf141eccd4332a25bc5da3d58eb5313d63c1448b5dfe9e11b8055bb8ea133a9038d +SHA512 (rustc-1.75.0-src.tar.xz) = 7b0f25d91b1b5c317980fc88e059200bd43b56a70b445fbc72fb9b96e09775bfd3a98e9bd9d662af80f0ce3aef527c777ee82777e96ca876f47a972d63da8606 SHA512 (wasi-libc-bd950eb128bff337153de217b11270f948d04bb4.tar.gz) = 01e5cc3ebdab239f57816ff80f939fd87a5491a28951daf74b3310b118b4820c098ac9417771c9c6af55ca91d2cabe6498975ab9db4914aba754d87067cd1066 From 6f2eb1990e11ab9e0d2026f5e06a866362a40184 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 3 Jan 2024 16:22:01 -0800 Subject: [PATCH 3/3] Rename x/xk macros for older rpm compat --- rust.spec | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/rust.spec b/rust.spec index 8852909..c800c50 100644 --- a/rust.spec +++ b/rust.spec @@ -735,32 +735,32 @@ test -r "%{profiler}" --release-channel=%{channel} \ --release-description="%{?fedora:Fedora }%{?rhel:Red Hat }%{version}-%{release}" -%global x %{__python3} ./x.py -%global xk %{x} --keep-stage=0 --keep-stage=1 +%global __x %{__python3} ./x.py +%global __xk %{__x} --keep-stage=0 --keep-stage=1 %if %with rustc_pgo # Build the compiler with profile instrumentation PROFRAW="$PWD/build/profiles" PROFDATA="$PWD/build/rustc.profdata" mkdir -p "$PROFRAW" -%{x} build -j "$ncpus" sysroot --rust-profile-generate="$PROFRAW" +%{__x} build -j "$ncpus" sysroot --rust-profile-generate="$PROFRAW" # Build cargo as a workload to generate compiler profiles -env LLVM_PROFILE_FILE="$PROFRAW/default_%%m_%%p.profraw" %{xk} build cargo +env LLVM_PROFILE_FILE="$PROFRAW/default_%%m_%%p.profraw" %{__xk} build cargo llvm-profdata merge -o "$PROFDATA" "$PROFRAW" rm -r "$PROFRAW" build/%{rust_triple}/stage2*/ # Rebuild the compiler using the profile data -%{x} build -j "$ncpus" sysroot --rust-profile-use="$PROFDATA" +%{__x} build -j "$ncpus" sysroot --rust-profile-use="$PROFDATA" %else # Build the compiler without PGO -%{x} build -j "$ncpus" sysroot +%{__x} build -j "$ncpus" sysroot %endif # Build everything else normally -%{xk} build -%{xk} doc +%{__xk} build +%{__xk} doc for triple in %{?all_targets} ; do - %{xk} build --target=$triple std + %{__xk} build --target=$triple std done %install @@ -769,10 +769,10 @@ done %endif %{export_rust_env} -DESTDIR=%{buildroot} %{xk} install +DESTDIR=%{buildroot} %{__xk} install for triple in %{?all_targets} ; do - DESTDIR=%{buildroot} %{xk} install --target=$triple std + DESTDIR=%{buildroot} %{__xk} install --target=$triple std done # The rls stub doesn't have an install target, but we can just copy it. @@ -882,17 +882,17 @@ rm -rf "$TMP_HELLO" # Bootstrap is excluded because it's not something we ship, and a lot of its # tests are geared toward the upstream CI environment. -%{xk} test --no-fail-fast --skip src/bootstrap || : +%{__xk} test --no-fail-fast --skip src/bootstrap || : rm -rf "./build/%{rust_triple}/test/" -%{xk} test --no-fail-fast cargo || : +%{__xk} test --no-fail-fast cargo || : rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" -%{xk} test --no-fail-fast clippy || : +%{__xk} test --no-fail-fast clippy || : -%{xk} test --no-fail-fast rust-analyzer || : +%{__xk} test --no-fail-fast rust-analyzer || : -%{xk} test --no-fail-fast rustfmt || : +%{__xk} test --no-fail-fast rustfmt || : %ldconfig_scriptlets