diff --git a/srcpkgs/rust/patches/0002-Remove-nostdlib-and-musl_root-from-musl-targets.patch b/srcpkgs/rust/patches/0002-Remove-nostdlib-and-musl_root-from-musl-targets.patch index 6a6d8e32144..cfde28620ba 100644 --- a/srcpkgs/rust/patches/0002-Remove-nostdlib-and-musl_root-from-musl-targets.patch +++ b/srcpkgs/rust/patches/0002-Remove-nostdlib-and-musl_root-from-musl-targets.patch @@ -6,12 +6,11 @@ Subject: [PATCH 02/15] Remove -nostdlib and musl_root from musl targets extended by various void contributors to match our musl setup diff --git a/compiler/rustc_target/src/spec/base/linux_musl.rs b/compiler/rustc_target/src/spec/base/linux_musl.rs -index 5117cadbe..c7d0433bb 100644 +index 42aa1e1a6..c7d0433bb 100644 --- a/compiler/rustc_target/src/spec/base/linux_musl.rs +++ b/compiler/rustc_target/src/spec/base/linux_musl.rs -@@ -1,16 +1,9 @@ --use crate::spec::crt_objects; --use crate::spec::{base, LinkSelfContainedDefault, TargetOptions}; +@@ -1,15 +1,9 @@ +-use crate::spec::{base, crt_objects, LinkSelfContainedDefault, TargetOptions}; +use crate::spec::{base, TargetOptions}; pub fn opts() -> TargetOptions { @@ -28,10 +27,10 @@ index 5117cadbe..c7d0433bb 100644 base } diff --git a/compiler/rustc_target/src/spec/crt_objects.rs b/compiler/rustc_target/src/spec/crt_objects.rs -index 53f710b8f..2a4eec15f 100644 +index e3b6430a4..13a96e2cb 100644 --- a/compiler/rustc_target/src/spec/crt_objects.rs +++ b/compiler/rustc_target/src/spec/crt_objects.rs -@@ -61,28 +61,6 @@ pub(super) fn all(obj: &'static str) -> CrtObjects { +@@ -62,28 +62,6 @@ pub(super) fn all(obj: &'static str) -> CrtObjects { ]) } @@ -61,10 +60,10 @@ index 53f710b8f..2a4eec15f 100644 new(&[ (LinkOutputKind::DynamicNoPicExe, &["crt2.o", "rsbegin.o"]), diff --git a/config.example.toml b/config.example.toml -index 26687bcfb..6a23e4cdd 100644 +index f1dc32234..462a86f5b 100644 --- a/config.example.toml +++ b/config.example.toml -@@ -591,14 +591,6 @@ +@@ -599,14 +599,6 @@ # behavior -- this may lead to miscompilations or other bugs. #description = "" @@ -119,10 +118,10 @@ index 768aac912..6aebd9189 100755 "riscv32gc-unknown-linux-musl install directory") v("musl-root-riscv64gc", "target.riscv64gc-unknown-linux-musl.musl-root", diff --git a/src/bootstrap/src/core/build_steps/compile.rs b/src/bootstrap/src/core/build_steps/compile.rs -index 3e79acad1..ebcdc479a 100644 +index edf18e2eb..7597d6cd2 100644 --- a/src/bootstrap/src/core/build_steps/compile.rs +++ b/src/bootstrap/src/core/build_steps/compile.rs -@@ -362,39 +362,7 @@ fn copy_self_contained_objects( +@@ -372,39 +372,7 @@ fn copy_self_contained_objects( let mut target_deps = vec![]; // Copies the libc and CRT objects. @@ -163,7 +162,7 @@ index 3e79acad1..ebcdc479a 100644 let srcdir = builder.wasi_libdir(target).unwrap_or_else(|| { panic!( "Target {:?} does not have a \"wasi-root\" key in Config.toml \ -@@ -502,15 +470,6 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car +@@ -566,15 +534,6 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car .arg("--manifest-path") .arg(builder.src.join("library/sysroot/Cargo.toml")); @@ -180,10 +179,10 @@ index 3e79acad1..ebcdc479a 100644 if let Some(dir) = builder.wasi_libdir(target) { let root = format!("native={}", dir.to_str().unwrap()); diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs -index 9d5aa795c..c44e8a2b2 100644 +index bdfee55d8..18db92320 100644 --- a/src/bootstrap/src/core/config/config.rs +++ b/src/bootstrap/src/core/config/config.rs -@@ -314,7 +314,6 @@ pub struct Config { +@@ -321,7 +321,6 @@ pub struct Config { pub print_step_rusage: bool, // Fallback musl-root for all targets @@ -191,7 +190,7 @@ index 9d5aa795c..c44e8a2b2 100644 pub prefix: Option, pub sysconfdir: Option, pub datadir: Option, -@@ -558,8 +557,6 @@ pub struct Target { +@@ -582,8 +581,6 @@ pub struct Target { pub profiler: Option, pub rpath: Option, pub crt_static: Option, @@ -200,7 +199,7 @@ index 9d5aa795c..c44e8a2b2 100644 pub wasi_root: Option, pub qemu_rootfs: Option, pub runner: Option, -@@ -1079,7 +1076,6 @@ define_config! { +@@ -1104,7 +1101,6 @@ define_config! { default_linker: Option = "default-linker", channel: Option = "channel", description: Option = "description", @@ -208,7 +207,7 @@ index 9d5aa795c..c44e8a2b2 100644 rpath: Option = "rpath", strip: Option = "strip", frame_pointers: Option = "frame-pointers", -@@ -1133,8 +1129,6 @@ define_config! { +@@ -1158,8 +1154,6 @@ define_config! { profiler: Option = "profiler", rpath: Option = "rpath", crt_static: Option = "crt-static", @@ -217,7 +216,7 @@ index 9d5aa795c..c44e8a2b2 100644 wasi_root: Option = "wasi-root", qemu_rootfs: Option = "qemu-rootfs", no_std: Option = "no-std", -@@ -1599,7 +1593,6 @@ impl Config { +@@ -1632,7 +1626,6 @@ impl Config { default_linker, channel, description, @@ -225,7 +224,7 @@ index 9d5aa795c..c44e8a2b2 100644 rpath, verbose_tests, optimize_tests, -@@ -1687,7 +1680,6 @@ impl Config { +@@ -1722,7 +1715,6 @@ impl Config { config.rustc_parallel = parallel_compiler.unwrap_or(config.channel == "dev" || config.channel == "nightly"); config.rustc_default_linker = default_linker; @@ -233,7 +232,7 @@ index 9d5aa795c..c44e8a2b2 100644 config.save_toolstates = save_toolstates.map(PathBuf::from); set( &mut config.deny_warnings, -@@ -1906,8 +1898,6 @@ impl Config { +@@ -1973,8 +1965,6 @@ impl Config { target.ranlib = cfg.ranlib.map(PathBuf::from); target.linker = cfg.linker.map(PathBuf::from); target.crt_static = cfg.crt_static; @@ -242,7 +241,7 @@ index 9d5aa795c..c44e8a2b2 100644 target.wasi_root = cfg.wasi_root.map(PathBuf::from); target.qemu_rootfs = cfg.qemu_rootfs.map(PathBuf::from); target.runner = cfg.runner; -@@ -2667,7 +2657,6 @@ fn check_incompatible_options_for_ci_rustc(rust: &Rust) { +@@ -2919,7 +2909,6 @@ fn check_incompatible_options_for_ci_rustc( split_debuginfo: _, backtrace: _, parallel_compiler: _, @@ -251,18 +250,19 @@ index 9d5aa795c..c44e8a2b2 100644 optimize_tests: _, codegen_tests: _, diff --git a/src/bootstrap/src/core/sanity.rs b/src/bootstrap/src/core/sanity.rs -index 2be819d52..daedfb521 100644 +index 60ec57d0d..31b411259 100644 --- a/src/bootstrap/src/core/sanity.rs +++ b/src/bootstrap/src/core/sanity.rs -@@ -11,7 +11,6 @@ - use std::collections::HashMap; - use std::env; +@@ -11,7 +11,7 @@ + use std::collections::{HashMap, HashSet}; use std::ffi::{OsStr, OsString}; --use std::fs; use std::path::PathBuf; +-use std::{env, fs}; ++use std::env; #[cfg(not(feature = "bootstrap-self-test"))] -@@ -326,28 +325,6 @@ than building it. + use crate::builder::Builder; +@@ -325,28 +325,6 @@ than building it. continue; } @@ -292,10 +292,10 @@ index 2be819d52..daedfb521 100644 // There are three builds of cmake on windows: MSVC, MinGW, and // Cygwin. The Cygwin build does not have generators for Visual diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs -index a8555b2c3..b0325f309 100644 +index 82b640f54..d906d2186 100644 --- a/src/bootstrap/src/lib.rs +++ b/src/bootstrap/src/lib.rs -@@ -1317,25 +1317,6 @@ Executed at: {executed_at}"#, +@@ -1282,25 +1282,6 @@ Executed at: {executed_at}"#, } } @@ -322,7 +322,7 @@ index a8555b2c3..b0325f309 100644 /// configured. /// diff --git a/src/bootstrap/src/utils/cc_detect.rs b/src/bootstrap/src/utils/cc_detect.rs -index 20d79e490..1f8b880d8 100644 +index 29e6b74aa..a32fddbac 100644 --- a/src/bootstrap/src/utils/cc_detect.rs +++ b/src/bootstrap/src/utils/cc_detect.rs @@ -197,30 +197,6 @@ fn default_compiler( diff --git a/srcpkgs/rust/patches/0010-Fix-dynamic-linkage-of-musl-libc-for-the-libc-crate.patch b/srcpkgs/rust/patches/0010-Fix-dynamic-linkage-of-musl-libc-for-the-libc-crate.patch index 24b7469fe64..f4e6962ca55 100644 --- a/srcpkgs/rust/patches/0010-Fix-dynamic-linkage-of-musl-libc-for-the-libc-crate.patch +++ b/srcpkgs/rust/patches/0010-Fix-dynamic-linkage-of-musl-libc-for-the-libc-crate.patch @@ -3,10 +3,30 @@ From: q66 Date: Sun, 3 May 2020 18:02:03 +0200 Subject: [PATCH 10/15] Fix dynamic linkage of musl libc for the libc crate -diff --git a/vendor/libc-0.2.155/src/unix/mod.rs b/vendor/libc-0.2.155/src/unix/mod.rs -index 49984d3f0..6c3b5a47e 100644 ---- a/vendor/libc-0.2.155/src/unix/mod.rs -+++ b/vendor/libc-0.2.155/src/unix/mod.rs +diff --git a/vendor/libc-0.2.157/src/unix/mod.rs b/vendor/libc-0.2.157/src/unix/mod.rs +index 8b3d988ae..b4ab3db3f 100644 +--- a/vendor/libc-0.2.157/src/unix/mod.rs ++++ b/vendor/libc-0.2.157/src/unix/mod.rs +@@ -347,7 +347,14 @@ cfg_if! { + #[link(name = "dl", cfg(not(target_feature = "crt-static")))] + #[link(name = "c", cfg(not(target_feature = "crt-static")))] + extern {} +- } else if #[cfg(any(target_env = "musl", target_env = "ohos"))] { ++ } else if #[cfg(target_env = "musl")] { ++ #[link(name = "c")] ++ extern {} ++ #[cfg_attr(feature = "rustc-dep-of-std", ++ link(name = "gcc", kind = "static", modifiers = "-bundle", ++ cfg(target_feature = "crt-static")))] ++ extern {} ++ } else if #[cfg(target_env = "ohos")] { + #[cfg_attr(feature = "rustc-dep-of-std", + link(name = "c", kind = "static", modifiers = "-bundle", + cfg(target_feature = "crt-static")))] +diff --git a/vendor/libc-0.2.158/src/unix/mod.rs b/vendor/libc-0.2.158/src/unix/mod.rs +index 8b3d988ae..b4ab3db3f 100644 +--- a/vendor/libc-0.2.158/src/unix/mod.rs ++++ b/vendor/libc-0.2.158/src/unix/mod.rs @@ -347,7 +347,14 @@ cfg_if! { #[link(name = "dl", cfg(not(target_feature = "crt-static")))] #[link(name = "c", cfg(not(target_feature = "crt-static")))] diff --git a/srcpkgs/rust/patches/0011-Use-ELFv2-ABI-on-all-powerpc64-targets.patch b/srcpkgs/rust/patches/0011-Use-ELFv2-ABI-on-all-powerpc64-targets.patch index 9bff1dbd250..a66bb55ec35 100644 --- a/srcpkgs/rust/patches/0011-Use-ELFv2-ABI-on-all-powerpc64-targets.patch +++ b/srcpkgs/rust/patches/0011-Use-ELFv2-ABI-on-all-powerpc64-targets.patch @@ -7,16 +7,21 @@ This patches librustc_target so that ELFv2 is used everywhere, matching our LLVM. While this is not perfect (it does not allow rustc to compile legacy binaries), rustc never requests specific ABI from llvm in the first place, so at least match the environment we have. ---- - compiler/rustc_target/src/abi/call/powerpc64.rs | 9 +-------- - .../rustc_target/src/spec/powerpc64_unknown_linux_gnu.rs | 6 +----- - 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/compiler/rustc_target/src/abi/call/powerpc64.rs b/compiler/rustc_target/src/abi/call/powerpc64.rs -index 359bb8fc0..414c70cea 100644 +index 749eea0ef..1dfa3cbd0 100644 --- a/compiler/rustc_target/src/abi/call/powerpc64.rs +++ b/compiler/rustc_target/src/abi/call/powerpc64.rs -@@ -119,14 +119,7 @@ where +@@ -3,7 +3,7 @@ + // need to be fixed when PowerPC vector support is added. + + use crate::abi::call::{Align, ArgAbi, FnAbi, Reg, RegKind, Uniform}; +-use crate::abi::{Endian, HasDataLayout, TyAbiInterface}; ++use crate::abi::{HasDataLayout, TyAbiInterface}; + use crate::spec::HasTargetSpec; + + #[derive(Debug, Clone, Copy, PartialEq)] +@@ -91,14 +91,7 @@ where Ty: TyAbiInterface<'a, C> + Copy, C: HasDataLayout + HasTargetSpec, { @@ -30,5 +35,5 @@ index 359bb8fc0..414c70cea 100644 - }; + let abi = ELFv2; - if !fn_abi.ret.is_ignore() { - classify_ret(cx, &mut fn_abi.ret, abi); + classify(cx, &mut fn_abi.ret, abi, true); + diff --git a/srcpkgs/rust/patches/0015-properly-skip-submodules.patch b/srcpkgs/rust/patches/0015-properly-skip-submodules.patch new file mode 100644 index 00000000000..9058f2061fb --- /dev/null +++ b/srcpkgs/rust/patches/0015-properly-skip-submodules.patch @@ -0,0 +1,13 @@ +diff --git a/src/bootstrap/src/lib.rs b/src/bootstrap/src/lib.rs +index 82b640f54..83fe7660c 100644 +--- a/src/bootstrap/src/lib.rs ++++ b/src/bootstrap/src/lib.rs +@@ -484,7 +484,7 @@ impl Build { + pub fn require_submodule(&self, submodule: &str, err_hint: Option<&str>) { + // When testing bootstrap itself, it is much faster to ignore + // submodules. Almost all Steps work fine without their submodules. +- if cfg!(test) && !self.config.submodules() { ++ if cfg!(test) || !self.config.submodules() { + return; + } + self.config.update_submodule(submodule); diff --git a/srcpkgs/rust/template b/srcpkgs/rust/template index 9b321d99525..6144cd97338 100644 --- a/srcpkgs/rust/template +++ b/srcpkgs/rust/template @@ -8,17 +8,17 @@ # uploaded to https://repo-default.voidlinux.org/distfiles/ # pkgname=rust -version=1.81.0 +version=1.82.0 revision=1 hostmakedepends="curl pkg-config python3 tar cargo-bootstrap" makedepends="libffi-devel ncurses-devel libxml2-devel zlib-devel llvm18-devel" depends="rust-std gcc" short_desc="Safe, concurrent, practical systems language" maintainer="Enno Boland " -license="MIT, Apache-2.0" +license="Apache-2.0 OR MIT" homepage="https://www.rust-lang.org/" distfiles="https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz" -checksum=872448febdff32e50c3c90a7e15f9bb2db131d13c588fe9071b0ed88837ccfa7 +checksum=7c53f4509eda184e174efa6ba7d5eeb586585686ce8edefc781a2b11a7cf512a lib32disabled=yes make_check=no # CBA for now python_version=3 # needed for python files in rust-src @@ -58,7 +58,8 @@ post_patch() { fi # clear out all the checksum nonsense of patched vendor crates - _clear_vendor_checksums libc-0.2.155 + _clear_vendor_checksums libc-0.2.157 + _clear_vendor_checksums libc-0.2.158 # pre-configure 01-override-config overwrites vendor files _clear_vendor_checksums onig_sys-69.8.1