diff --git a/.gitignore b/.gitignore index 6980310..369bfdb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/rustc-1.82.0-src.tar.xz -SOURCES/wasi-libc-b9ef79d7dbd47c6c5bafdae760823467c2f60b70.tar.gz +SOURCES/rustc-1.83.0-src.tar.xz +SOURCES/wasi-libc-wasi-sdk-24.tar.gz diff --git a/.rust.metadata b/.rust.metadata index 50d77cf..8298f85 100644 --- a/.rust.metadata +++ b/.rust.metadata @@ -1,2 +1,2 @@ -eaa11a8e936e36aabed6602b97f17770f3a7d6fb SOURCES/rustc-1.82.0-src.tar.xz -12000cf385342aa4ee085a574483d0c6d1eadf43 SOURCES/wasi-libc-b9ef79d7dbd47c6c5bafdae760823467c2f60b70.tar.gz +d45b38f7c4e74f62aa9f1969f144018214625125 SOURCES/rustc-1.83.0-src.tar.xz +0d6b315ce3e7ae23a2c6b079d73fae9d3e2bb438 SOURCES/wasi-libc-wasi-sdk-24.tar.gz diff --git a/SOURCES/0001-Fix-enabling-wasm-component-ld-to-match-other-tools.patch b/SOURCES/0001-Fix-enabling-wasm-component-ld-to-match-other-tools.patch deleted file mode 100644 index 5364012..0000000 --- a/SOURCES/0001-Fix-enabling-wasm-component-ld-to-match-other-tools.patch +++ /dev/null @@ -1,147 +0,0 @@ -From c15469a7fec811d1a4f69ff26e18c6f383df41d2 Mon Sep 17 00:00:00 2001 -From: Alex Crichton -Date: Fri, 6 Sep 2024 09:21:33 -0700 -Subject: [PATCH] Fix enabling wasm-component-ld to match other tools - -It was [pointed out recently][comment] that enabling `wasm-component-ld` -as a host tool is different from other host tools. This commit refactors -the logic to match by deduplicating selection of when to build other -tools and then using the same logic for `wasm-component-ld`. - -[comment]: https://github.com/rust-lang/rust/pull/127866#issuecomment-2333434720 ---- - src/bootstrap/src/core/build_steps/compile.rs | 2 +- - src/bootstrap/src/core/build_steps/dist.rs | 2 +- - src/bootstrap/src/core/build_steps/tool.rs | 38 +++---------------- - src/bootstrap/src/lib.rs | 17 +++++---- - 4 files changed, 17 insertions(+), 42 deletions(-) - -diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs -index 1936c91ef83c..102c9fd25543 100644 ---- a/src/bootstrap/src/core/build_steps/compile.rs -+++ b/src/bootstrap/src/core/build_steps/compile.rs -@@ -1912,7 +1912,7 @@ fn run(self, builder: &Builder<'_>) -> Compiler { - // delegates to the `rust-lld` binary for linking and then runs - // logic to create the final binary. This is used by the - // `wasm32-wasip2` target of Rust. -- if builder.build_wasm_component_ld() { -+ if builder.tool_enabled("wasm-component-ld") { - let wasm_component_ld_exe = - builder.ensure(crate::core::build_steps::tool::WasmComponentLd { - compiler: build_compiler, -diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs -index 4957de2e1b79..ccb5656d6716 100644 ---- a/src/bootstrap/src/core/build_steps/dist.rs -+++ b/src/bootstrap/src/core/build_steps/dist.rs -@@ -473,7 +473,7 @@ fn prepare_image(builder: &Builder<'_>, compiler: Compiler, image: &Path) { - ); - } - } -- if builder.build_wasm_component_ld() { -+ if builder.tool_enabled("wasm-component-ld") { - let src_dir = builder.sysroot_libdir(compiler, host).parent().unwrap().join("bin"); - let ld = exe("wasm-component-ld", compiler.host); - builder.copy_link(&src_dir.join(&ld), &dst_dir.join(&ld)); -diff --git a/src/bootstrap/src/core/build_steps/tool.rs b/src/bootstrap/src/core/build_steps/tool.rs -index 3a1eb43b801f..3c2d791c2090 100644 ---- a/src/bootstrap/src/core/build_steps/tool.rs -+++ b/src/bootstrap/src/core/build_steps/tool.rs -@@ -693,14 +693,7 @@ impl Step for Cargo { - - fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { - let builder = run.builder; -- run.path("src/tools/cargo").default_condition( -- builder.config.extended -- && builder.config.tools.as_ref().map_or( -- true, -- // If `tools` is set, search list for this tool. -- |tools| tools.iter().any(|tool| tool == "cargo"), -- ), -- ) -+ run.path("src/tools/cargo").default_condition(builder.tool_enabled("cargo")) - } - - fn make_run(run: RunConfig<'_>) { -@@ -772,14 +765,7 @@ impl Step for RustAnalyzer { - - fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { - let builder = run.builder; -- run.path("src/tools/rust-analyzer").default_condition( -- builder.config.extended -- && builder -- .config -- .tools -- .as_ref() -- .map_or(true, |tools| tools.iter().any(|tool| tool == "rust-analyzer")), -- ) -+ run.path("src/tools/rust-analyzer").default_condition(builder.tool_enabled("rust-analyzer")) - } - - fn make_run(run: RunConfig<'_>) { -@@ -821,12 +807,8 @@ fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { - run.path("src/tools/rust-analyzer") - .path("src/tools/rust-analyzer/crates/proc-macro-srv-cli") - .default_condition( -- builder.config.extended -- && builder.config.tools.as_ref().map_or(true, |tools| { -- tools.iter().any(|tool| { -- tool == "rust-analyzer" || tool == "rust-analyzer-proc-macro-srv" -- }) -- }), -+ builder.tool_enabled("rust-analyzer") -+ || builder.tool_enabled("rust-analyzer-proc-macro-srv"), - ) - } - -@@ -874,16 +856,8 @@ impl Step for LlvmBitcodeLinker { - - fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> { - let builder = run.builder; -- run.path("src/tools/llvm-bitcode-linker").default_condition( -- builder.config.extended -- && builder -- .config -- .tools -- .as_ref() -- .map_or(builder.build.unstable_features(), |tools| { -- tools.iter().any(|tool| tool == "llvm-bitcode-linker") -- }), -- ) -+ run.path("src/tools/llvm-bitcode-linker") -+ .default_condition(builder.tool_enabled("llvm-bitcode-linker")) - } - - fn make_run(run: RunConfig<'_>) { -diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs -index c76ce3409562..780024e307ed 100644 ---- a/src/bootstrap/src/lib.rs -+++ b/src/bootstrap/src/lib.rs -@@ -1407,16 +1407,17 @@ fn default_wasi_runner(&self) -> Option { - None - } - -- /// Returns whether it's requested that `wasm-component-ld` is built as part -- /// of the sysroot. This is done either with the `extended` key in -- /// `config.toml` or with the `tools` set. -- fn build_wasm_component_ld(&self) -> bool { -- if self.config.extended { -- return true; -+ /// Returns whether the specified tool is configured as part of this build. -+ /// -+ /// This requires that both the `extended` key is set and the `tools` key is -+ /// either unset or specifically contains the specified tool. -+ fn tool_enabled(&self, tool: &str) -> bool { -+ if !self.config.extended { -+ return false; - } - match &self.config.tools { -- Some(set) => set.contains("wasm-component-ld"), -- None => false, -+ Some(set) => set.contains(tool), -+ None => true, - } - } - --- -2.46.0 - diff --git a/SOURCES/0001-Let-environment-variables-override-some-default-CPUs.patch b/SOURCES/0001-Let-environment-variables-override-some-default-CPUs.patch index dc8be55..a590c54 100644 --- a/SOURCES/0001-Let-environment-variables-override-some-default-CPUs.patch +++ b/SOURCES/0001-Let-environment-variables-override-some-default-CPUs.patch @@ -1,4 +1,4 @@ -From 184d61d2c12aa2db01de9a14ccb2be0cfae5039b Mon Sep 17 00:00:00 2001 +From e12de251f8513f660bbfbc1c71883383bd1037f4 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 @@ -10,12 +10,12 @@ Subject: [PATCH] Let environment variables override some default CPUs 3 files changed, 3 insertions(+), 3 deletions(-) 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 +index 23913687a1fd..3253fbc84c74 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 { + pub(crate) fn target() -> Target { let mut base = base::linux_gnu::opts(); - base.cpu = "ppc64le".into(); + base.cpu = option_env!("RUSTC_TARGET_CPU_PPC64LE").unwrap_or("ppc64le").into(); @@ -23,25 +23,25 @@ index 194c3170e683..9806ca78297c 100644 base.max_atomic_width = Some(64); base.stack_probes = StackProbeType::Inline; 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 +index 3efbb4648361..bcdaa5b8276d 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 { +@@ -5,7 +5,7 @@ pub(crate) fn target() -> Target { let mut base = base::linux_gnu::opts(); base.endian = Endian::Big; // z10 is the oldest CPU supported by LLVM - base.cpu = "z10".into(); + base.cpu = option_env!("RUSTC_TARGET_CPU_S390X").unwrap_or("z10").into(); - // 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. + // FIXME: The ABI implementation in abi/call/s390x.rs is for now hard-coded to assume the no-vector + // ABI. Pass the -vector feature string to LLVM to respect this assumption. + base.features = "-vector".into(); 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 +index 59ec6c7f9d5f..b6f1be890b20 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 { + pub(crate) fn target() -> Target { 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(); @@ -49,5 +49,5 @@ index 80e267c163fa..8436a00e66d5 100644 base.max_atomic_width = Some(64); base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); -- -2.41.0 +2.47.0 diff --git a/SOURCES/0001-bootstrap-allow-setting-jobs-in-config.toml.patch b/SOURCES/0001-bootstrap-allow-setting-jobs-in-config.toml.patch index 20f61c5..577539e 100644 --- a/SOURCES/0001-bootstrap-allow-setting-jobs-in-config.toml.patch +++ b/SOURCES/0001-bootstrap-allow-setting-jobs-in-config.toml.patch @@ -1,10 +1,9 @@ -From 5d3e8210feabae1d80a9f21c18c9173b1fdc43ca Mon Sep 17 00:00:00 2001 +From 65458aed68fe6786068bab00e5a46d7ecdd2a072 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?= <39484203+jieyouxu@users.noreply.github.com> Date: Thu, 17 Oct 2024 22:58:45 +0800 Subject: [PATCH] bootstrap: allow setting `--jobs` in config.toml -(cherry picked from commit 65458aed68fe6786068bab00e5a46d7ecdd2a072) --- config.example.toml | 5 ++ src/bootstrap/src/core/config/config.rs | 5 +- @@ -14,10 +13,10 @@ Subject: [PATCH] bootstrap: allow setting `--jobs` in config.toml 5 files changed, 73 insertions(+), 3 deletions(-) diff --git a/config.example.toml b/config.example.toml -index f1dc32234ccf..40c7ac9f5023 100644 +index 4b591b949b36..168ac353cff7 100644 --- a/config.example.toml +++ b/config.example.toml -@@ -401,6 +401,11 @@ +@@ -414,6 +414,11 @@ # Specify the location of the Android NDK. Used when targeting Android. #android-ndk = "/path/to/android-ndk-r26d" @@ -30,10 +29,10 @@ index f1dc32234ccf..40c7ac9f5023 100644 # General install configuration options # ============================================================================= diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs -index bdfee55d8d18..c1e0f8c6b338 100644 +index c2ab439891ea..aeb81b146382 100644 --- a/src/bootstrap/src/core/config/config.rs +++ b/src/bootstrap/src/core/config/config.rs -@@ -872,6 +872,7 @@ struct Build { +@@ -891,6 +891,7 @@ struct Build { metrics: Option = "metrics", android_ndk: Option = "android-ndk", optimized_compiler_builtins: Option = "optimized-compiler-builtins", @@ -41,7 +40,7 @@ index bdfee55d8d18..c1e0f8c6b338 100644 } } -@@ -1256,7 +1257,6 @@ pub(crate) fn parse_inner( +@@ -1289,7 +1290,6 @@ pub(crate) fn parse_inner( config.rustc_error_format = flags.rustc_error_format; config.json_output = flags.json_output; config.on_fail = flags.on_fail; @@ -49,7 +48,7 @@ index bdfee55d8d18..c1e0f8c6b338 100644 config.cmd = flags.cmd; config.incremental = flags.incremental; config.dry_run = if flags.dry_run { DryRun::UserSelected } else { DryRun::Disabled }; -@@ -1477,8 +1477,11 @@ fn get_table(option: &str) -> Result { +@@ -1511,8 +1511,11 @@ fn get_table(option: &str) -> Result { metrics: _, android_ndk, optimized_compiler_builtins, @@ -62,7 +61,7 @@ index bdfee55d8d18..c1e0f8c6b338 100644 config.build = TargetSelection::from_user(&file_build); }; diff --git a/src/bootstrap/src/core/config/flags.rs b/src/bootstrap/src/core/config/flags.rs -index c3f174028149..7fdd5f8b8cae 100644 +index 3aefe517a5be..bfeb811508c0 100644 --- a/src/bootstrap/src/core/config/flags.rs +++ b/src/bootstrap/src/core/config/flags.rs @@ -110,11 +110,10 @@ pub struct Flags { @@ -79,12 +78,12 @@ index c3f174028149..7fdd5f8b8cae 100644 // which passes -Dwarnings to the compiler invocations. #[arg(global = true, long)] diff --git a/src/bootstrap/src/core/config/tests.rs b/src/bootstrap/src/core/config/tests.rs -index 219c5a6ec914..bc49074fa316 100644 +index 2611b6cf51bb..1f02757682c2 100644 --- a/src/bootstrap/src/core/config/tests.rs +++ b/src/bootstrap/src/core/config/tests.rs -@@ -317,3 +317,61 @@ fn order_of_clippy_rules() { - - assert_eq!(expected, actual); +@@ -352,3 +352,61 @@ fn parse_rust_std_features_empty() { + fn parse_rust_std_features_invalid() { + parse("rust.std-features = \"backtrace\""); } + +#[test] @@ -145,12 +144,12 @@ index 219c5a6ec914..bc49074fa316 100644 + assert_eq!(config.jobs, Some(123)); +} diff --git a/src/bootstrap/src/utils/change_tracker.rs b/src/bootstrap/src/utils/change_tracker.rs -index 51a25104e4cf..1f6a1064a5dc 100644 +index b37786496cb5..9169bc90a45d 100644 --- a/src/bootstrap/src/utils/change_tracker.rs +++ b/src/bootstrap/src/utils/change_tracker.rs -@@ -235,4 +235,9 @@ pub fn human_readable_changes(changes: &[ChangeInfo]) -> String { +@@ -275,4 +275,9 @@ pub fn human_readable_changes(changes: &[ChangeInfo]) -> String { severity: ChangeSeverity::Info, - summary: "The `build.profiler` option now tries to use source code from `download-ci-llvm` if possible, instead of checking out the `src/llvm-project` submodule.", + summary: "New option `./x setup editor` added, replacing `./x setup vscode` and adding support for vim, emacs and helix.", }, + ChangeInfo { + change_id: 131838, diff --git a/SPECS/rust.spec b/SPECS/rust.spec index af8e0c7..3b631b1 100644 --- a/SPECS/rust.spec +++ b/SPECS/rust.spec @@ -9,7 +9,7 @@ ## END: Set by rpmautospec Name: rust -Version: 1.82.0 +Version: 1.83.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-DFS-2016) @@ -24,9 +24,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.81.0 -%global bootstrap_channel 1.81.0 -%global bootstrap_date 2024-09-05 +%global bootstrap_version 1.82.0 +%global bootstrap_channel 1.82.0 +%global bootstrap_date 2024-10-17 # Only the specified arches will use bootstrap binaries. # NOTE: Those binaries used to be uploaded with every new release, but that was @@ -68,8 +68,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-24 -%global wasi_libc_ref b9ef79d7dbd47c6c5bafdae760823467c2f60b70 +%global wasi_libc_ref wasi-sdk-24 %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} @@ -83,8 +82,8 @@ ExclusiveArch: %{rust_arches} %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 17.0+. -%global min_llvm_version 17.0.0 +# is insufficient. Rust currently requires LLVM 18.0+. +%global min_llvm_version 18.0.0 %global bundled_llvm_version 19.1.1 #global llvm_compat_version 17 %global llvm llvm%{?llvm_compat_version} @@ -171,11 +170,8 @@ 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.82.0-unbundle-sqlite.patch -# https://github.com/rust-lang/rust/pull/130034 -Patch7: 0001-Fix-enabling-wasm-component-ld-to-match-other-tools.patch - # https://github.com/rust-lang/rust/pull/131838 -Patch8: 0001-bootstrap-allow-setting-jobs-in-config.toml.patch +Patch7: 0001-bootstrap-allow-setting-jobs-in-config.toml.patch ### RHEL-specific patches below ### @@ -684,7 +680,6 @@ rm -rf %{wasi_libc_dir}/dlmalloc/ %patch -P6 -p1 %endif %patch -P7 -p1 -%patch -P8 -p1 %if %with disabled_libssh2 %patch -P100 -p1 @@ -944,19 +939,6 @@ find %{buildroot}%{common_libdir} -maxdepth 1 -type f -name '*.so' \ find %{buildroot}%{_libdir} -maxdepth 1 -type f -name '*.so' \ -exec chmod -v +x '{}' '+' -# The libdir libraries are identical to those under rustlib/. It's easier on -# library loading if we keep them in libdir, but we do need them in rustlib/ -# to support dynamic linking for compiler plugins, so we'll symlink. -find %{buildroot}%{rustlibdir}/%{rust_triple}/lib/ -maxdepth 1 -type f -name '*.so' | -while read lib; do - lib2="%{buildroot}%{_libdir}/${lib##*/}" - if [ -f "$lib2" ]; then - # make sure they're actually identical! - cmp "$lib" "$lib2" - ln -v -f -r -s -T "$lib2" "$lib" - fi -done - # Remove installer artifacts (manifests, uninstall scripts, etc.) find %{buildroot}%{rustlibdir} -maxdepth 1 -type f -exec rm -v '{}' '+' @@ -1063,10 +1045,6 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %{_libexecdir}/rust-analyzer-proc-macro-srv %{_mandir}/man1/rustc.1* %{_mandir}/man1/rustdoc.1* -%dir %{rustlibdir} -%dir %{rustlibdir}/%{rust_triple} -%dir %{rustlibdir}/%{rust_triple}/lib -%{rustlibdir}/%{rust_triple}/lib/*.so %files std-static @@ -1074,6 +1052,7 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %dir %{rustlibdir}/%{rust_triple} %dir %{rustlibdir}/%{rust_triple}/lib %{rustlibdir}/%{rust_triple}/lib/*.rlib +%exclude %{rustlibdir}/%{rust_triple}/lib/*.so %global target_files() \ %files std-static-%1 \ @@ -1212,6 +1191,9 @@ rm -rf "./build/%{rust_triple}/stage2-tools/%{rust_triple}/cit/" %changelog ## START: Generated by rpmautospec +* Wed Dec 04 2024 Josh Stone - 1.83.0-1 +- Update to Rust 1.83.0 + * Mon Nov 04 2024 Josh Stone - 1.82.0-1 - Update to Rust 1.82.0