commit: 08796160f0525e99a9d550e8d2300cc0eac6785d Author: Matt Jolly <kangie <AT> gentoo <DOT> org> AuthorDate: Mon Jun 2 09:47:09 2025 +0000 Commit: Matt Jolly <kangie <AT> gentoo <DOT> org> CommitDate: Mon Jun 2 09:47:09 2025 +0000 URL: https://gitweb.gentoo.org/proj/rust-patches.git/commit/?id=08796160
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 | 19 +- 1.85.0-musl-dynamic-linking.patch | 214 +++++++++++++++++++++ 4 files changed, 227 insertions(+), 55 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 1eac04b..7bd45c4 100644 --- a/1.83.0-cross-compile-libz.patch +++ b/1.85.0-cross-compile-libz.patch @@ -1,19 +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) +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..e54cadf --- /dev/null +++ b/1.85.0-musl-dynamic-linking.patch @@ -0,0 +1,214 @@ +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 + +--- 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 { +--- 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() + }, + } +--- 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() + }, + } +--- 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() + }, + } +--- 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() + }, + } +--- 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() + }, + } +--- 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 + } +--- 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. +--- 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 + }, + } +--- 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(), +--- 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(), +--- 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(), +--- 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(), +--- 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(), +--- 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() + }, + } +--- 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(), +--- 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() + }, + } +--- 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 +
