From a80eac446ab871212ddb0f8c83fa9af3752bd836 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 27 Jun 2024 16:36:01 +0200 Subject: [PATCH] Update to Rust 1.79.0 Resolves: RHEL-30071 --- .gitignore | 2 + 0001-Fix-2-tests-for-offline-execution.patch | 59 ----- ...ests-with-dist-vendored-dependencies.patch | 49 ---- ...ssue-122805.rs-big-endian-compatible.patch | 49 ++++ ...the-host-library-path-in-run-make-v2.patch | 79 ------ ..._unsafe_ops_per_block-test-needs-asm.patch | 232 ------------------ ...-all-of-rustc-s-flags-to-rustc_cargo.patch | 198 --------------- ...command-lines-failure-caused-by-rust.patch | 27 -- ...-don-t-compress-test-registry-crates.patch | 183 -------------- ...nv-split_paths-join_paths-in-runtest.patch | 63 ----- rust.spec | 66 ++--- rustc-1.78.0-disable-libssh2.patch | 44 ---- rustc-1.79.0-disable-libssh2.patch | 44 ++++ ...atch => rustc-1.79.0-unbundle-sqlite.patch | 16 +- sources | 4 +- 15 files changed, 128 insertions(+), 987 deletions(-) delete mode 100644 0001-Fix-2-tests-for-offline-execution.patch delete mode 100644 0001-Fix-UI-tests-with-dist-vendored-dependencies.patch create mode 100644 0001-Make-issue-122805.rs-big-endian-compatible.patch delete mode 100644 0001-Set-the-host-library-path-in-run-make-v2.patch delete mode 100644 0001-The-multiple_unsafe_ops_per_block-test-needs-asm.patch delete mode 100644 0001-bootstrap-move-all-of-rustc-s-flags-to-rustc_cargo.patch delete mode 100644 0001-fix-long-linker-command-lines-failure-caused-by-rust.patch delete mode 100644 0001-test-don-t-compress-test-registry-crates.patch delete mode 100644 0002-Use-env-split_paths-join_paths-in-runtest.patch delete mode 100644 rustc-1.78.0-disable-libssh2.patch create mode 100644 rustc-1.79.0-disable-libssh2.patch rename rustc-1.78.0-unbundle-sqlite.patch => rustc-1.79.0-unbundle-sqlite.patch (57%) diff --git a/.gitignore b/.gitignore index 7632c62..1a1e850 100644 --- a/.gitignore +++ b/.gitignore @@ -435,3 +435,5 @@ /rustc-1.77.0-src.tar.xz /rustc-1.77.2-src.tar.xz /rustc-1.78.0-src.tar.xz +/rustc-1.79.0-src.tar.xz +/wasi-libc-wasi-sdk-22.tar.gz diff --git a/0001-Fix-2-tests-for-offline-execution.patch b/0001-Fix-2-tests-for-offline-execution.patch deleted file mode 100644 index 49688cf..0000000 --- a/0001-Fix-2-tests-for-offline-execution.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 6dda4e006b0d6d7519ac4a9f540566c81e406a8b Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Mon, 22 Apr 2024 16:19:17 -0700 -Subject: [PATCH] Fix 2 tests for offline execution - -In `alt_registry::warn_for_unused_fields`, the second part of the test -runs on `--registry crates-io`, so it needs a local replacement url. - -In `install::install_global_cargo_config`, it was adding to the "config" -file, but the `pkg` before it configured the dummy registry replacement -in "config.toml". So that replacement wasn't actually used, and if you -ran tests online it was trying to install `bar v0.1.1` from the real -registry! The filename is now fixed, and the test double-checks that -we're only trying to install the local `bar v0.0.1`. ---- - tests/testsuite/alt_registry.rs | 4 ++++ - tests/testsuite/install.rs | 3 ++- - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/tests/testsuite/alt_registry.rs b/tests/testsuite/alt_registry.rs -index e95f2cbaabbd..1fef04e3ae42 100644 ---- a/tests/testsuite/alt_registry.rs -+++ b/tests/testsuite/alt_registry.rs -@@ -1572,7 +1572,11 @@ or use environment variable CARGO_REGISTRIES_ALTERNATIVE_TOKEN", - ) - .run(); - -+ let crates_io = registry::RegistryBuilder::new() -+ .no_configure_token() -+ .build(); - p.cargo("publish --registry crates-io") -+ .replace_crates_io(crates_io.index_url()) - .with_status(101) - .with_stderr( - "\ -diff --git a/tests/testsuite/install.rs b/tests/testsuite/install.rs -index 89d40ada9543..ef3f4f3ae604 100644 ---- a/tests/testsuite/install.rs -+++ b/tests/testsuite/install.rs -@@ -1981,7 +1981,7 @@ fn install_ignores_unstable_table_in_local_cargo_config() { - fn install_global_cargo_config() { - pkg("bar", "0.0.1"); - -- let config = cargo_home().join("config"); -+ let config = cargo_home().join("config.toml"); - let mut toml = fs::read_to_string(&config).unwrap_or_default(); - - toml.push_str( -@@ -1994,6 +1994,7 @@ fn install_global_cargo_config() { - - cargo_process("install bar") - .with_status(101) -+ .with_stderr_contains("[INSTALLING] bar v0.0.1") - .with_stderr_contains("[..]--target nonexistent[..]") - .run(); - } --- -2.44.0 - diff --git a/0001-Fix-UI-tests-with-dist-vendored-dependencies.patch b/0001-Fix-UI-tests-with-dist-vendored-dependencies.patch deleted file mode 100644 index 82c6c35..0000000 --- a/0001-Fix-UI-tests-with-dist-vendored-dependencies.patch +++ /dev/null @@ -1,49 +0,0 @@ -From f7b2e37f7232540d9f2b2dc6e33597fbb74f4f63 Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Mon, 8 Apr 2024 15:04:44 -0700 -Subject: [PATCH] Fix UI tests with dist-vendored dependencies - -There is already a workaround in `compiletest` to deal with custom -`CARGO_HOME` using `-Zignore-directory-in-diagnostics-source-blocks={}`. -A similar need exists when dependencies come from the local `vendor` -directory, which distro builds often use, so now we ignore that too. - -Also, `issue-21763.rs` was normalizing `hashbrown-` paths, presumably -expecting a version suffix, but the vendored path doesn't include the -version. Now that matches `[\\/]hashbrown` instead. ---- - src/tools/compiletest/src/runtest.rs | 5 +++++ - tests/ui/issues/issue-21763.rs | 2 +- - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs -index bb8509fe4137..770496289e2e 100644 ---- a/src/tools/compiletest/src/runtest.rs -+++ b/src/tools/compiletest/src/runtest.rs -@@ -2354,6 +2354,11 @@ fn make_compile_args( - "ignore-directory-in-diagnostics-source-blocks={}", - home::cargo_home().expect("failed to find cargo home").to_str().unwrap() - )); -+ // Similarly, vendored sources shouldn't be shown when running from a dist tarball. -+ rustc.arg("-Z").arg(format!( -+ "ignore-directory-in-diagnostics-source-blocks={}", -+ self.config.find_rust_src_root().unwrap().join("vendor").display(), -+ )); - - // Optionally prevent default --sysroot if specified in test compile-flags. - if !self.props.compile_flags.iter().any(|flag| flag.starts_with("--sysroot")) -diff --git a/tests/ui/issues/issue-21763.rs b/tests/ui/issues/issue-21763.rs -index a349253063c0..1d0a0705cbbd 100644 ---- a/tests/ui/issues/issue-21763.rs -+++ b/tests/ui/issues/issue-21763.rs -@@ -1,6 +1,6 @@ - // Regression test for HashMap only impl'ing Send/Sync if its contents do - --//@ normalize-stderr-test: "\S+hashbrown-\S+" -> "$$HASHBROWN_SRC_LOCATION" -+//@ normalize-stderr-test: "\S+[\\/]hashbrown\S+" -> "$$HASHBROWN_SRC_LOCATION" - - use std::collections::HashMap; - use std::rc::Rc; --- -2.44.0 - diff --git a/0001-Make-issue-122805.rs-big-endian-compatible.patch b/0001-Make-issue-122805.rs-big-endian-compatible.patch new file mode 100644 index 0000000..23d9a86 --- /dev/null +++ b/0001-Make-issue-122805.rs-big-endian-compatible.patch @@ -0,0 +1,49 @@ +From 26fa5c2c300f3c3a3ee3109c009bd4a6803a2a4c Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Tue, 11 Jun 2024 10:13:07 +0200 +Subject: [PATCH] Make issue-122805.rs big endian compatible + +Instead of not generating the function at all on big endian (which +makes the CHECK lines fail), instead use to_le() on big endian, +so that we essentially perform a bswap for both endiannesses. +--- + tests/codegen/issues/issue-122805.rs | 21 ++++++++++++--------- + 1 file changed, 12 insertions(+), 9 deletions(-) + +diff --git a/tests/codegen/issues/issue-122805.rs b/tests/codegen/issues/issue-122805.rs +index 6d108ada6dd..8e03c6c8884 100644 +--- a/tests/codegen/issues/issue-122805.rs ++++ b/tests/codegen/issues/issue-122805.rs +@@ -39,17 +39,20 @@ + // OPT3WINX64-NEXT: store <8 x i16> + // CHECK-NEXT: ret void + #[no_mangle] +-#[cfg(target_endian = "little")] + pub fn convert(value: [u16; 8]) -> [u8; 16] { ++ #[cfg(target_endian = "little")] ++ let bswap = u16::to_be; ++ #[cfg(target_endian = "big")] ++ let bswap = u16::to_le; + let addr16 = [ +- value[0].to_be(), +- value[1].to_be(), +- value[2].to_be(), +- value[3].to_be(), +- value[4].to_be(), +- value[5].to_be(), +- value[6].to_be(), +- value[7].to_be(), ++ bswap(value[0]), ++ bswap(value[1]), ++ bswap(value[2]), ++ bswap(value[3]), ++ bswap(value[4]), ++ bswap(value[5]), ++ bswap(value[6]), ++ bswap(value[7]), + ]; + unsafe { core::mem::transmute::<_, [u8; 16]>(addr16) } + } +-- +2.45.1 + diff --git a/0001-Set-the-host-library-path-in-run-make-v2.patch b/0001-Set-the-host-library-path-in-run-make-v2.patch deleted file mode 100644 index b1ed9e1..0000000 --- a/0001-Set-the-host-library-path-in-run-make-v2.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 27593a7ad3796cf3afaf4145275ff20d5aff333f Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Wed, 10 Apr 2024 17:25:10 -0700 -Subject: [PATCH 1/2] Set the host library path in run-make v2 - -When the build is configured with `[rust] rpath = false`, we need to set -`LD_LIBRARY_PATH` (or equivalent) to what would have been the `RPATH`, -so the compiler can find its own libraries. The old `tools.mk` code has -this environment prefixed in the `$(BARE_RUSTC)` variable, so we just -need to wire up something similar for run-make v2. - -This is now set while building each `rmake.rs` itself, as well as in the -`rust-make-support` helpers for `rustc` and `rustdoc` commands. This is -also available in a `set_host_rpath` function for manual commands, like -in the `compiler-builtins` test. - -(cherry picked from commit 8a5409bbdbadb522f25e7e5e3d54b967cb5eee56) ---- - src/tools/compiletest/src/runtest.rs | 6 ++++++ - src/tools/run-make-support/src/lib.rs | 15 +++++++++++++++ - 2 files changed, 21 insertions(+) - -diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs -index 7be0571b1111..3c775ea0651c 100644 ---- a/src/tools/compiletest/src/runtest.rs -+++ b/src/tools/compiletest/src/runtest.rs -@@ -3767,6 +3767,11 @@ fn run_rmake_v2_test(&self) { - debug!(?support_lib_deps); - debug!(?support_lib_deps_deps); - -+ let mut host_dylib_env_paths = String::new(); -+ host_dylib_env_paths.push_str(&cwd.join(&self.config.compile_lib_path).to_string_lossy()); -+ host_dylib_env_paths.push(':'); -+ host_dylib_env_paths.push_str(&env::var(dylib_env_var()).unwrap()); -+ - let res = self.cmd2procres( - Command::new(&self.config.rustc_path) - .arg("-o") -@@ -3787,6 +3792,7 @@ fn run_rmake_v2_test(&self) { - .env("RUSTC", cwd.join(&self.config.rustc_path)) - .env("TMPDIR", &tmpdir) - .env("LD_LIB_PATH_ENVVAR", dylib_env_var()) -+ .env(dylib_env_var(), &host_dylib_env_paths) - .env("HOST_RPATH_DIR", cwd.join(&self.config.compile_lib_path)) - .env("TARGET_RPATH_DIR", cwd.join(&self.config.run_lib_path)) - .env("LLVM_COMPONENTS", &self.config.llvm_components) -diff --git a/src/tools/run-make-support/src/lib.rs b/src/tools/run-make-support/src/lib.rs -index 674860f8413b..da3efd292b3f 100644 ---- a/src/tools/run-make-support/src/lib.rs -+++ b/src/tools/run-make-support/src/lib.rs -@@ -11,6 +11,7 @@ pub fn out_dir() -> PathBuf { - fn setup_common_build_cmd() -> Command { - let rustc = env::var("RUSTC").unwrap(); - let mut cmd = Command::new(rustc); -+ set_host_rpath(&mut cmd); - cmd.arg("--out-dir").arg(out_dir()).arg("-L").arg(out_dir()); - cmd - } -@@ -157,3 +158,17 @@ pub fn run_fail(bin_name: &str) -> Output { - } - output - } -+ -+/// Set the runtime library path as needed for running the host rustc/rustdoc/etc. -+pub fn set_host_rpath(cmd: &mut Command) { -+ let ld_lib_path_envvar = env::var("LD_LIB_PATH_ENVVAR").unwrap(); -+ cmd.env(&ld_lib_path_envvar, { -+ let mut paths = vec![]; -+ paths.push(PathBuf::from(env::var("TMPDIR").unwrap())); -+ paths.push(PathBuf::from(env::var("HOST_RPATH_DIR").unwrap())); -+ for p in env::split_paths(&env::var(&ld_lib_path_envvar).unwrap()) { -+ paths.push(p.to_path_buf()); -+ } -+ env::join_paths(paths.iter()).unwrap() -+ }); -+} --- -2.44.0 - diff --git a/0001-The-multiple_unsafe_ops_per_block-test-needs-asm.patch b/0001-The-multiple_unsafe_ops_per_block-test-needs-asm.patch deleted file mode 100644 index ca9178c..0000000 --- a/0001-The-multiple_unsafe_ops_per_block-test-needs-asm.patch +++ /dev/null @@ -1,232 +0,0 @@ -From 245fbeef49c2395471498d20e67f4edf4222c865 Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Tue, 16 Apr 2024 16:45:59 -0700 -Subject: [PATCH] The `multiple_unsafe_ops_per_block` test needs `asm!` - ---- - tests/ui/multiple_unsafe_ops_per_block.rs | 1 + - tests/ui/multiple_unsafe_ops_per_block.stderr | 58 +++++++++---------- - 2 files changed, 30 insertions(+), 29 deletions(-) - -diff --git a/tests/ui/multiple_unsafe_ops_per_block.rs b/tests/ui/multiple_unsafe_ops_per_block.rs -index 8afb4df20af4..6b8a103d4a94 100644 ---- a/tests/ui/multiple_unsafe_ops_per_block.rs -+++ b/tests/ui/multiple_unsafe_ops_per_block.rs -@@ -1,3 +1,4 @@ -+//@needs-asm-support - //@aux-build:proc_macros.rs - #![allow(unused)] - #![allow(deref_nullptr)] -diff --git a/tests/ui/multiple_unsafe_ops_per_block.stderr b/tests/ui/multiple_unsafe_ops_per_block.stderr -index cff85ae115e0..e732bde0707e 100644 ---- a/tests/ui/multiple_unsafe_ops_per_block.stderr -+++ b/tests/ui/multiple_unsafe_ops_per_block.stderr -@@ -1,5 +1,5 @@ - error: this `unsafe` block contains 2 unsafe operations, expected only one -- --> tests/ui/multiple_unsafe_ops_per_block.rs:36:5 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:37:5 - | - LL | / unsafe { - LL | | STATIC += 1; -@@ -8,12 +8,12 @@ LL | | } - | |_____^ - | - note: modification of a mutable static occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:37:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:38:9 - | - LL | STATIC += 1; - | ^^^^^^^^^^^ - note: unsafe function call occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:38:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:39:9 - | - LL | not_very_safe(); - | ^^^^^^^^^^^^^^^ -@@ -21,7 +21,7 @@ LL | not_very_safe(); - = help: to override `-D warnings` add `#[allow(clippy::multiple_unsafe_ops_per_block)]` - - error: this `unsafe` block contains 2 unsafe operations, expected only one -- --> tests/ui/multiple_unsafe_ops_per_block.rs:45:5 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:46:5 - | - LL | / unsafe { - LL | | drop(u.u); -@@ -30,18 +30,18 @@ LL | | } - | |_____^ - | - note: union field access occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:46:14 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:47:14 - | - LL | drop(u.u); - | ^^^ - note: raw pointer dereference occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:47:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:48:9 - | - LL | *raw_ptr(); - | ^^^^^^^^^^ - - error: this `unsafe` block contains 3 unsafe operations, expected only one -- --> tests/ui/multiple_unsafe_ops_per_block.rs:52:5 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:53:5 - | - LL | / unsafe { - LL | | asm!("nop"); -@@ -51,23 +51,23 @@ LL | | } - | |_____^ - | - note: inline assembly used here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:53:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:54:9 - | - LL | asm!("nop"); - | ^^^^^^^^^^^ - note: unsafe method call occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:54:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:55:9 - | - LL | sample.not_very_safe(); - | ^^^^^^^^^^^^^^^^^^^^^^ - note: modification of a mutable static occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:55:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:56:9 - | - LL | STATIC = 0; - | ^^^^^^^^^^ - - error: this `unsafe` block contains 6 unsafe operations, expected only one -- --> tests/ui/multiple_unsafe_ops_per_block.rs:61:5 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:62:5 - | - LL | / unsafe { - LL | | drop(u.u); -@@ -79,55 +79,55 @@ LL | | } - | |_____^ - | - note: union field access occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:62:14 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:63:14 - | - LL | drop(u.u); - | ^^^ - note: access of a mutable static occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:63:14 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:64:14 - | - LL | drop(STATIC); - | ^^^^^^ - note: unsafe method call occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:64:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:65:9 - | - LL | sample.not_very_safe(); - | ^^^^^^^^^^^^^^^^^^^^^^ - note: unsafe function call occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:65:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:66:9 - | - LL | not_very_safe(); - | ^^^^^^^^^^^^^^^ - note: raw pointer dereference occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:66:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:67:9 - | - LL | *raw_ptr(); - | ^^^^^^^^^^ - note: inline assembly used here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:67:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:68:9 - | - LL | asm!("nop"); - | ^^^^^^^^^^^ - - error: this `unsafe` block contains 2 unsafe operations, expected only one -- --> tests/ui/multiple_unsafe_ops_per_block.rs:105:5 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:106:5 - | - LL | unsafe { char::from_u32_unchecked(*ptr.cast::()) } - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - note: unsafe function call occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:105:14 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:106:14 - | - LL | unsafe { char::from_u32_unchecked(*ptr.cast::()) } - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - note: raw pointer dereference occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:105:39 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:106:39 - | - LL | unsafe { char::from_u32_unchecked(*ptr.cast::()) } - | ^^^^^^^^^^^^^^^^^^ - - error: this `unsafe` block contains 2 unsafe operations, expected only one -- --> tests/ui/multiple_unsafe_ops_per_block.rs:123:5 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:124:5 - | - LL | / unsafe { - LL | | x(); -@@ -136,18 +136,18 @@ LL | | } - | |_____^ - | - note: unsafe function call occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:124:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:125:9 - | - LL | x(); - | ^^^ - note: unsafe function call occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:125:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:126:9 - | - LL | x(); - | ^^^ - - error: this `unsafe` block contains 2 unsafe operations, expected only one -- --> tests/ui/multiple_unsafe_ops_per_block.rs:134:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:135:9 - | - LL | / unsafe { - LL | | T::X(); -@@ -156,18 +156,18 @@ LL | | } - | |_________^ - | - note: unsafe function call occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:135:13 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:136:13 - | - LL | T::X(); - | ^^^^^^ - note: unsafe function call occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:136:13 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:137:13 - | - LL | T::X(); - | ^^^^^^ - - error: this `unsafe` block contains 2 unsafe operations, expected only one -- --> tests/ui/multiple_unsafe_ops_per_block.rs:144:5 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:145:5 - | - LL | / unsafe { - LL | | x.0(); -@@ -176,12 +176,12 @@ LL | | } - | |_____^ - | - note: unsafe function call occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:145:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:146:9 - | - LL | x.0(); - | ^^^^^ - note: unsafe function call occurs here -- --> tests/ui/multiple_unsafe_ops_per_block.rs:146:9 -+ --> tests/ui/multiple_unsafe_ops_per_block.rs:147:9 - | - LL | x.0(); - | ^^^^^ --- -2.44.0 - diff --git a/0001-bootstrap-move-all-of-rustc-s-flags-to-rustc_cargo.patch b/0001-bootstrap-move-all-of-rustc-s-flags-to-rustc_cargo.patch deleted file mode 100644 index 5275aba..0000000 --- a/0001-bootstrap-move-all-of-rustc-s-flags-to-rustc_cargo.patch +++ /dev/null @@ -1,198 +0,0 @@ -From e8fb8c36ca0de817b3d30f603d6d6b3c56e8b0be Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Fri, 5 Apr 2024 15:07:58 -0700 -Subject: [PATCH] bootstrap: move all of rustc's flags to `rustc_cargo` - -This ensures that `RUSTFLAGS` will be consistent between all modes of -building the compiler, so they won't trigger a rebuild by cargo. This -kind of fix was started in #119414 just for LTO flags, but it's -applicable to all kinds of flags that might be configured. ---- - src/bootstrap/src/core/build_steps/check.rs | 2 +- - src/bootstrap/src/core/build_steps/compile.rs | 107 +++++++++--------- - src/bootstrap/src/core/build_steps/doc.rs | 2 +- - src/bootstrap/src/core/build_steps/test.rs | 2 +- - 4 files changed, 59 insertions(+), 54 deletions(-) - -diff --git a/src/bootstrap/src/core/build_steps/check.rs b/src/bootstrap/src/core/build_steps/check.rs -index 55180a82885b..37d91b14ca1b 100644 ---- a/src/bootstrap/src/core/build_steps/check.rs -+++ b/src/bootstrap/src/core/build_steps/check.rs -@@ -296,7 +296,7 @@ fn run(self, builder: &Builder<'_>) { - cargo_subcommand(builder.kind), - ); - -- rustc_cargo(builder, &mut cargo, target, compiler.stage); -+ rustc_cargo(builder, &mut cargo, target, &compiler); - - // For ./x.py clippy, don't run with --all-targets because - // linting tests and benchmarks can produce very noisy results -diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs -index e03997181ee5..9420e40d6c2b 100644 ---- a/src/bootstrap/src/core/build_steps/compile.rs -+++ b/src/bootstrap/src/core/build_steps/compile.rs -@@ -945,55 +945,10 @@ fn run(self, builder: &Builder<'_>) -> u32 { - "build", - ); - -- rustc_cargo(builder, &mut cargo, target, compiler.stage); -+ rustc_cargo(builder, &mut cargo, target, &compiler); - -- if builder.config.rust_profile_use.is_some() -- && builder.config.rust_profile_generate.is_some() -- { -- panic!("Cannot use and generate PGO profiles at the same time"); -- } -- -- // With LLD, we can use ICF (identical code folding) to reduce the executable size -- // of librustc_driver/rustc and to improve i-cache utilization. -- // -- // -Wl,[link options] doesn't work on MSVC. However, /OPT:ICF (technically /OPT:REF,ICF) -- // is already on by default in MSVC optimized builds, which is interpreted as --icf=all: -- // https://github.com/llvm/llvm-project/blob/3329cec2f79185bafd678f310fafadba2a8c76d2/lld/COFF/Driver.cpp#L1746 -- // https://github.com/rust-lang/rust/blob/f22819bcce4abaff7d1246a56eec493418f9f4ee/compiler/rustc_codegen_ssa/src/back/linker.rs#L827 -- if builder.config.lld_mode.is_used() && !compiler.host.is_msvc() { -- cargo.rustflag("-Clink-args=-Wl,--icf=all"); -- } -- -- let is_collecting = if let Some(path) = &builder.config.rust_profile_generate { -- if compiler.stage == 1 { -- cargo.rustflag(&format!("-Cprofile-generate={path}")); -- // Apparently necessary to avoid overflowing the counters during -- // a Cargo build profile -- cargo.rustflag("-Cllvm-args=-vp-counters-per-site=4"); -- true -- } else { -- false -- } -- } else if let Some(path) = &builder.config.rust_profile_use { -- if compiler.stage == 1 { -- cargo.rustflag(&format!("-Cprofile-use={path}")); -- if builder.is_verbose() { -- cargo.rustflag("-Cllvm-args=-pgo-warn-missing-function"); -- } -- true -- } else { -- false -- } -- } else { -- false -- }; -- if is_collecting { -- // Ensure paths to Rust sources are relative, not absolute. -- cargo.rustflag(&format!( -- "-Cllvm-args=-static-func-strip-dirname-prefix={}", -- builder.config.src.components().count() -- )); -- } -+ // NB: all RUSTFLAGS should be added to `rustc_cargo()` so they will be -+ // consistently applied by check/doc/test modes too. - - for krate in &*self.crates { - cargo.arg("-p").arg(krate); -@@ -1044,7 +999,12 @@ fn run(self, builder: &Builder<'_>) -> u32 { - } - } - --pub fn rustc_cargo(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetSelection, stage: u32) { -+pub fn rustc_cargo( -+ builder: &Builder<'_>, -+ cargo: &mut Cargo, -+ target: TargetSelection, -+ compiler: &Compiler, -+) { - cargo - .arg("--features") - .arg(builder.rustc_features(builder.kind, target)) -@@ -1055,7 +1015,7 @@ pub fn rustc_cargo(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetSelec - - // We currently don't support cross-crate LTO in stage0. This also isn't hugely necessary - // and may just be a time sink. -- if stage != 0 { -+ if compiler.stage != 0 { - match builder.config.rust_lto { - RustcLto::Thin | RustcLto::Fat => { - // Since using LTO for optimizing dylibs is currently experimental, -@@ -1081,7 +1041,52 @@ pub fn rustc_cargo(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetSelec - cargo.rustflag("-Clto=off"); - } - -- rustc_cargo_env(builder, cargo, target, stage); -+ // With LLD, we can use ICF (identical code folding) to reduce the executable size -+ // of librustc_driver/rustc and to improve i-cache utilization. -+ // -+ // -Wl,[link options] doesn't work on MSVC. However, /OPT:ICF (technically /OPT:REF,ICF) -+ // is already on by default in MSVC optimized builds, which is interpreted as --icf=all: -+ // https://github.com/llvm/llvm-project/blob/3329cec2f79185bafd678f310fafadba2a8c76d2/lld/COFF/Driver.cpp#L1746 -+ // https://github.com/rust-lang/rust/blob/f22819bcce4abaff7d1246a56eec493418f9f4ee/compiler/rustc_codegen_ssa/src/back/linker.rs#L827 -+ if builder.config.lld_mode.is_used() && !compiler.host.is_msvc() { -+ cargo.rustflag("-Clink-args=-Wl,--icf=all"); -+ } -+ -+ if builder.config.rust_profile_use.is_some() && builder.config.rust_profile_generate.is_some() { -+ panic!("Cannot use and generate PGO profiles at the same time"); -+ } -+ let is_collecting = if let Some(path) = &builder.config.rust_profile_generate { -+ if compiler.stage == 1 { -+ cargo.rustflag(&format!("-Cprofile-generate={path}")); -+ // Apparently necessary to avoid overflowing the counters during -+ // a Cargo build profile -+ cargo.rustflag("-Cllvm-args=-vp-counters-per-site=4"); -+ true -+ } else { -+ false -+ } -+ } else if let Some(path) = &builder.config.rust_profile_use { -+ if compiler.stage == 1 { -+ cargo.rustflag(&format!("-Cprofile-use={path}")); -+ if builder.is_verbose() { -+ cargo.rustflag("-Cllvm-args=-pgo-warn-missing-function"); -+ } -+ true -+ } else { -+ false -+ } -+ } else { -+ false -+ }; -+ if is_collecting { -+ // Ensure paths to Rust sources are relative, not absolute. -+ cargo.rustflag(&format!( -+ "-Cllvm-args=-static-func-strip-dirname-prefix={}", -+ builder.config.src.components().count() -+ )); -+ } -+ -+ rustc_cargo_env(builder, cargo, target, compiler.stage); - } - - pub fn rustc_cargo_env( -diff --git a/src/bootstrap/src/core/build_steps/doc.rs b/src/bootstrap/src/core/build_steps/doc.rs -index 51b5cdc05657..a22cbeacf016 100644 ---- a/src/bootstrap/src/core/build_steps/doc.rs -+++ b/src/bootstrap/src/core/build_steps/doc.rs -@@ -804,7 +804,7 @@ fn run(self, builder: &Builder<'_>) { - // see https://github.com/rust-lang/rust/pull/122066#issuecomment-1983049222 - // cargo.rustdocflag("--generate-link-to-definition"); - -- compile::rustc_cargo(builder, &mut cargo, target, compiler.stage); -+ compile::rustc_cargo(builder, &mut cargo, target, &compiler); - cargo.arg("-Zunstable-options"); - cargo.arg("-Zskip-rustdoc-fingerprint"); - -diff --git a/src/bootstrap/src/core/build_steps/test.rs b/src/bootstrap/src/core/build_steps/test.rs -index bacf5f0d33ce..5277c38a4ad0 100644 ---- a/src/bootstrap/src/core/build_steps/test.rs -+++ b/src/bootstrap/src/core/build_steps/test.rs -@@ -2671,7 +2671,7 @@ fn run(self, builder: &Builder<'_>) { - } - } - Mode::Rustc => { -- compile::rustc_cargo(builder, &mut cargo, target, compiler.stage); -+ compile::rustc_cargo(builder, &mut cargo, target, &compiler); - } - _ => panic!("can only test libraries"), - }; --- -2.44.0 - diff --git a/0001-fix-long-linker-command-lines-failure-caused-by-rust.patch b/0001-fix-long-linker-command-lines-failure-caused-by-rust.patch deleted file mode 100644 index e2a2a28..0000000 --- a/0001-fix-long-linker-command-lines-failure-caused-by-rust.patch +++ /dev/null @@ -1,27 +0,0 @@ -From f25809d2d33e1141d73487e55fe155f41762aef3 Mon Sep 17 00:00:00 2001 -From: onur-ozkan -Date: Sun, 10 Mar 2024 09:16:24 +0300 -Subject: [PATCH] fix `long-linker-command-lines` failure caused by - `rust.rpath=false` - -Signed-off-by: onur-ozkan ---- - tests/run-make/long-linker-command-lines/Makefile | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tests/run-make/long-linker-command-lines/Makefile b/tests/run-make/long-linker-command-lines/Makefile -index f864ea74f4a9..b573038e344a 100644 ---- a/tests/run-make/long-linker-command-lines/Makefile -+++ b/tests/run-make/long-linker-command-lines/Makefile -@@ -1,6 +1,8 @@ - # ignore-cross-compile - include ../tools.mk - -+export LD_LIBRARY_PATH := $(HOST_RPATH_DIR) -+ - all: - $(RUSTC) foo.rs -g -O - RUSTC="$(RUSTC_ORIGINAL)" $(call RUN,foo) --- -2.44.0 - diff --git a/0001-test-don-t-compress-test-registry-crates.patch b/0001-test-don-t-compress-test-registry-crates.patch deleted file mode 100644 index a8bdd0c..0000000 --- a/0001-test-don-t-compress-test-registry-crates.patch +++ /dev/null @@ -1,183 +0,0 @@ -From a70f23c50b61c1a3335f2943375a04ae7abf2fa4 Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Thu, 11 Apr 2024 14:58:42 -0700 -Subject: [PATCH] test: don't compress test registry crates - -They are still nominally gzipped, but using `Compression::none()` makes -them consistent even across zlib and zlib-ng, and this fixes checksum -differences in the testsuite. There is a one-time update of all those -checksums to catch up with this change though. ---- - crates/cargo-test-support/src/registry.rs | 2 +- - tests/testsuite/alt_registry.rs | 2 +- - .../cargo_add/locked_unchanged/in/Cargo.lock | 2 +- - .../cargo_add/lockfile_updated/in/Cargo.lock | 2 +- - .../cargo_add/lockfile_updated/out/Cargo.lock | 4 ++-- - .../cargo_remove/update_lock_file/in/Cargo.lock | 16 ++++++++-------- - .../cargo_remove/update_lock_file/out/Cargo.lock | 12 ++++++------ - 7 files changed, 20 insertions(+), 20 deletions(-) - -diff --git a/crates/cargo-test-support/src/registry.rs b/crates/cargo-test-support/src/registry.rs -index e65baeab17d7..f8b4b1447822 100644 ---- a/crates/cargo-test-support/src/registry.rs -+++ b/crates/cargo-test-support/src/registry.rs -@@ -1469,7 +1469,7 @@ impl Package { - let dst = self.archive_dst(); - t!(fs::create_dir_all(dst.parent().unwrap())); - let f = t!(File::create(&dst)); -- let mut a = Builder::new(GzEncoder::new(f, Compression::default())); -+ let mut a = Builder::new(GzEncoder::new(f, Compression::none())); - - if !self - .files -diff --git a/tests/testsuite/alt_registry.rs b/tests/testsuite/alt_registry.rs -index e122199baa41..fb88105374a2 100644 ---- a/tests/testsuite/alt_registry.rs -+++ b/tests/testsuite/alt_registry.rs -@@ -1493,7 +1493,7 @@ dependencies = [ - name = "foo" - version = "0.1.0" - source = "sparse+http://[..]/" --checksum = "f6a200a9339fef960979d94d5c99cbbfd899b6f5a396a55d9775089119050203""#, -+checksum = "458c1addb23fde7dfbca0410afdbcc0086f96197281ec304d9e0e10def3cb899""#, - ); - } - -diff --git a/tests/testsuite/cargo_add/locked_unchanged/in/Cargo.lock b/tests/testsuite/cargo_add/locked_unchanged/in/Cargo.lock -index 011b335926ee..b88709a9e9be 100644 ---- a/tests/testsuite/cargo_add/locked_unchanged/in/Cargo.lock -+++ b/tests/testsuite/cargo_add/locked_unchanged/in/Cargo.lock -@@ -13,4 +13,4 @@ dependencies = [ - name = "my-package" - version = "99999.0.0+my-package" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "62c45acf9e11d2f97f5b318143219c0b4102eafef1c22a4b545b47104691d915" -+checksum = "73cfa03cf28feb001362b377a837910c5a6ec1cc5cceaa562b97fc14d15edec8" -diff --git a/tests/testsuite/cargo_add/lockfile_updated/in/Cargo.lock b/tests/testsuite/cargo_add/lockfile_updated/in/Cargo.lock -index d9bcc988d3f2..d8fa962f3069 100644 ---- a/tests/testsuite/cargo_add/lockfile_updated/in/Cargo.lock -+++ b/tests/testsuite/cargo_add/lockfile_updated/in/Cargo.lock -@@ -14,4 +14,4 @@ dependencies = [ - name = "unrelateed-crate" - version = "0.2.0+my-package" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "266de4849a570b5dfda5e8e082a2aff885e9d2d4965dae8f8b6c8535e1ec731f" -+checksum = "b16af1a8ba7e4331ca62d945483a3028c2afbbe06a7f2ffaa0a3538ef0a7d63e" -diff --git a/tests/testsuite/cargo_add/lockfile_updated/out/Cargo.lock b/tests/testsuite/cargo_add/lockfile_updated/out/Cargo.lock -index 4b5fb465f104..e423b3d1f8b7 100644 ---- a/tests/testsuite/cargo_add/lockfile_updated/out/Cargo.lock -+++ b/tests/testsuite/cargo_add/lockfile_updated/out/Cargo.lock -@@ -14,10 +14,10 @@ dependencies = [ - name = "my-package" - version = "99999.0.0+my-package" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "62c45acf9e11d2f97f5b318143219c0b4102eafef1c22a4b545b47104691d915" -+checksum = "73cfa03cf28feb001362b377a837910c5a6ec1cc5cceaa562b97fc14d15edec8" - - [[package]] - name = "unrelateed-crate" - version = "0.2.0+my-package" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "266de4849a570b5dfda5e8e082a2aff885e9d2d4965dae8f8b6c8535e1ec731f" -+checksum = "b16af1a8ba7e4331ca62d945483a3028c2afbbe06a7f2ffaa0a3538ef0a7d63e" -diff --git a/tests/testsuite/cargo_remove/update_lock_file/in/Cargo.lock b/tests/testsuite/cargo_remove/update_lock_file/in/Cargo.lock -index 2302220f2fb7..a4018e70eb47 100644 ---- a/tests/testsuite/cargo_remove/update_lock_file/in/Cargo.lock -+++ b/tests/testsuite/cargo_remove/update_lock_file/in/Cargo.lock -@@ -19,40 +19,40 @@ dependencies = [ - name = "clippy" - version = "0.4.1+my-package" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "47ced0eda54e9ddc6063f0e1d0164493cd16c84c6b6a0329a536967c44e205f7" -+checksum = "e95568c5ce98de9c470c1d9b387466f4d5efa9687d3af7998e7c9c1da5e399fb" - - [[package]] - name = "docopt" - version = "0.6.2+my-package" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b600540c4fafb27bf6e6961f0f1e6f547c9d6126ce581ab3a92f878c8e2c9a2c" -+checksum = "d4414d2705e6b42fe10772b4ab4e3260f362669e45606eb562dc4c0023e911f6" - - [[package]] - name = "regex" - version = "0.1.1+my-package" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "84949cb53285a6c481d0133065a7b669871acfd9e20f273f4ce1283c309775d5" -+checksum = "bc4552a1d503f3a436bb18d1efff62eb95bd97f724d06466c55ef151ea2de9e0" - - [[package]] - name = "rustc-serialize" --version = "0.4.1+my-package" -+version = "0.4.0+my-package" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "31162e7d23a085553c42dee375787b451a481275473f7779c4a63bcc267a24fd" -+checksum = "48c3645ec42f69a343fbe9734a477ae59448192e779206dbcb1a9c3397563fd8" - - [[package]] - name = "semver" - version = "0.1.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "106bee742e3199d9e59f4269e458dfc825c1b4648c483b1c2b7a45cd2610a308" -+checksum = "20070289360e74dcdc28f437b08dda0c0c861c2328d749bb0d6e1a428013af83" - - [[package]] - name = "serde" - version = "1.0.90" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "be7d269f612a60e3c2c4a4a120e2d878a3f3298a5285eda6e95453905a107d9a" -+checksum = "ba76b226746eabf28375d5ad184926bbb9cd727425c8d027ea10f6c508895c6c" - - [[package]] - name = "toml" - version = "0.1.1+my-package" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a0f6c7804525ce0a968ef270e55a516cf4bdcf1fea0b09d130e0aa34a66745b3" -+checksum = "a9ea5fa6eaed7d7e6d9fb4571bb9d915b577e19bf2a95321ebb70fd3d894ce49" -diff --git a/tests/testsuite/cargo_remove/update_lock_file/out/Cargo.lock b/tests/testsuite/cargo_remove/update_lock_file/out/Cargo.lock -index 0946cee47717..af60414ddad2 100644 ---- a/tests/testsuite/cargo_remove/update_lock_file/out/Cargo.lock -+++ b/tests/testsuite/cargo_remove/update_lock_file/out/Cargo.lock -@@ -18,34 +18,34 @@ dependencies = [ - name = "clippy" - version = "0.4.1+my-package" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "47ced0eda54e9ddc6063f0e1d0164493cd16c84c6b6a0329a536967c44e205f7" -+checksum = "e95568c5ce98de9c470c1d9b387466f4d5efa9687d3af7998e7c9c1da5e399fb" - - [[package]] - name = "docopt" - version = "0.6.2+my-package" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b600540c4fafb27bf6e6961f0f1e6f547c9d6126ce581ab3a92f878c8e2c9a2c" -+checksum = "d4414d2705e6b42fe10772b4ab4e3260f362669e45606eb562dc4c0023e911f6" - - [[package]] - name = "regex" - version = "0.1.1+my-package" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "84949cb53285a6c481d0133065a7b669871acfd9e20f273f4ce1283c309775d5" -+checksum = "bc4552a1d503f3a436bb18d1efff62eb95bd97f724d06466c55ef151ea2de9e0" - - [[package]] - name = "semver" - version = "0.1.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "106bee742e3199d9e59f4269e458dfc825c1b4648c483b1c2b7a45cd2610a308" -+checksum = "20070289360e74dcdc28f437b08dda0c0c861c2328d749bb0d6e1a428013af83" - - [[package]] - name = "serde" - version = "1.0.90" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "be7d269f612a60e3c2c4a4a120e2d878a3f3298a5285eda6e95453905a107d9a" -+checksum = "ba76b226746eabf28375d5ad184926bbb9cd727425c8d027ea10f6c508895c6c" - - [[package]] - name = "toml" - version = "0.1.1+my-package" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "a0f6c7804525ce0a968ef270e55a516cf4bdcf1fea0b09d130e0aa34a66745b3" -+checksum = "a9ea5fa6eaed7d7e6d9fb4571bb9d915b577e19bf2a95321ebb70fd3d894ce49" --- -2.44.0 - diff --git a/0002-Use-env-split_paths-join_paths-in-runtest.patch b/0002-Use-env-split_paths-join_paths-in-runtest.patch deleted file mode 100644 index b1f9311..0000000 --- a/0002-Use-env-split_paths-join_paths-in-runtest.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 642e12326055268c7605b31e7f91edf8f58e54d4 Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Thu, 11 Apr 2024 15:33:44 -0700 -Subject: [PATCH 2/2] Use `env::split_paths`/`join_paths` in runtest - -(cherry picked from commit 7e171c72cbddb0636fa8ce71a0e862486ae72625) ---- - src/tools/compiletest/src/runtest.rs | 31 ++++++++++++++-------------- - 1 file changed, 15 insertions(+), 16 deletions(-) - -diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs -index 3c775ea0651c..852ffa0a62a8 100644 ---- a/src/tools/compiletest/src/runtest.rs -+++ b/src/tools/compiletest/src/runtest.rs -@@ -3767,10 +3767,13 @@ fn run_rmake_v2_test(&self) { - debug!(?support_lib_deps); - debug!(?support_lib_deps_deps); - -- let mut host_dylib_env_paths = String::new(); -- host_dylib_env_paths.push_str(&cwd.join(&self.config.compile_lib_path).to_string_lossy()); -- host_dylib_env_paths.push(':'); -- host_dylib_env_paths.push_str(&env::var(dylib_env_var()).unwrap()); -+ let orig_dylib_env_paths = -+ Vec::from_iter(env::split_paths(&env::var(dylib_env_var()).unwrap())); -+ -+ let mut host_dylib_env_paths = Vec::new(); -+ host_dylib_env_paths.push(cwd.join(&self.config.compile_lib_path)); -+ host_dylib_env_paths.extend(orig_dylib_env_paths.iter().cloned()); -+ let host_dylib_env_paths = env::join_paths(host_dylib_env_paths).unwrap(); - - let res = self.cmd2procres( - Command::new(&self.config.rustc_path) -@@ -3810,19 +3813,15 @@ fn run_rmake_v2_test(&self) { - // Finally, we need to run the recipe binary to build and run the actual tests. - debug!(?recipe_bin); - -- let mut dylib_env_paths = String::new(); -- dylib_env_paths.push_str(&env::var(dylib_env_var()).unwrap()); -- dylib_env_paths.push(':'); -- dylib_env_paths.push_str(&support_lib_path.parent().unwrap().to_string_lossy()); -- dylib_env_paths.push(':'); -- dylib_env_paths.push_str( -- &stage_std_path.join("rustlib").join(&self.config.host).join("lib").to_string_lossy(), -- ); -+ let mut dylib_env_paths = orig_dylib_env_paths.clone(); -+ dylib_env_paths.push(support_lib_path.parent().unwrap().to_path_buf()); -+ dylib_env_paths.push(stage_std_path.join("rustlib").join(&self.config.host).join("lib")); -+ let dylib_env_paths = env::join_paths(dylib_env_paths).unwrap(); - -- let mut target_rpath_env_path = String::new(); -- target_rpath_env_path.push_str(&tmpdir.to_string_lossy()); -- target_rpath_env_path.push(':'); -- target_rpath_env_path.push_str(&dylib_env_paths); -+ let mut target_rpath_env_path = Vec::new(); -+ target_rpath_env_path.push(&tmpdir); -+ target_rpath_env_path.extend(&orig_dylib_env_paths); -+ let target_rpath_env_path = env::join_paths(target_rpath_env_path).unwrap(); - - let mut cmd = Command::new(&recipe_bin); - cmd.current_dir(&self.testpaths.file) --- -2.44.0 - diff --git a/rust.spec b/rust.spec index 30162a1..987c72e 100644 --- a/rust.spec +++ b/rust.spec @@ -1,5 +1,5 @@ Name: rust -Version: 1.78.0 +Version: 1.79.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) @@ -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.77.0 -%global bootstrap_channel 1.77.0 -%global bootstrap_date 2024-03-21 +%global bootstrap_version 1.78.0 +%global bootstrap_channel 1.78.0 +%global bootstrap_date 2024-05-02 # Only the specified arches will use bootstrap binaries. # NOTE: Those binaries used to be uploaded with every new release, but that was @@ -50,8 +50,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-21 -%global wasi_libc_ref 03b228e46bb02fcc5927253e1b8ad715072b1ae4 +%global wasi_libc_ref wasi-sdk-22 %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} @@ -65,9 +64,9 @@ 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 16.0+. -%global min_llvm_version 16.0.0 -%global bundled_llvm_version 18.1.2 +# is insufficient. Rust currently requires LLVM 17.0+. +%global min_llvm_version 17.0.0 +%global bundled_llvm_version 18.1.7 #global llvm_compat_version 17 %global llvm llvm%{?llvm_compat_version} %bcond_with bundled_llvm @@ -151,32 +150,13 @@ 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.78.0-unbundle-sqlite.patch - -# https://github.com/rust-lang/rust/pull/123520 -Patch7: 0001-bootstrap-move-all-of-rustc-s-flags-to-rustc_cargo.patch - -# https://github.com/rust-lang/rust/pull/123652 -Patch8: 0001-Fix-UI-tests-with-dist-vendored-dependencies.patch - -# https://github.com/rust-lang/rust/pull/122270 -Patch9: 0001-fix-long-linker-command-lines-failure-caused-by-rust.patch - -# https://github.com/rust-lang/rust/pull/123763 -Patch10: 0001-Set-the-host-library-path-in-run-make-v2.patch -Patch11: 0002-Use-env-split_paths-join_paths-in-runtest.patch +Patch6: rustc-1.79.0-unbundle-sqlite.patch # https://github.com/rust-lang/rust/pull/124597 -Patch12: 0001-Use-an-explicit-x86-64-cpu-in-tests-that-are-sensiti.patch +Patch7: 0001-Use-an-explicit-x86-64-cpu-in-tests-that-are-sensiti.patch -# https://github.com/rust-lang/cargo/pull/13744 -Patch20: 0001-test-don-t-compress-test-registry-crates.patch - -# https://github.com/rust-lang/cargo/pull/13789 -Patch21: 0001-Fix-2-tests-for-offline-execution.patch - -# https://github.com/rust-lang/rust-clippy/pull/12682 -Patch30: 0001-The-multiple_unsafe_ops_per_block-test-needs-asm.patch +# Fix codegen test failure on big endian: https://github.com/rust-lang/rust/pull/126263 +Patch8: 0001-Make-issue-122805.rs-big-endian-compatible.patch ### RHEL-specific patches below ### @@ -187,7 +167,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.78.0-disable-libssh2.patch +Patch100: rustc-1.79.0-disable-libssh2.patch # Get the Rust triple for any arch. %{lua: function rust_triple(arch) @@ -301,10 +281,17 @@ BuildRequires: procps-ng # debuginfo-gdb tests need gdb BuildRequires: gdb +# Work around https://bugzilla.redhat.com/show_bug.cgi?id=2275274: +# gdb currently prints a "Unable to load 'rpm' module. Please install the python3-rpm package." +# message that breaks version detection. +BuildRequires: python3-rpm # For src/test/run-make/static-pie BuildRequires: glibc-static +# For tests/run-make/pgo-branch-weights +BuildRequires: binutils-gold + # Virtual provides for folks who attempt "dnf install rustc" Provides: rustc = %{version}-%{release} Provides: rustc%{?_isa} = %{version}-%{release} @@ -667,15 +654,6 @@ rm -rf %{wasi_libc_dir}/dlmalloc/ %endif %patch -P7 -p1 %patch -P8 -p1 -%patch -P9 -p1 -%patch -P10 -p1 -%patch -P11 -p1 -%patch -P12 -p1 - -%patch -P20 -p1 -d src/tools/cargo -%patch -P21 -p1 -d src/tools/cargo - -%patch -P30 -p1 -d src/tools/clippy %if %with disabled_libssh2 %patch -P100 -p1 @@ -795,7 +773,9 @@ fi %if %defined wasm_targets %if %with bundled_wasi_libc -%make_build --quiet -C %{wasi_libc_dir} MALLOC_IMPL=emmalloc CC=clang AR=llvm-ar NM=llvm-nm +%define wasi_libc_flags MALLOC_IMPL=emmalloc CC=clang AR=llvm-ar NM=llvm-nm +%make_build --quiet -C %{wasi_libc_dir} %{wasi_libc_flags} TARGET_TRIPLE=wasm32-wasi +%make_build --quiet -C %{wasi_libc_dir} %{wasi_libc_flags} TARGET_TRIPLE=wasm32-wasip1 %define wasm_target_config %{shrink: --set target.wasm32-wasi.wasi-root=%{wasi_libc_dir}/sysroot --set target.wasm32-wasip1.wasi-root=%{wasi_libc_dir}/sysroot diff --git a/rustc-1.78.0-disable-libssh2.patch b/rustc-1.78.0-disable-libssh2.patch deleted file mode 100644 index 3fec448..0000000 --- a/rustc-1.78.0-disable-libssh2.patch +++ /dev/null @@ -1,44 +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 2024-04-04 15:01:24.003038403 -0700 -+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2024-04-04 15:01:24.005038377 -0700 -@@ -2111,7 +2111,6 @@ checksum = "ee4126d8b4ee5c9d9ea891dd875c - dependencies = [ - "cc", - "libc", -- "libssh2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", -@@ -2152,20 +2151,6 @@ dependencies = [ - "pkg-config", - "vcpkg", - ] -- --[[package]] --name = "libssh2-sys" --version = "0.3.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" --dependencies = [ -- "cc", -- "libc", -- "libz-sys", -- "openssl-sys", -- "pkg-config", -- "vcpkg", --] - - [[package]] - name = "libz-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 2024-04-04 15:01:24.005038377 -0700 -+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2024-04-04 15:02:15.816367069 -0700 -@@ -44,7 +44,7 @@ curl = "0.4.46" - curl-sys = "0.4.72" - filetime = "0.2.23" - flate2 = { version = "1.0.28", default-features = false, features = ["zlib"] } --git2 = "0.18.2" -+git2 = { version = "0.18.2", default-features = false, features = ["https"] } - git2-curl = "0.19.0" - gix = { version = "0.58.0", default-features = false, features = ["blocking-http-transport-curl", "progress-tree", "revision"] } - gix-features-for-configuration-only = { version = "0.38.0", package = "gix-features", features = [ "parallel" ] } diff --git a/rustc-1.79.0-disable-libssh2.patch b/rustc-1.79.0-disable-libssh2.patch new file mode 100644 index 0000000..6b3c90c --- /dev/null +++ b/rustc-1.79.0-disable-libssh2.patch @@ -0,0 +1,44 @@ +diff -up rustc-1.79.0-src/src/tools/cargo/Cargo.lock.orig rustc-1.79.0-src/src/tools/cargo/Cargo.lock +--- rustc-1.79.0-src/src/tools/cargo/Cargo.lock.orig 2024-06-13 16:37:16.640599290 -0700 ++++ rustc-1.79.0-src/src/tools/cargo/Cargo.lock 2024-06-13 16:37:16.646599231 -0700 +@@ -2150,7 +2150,6 @@ checksum = "ee4126d8b4ee5c9d9ea891dd875c + dependencies = [ + "cc", + "libc", +- "libssh2-sys", + "libz-sys", + "openssl-sys", + "pkg-config", +@@ -2191,20 +2190,6 @@ dependencies = [ + "pkg-config", + "vcpkg", + ] +- +-[[package]] +-name = "libssh2-sys" +-version = "0.3.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" +-dependencies = [ +- "cc", +- "libc", +- "libz-sys", +- "openssl-sys", +- "pkg-config", +- "vcpkg", +-] + + [[package]] + name = "libz-sys" +diff -up rustc-1.79.0-src/src/tools/cargo/Cargo.toml.orig rustc-1.79.0-src/src/tools/cargo/Cargo.toml +--- rustc-1.79.0-src/src/tools/cargo/Cargo.toml.orig 2024-06-13 16:37:16.646599231 -0700 ++++ rustc-1.79.0-src/src/tools/cargo/Cargo.toml 2024-06-13 16:39:06.040526596 -0700 +@@ -44,7 +44,7 @@ curl = "0.4.46" + curl-sys = "0.4.72" + filetime = "0.2.23" + flate2 = { version = "1.0.28", default-features = false, features = ["zlib"] } +-git2 = "0.18.3" ++git2 = { version = "0.18.3", default-features = false, features = ["https"] } + git2-curl = "0.19.0" + gix = { version = "0.63.0", default-features = false, features = ["blocking-http-transport-curl", "progress-tree", "revision", "parallel", "dirwalk"] } + glob = "0.3.1" diff --git a/rustc-1.78.0-unbundle-sqlite.patch b/rustc-1.79.0-unbundle-sqlite.patch similarity index 57% rename from rustc-1.78.0-unbundle-sqlite.patch rename to rustc-1.79.0-unbundle-sqlite.patch index b02529f..8101227 100644 --- a/rustc-1.78.0-unbundle-sqlite.patch +++ b/rustc-1.79.0-unbundle-sqlite.patch @@ -1,7 +1,7 @@ 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 2024-04-04 14:54:45.433205012 -0700 -+++ rustc-beta-src/src/tools/cargo/Cargo.lock 2024-04-04 14:55:51.949342725 -0700 -@@ -2149,7 +2149,6 @@ version = "0.28.0" +--- rustc-beta-src/src/tools/cargo/Cargo.lock.orig 2006-07-24 10:21:28.000000000 +0900 ++++ rustc-beta-src/src/tools/cargo/Cargo.lock 2024-05-06 14:13:00.172595245 +0900 +@@ -2191,7 +2191,6 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f" dependencies = [ @@ -10,14 +10,14 @@ diff -up rustc-beta-src/src/tools/cargo/Cargo.lock.orig rustc-beta-src/src/tools "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 2024-04-04 14:54:45.433205012 -0700 -+++ rustc-beta-src/src/tools/cargo/Cargo.toml 2024-04-04 14:55:35.823551771 -0700 +--- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2024-05-06 14:13:00.173595257 +0900 ++++ rustc-beta-src/src/tools/cargo/Cargo.toml 2024-05-06 14:13:54.089275003 +0900 @@ -77,7 +77,7 @@ proptest = "1.4.0" - pulldown-cmark = { version = "0.10.0", default-features = false, features = ["html"] } + pulldown-cmark = { version = "0.10.2", default-features = false, features = ["html"] } rand = "0.8.5" - regex = "1.10.3" + regex = "1.10.4" -rusqlite = { version = "0.31.0", features = ["bundled"] } +rusqlite = { version = "0.31.0", features = [] } rustfix = { version = "0.8.2", path = "crates/rustfix" } same-file = "1.0.6" - security-framework = "2.9.2" + security-framework = "2.10.0" diff --git a/sources b/sources index 365a648..e0e1f32 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (rustc-1.78.0-src.tar.xz) = d2fb9881e28849d871fda71b1b51652be3839b3283f0d32163f258c5c707a9fb7b589da8dc03bca2fefee1abdd2b44a5f17e85d8c6df7bea119d1e8d22371941 -SHA512 (wasi-libc-03b228e46bb02fcc5927253e1b8ad715072b1ae4.tar.gz) = 56306817a6d683aeaf61c3376700804f143b9be101729693c1c88666ea201f02a3e7a3b32150f688a784ac4aae30e46bdbe3fc79a1a9c62e7b460d11ad509045 +SHA512 (rustc-1.79.0-src.tar.xz) = 99d7f276292e5c270648473ff73e9888413a3325ef3a4d7a45f8ce77a42ac87996905f1d875888ce084b621f642017bc9e31a00da1439108dbe19b85d0eab085 +SHA512 (wasi-libc-wasi-sdk-22.tar.gz) = 3fcd5d6c0e09d824702165d8f1236e400b1d5e95fad14f1821d40de05340a044f0ec8a587d8478854252cc938a663aa9f854e6a5e683ef8f8349c60dc6c628ed