commit: 7eae817a8ce314b0cfed4a26232b04b4bf535a80 Author: Matt Jolly <kangie <AT> gentoo <DOT> org> AuthorDate: Tue Jun 3 04:31:40 2025 +0000 Commit: Matt Jolly <kangie <AT> gentoo <DOT> org> CommitDate: Tue Jun 3 04:31:40 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=7eae817a
Add patches for Rust 1.85.0-r2 Patches: - 1.85.0-cross-compile-libz.patch - 1.85.0-musl-dynamic-linking.patch - 1.67.0-doc-wasm.patch Signed-off-by: Matt Jolly <kangie <AT> gentoo.org> 1.78.0-musl-dynamic-linking.patch | 19 -- 1.84.1-fix-cross.patch | 30 --- ...e-libz.patch => 1.85.0-cross-compile-libz.patch | 21 +- 1.85.0-musl-dynamic-linking.patch | 271 +++++++++++++++++++++ 4 files changed, 284 insertions(+), 57 deletions(-) diff --git a/1.78.0-musl-dynamic-linking.patch b/1.78.0-musl-dynamic-linking.patch deleted file mode 100644 index 25a281c..0000000 --- a/1.78.0-musl-dynamic-linking.patch +++ /dev/null @@ -1,19 +0,0 @@ -From e42709c46647dab342b826d30324f3e6e5590e00 Mon Sep 17 00:00:00 2001 -From: Jory Pratt <[email protected]> -Date: Tue, 2 Aug 2022 18:32:53 -0500 -Subject: [PATCH] Enable dynamic linking by default for musl - -Signed-off-by: Jory Pratt <[email protected]> ---- a/compiler/rustc_target/src/spec/base/linux_musl.rs -+++ b/compiler/rustc_target/src/spec/base/linux_musl.rs -@@ -10,7 +10,7 @@ pub fn opts() -> TargetOptions { - base.link_self_contained = LinkSelfContainedDefault::InferredForMusl; - - // These targets statically link libc by default -- base.crt_static_default = true; -+ base.crt_static_default = false; - - base - } --- -2.35.1 diff --git a/1.84.1-fix-cross.patch b/1.84.1-fix-cross.patch deleted file mode 100644 index 47d7766..0000000 --- a/1.84.1-fix-cross.patch +++ /dev/null @@ -1,30 +0,0 @@ -https://github.com/rust-lang/rust/issues/133629 -https://github.com/rust-lang/rust/commit/a24d859f19bbefe5371694f318568b0ab5a13299 - -From: onur-ozkan <[email protected]> -Date: Thu, 30 Jan 2025 16:51:08 +0000 -Subject: [PATCH] set rustc dylib on manually constructed rustc command - -Signed-off-by: onur-ozkan <[email protected]> ---- a/src/bootstrap/src/core/builder/cargo.rs -+++ b/src/bootstrap/src/core/builder/cargo.rs -@@ -653,7 +653,10 @@ impl Builder<'_> { - // Build proc macros both for the host and the target unless proc-macros are not - // supported by the target. - if target != compiler.host && cmd_kind != Kind::Check { -- let error = command(self.rustc(compiler)) -+ let mut rustc_cmd = command(self.rustc(compiler)); -+ self.add_rustc_lib_path(compiler, &mut rustc_cmd); -+ -+ let error = rustc_cmd - .arg("--target") - .arg(target.rustc_target_arg()) - .arg("--print=file-names") -@@ -661,6 +664,7 @@ impl Builder<'_> { - .arg("-") - .run_capture(self) - .stderr(); -+ - let not_supported = error - .lines() - .any(|line| line.contains("unsupported crate type `proc-macro`")); diff --git a/1.83.0-cross-compile-libz.patch b/1.85.0-cross-compile-libz.patch similarity index 50% rename from 1.83.0-cross-compile-libz.patch rename to 1.85.0-cross-compile-libz.patch index 12844fd..7bd45c4 100644 --- a/1.83.0-cross-compile-libz.patch +++ b/1.85.0-cross-compile-libz.patch @@ -1,21 +1,26 @@ -https://paste.sr.ht/~kchibisov/682321e0fd4a3ece4a4b7b71591896f5cd3cdb22 -https://github.com/gentoo/gentoo/pull/35246#discussion_r1484525497 +From 768f7e50a6d9a3db4e4eef45dcb4c56e9b580389 Mon Sep 17 00:00:00 2001 +From: Matt Jolly <[email protected]> +Date: Sun, 9 Feb 2025 21:12:43 +1000 +Subject: [PATCH] Update libz cross-compile patch for 9999 (1.86.0) -diff --git a/compiler/rustc_llvm/build.rs b/compiler/rustc_llvm/build.rs -index f606fa483ca..8a2e1c40e8b 100644 +See-also: https://paste.sr.ht/~kchibisov/682321e0fd4a3ece4a4b7b71591896f5cd3cdb22 +See-also: https://github.com/gentoo/gentoo/pull/35246#discussion_r1484525497 --- a/compiler/rustc_llvm/build.rs +++ b/compiler/rustc_llvm/build.rs -@@ -220,12 +220,7 @@ +@@ -219,13 +219,7 @@ fn main() { + // of llvm-config, not the target that we're attempting to link. let mut cmd = Command::new(&llvm_config); cmd.arg(llvm_link_arg).arg("--libs"); - -- // Don't link system libs if cross-compiling unless targetting Windows. +- +- // Don't link system libs if cross-compiling unless targeting Windows. - // On Windows system DLLs aren't linked directly, instead import libraries are used. - // These import libraries are independent of the host. - if !is_crossed || target.contains("windows") { - cmd.arg("--system-libs"); - } + cmd.arg("--system-libs"); - + // We need libkstat for getHostCPUName on SPARC builds. // See also: https://github.com/llvm/llvm-project/issues/64186 +-- +2.48.0 diff --git a/1.85.0-musl-dynamic-linking.patch b/1.85.0-musl-dynamic-linking.patch new file mode 100644 index 0000000..a6ab967 --- /dev/null +++ b/1.85.0-musl-dynamic-linking.patch @@ -0,0 +1,271 @@ +From be965af5421e55c0032a989b220bc0da005d2272 Mon Sep 17 00:00:00 2001 +From: Michal Rostecki <[email protected]> +Date: Tue, 25 Feb 2025 16:24:21 +0100 +Subject: [PATCH] Enable dynamic linking by default for musl + +--- + .../src/spec/targets/aarch64_unknown_linux_musl.rs | 3 --- + .../src/spec/targets/arm_unknown_linux_musleabi.rs | 3 +-- + .../src/spec/targets/arm_unknown_linux_musleabihf.rs | 3 +-- + .../src/spec/targets/armv5te_unknown_linux_musleabi.rs | 3 +-- + .../src/spec/targets/armv7_unknown_linux_musleabi.rs | 3 +-- + .../src/spec/targets/armv7_unknown_linux_musleabihf.rs | 3 +-- + .../rustc_target/src/spec/targets/i586_unknown_linux_musl.rs | 2 -- + .../rustc_target/src/spec/targets/i686_unknown_linux_musl.rs | 2 -- + .../src/spec/targets/mips64_unknown_linux_muslabi64.rs | 3 +-- + .../src/spec/targets/mips64el_unknown_linux_muslabi64.rs | 2 -- + .../src/spec/targets/powerpc64_unknown_linux_musl.rs | 2 -- + .../src/spec/targets/powerpc64le_unknown_linux_musl.rs | 2 -- + .../src/spec/targets/powerpc_unknown_linux_musl.rs | 2 -- + .../src/spec/targets/powerpc_unknown_linux_muslspe.rs | 2 -- + .../src/spec/targets/riscv32gc_unknown_linux_musl.rs | 3 +-- + .../rustc_target/src/spec/targets/s390x_unknown_linux_musl.rs | 2 -- + .../src/spec/targets/thumbv7neon_unknown_linux_musleabihf.rs | 3 +-- + .../rustc_target/src/spec/targets/x86_64_unknown_linux_musl.rs | 2 -- + 18 files changed, 8 insertions(+), 37 deletions(-) + +diff --git a/compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_musl.rs +index 4fefdfa5c5e..bb65048a56d 100644 +--- a/compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_musl.rs +@@ -12,9 +12,6 @@ pub(crate) fn target() -> Target { + | SanitizerSet::MEMORY + | SanitizerSet::THREAD; + +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; +- + Target { + llvm_target: "aarch64-unknown-linux-musl".into(), + metadata: crate::spec::TargetMetadata { +diff --git a/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabi.rs b/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabi.rs +index 26241dd0bd4..cab79e2bf7d 100644 +--- a/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabi.rs ++++ b/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabi.rs +@@ -20,8 +20,7 @@ pub(crate) fn target() -> Target { + features: "+strict-align,+v6".into(), + max_atomic_width: Some(64), + mcount: "\u{1}mcount".into(), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabihf.rs b/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabihf.rs +index 4bbde7667b9..c5f6c180a95 100644 +--- a/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabihf.rs ++++ b/compiler/rustc_target/src/spec/targets/arm_unknown_linux_musleabihf.rs +@@ -20,8 +20,7 @@ pub(crate) fn target() -> Target { + features: "+strict-align,+v6,+vfp2,-d32".into(), + max_atomic_width: Some(64), + mcount: "\u{1}mcount".into(), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/armv5te_unknown_linux_musleabi.rs b/compiler/rustc_target/src/spec/targets/armv5te_unknown_linux_musleabi.rs +index 62619546891..680dafe6943 100644 +--- a/compiler/rustc_target/src/spec/targets/armv5te_unknown_linux_musleabi.rs ++++ b/compiler/rustc_target/src/spec/targets/armv5te_unknown_linux_musleabi.rs +@@ -20,8 +20,7 @@ pub(crate) fn target() -> Target { + max_atomic_width: Some(32), + mcount: "\u{1}mcount".into(), + has_thumb_interworking: true, +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabi.rs b/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabi.rs +index 0436e0d8df4..e862b28ca92 100644 +--- a/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabi.rs ++++ b/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabi.rs +@@ -24,8 +24,7 @@ pub(crate) fn target() -> Target { + features: "+v7,+thumb2,+soft-float,-neon".into(), + max_atomic_width: Some(64), + mcount: "\u{1}mcount".into(), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabihf.rs b/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabihf.rs +index 22e49f2f1b0..acb7c99cdaf 100644 +--- a/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabihf.rs ++++ b/compiler/rustc_target/src/spec/targets/armv7_unknown_linux_musleabihf.rs +@@ -23,8 +23,7 @@ pub(crate) fn target() -> Target { + features: "+v7,+vfp3,-d32,+thumb2,-neon".into(), + max_atomic_width: Some(64), + mcount: "\u{1}mcount".into(), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/i586_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/i586_unknown_linux_musl.rs +index 8ad93496f3a..623422a89ea 100644 +--- a/compiler/rustc_target/src/spec/targets/i586_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/i586_unknown_linux_musl.rs +@@ -4,7 +4,5 @@ pub(crate) fn target() -> Target { + let mut base = super::i686_unknown_linux_musl::target(); + base.cpu = "pentium".into(); + base.llvm_target = "i586-unknown-linux-musl".into(); +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + base + } +diff --git a/compiler/rustc_target/src/spec/targets/i686_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/i686_unknown_linux_musl.rs +index 6ba87c732b7..b805b80b85b 100644 +--- a/compiler/rustc_target/src/spec/targets/i686_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/i686_unknown_linux_musl.rs +@@ -6,8 +6,6 @@ pub(crate) fn target() -> Target { + base.max_atomic_width = Some(64); + base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32", "-Wl,-melf_i386"]); + base.stack_probes = StackProbeType::Inline; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + // The unwinder used by i686-unknown-linux-musl, the LLVM libunwind + // implementation, apparently relies on frame pointers existing... somehow. +diff --git a/compiler/rustc_target/src/spec/targets/mips64_unknown_linux_muslabi64.rs b/compiler/rustc_target/src/spec/targets/mips64_unknown_linux_muslabi64.rs +index 32f5c79d653..9a25fe773fb 100644 +--- a/compiler/rustc_target/src/spec/targets/mips64_unknown_linux_muslabi64.rs ++++ b/compiler/rustc_target/src/spec/targets/mips64_unknown_linux_muslabi64.rs +@@ -22,8 +22,7 @@ pub(crate) fn target() -> Target { + abi: "abi64".into(), + endian: Endian::Big, + mcount: "_mcount".into(), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/mips64el_unknown_linux_muslabi64.rs b/compiler/rustc_target/src/spec/targets/mips64el_unknown_linux_muslabi64.rs +index 5e7c37fd46c..4f50e8b7033 100644 +--- a/compiler/rustc_target/src/spec/targets/mips64el_unknown_linux_muslabi64.rs ++++ b/compiler/rustc_target/src/spec/targets/mips64el_unknown_linux_muslabi64.rs +@@ -5,8 +5,6 @@ pub(crate) fn target() -> Target { + base.cpu = "mips64r2".into(); + base.features = "+mips64r2".into(); + base.max_atomic_width = Some(64); +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + Target { + // LLVM doesn't recognize "muslabi64" yet. + llvm_target: "mips64el-unknown-linux-musl".into(), +diff --git a/compiler/rustc_target/src/spec/targets/powerpc64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/powerpc64_unknown_linux_musl.rs +index a54b17c87a7..a964f417799 100644 +--- a/compiler/rustc_target/src/spec/targets/powerpc64_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/powerpc64_unknown_linux_musl.rs +@@ -7,8 +7,6 @@ pub(crate) fn target() -> Target { + base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); + base.max_atomic_width = Some(64); + base.stack_probes = StackProbeType::Inline; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + Target { + llvm_target: "powerpc64-unknown-linux-musl".into(), +diff --git a/compiler/rustc_target/src/spec/targets/powerpc64le_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/powerpc64le_unknown_linux_musl.rs +index f763c37f535..d0335506f16 100644 +--- a/compiler/rustc_target/src/spec/targets/powerpc64le_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/powerpc64le_unknown_linux_musl.rs +@@ -6,8 +6,6 @@ pub(crate) fn target() -> Target { + base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m64"]); + base.max_atomic_width = Some(64); + base.stack_probes = StackProbeType::Inline; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + Target { + llvm_target: "powerpc64le-unknown-linux-musl".into(), +diff --git a/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_musl.rs +index 0cd0ea96ad3..5372a83e29a 100644 +--- a/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_musl.rs +@@ -6,8 +6,6 @@ pub(crate) fn target() -> Target { + base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32"]); + base.max_atomic_width = Some(32); + base.stack_probes = StackProbeType::Inline; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + Target { + llvm_target: "powerpc-unknown-linux-musl".into(), +diff --git a/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_muslspe.rs b/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_muslspe.rs +index b86c3c2e8e0..2305db81c5e 100644 +--- a/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_muslspe.rs ++++ b/compiler/rustc_target/src/spec/targets/powerpc_unknown_linux_muslspe.rs +@@ -6,8 +6,6 @@ pub(crate) fn target() -> Target { + base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-mspe"]); + base.max_atomic_width = Some(32); + base.stack_probes = StackProbeType::Inline; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + Target { + llvm_target: "powerpc-unknown-linux-muslspe".into(), +diff --git a/compiler/rustc_target/src/spec/targets/riscv32gc_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/riscv32gc_unknown_linux_musl.rs +index a07429bb0c5..cf2d7669a8a 100644 +--- a/compiler/rustc_target/src/spec/targets/riscv32gc_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/riscv32gc_unknown_linux_musl.rs +@@ -23,8 +23,7 @@ pub(crate) fn target() -> Target { + llvm_abiname: "ilp32d".into(), + max_atomic_width: Some(32), + supported_split_debuginfo: Cow::Borrowed(&[SplitDebuginfo::Off]), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/s390x_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/s390x_unknown_linux_musl.rs +index fbe8c48eca7..7a78004927b 100644 +--- a/compiler/rustc_target/src/spec/targets/s390x_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/s390x_unknown_linux_musl.rs +@@ -12,8 +12,6 @@ pub(crate) fn target() -> Target { + base.stack_probes = StackProbeType::Inline; + base.supported_sanitizers = + SanitizerSet::ADDRESS | SanitizerSet::LEAK | SanitizerSet::MEMORY | SanitizerSet::THREAD; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + Target { + llvm_target: "s390x-unknown-linux-musl".into(), +diff --git a/compiler/rustc_target/src/spec/targets/thumbv7neon_unknown_linux_musleabihf.rs b/compiler/rustc_target/src/spec/targets/thumbv7neon_unknown_linux_musleabihf.rs +index 1149b6d16eb..e1e060c211d 100644 +--- a/compiler/rustc_target/src/spec/targets/thumbv7neon_unknown_linux_musleabihf.rs ++++ b/compiler/rustc_target/src/spec/targets/thumbv7neon_unknown_linux_musleabihf.rs +@@ -27,8 +27,7 @@ pub(crate) fn target() -> Target { + features: "+v7,+thumb-mode,+thumb2,+vfp3,+neon".into(), + max_atomic_width: Some(64), + mcount: "\u{1}mcount".into(), +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- crt_static_default: true, ++ crt_static_default: false, + ..base::linux_musl::opts() + }, + } +diff --git a/compiler/rustc_target/src/spec/targets/x86_64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/x86_64_unknown_linux_musl.rs +index 8dcdc5be8a9..8be0f335db9 100644 +--- a/compiler/rustc_target/src/spec/targets/x86_64_unknown_linux_musl.rs ++++ b/compiler/rustc_target/src/spec/targets/x86_64_unknown_linux_musl.rs +@@ -14,8 +14,6 @@ pub(crate) fn target() -> Target { + | SanitizerSet::MEMORY + | SanitizerSet::THREAD; + base.supports_xray = true; +- // FIXME(compiler-team#422): musl targets should be dynamically linked by default. +- base.crt_static_default = true; + + Target { + llvm_target: "x86_64-unknown-linux-musl".into(), +-- +2.45.3 +
