diff --git a/0001-add-support-for-ppc64le.patch b/0001-add-support-for-ppc64le.patch index 36e20a36c5924157382041862e9850c76e5cf9cf..edd94fe8e60e894e477c0bb9189d0ea1ac442a3c 100644 --- a/0001-add-support-for-ppc64le.patch +++ b/0001-add-support-for-ppc64le.patch @@ -9,18 +9,18 @@ Subject: [PATCH] add support for ppc64le .../spec/targets/ppc64le_unknown_linux_gnu.rs | 23 +++++++++++++++++++ .../targets/ppc64le_unknown_linux_musl.rs | 23 +++++++++++++++++++ src/bootstrap/configure.py | 5 ++++ - vendor/openssl-src-111.28.2+1.1.1w/src/lib.rs | 3 +++ - vendor/target-lexicon-0.12.16/src/targets.rs | 3 +++ + vendor/openssl-src-300.4.2+3.4.1/src/lib.rs | 3 +++ + vendor/target-lexicon-0.13.1/src/targets.rs | 3 +++ 7 files changed, 82 insertions(+) create mode 100644 compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs create mode 100644 compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs create mode 100644 compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs -index 02962d55a..075d4fbb8 100644 +index 7234d1dc6..70d44f815 100644 --- a/compiler/rustc_target/src/spec/mod.rs +++ b/compiler/rustc_target/src/spec/mod.rs -@@ -1675,6 +1675,8 @@ supported_targets! { +@@ -1760,6 +1760,8 @@ supported_targets! { ("powerpc64-unknown-linux-musl", powerpc64_unknown_linux_musl), ("powerpc64le-unknown-linux-gnu", powerpc64le_unknown_linux_gnu), ("powerpc64le-unknown-linux-musl", powerpc64le_unknown_linux_musl), @@ -31,7 +31,7 @@ index 02962d55a..075d4fbb8 100644 ("sparc-unknown-linux-gnu", sparc_unknown_linux_gnu), diff --git a/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs new file mode 100644 -index 000000000..615bb6762 +index 000000000..c02321db7 --- /dev/null +++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_freebsd.rs @@ -0,0 +1,23 @@ @@ -60,7 +60,7 @@ index 000000000..615bb6762 +} diff --git a/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs new file mode 100644 -index 000000000..5ff45e2f4 +index 000000000..13423b9c5 --- /dev/null +++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_gnu.rs @@ -0,0 +1,23 @@ @@ -89,7 +89,7 @@ index 000000000..5ff45e2f4 +} diff --git a/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs new file mode 100644 -index 000000000..2b612e76f +index 000000000..3f8a02be7 --- /dev/null +++ b/compiler/rustc_target/src/spec/targets/ppc64le_unknown_linux_musl.rs @@ -0,0 +1,23 @@ @@ -117,10 +117,10 @@ index 000000000..2b612e76f + } +} diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py -index a86c20d46..7ea1a9666 100755 +index 0d4d6e0ff..5d0e213b3 100755 --- a/src/bootstrap/configure.py +++ b/src/bootstrap/configure.py -@@ -250,6 +250,11 @@ v( +@@ -259,6 +259,11 @@ v( "target.powerpc64le-unknown-linux-musl.musl-root", "powerpc64le-unknown-linux-musl install directory", ) @@ -132,25 +132,25 @@ index a86c20d46..7ea1a9666 100755 v( "musl-root-riscv32gc", "target.riscv32gc-unknown-linux-musl.musl-root", -diff --git a/vendor/openssl-src-111.28.2+1.1.1w/src/lib.rs b/vendor/openssl-src-111.28.2+1.1.1w/src/lib.rs -index 1ef018081..44308dcdc 100644 ---- a/vendor/openssl-src-111.28.2+1.1.1w/src/lib.rs -+++ b/vendor/openssl-src-111.28.2+1.1.1w/src/lib.rs -@@ -283,6 +283,9 @@ impl Build { - "powerpc64le-unknown-freebsd" => "BSD-generic64", +diff --git a/vendor/openssl-src-300.4.2+3.4.1/src/lib.rs b/vendor/openssl-src-300.4.2+3.4.1/src/lib.rs +index f7d19d95d..9b574b1e5 100644 +--- a/vendor/openssl-src-300.4.2+3.4.1/src/lib.rs ++++ b/vendor/openssl-src-300.4.2+3.4.1/src/lib.rs +@@ -368,6 +368,9 @@ impl Build { + "powerpc64le-unknown-freebsd" => "BSD-ppc64le", "powerpc64le-unknown-linux-gnu" => "linux-ppc64le", "powerpc64le-unknown-linux-musl" => "linux-ppc64le", -+ "ppc64le-unknown-freebsd" => "BSD-generic64", ++ "ppc64le-unknown-freebsd" => "BSD-ppc64le", + "ppc64le-unknown-linux-gnu" => "linux-ppc64le", + "ppc64le-unknown-linux-musl" => "linux-ppc64le", - "riscv64gc-unknown-linux-gnu" => "linux-generic64", - "s390x-unknown-linux-gnu" => "linux64-s390x", - "s390x-unknown-linux-musl" => "linux64-s390x", + "powerpc64le-alpine-linux-musl" => "linux-ppc64le", + "powerpc64le-chimera-linux-musl" => "linux-ppc64le", + "riscv64gc-unknown-freebsd" => "BSD-riscv64", diff --git a/vendor/target-lexicon-0.13.1/src/targets.rs b/vendor/target-lexicon-0.13.1/src/targets.rs -index 997c673e6..439899f67 100644 +index 83c0eac8c..61b7fcc33 100644 --- a/vendor/target-lexicon-0.13.1/src/targets.rs +++ b/vendor/target-lexicon-0.13.1/src/targets.rs -@@ -1701,6 +1701,9 @@ mod tests { +@@ -1811,6 +1811,9 @@ mod tests { "powerpc64le-unknown-freebsd", "powerpc64le-unknown-linux-gnu", "powerpc64le-unknown-linux-musl", @@ -161,5 +161,5 @@ index 997c673e6..439899f67 100644 "powerpc64-unknown-linux-gnu", "powerpc64-unknown-linux-musl", -- -2.48.1 +2.49.0 diff --git a/0003-Fix-profiler_builtins-build-script-to-handle-full-pa.patch b/0003-Fix-profiler_builtins-build-script-to-handle-full-pa.patch new file mode 100644 index 0000000000000000000000000000000000000000..802fdcbc5199b224b612ac7e1a6cbf1e5b922942 --- /dev/null +++ b/0003-Fix-profiler_builtins-build-script-to-handle-full-pa.patch @@ -0,0 +1,42 @@ +From dc0fbcab7e0673afe62b3e8e74905d9e5f5b74a4 Mon Sep 17 00:00:00 2001 +From: Jesus Checa Hidalgo +Date: Fri, 11 Apr 2025 16:57:38 +0200 +Subject: [PATCH] Fix profiler_builtins build script to handle full path to + profiler lib + +LLVM_PROFILER_RT_LIB may be set to an absolute path (e.g., in Fedora builds), +but `-l` expects a library name, not a path. After #138273, this caused builds +to fail with a "could not find native static library" error. + +This patch updates the build script to split the path into directory and +filename, using `cargo::rustc-link-search` for the directory and +`cargo::rustc-link-lib=+verbatim` for the file. This allows profiler_builtins to +correctly link the static library even when an absolute path is provided. +--- + library/profiler_builtins/build.rs | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/library/profiler_builtins/build.rs b/library/profiler_builtins/build.rs +index dd85239fa..fc1a9ecc1 100644 +--- a/library/profiler_builtins/build.rs ++++ b/library/profiler_builtins/build.rs +@@ -9,8 +9,14 @@ use std::path::PathBuf; + + fn main() { + if let Ok(rt) = tracked_env_var("LLVM_PROFILER_RT_LIB") { +- println!("cargo::rustc-link-lib=static:+verbatim={rt}"); +- return; ++ let rt = PathBuf::from(rt); ++ if let Some(lib) = rt.file_name() { ++ if let Some(dir) = rt.parent() { ++ println!("cargo::rustc-link-search=native={}", dir.display()); ++ } ++ println!("cargo::rustc-link-lib=static:+verbatim={}", lib.to_str().unwrap()); ++ return; ++ } + } + + let target_os = env::var("CARGO_CFG_TARGET_OS").expect("CARGO_CFG_TARGET_OS was not set"); +-- +2.49.0 + diff --git a/rust-1.85.0-aarch64-unknown-linux-gnu.tar.xz b/rust-1.86.0-aarch64-unknown-linux-gnu.tar.xz similarity index 32% rename from rust-1.85.0-aarch64-unknown-linux-gnu.tar.xz rename to rust-1.86.0-aarch64-unknown-linux-gnu.tar.xz index 1b1516a34b367b8434cf893015a626003fb80fa4..53b236900a84d00d9f9b7c062f129e7e204db4c1 100644 --- a/rust-1.85.0-aarch64-unknown-linux-gnu.tar.xz +++ b/rust-1.86.0-aarch64-unknown-linux-gnu.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:024918027c349bd237617a8a1207d7c4462f70549a31e8bf6c14b0601cfd489e -size 241942608 +oid sha256:2b97d1e09a1d7fdbed748332879318ee7f41c008837f87ccb44ec045df0a8a1b +size 161478048 diff --git a/rust-1.85.0-loongarch64-unknown-linux-gnu.tar.xz b/rust-1.86.0-loongarch64-unknown-linux-gnu.tar.xz similarity index 32% rename from rust-1.85.0-loongarch64-unknown-linux-gnu.tar.xz rename to rust-1.86.0-loongarch64-unknown-linux-gnu.tar.xz index 35808151afdbe4789d6d67097fb2c572aabc9a95..ffb8edb26dc9f6320f571f77f3fc8fed4a6c5a3e 100644 --- a/rust-1.85.0-loongarch64-unknown-linux-gnu.tar.xz +++ b/rust-1.86.0-loongarch64-unknown-linux-gnu.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a3d4a9a61cc903dd71f88ee730cf0ee4de7f55f38387bb6034925858be4dad11 -size 234279384 +oid sha256:7afcf30876a379f74a1dc26b50dbea5afb0a2d8735a38b12f10f9e8a6d76b8d1 +size 251731380 diff --git a/rust-1.85.0-riscv64gc-unknown-linux-gnu.tar.xz b/rust-1.86.0-riscv64gc-unknown-linux-gnu.tar.xz similarity index 32% rename from rust-1.85.0-riscv64gc-unknown-linux-gnu.tar.xz rename to rust-1.86.0-riscv64gc-unknown-linux-gnu.tar.xz index 6ca0c99445cd8a227e7f25c4dc64e4530ffa452f..3eee451f340b0d3d9812ce28e3218fa304759412 100644 --- a/rust-1.85.0-riscv64gc-unknown-linux-gnu.tar.xz +++ b/rust-1.86.0-riscv64gc-unknown-linux-gnu.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dcdbc9ed172c92b6e55e8c2fc08eca8f14b3d584f54c080170c0390a4d527350 -size 222050624 +oid sha256:bd968612d77de0d2bb4ec4d33f4aa105c5cdc44eca8deabfe2d8cae2a0ffbe18 +size 238802100 diff --git a/rust-1.85.0-x86_64-unknown-linux-gnu.tar.xz b/rust-1.86.0-x86_64-unknown-linux-gnu.tar.xz similarity index 32% rename from rust-1.85.0-x86_64-unknown-linux-gnu.tar.xz rename to rust-1.86.0-x86_64-unknown-linux-gnu.tar.xz index 748a676d30994b459ea9b816d347527bc83da09c..d13ecd75ecbdb2d275eb3c4a5684621e7486db25 100644 --- a/rust-1.85.0-x86_64-unknown-linux-gnu.tar.xz +++ b/rust-1.86.0-x86_64-unknown-linux-gnu.tar.xz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6f8b323ed2a34ccf0031631b85d79e1133da662094566bc910432da9bd3a5b42 -size 182464920 +oid sha256:6b448b3669e0c74f7f4b87da7da4868a552fcbba1f955032d8925ad2fffb3798 +size 192462932 diff --git a/rust.spec b/rust.spec index d18ba81080cc4ae1e439ff7a8b8c06b6c277e7a8..8d6b3b003ff743bff8c3fceef8398647d58f2ece 100644 --- a/rust.spec +++ b/rust.spec @@ -1,8 +1,8 @@ %define _lto_cflags %{nil} -%global bootstrap_rust 1.85.0 -%global bootstrap_cargo 1.85.0 -%global bootstrap_channel 1.85.0 -%global bootstrap_date 2025-02-20 +%global bootstrap_rust 1.86.0 +%global bootstrap_cargo 1.86.0 +%global bootstrap_channel 1.86.0 +%global bootstrap_date 2025-04-03 %global bootstrap_arches x86_64 aarch64 riscv64 loongarch64 %bcond_with llvm_static %ifarch x86_64 aarch64 riscv64 @@ -26,7 +26,7 @@ %endif Name: rust -Version: 1.86.0 +Version: 1.87.0 Release: 1 Summary: The Rust Programming Language License: Apache-2.0 OR MIT @@ -44,7 +44,9 @@ Patch0000: rustc-1.86.0-disable-libssh2.patch Patch0001: 0001-Use-lld-provided-by-system.patch # Set a substitute-path in rust-gdb for standard library sources. Patch0002: rustc-1.70.0-rust-gdb-substitute-path.patch -Patch0003: 0001-add-support-for-ppc64le.patch +# https://github.com/rust-lang/rust/pull/139677 from 1.88 +Patch0003: 0003-Fix-profiler_builtins-build-script-to-handle-full-pa.patch +Patch0004: 0001-add-support-for-ppc64le.patch %{lua: function rust_triple(arch) local abi = "gnu" @@ -114,8 +116,8 @@ BuildRequires: pkgconfig(openssl) pkgconfig(zlib) pkgconfig(libssh2) >= 1. %global python python3 BuildRequires: %{python} %if %with bundled_llvm -BuildRequires: cmake3 >= 3.20.0 -Provides: bundled(llvm) = 19.1.7 +BuildRequires: cmake3 >= 3.20.3 +Provides: bundled(llvm) = 20.1.1 %else BuildRequires: cmake >= 3.5.1 %if %defined llvm @@ -291,6 +293,7 @@ sed -i.try-python -e '/^try python3 /i try "%{python}" "$@"' ./configure %patch -P 0001 -p1 %patch -P 0002 -p1 %patch -P 0003 -p1 +%patch -P 0004 -p1 rm -rf vendor/curl-sys*/curl/ rm -rf vendor/jemalloc-sys/jemalloc/ rm -rf vendor/libffi-sys*/libffi/ @@ -379,7 +382,7 @@ test -r "%{profiler}" --disable-rpath \ %{enable_debuginfo} \ --enable-extended \ - --tools=cargo,clippy,%{?with_analyzer:rls,rust-analyzer,}rustfmt,src \ + --tools=cargo,clippy,%{?with_analyzer:rust-analyzer,}rustfmt,src \ --enable-vendor \ --enable-verbose-tests \ %{?codegen_units_std} \ @@ -435,11 +438,6 @@ install -m 0644 -D -p %{SOURCE3} %{buildroot}%{_sysconfdir}/skel/.cargo/config.t install -m 0644 -D -p %{SOURCE4} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.sh install -m 0644 -D -p %{SOURCE5} %{buildroot}%{_sysconfdir}/profile.d/cargo-config.csh -%if %{with analyzer} -# The rls stub doesn't have an install target, but we can just copy it. -%{__install} -t %{buildroot}%{_bindir} build/%{rust_triple}/stage2-tools-bin/rls -%endif - %if %without lldb rm -f %{buildroot}%{_bindir}/rust-lldb rm -f %{buildroot}%{rustlibdir}/etc/lldb_* @@ -533,7 +531,6 @@ export %{rust_env} %if %{with analyzer} %files analyzer -%{_bindir}/rls %{_bindir}/rust-analyzer %doc src/tools/rust-analyzer/README.md %license src/tools/rust-analyzer/LICENSE-{APACHE,MIT} @@ -561,6 +558,9 @@ export %{rust_env} %{_mandir}/man1/cargo*.1* %changelog +* Fri May 16 2025 jchzhou - 1.87.0-1 +- Update to 1.87.0 + * Mon Apr 07 2025 wangkai <13474090681@163.com> - 1.86.0-1 - Update to 1.86.0 diff --git a/rustc-1.86.0-src.tar.xz b/rustc-1.86.0-src.tar.xz deleted file mode 100644 index bf827fcd941d1c9fe4ef2fda0abc6082d7014854..0000000000000000000000000000000000000000 --- a/rustc-1.86.0-src.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d939eada065dc827a9d4dbb55bd48533ad14c16e7f0a42e70147029c82a7707b -size 275696736 diff --git a/rustc-1.86.0-src.tar.xz.asc b/rustc-1.86.0-src.tar.xz.asc deleted file mode 100644 index de2eb95fa4751e9dc9931884e5c99d40a615b164..0000000000000000000000000000000000000000 --- a/rustc-1.86.0-src.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -wsFcBAABCgAQBQJn7lKhCRCFq5bm+hvl/gAACjYP/3bTkeFsXeV3GMKpAjVhRDfS -ni34+892i/suOodusQsj2l5dvOfWAcn2/X1iMezcZe3xk6gCsZ66GSwEGOQIhe/R -ooxUS2fg/w8wXsTxN2epmyd/pOVURUP7Ng+iSUP0ezfGX4q5ohmGw6SdfhsUzrJG -DROIEbLuHm0coB/RYFcGL5EhvtTc8TqEHkhemLg5z31tibuhyArOOcEY0GrNrj9s -g9rBcN6CxlxT7e6HDvjCWRFv9Fe+PJi+AvkTDjLDpothGuoyTqTzUDpu3kbtuK0p -kvIBRjcMfEXyA7qSogjQzViSVtgRwf029k7uMkNjPBPX+nS0NMlbD4jEXhqdNgM5 -6em7FMdYY2K+vFONBnR9smRPG/l+RswLkujAdMPCe2/KcTfRZ+m9GJpnwBeMMhxt -dOGYPPDImFJbVFu6uVN418qbcz9FBi/xLGhmcbR2dltqLRnVSuiAbYJM4dYLqlGo -fGkiidVMR6Qlwr++K7Ymv5bLmCELcJU2dK/kULrSTLhdO/2tEbiQgnxf03xCkkj5 -5jr5yF8LRGBhhnUZFX49W4dm1ipfZY5EHYvbbKrdQvo2Gyr2NaoXsuL4RGulYqLI -2fIQSCFnqT1ZMYYG7MkOQBQmRfDnv91MWUUAKRMhNMNBL1HVkRWs/YXlc54UgMbR -at0CKU1M2+OFY7ldicrc -=SPYv ------END PGP SIGNATURE----- diff --git a/rustc-1.87.0-src.tar.xz b/rustc-1.87.0-src.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..296a81eb622414b597383beed538f998807c2cc3 --- /dev/null +++ b/rustc-1.87.0-src.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8623b8651893e8c6aebfa45b6a90645a4f652f7b18189a0992a90d11ac2631f4 +size 283604208 diff --git a/rustc-1.87.0-src.tar.xz.asc b/rustc-1.87.0-src.tar.xz.asc new file mode 100644 index 0000000000000000000000000000000000000000..2cb8bf1563eb6b216082f64a7a98d9faa3b52fb2 --- /dev/null +++ b/rustc-1.87.0-src.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +wsFcBAABCgAQBQJoJh8yCRCFq5bm+hvl/gAASMcP/0t0ONXTsRCaTLHlCSFTr7IG +easwqKXRUj46Z9L6v3K+g2NBOCr0GAbFJdY5EnspNR0pTSymTOmdygq1RQ6O4Zay +bGGsC5J3yujqJnY2oCTPdWJs5VOE7351QmfpxyTWQDG8smK7cfeQUdsKvMC6dWn7 +Uht8S4DFIfAgX/+B+yd/YyyPyDICdNUIPXakczytuko4SGsG78RqwGZr1+TgjdMb +rUarUyx8Ft60dHZ+3RRAD6dBNcT3r07n3AFr9Ch/yTcbnpy8z9RMN5WMqHGk5H0P +MGQETVNZ+V1Fg1OTmmyeBln66+8kYTYdGfkRgQ2opn1jn6/aEkBcvMp/A/J6UB23 +NNVH/ylguOTQ/EM5LMiuH7fmkStr724x5LZZ+evZkJqqScxM2A8clEEE+hgqxXFS +uzCNXU7ZqG9feLnjD2e1+jOCbCpFWVIiNAMFyGQP+vM4sRks6X7MNDHMQXOZPOcu +4AOajldgovdxbGuLS9onkK4Wcenc9Z8Y6rhwA7ElX3i3Od+8ySXDKhR0Fy2vLjeO +8OyYaXLxRrCBftGpnFM3iou5q9HdEVh+LjtFHDj19wRU4PVSVQegIhA4xxYSq5gJ +WHBffhHZa3FppZoU/0TPGoAHBMi35k+2Kci8VtG2uduZ0sHfPH5e0KXU2JxnOWnH +ukYbzoQc0YnmcD/ucP2r +=u9gN +-----END PGP SIGNATURE-----