diff --git a/programming/language/rust/files/arch/0003-bootstrap-Workaround-for-system-stage0.patch b/programming/language/rust/files/arch/0003-bootstrap-Workaround-for-system-stage0.patch index 4b9d51ad2a..06829e8978 100644 --- a/programming/language/rust/files/arch/0003-bootstrap-Workaround-for-system-stage0.patch +++ b/programming/language/rust/files/arch/0003-bootstrap-Workaround-for-system-stage0.patch @@ -9,10 +9,10 @@ See: https://github.com/rust-lang/rust/issues/143735 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs -index 46d05b9d5d2f..0c8ab4e0eb93 100644 +index 68a4f928464f..201d918d88a9 100644 --- a/src/bootstrap/src/core/build_steps/compile.rs +++ b/src/bootstrap/src/core/build_steps/compile.rs -@@ -812,7 +812,10 @@ fn run(self, builder: &Builder<'_>) { +@@ -822,7 +822,10 @@ fn run(self, builder: &Builder<'_>) { let _ = fs::remove_dir_all(sysroot.join("lib/rustlib/src/rust")); } diff --git a/programming/language/rust/files/arch/0004-compiler-Change-LLVM-targets.patch b/programming/language/rust/files/arch/0004-compiler-Change-LLVM-targets.patch index e4e402bc52..fc2888f0ab 100644 --- a/programming/language/rust/files/arch/0004-compiler-Change-LLVM-targets.patch +++ b/programming/language/rust/files/arch/0004-compiler-Change-LLVM-targets.patch @@ -23,10 +23,10 @@ targets, as things break when this is done: 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/rustc_session/src/config.rs b/compiler/rustc_session/src/config.rs -index e4ef1d40d72d..9376983b15d8 100644 +index 2040cd48ec44..4b99fc6a15c9 100644 --- a/compiler/rustc_session/src/config.rs +++ b/compiler/rustc_session/src/config.rs -@@ -2229,6 +2229,12 @@ pub fn parse_target_triple(early_dcx: &EarlyDiagCtxt, matches: &getopts::Matches +@@ -2226,6 +2226,12 @@ pub fn parse_target_triple(early_dcx: &EarlyDiagCtxt, matches: &getopts::Matches early_dcx.early_fatal(format!("target file {path:?} does not exist")) }) } diff --git a/programming/language/rust/files/arch/0005-compiler-Use-ld.lld-by-default.patch b/programming/language/rust/files/arch/0005-compiler-Use-ld.lld-by-default.patch index c647d52881..a335409f80 100644 --- a/programming/language/rust/files/arch/0005-compiler-Use-ld.lld-by-default.patch +++ b/programming/language/rust/files/arch/0005-compiler-Use-ld.lld-by-default.patch @@ -12,10 +12,10 @@ See: https://gitlab.archlinux.org/archlinux/packaging/packages/rust/-/issues/8 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs -index 0601f9d7c2cf..cf8256a18c8a 100644 +index d6a9e27c4655..2065f9de53c2 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs -@@ -2799,7 +2799,7 @@ fn default() -> TargetOptions { +@@ -2832,7 +2832,7 @@ fn default() -> TargetOptions { cfg_abi: CfgAbi::Unspecified, vendor: "unknown".into(), linker: option_env!("CFG_DEFAULT_LINKER").map(|s| s.into()), diff --git a/programming/language/rust/files/arch/0006-compiler-Use-target-specific-GCC-linkers.patch b/programming/language/rust/files/arch/0006-compiler-Use-target-specific-GCC-linkers.patch new file mode 100644 index 0000000000..f6c39b9f95 --- /dev/null +++ b/programming/language/rust/files/arch/0006-compiler-Use-target-specific-GCC-linkers.patch @@ -0,0 +1,75 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Sat, 4 Jan 2025 06:52:13 +0100 +Subject: [PATCH] compiler: Use target-specific GCC linkers + +Otherwise it defaults to 'cc', which is inappropriate when we're +cross-compiling. +--- + .../rustc_target/src/spec/targets/aarch64_unknown_linux_gnu.rs | 1 + + .../rustc_target/src/spec/targets/aarch64_unknown_linux_musl.rs | 1 + + compiler/rustc_target/src/spec/targets/i686_unknown_linux_gnu.rs | 1 + + .../rustc_target/src/spec/targets/x86_64_unknown_linux_gnu.rs | 1 + + .../rustc_target/src/spec/targets/x86_64_unknown_linux_musl.rs | 1 + + 5 files changed, 5 insertions(+) + +diff --git a/compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_gnu.rs +index f7e1cbfac263..1e6defa84d96 100644 +--- a/compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/aarch64_unknown_linux_gnu.rs +@@ -33,6 +33,7 @@ pub(crate) fn target() -> Target { + | SanitizerSet::HWADDRESS + | SanitizerSet::REALTIME, + supports_xray: true, ++ linker: Some("aarch64-linux-gnu-gcc".into()), + ..base::linux_gnu::opts() + }, + } +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 6ba5112342c3..a2c034eee3b6 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 +@@ -13,6 +13,7 @@ pub(crate) fn target() -> Target { + | SanitizerSet::LEAK + | SanitizerSet::MEMORY + | SanitizerSet::THREAD; ++ base.linker = Some("aarch64-linux-gnu-gcc".into()); + + // FIXME(compiler-team#422): musl targets should be dynamically linked by default. + base.crt_static_default = true; +diff --git a/compiler/rustc_target/src/spec/targets/i686_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/targets/i686_unknown_linux_gnu.rs +index 7137a3ac9de1..7818523c7cd0 100644 +--- a/compiler/rustc_target/src/spec/targets/i686_unknown_linux_gnu.rs ++++ b/compiler/rustc_target/src/spec/targets/i686_unknown_linux_gnu.rs +@@ -22,6 +22,7 @@ pub(crate) fn target() -> Target { + base.supported_sanitizers = SanitizerSet::ADDRESS; + base.add_pre_link_args(LinkerFlavor::Gnu(Cc::Yes, Lld::No), &["-m32"]); + base.stack_probes = StackProbeType::Inline; ++ base.linker = Some("x86_64-linux-gnu-gcc".into()); + + Target { + llvm_target: "i686-pc-linux-gnu".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 dea63ac7d5b8..96c4df7d8c09 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 +@@ -20,6 +20,7 @@ pub(crate) fn target() -> Target { + | SanitizerSet::THREAD + | SanitizerSet::REALTIME; + base.supports_xray = true; ++ base.linker = Some("x86_64-linux-gnu-gcc".into()); + + Target { + llvm_target: "x86_64-pc-linux-gnu".into(), +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 ee883532ad4a..48d93be61b66 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 +@@ -18,6 +18,7 @@ pub(crate) fn target() -> Target { + base.supports_xray = true; + // FIXME(compiler-team#422): musl targets should be dynamically linked by default. + base.crt_static_default = true; ++ base.linker = Some("x86_64-linux-gnu-gcc".into()); + + Target { + llvm_target: "x86_64-unknown-linux-musl".into(), diff --git a/programming/language/rust/files/bootstrap-config.toml b/programming/language/rust/files/bootstrap-config.toml index 5e677a8865..262aef628d 100644 --- a/programming/language/rust/files/bootstrap-config.toml +++ b/programming/language/rust/files/bootstrap-config.toml @@ -1,7 +1,7 @@ profile = "user" # changelog-seen = 2 -change-id = 154508 +change-id = 154587 [llvm] link-shared = true diff --git a/programming/language/rust/pspec.xml b/programming/language/rust/pspec.xml index c9d8269f56..4a266187e9 100644 --- a/programming/language/rust/pspec.xml +++ b/programming/language/rust/pspec.xml @@ -12,7 +12,7 @@ app Systems programming language focused on safety, speed and concurrency Systems programming language focused on safety, speed and concurrency - https://static.rust-lang.org/dist/rustc-1.96.1-src.tar.gz + https://static.rust-lang.org/dist/rustc-1.97.0-src.tar.gz @@ -44,7 +44,7 @@ arch/0003-bootstrap-Workaround-for-system-stage0.patch arch/0004-compiler-Change-LLVM-targets.patch arch/0005-compiler-Use-ld.lld-by-default.patch - arch/0006-compiler-Use-aarch64-linux-gnu-gcc-to-link-aarch64-t.patch + arch/0006-compiler-Use-target-specific-GCC-linkers.patch @@ -84,6 +84,13 @@ + + 2026-07-11 + 1.97.0 + Version bump. + Pisi Linux Community + admin@pisilinux.org + 2026-07-07 1.96.1