git: 29120ed40fd6 - main - lang/rust: Update to 1.82.0

From: Mikael Urankar <mikael_at_FreeBSD.org>
Date: Fri, 08 Nov 2024 08:24:30 UTC
The branch main has been updated by mikael:

URL: https://cgit.FreeBSD.org/ports/commit/?id=29120ed40fd6faa934d8a2b97c7ded42ab7dce4e

commit 29120ed40fd6faa934d8a2b97c7ded42ab7dce4e
Author:     Mikael Urankar <mikael@FreeBSD.org>
AuthorDate: 2024-10-24 09:49:57 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2024-11-08 08:24:19 +0000

    lang/rust: Update to 1.82.0
    
    Announce:       https://blog.rust-lang.org/2024/10/17/Rust-1.82.0.html
    ChangeLog:      https://github.com/rust-lang/rust/releases/tag/1.82.0
    
    PR:             282516
    Tested by:      mikael,pkubaj
---
 Mk/Uses/cargo.mk                                   |   2 +-
 Mk/bsd.gecko.mk                                    |   2 +-
 lang/rust-bootstrap/Makefile                       |   2 +-
 lang/rust-bootstrap/distinfo                       |   6 +-
 lang/rust/Makefile                                 |   6 +-
 lang/rust/distinfo                                 | 102 +--
 ...ompiler_rustc__target_src_abi_call_powerpc64.rs |   2 +-
 .../patch-library_backtrace_src_backtrace_mod.rs   |   4 +-
 lang/rust/files/patch-vendor_cc.rs                 |  80 ++-
 lang/rust/files/patch-vendor_libc-0.2.155          | 745 +++++++++++++++++++++
 lang/rust/files/patch-vendor_libc-0.2.157          | 745 +++++++++++++++++++++
 lang/rust/files/patch-vendor_libc-0.2.158          | 745 +++++++++++++++++++++
 12 files changed, 2352 insertions(+), 89 deletions(-)

diff --git a/Mk/Uses/cargo.mk b/Mk/Uses/cargo.mk
index 8a7e2539896f..c265ddfc4627 100644
--- a/Mk/Uses/cargo.mk
+++ b/Mk/Uses/cargo.mk
@@ -97,7 +97,7 @@ WRKSRC_crate_${_crate}=	${WRKDIR}/${_wrksrc}
 
 CARGO_BUILDDEP?=	yes
 .  if ${CARGO_BUILDDEP:tl} == "yes"
-BUILD_DEPENDS+=	${RUST_DEFAULT}>=1.81.0:lang/${RUST_DEFAULT}
+BUILD_DEPENDS+=	${RUST_DEFAULT}>=1.82.0:lang/${RUST_DEFAULT}
 .  elif ${CARGO_BUILDDEP:tl} == "any-version"
 BUILD_DEPENDS+=	${RUST_DEFAULT}>=0:lang/${RUST_DEFAULT}
 .  endif
diff --git a/Mk/bsd.gecko.mk b/Mk/bsd.gecko.mk
index c6fb935ba593..50e9e1dc2a56 100644
--- a/Mk/bsd.gecko.mk
+++ b/Mk/bsd.gecko.mk
@@ -77,7 +77,7 @@ ELF_FEATURES+=	+wxneeded:dist/bin/${MOZILLA} +wxneeded:dist/bin/${MOZILLA}-bin
 BUNDLE_LIBS=	yes
 
 BUILD_DEPENDS+=	rust-cbindgen>=0.26.0:devel/rust-cbindgen \
-				${RUST_DEFAULT}>=1.81.0:lang/${RUST_DEFAULT} \
+				${RUST_DEFAULT}>=1.82.0:lang/${RUST_DEFAULT} \
 				node:www/node
 LIB_DEPENDS+=	libdrm.so:graphics/libdrm
 RUN_DEPENDS+=	${LOCALBASE}/lib/libpci.so:devel/libpci
diff --git a/lang/rust-bootstrap/Makefile b/lang/rust-bootstrap/Makefile
index 721bde7e0f50..fe577802b840 100644
--- a/lang/rust-bootstrap/Makefile
+++ b/lang/rust-bootstrap/Makefile
@@ -2,7 +2,7 @@
 # to upload them to ~/public_distfiles on freefall in preparation
 # for the next lang/rust update.
 PORTNAME=	rust
-PORTVERSION=	1.81.0
+PORTVERSION=	1.82.0
 CATEGORIES=	lang
 MASTER_SITES=	https://static.rust-lang.org/dist/
 PKGNAMEPREFIX=	${FLAVOR:S/_/-/g}-
diff --git a/lang/rust-bootstrap/distinfo b/lang/rust-bootstrap/distinfo
index fa537b259d6c..6597985415ff 100644
--- a/lang/rust-bootstrap/distinfo
+++ b/lang/rust-bootstrap/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1725563033
-SHA256 (rust/rustc-1.81.0-src.tar.xz) = e8fc54fea3df1a5081c00563cdc0fe2ac567104a557aa07116966c013f3d0195
-SIZE (rust/rustc-1.81.0-src.tar.xz) = 216764824
+TIMESTAMP = 1729451664
+SHA256 (rust/rustc-1.82.0-src.tar.xz) = 1276a0bb8fa12288ba6fa96597d28b40e74c44257c051d3bc02c2b049bb38210
+SIZE (rust/rustc-1.82.0-src.tar.xz) = 219769328
diff --git a/lang/rust/Makefile b/lang/rust/Makefile
index 5da879672316..004fa9de631c 100644
--- a/lang/rust/Makefile
+++ b/lang/rust/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	rust
-PORTVERSION?=	1.81.0
+PORTVERSION?=	1.82.0
 PORTREVISION?=	0
 CATEGORIES=	lang
 MASTER_SITES=	https://static.rust-lang.org/dist/:src \
@@ -67,8 +67,8 @@ WASM_VARS=		_COMPONENTS+="rust-analysis-${_PACKAGE_VERS}-wasm32-unknown-unknown
 			_RUST_TARGETS+=wasm32-unknown-unknown
 
 # See WRKSRC/src/stage0 for the date and version values
-BOOTSTRAPS_DATE?=		2024-08-08
-RUST_BOOTSTRAP_VERSION?=	1.80.0
+BOOTSTRAPS_DATE?=		2024-09-05
+RUST_BOOTSTRAP_VERSION?=	1.81.0
 
 CARGO_VENDOR_DIR?=		${WRKSRC}/vendor
 
diff --git a/lang/rust/distinfo b/lang/rust/distinfo
index c92b012c4d90..1a29d5172aa4 100644
--- a/lang/rust/distinfo
+++ b/lang/rust/distinfo
@@ -1,51 +1,51 @@
-TIMESTAMP = 1725563031
-SHA256 (rust/rustc-1.81.0-src.tar.xz) = e8fc54fea3df1a5081c00563cdc0fe2ac567104a557aa07116966c013f3d0195
-SIZE (rust/rustc-1.81.0-src.tar.xz) = 216764824
-SHA256 (rust/2024-08-08/rustc-1.80.0-aarch64-unknown-freebsd.tar.xz) = 321c18de125baaf82255ad7cea9a48b20d7c2050d5dd65401e4bc3c4ca6fb4c7
-SIZE (rust/2024-08-08/rustc-1.80.0-aarch64-unknown-freebsd.tar.xz) = 59522160
-SHA256 (rust/2024-08-08/rust-std-1.80.0-aarch64-unknown-freebsd.tar.xz) = ca9359056396c909dd2fb9cc38b0ff8821643ebf3429cccc71d38ceca052f993
-SIZE (rust/2024-08-08/rust-std-1.80.0-aarch64-unknown-freebsd.tar.xz) = 25757812
-SHA256 (rust/2024-08-08/cargo-1.80.0-aarch64-unknown-freebsd.tar.xz) = 3dc67773101dda81883421d0ba160240e8a3d71baa63972df67a48a7971ea721
-SIZE (rust/2024-08-08/cargo-1.80.0-aarch64-unknown-freebsd.tar.xz) = 9032180
-SHA256 (rust/2024-08-08/rustc-1.80.0-x86_64-unknown-freebsd.tar.xz) = 878fb757076782cb056f2b97d9daae582b51982f0e71886fa5e4e62935fdaec0
-SIZE (rust/2024-08-08/rustc-1.80.0-x86_64-unknown-freebsd.tar.xz) = 47968520
-SHA256 (rust/2024-08-08/rust-std-1.80.0-x86_64-unknown-freebsd.tar.xz) = b9296b743c3ae8aa3eb8888e0fc8bb0643a90100cf982867d9f6bb9c1b802c76
-SIZE (rust/2024-08-08/rust-std-1.80.0-x86_64-unknown-freebsd.tar.xz) = 26546140
-SHA256 (rust/2024-08-08/cargo-1.80.0-x86_64-unknown-freebsd.tar.xz) = 486f0b85afb4483c0abd1aa3e2c6a133f02c53a32d97fd1225e6d4b11927eb09
-SIZE (rust/2024-08-08/cargo-1.80.0-x86_64-unknown-freebsd.tar.xz) = 10100468
-SHA256 (rust/2024-08-08/rustc-1.80.0-armv7-unknown-freebsd.tar.xz) = 830502080628bb0b811da34291216283bdc77a3845ca8c3127d72d115a4b0c8c
-SIZE (rust/2024-08-08/rustc-1.80.0-armv7-unknown-freebsd.tar.xz) = 59701744
-SHA256 (rust/2024-08-08/rust-std-1.80.0-armv7-unknown-freebsd.tar.xz) = 34badba19462d3f54279a0deca9c4288419334ca0eda8c28fec929b8db478ef2
-SIZE (rust/2024-08-08/rust-std-1.80.0-armv7-unknown-freebsd.tar.xz) = 25224376
-SHA256 (rust/2024-08-08/cargo-1.80.0-armv7-unknown-freebsd.tar.xz) = fe82727748ef8ac694072be9ad59c10110f7621f2bcb92c7283bd22849c965aa
-SIZE (rust/2024-08-08/cargo-1.80.0-armv7-unknown-freebsd.tar.xz) = 9100116
-SHA256 (rust/2024-08-08/rustc-1.80.0-i686-unknown-freebsd.tar.xz) = 87bdc1d84ce27d953277330f95673b9c67f98be72982387f73c723081166f442
-SIZE (rust/2024-08-08/rustc-1.80.0-i686-unknown-freebsd.tar.xz) = 66337464
-SHA256 (rust/2024-08-08/rust-std-1.80.0-i686-unknown-freebsd.tar.xz) = 08f85ee367e6033f1b16f30435d082909cc020a2a66078cad4ab2a303d1c8f9e
-SIZE (rust/2024-08-08/rust-std-1.80.0-i686-unknown-freebsd.tar.xz) = 26239164
-SHA256 (rust/2024-08-08/cargo-1.80.0-i686-unknown-freebsd.tar.xz) = ae8499d4c964969c505efc1e585705a3ab450e9f552935dfddb8b718245f82f2
-SIZE (rust/2024-08-08/cargo-1.80.0-i686-unknown-freebsd.tar.xz) = 10487336
-SHA256 (rust/2024-08-08/rustc-1.80.0-powerpc-unknown-freebsd.tar.xz) = dda3b18497bceb17c626f7c976a0a68ac50b4b14268e951babe892e28bd780ea
-SIZE (rust/2024-08-08/rustc-1.80.0-powerpc-unknown-freebsd.tar.xz) = 63260996
-SHA256 (rust/2024-08-08/rust-std-1.80.0-powerpc-unknown-freebsd.tar.xz) = efb90b880f16f4c49c3060c4d9d5e3ee86e27b05e4771990bb6d2bc6249e5635
-SIZE (rust/2024-08-08/rust-std-1.80.0-powerpc-unknown-freebsd.tar.xz) = 24368468
-SHA256 (rust/2024-08-08/cargo-1.80.0-powerpc-unknown-freebsd.tar.xz) = 193640fa0bea88ea7f712fa509feacd6a69e8798aaa00f4e2be4afc731eb547f
-SIZE (rust/2024-08-08/cargo-1.80.0-powerpc-unknown-freebsd.tar.xz) = 9724748
-SHA256 (rust/2024-08-08/rustc-1.80.0-powerpc64-unknown-freebsd.tar.xz) = 8ad48d991a511951fa10e6c209bba482d0bc027b068bc9e749d7b32b8b575b0c
-SIZE (rust/2024-08-08/rustc-1.80.0-powerpc64-unknown-freebsd.tar.xz) = 61456824
-SHA256 (rust/2024-08-08/rust-std-1.80.0-powerpc64-unknown-freebsd.tar.xz) = 4157145584fd5b47a4e72e013907c97fea5206a1006582bdd116f62afe2b9614
-SIZE (rust/2024-08-08/rust-std-1.80.0-powerpc64-unknown-freebsd.tar.xz) = 24437572
-SHA256 (rust/2024-08-08/cargo-1.80.0-powerpc64-unknown-freebsd.tar.xz) = 2e15b5174474359afcab26a007ca0c5c9f85961846516c760d4d41c95dac1cbb
-SIZE (rust/2024-08-08/cargo-1.80.0-powerpc64-unknown-freebsd.tar.xz) = 9348928
-SHA256 (rust/2024-08-08/rustc-1.80.0-powerpc64le-unknown-freebsd.tar.xz) = 74d641b8df414557bb9cf9220c5e74e7a08311e57321bf040f1ba0686778a490
-SIZE (rust/2024-08-08/rustc-1.80.0-powerpc64le-unknown-freebsd.tar.xz) = 63158368
-SHA256 (rust/2024-08-08/rust-std-1.80.0-powerpc64le-unknown-freebsd.tar.xz) = f791fd3d02ef6f048cedec8b53d7347f101f75c6c10dccf4ac248d27af44af55
-SIZE (rust/2024-08-08/rust-std-1.80.0-powerpc64le-unknown-freebsd.tar.xz) = 24500892
-SHA256 (rust/2024-08-08/cargo-1.80.0-powerpc64le-unknown-freebsd.tar.xz) = c127afbdd810f8e004af8f7913865f7a4acb6adf25ec8aa498e0baf6d426194b
-SIZE (rust/2024-08-08/cargo-1.80.0-powerpc64le-unknown-freebsd.tar.xz) = 9610648
-SHA256 (rust/2024-08-08/rustc-1.80.0-riscv64gc-unknown-freebsd.tar.xz) = a36d350e11e3c5ed3ded4f7edbf553290bd5d2b4728cdd3cf606ba210a22eb9c
-SIZE (rust/2024-08-08/rustc-1.80.0-riscv64gc-unknown-freebsd.tar.xz) = 70271380
-SHA256 (rust/2024-08-08/rust-std-1.80.0-riscv64gc-unknown-freebsd.tar.xz) = 69a7a6592258a20fdd636f8a4df2bf3868e9cf06fdaab44265dfec6923960ca0
-SIZE (rust/2024-08-08/rust-std-1.80.0-riscv64gc-unknown-freebsd.tar.xz) = 24436056
-SHA256 (rust/2024-08-08/cargo-1.80.0-riscv64gc-unknown-freebsd.tar.xz) = 2e8fbfcd2cca3c90b6e64505d7bc7debcd60316266eb9b8e69a9909ffc73d029
-SIZE (rust/2024-08-08/cargo-1.80.0-riscv64gc-unknown-freebsd.tar.xz) = 11852028
+TIMESTAMP = 1729451663
+SHA256 (rust/rustc-1.82.0-src.tar.xz) = 1276a0bb8fa12288ba6fa96597d28b40e74c44257c051d3bc02c2b049bb38210
+SIZE (rust/rustc-1.82.0-src.tar.xz) = 219769328
+SHA256 (rust/2024-09-05/rustc-1.81.0-aarch64-unknown-freebsd.tar.xz) = 721beae8927fc82313d397ce8de7f11a298d3f966344943dae98605a4042758c
+SIZE (rust/2024-09-05/rustc-1.81.0-aarch64-unknown-freebsd.tar.xz) = 61258492
+SHA256 (rust/2024-09-05/rust-std-1.81.0-aarch64-unknown-freebsd.tar.xz) = 4d3a685ea57f94ab78d35da7bc8290a7a21eac70a6b23240d058ce9e5934af50
+SIZE (rust/2024-09-05/rust-std-1.81.0-aarch64-unknown-freebsd.tar.xz) = 26107012
+SHA256 (rust/2024-09-05/cargo-1.81.0-aarch64-unknown-freebsd.tar.xz) = a213e3470c9d4c4b867657be419c47db6f34047837b0fbcc4e18fa7add181dbf
+SIZE (rust/2024-09-05/cargo-1.81.0-aarch64-unknown-freebsd.tar.xz) = 9206832
+SHA256 (rust/2024-09-05/rustc-1.81.0-x86_64-unknown-freebsd.tar.xz) = a1875f80c608dc5e7cf431d782512b36753c7b8a8a7e68b2828542a1b15f4797
+SIZE (rust/2024-09-05/rustc-1.81.0-x86_64-unknown-freebsd.tar.xz) = 50002544
+SHA256 (rust/2024-09-05/rust-std-1.81.0-x86_64-unknown-freebsd.tar.xz) = dd34a1f363e4f36e8814520cd19cb41b8dea4991bf58effa28b68bed5309aa6f
+SIZE (rust/2024-09-05/rust-std-1.81.0-x86_64-unknown-freebsd.tar.xz) = 26944964
+SHA256 (rust/2024-09-05/cargo-1.81.0-x86_64-unknown-freebsd.tar.xz) = 0e2578c6d00860bcfcb7f7f55a85a162d98538c8c4ad856cfa0fe8cacf64a564
+SIZE (rust/2024-09-05/cargo-1.81.0-x86_64-unknown-freebsd.tar.xz) = 10321608
+SHA256 (rust/2024-09-05/rustc-1.81.0-armv7-unknown-freebsd.tar.xz) = e9eb04946449d13db88c5f24f431d54b607941ad15ac84d008a9e43aa68e9e9b
+SIZE (rust/2024-09-05/rustc-1.81.0-armv7-unknown-freebsd.tar.xz) = 61790324
+SHA256 (rust/2024-09-05/rust-std-1.81.0-armv7-unknown-freebsd.tar.xz) = 13207803e0670b0e3c3edeac90ec7d5925f00304e871e4712f137175f114fc97
+SIZE (rust/2024-09-05/rust-std-1.81.0-armv7-unknown-freebsd.tar.xz) = 25711244
+SHA256 (rust/2024-09-05/cargo-1.81.0-armv7-unknown-freebsd.tar.xz) = 0524f6d8454100be00f7fb7738773ecaa366d8cebcdf55caaf95cfd4c28c2d5c
+SIZE (rust/2024-09-05/cargo-1.81.0-armv7-unknown-freebsd.tar.xz) = 9338728
+SHA256 (rust/2024-09-05/rustc-1.81.0-i686-unknown-freebsd.tar.xz) = 5562e52a5d3bc7e6072838c0aa8e7e518fe2db74c0e3792204e1dc5306559b20
+SIZE (rust/2024-09-05/rustc-1.81.0-i686-unknown-freebsd.tar.xz) = 68846504
+SHA256 (rust/2024-09-05/rust-std-1.81.0-i686-unknown-freebsd.tar.xz) = 7f0422aa60f4df0fabc4a07708319b09f496833cc6c4111544710a683b0571b2
+SIZE (rust/2024-09-05/rust-std-1.81.0-i686-unknown-freebsd.tar.xz) = 26734268
+SHA256 (rust/2024-09-05/cargo-1.81.0-i686-unknown-freebsd.tar.xz) = 762a7d113f8c77ae8c50f07da840ccb917cb836b6fbd2427b09967e82189d50a
+SIZE (rust/2024-09-05/cargo-1.81.0-i686-unknown-freebsd.tar.xz) = 10756764
+SHA256 (rust/2024-09-05/rustc-1.81.0-powerpc-unknown-freebsd.tar.xz) = 801950501c837591740febb71f4ef70b461a665e6e899badd1dee7010b2b1757
+SIZE (rust/2024-09-05/rustc-1.81.0-powerpc-unknown-freebsd.tar.xz) = 65322316
+SHA256 (rust/2024-09-05/rust-std-1.81.0-powerpc-unknown-freebsd.tar.xz) = 3704d7d1c404698920373db1131a81eb3d5ec0c6b3dd4620c896144dddf3fe53
+SIZE (rust/2024-09-05/rust-std-1.81.0-powerpc-unknown-freebsd.tar.xz) = 24778908
+SHA256 (rust/2024-09-05/cargo-1.81.0-powerpc-unknown-freebsd.tar.xz) = 23f8b7c3195ba7626ac5c897707e36d5a5e701de79c950b3e58bd647e786faba
+SIZE (rust/2024-09-05/cargo-1.81.0-powerpc-unknown-freebsd.tar.xz) = 9923104
+SHA256 (rust/2024-09-05/rustc-1.81.0-powerpc64-unknown-freebsd.tar.xz) = 478d738a735eb0d1d6dddaee977c4ce0dc5168fcbd9dcadf67a6fc571cc8986a
+SIZE (rust/2024-09-05/rustc-1.81.0-powerpc64-unknown-freebsd.tar.xz) = 63419468
+SHA256 (rust/2024-09-05/rust-std-1.81.0-powerpc64-unknown-freebsd.tar.xz) = 451227b91ed09e7813ffba77b4e17f9b919b11ad373b0bc87a84eec64b7b9a01
+SIZE (rust/2024-09-05/rust-std-1.81.0-powerpc64-unknown-freebsd.tar.xz) = 24849284
+SHA256 (rust/2024-09-05/cargo-1.81.0-powerpc64-unknown-freebsd.tar.xz) = 92dae5616bb090c9ae99d0006fe7612d64773d145f574a091b90cc764287f4ac
+SIZE (rust/2024-09-05/cargo-1.81.0-powerpc64-unknown-freebsd.tar.xz) = 9533220
+SHA256 (rust/2024-09-05/rustc-1.81.0-powerpc64le-unknown-freebsd.tar.xz) = 5be810fe0ee72c734c8e00941f1c01a43506ef6063a3aa51e1e6dbb2fefb520b
+SIZE (rust/2024-09-05/rustc-1.81.0-powerpc64le-unknown-freebsd.tar.xz) = 65284584
+SHA256 (rust/2024-09-05/rust-std-1.81.0-powerpc64le-unknown-freebsd.tar.xz) = 247759fa4d96ec7c7ee88290700a4ef4c2799e8c8e66e7dafe81ca678d57e4f3
+SIZE (rust/2024-09-05/rust-std-1.81.0-powerpc64le-unknown-freebsd.tar.xz) = 24899100
+SHA256 (rust/2024-09-05/cargo-1.81.0-powerpc64le-unknown-freebsd.tar.xz) = 6e5141477f52caf26583e9d3263698ae427c89bec23b3af8b8e0d59f4e6b46ec
+SIZE (rust/2024-09-05/cargo-1.81.0-powerpc64le-unknown-freebsd.tar.xz) = 9825936
+SHA256 (rust/2024-09-05/rustc-1.81.0-riscv64gc-unknown-freebsd.tar.xz) = eec81507223597baa72979407ac0594506aed0d3c42299eb0b8fcc49f27d2251
+SIZE (rust/2024-09-05/rustc-1.81.0-riscv64gc-unknown-freebsd.tar.xz) = 72380112
+SHA256 (rust/2024-09-05/rust-std-1.81.0-riscv64gc-unknown-freebsd.tar.xz) = 160ebd04a8e49ab9b6b3cff4c0e913a433810557fd5ccdb8839ba4facfbdcc3a
+SIZE (rust/2024-09-05/rust-std-1.81.0-riscv64gc-unknown-freebsd.tar.xz) = 24745684
+SHA256 (rust/2024-09-05/cargo-1.81.0-riscv64gc-unknown-freebsd.tar.xz) = a42a1fe5cf41c0baf74e69e0d6f9baf3e592570b232bd2c0f752a56f3622a446
+SIZE (rust/2024-09-05/cargo-1.81.0-riscv64gc-unknown-freebsd.tar.xz) = 11996032
diff --git a/lang/rust/files/patch-compiler_rustc__target_src_abi_call_powerpc64.rs b/lang/rust/files/patch-compiler_rustc__target_src_abi_call_powerpc64.rs
index 2524e1872984..814822d5b7c7 100644
--- a/lang/rust/files/patch-compiler_rustc__target_src_abi_call_powerpc64.rs
+++ b/lang/rust/files/patch-compiler_rustc__target_src_abi_call_powerpc64.rs
@@ -1,6 +1,6 @@
 --- compiler/rustc_target/src/abi/call/powerpc64.rs.orig	2020-03-09 22:11:17 UTC
 +++ compiler/rustc_target/src/abi/call/powerpc64.rs
-@@ -123,7 +123,7 @@ where
+@@ -95,7 +95,7 @@ where
          ELFv2
      } else {
          match cx.data_layout().endian {
diff --git a/lang/rust/files/patch-library_backtrace_src_backtrace_mod.rs b/lang/rust/files/patch-library_backtrace_src_backtrace_mod.rs
index b1ebad360bc8..f4f618ac6bf1 100644
--- a/lang/rust/files/patch-library_backtrace_src_backtrace_mod.rs
+++ b/lang/rust/files/patch-library_backtrace_src_backtrace_mod.rs
@@ -1,9 +1,9 @@
 --- library/backtrace/src/backtrace/mod.rs.orig	2021-11-29 19:27:28 UTC
 +++ library/backtrace/src/backtrace/mod.rs
-@@ -139,6 +139,7 @@ cfg_if::cfg_if! {
+@@ -176,6 +176,7 @@ cfg_if::cfg_if! {
+                 unix,
                  not(target_os = "emscripten"),
                  not(all(target_os = "ios", target_arch = "arm")),
-                 not(all(target_os = "nto", target_env = "nto70")),
 +                not(all(target_os = "freebsd", target_arch = "riscv64")),
              ),
              all(
diff --git a/lang/rust/files/patch-vendor_cc.rs b/lang/rust/files/patch-vendor_cc.rs
index 2d28eb8be9b5..cd36c492c22d 100644
--- a/lang/rust/files/patch-vendor_cc.rs
+++ b/lang/rust/files/patch-vendor_cc.rs
@@ -37,32 +37,6 @@ https://reviews.llvm.org/D77776
              path: path,
              cc_wrapper_path: None,
 
---- vendor/cc-1.0.90/src/tool.rs.orig	2024-03-18 11:23:17 UTC
-+++ vendor/cc-1.0.90/src/tool.rs
-@@ -122,22 +122,7 @@ impl Tool {
-         };
- 
-         // Try to detect family of the tool from its name, falling back to Gnu.
--        let family = if let Some(fname) = path.file_name().and_then(|p| p.to_str()) {
--            if fname.contains("clang-cl") {
--                ToolFamily::Msvc { clang_cl: true }
--            } else if fname.ends_with("cl") || fname == "cl.exe" {
--                ToolFamily::Msvc { clang_cl: false }
--            } else if fname.contains("clang") {
--                match clang_driver {
--                    Some("cl") => ToolFamily::Msvc { clang_cl: true },
--                    _ => ToolFamily::Clang,
--                }
--            } else {
--                detect_family(&path)
--            }
--        } else {
--            detect_family(&path)
--        };
-+        let family = ToolFamily::Gnu;
- 
-         Tool {
-             path,
 --- vendor/cc-1.0.97/src/tool.rs.orig	2024-05-09 18:20:47 UTC
 +++ vendor/cc-1.0.97/src/tool.rs
 @@ -151,9 +151,7 @@ impl Tool {
@@ -89,3 +63,57 @@ https://reviews.llvm.org/D77776
                  (false, false, true) => Ok(ToolFamily::Gnu),
                  (false, false, false) => {
                      cargo_output.print_warning(&"Compiler family detection failed since it does not define `__clang__`, `__GNUC__` or `_MSC_VER`, fallback to treating it as GNU");
+--- vendor/cc-1.0.105/src/tool.rs.orig	2024-05-09 18:20:47 UTC
++++ vendor/cc-1.0.105/src/tool.rs
+@@ -151,9 +151,7 @@ impl Tool {
+ 
+             match (clang, accepts_cl_style_flags, gcc) {
+                 (clang_cl, true, _) => Ok(ToolFamily::Msvc { clang_cl }),
+-                (true, false, _) => Ok(ToolFamily::Clang {
+-                    zig_cc: is_zig_cc(path, cargo_output),
+-                }),
++                (true, false, _) => Ok(ToolFamily::Gnu),
+                 (false, false, true) => Ok(ToolFamily::Gnu),
+                 (false, false, false) => {
+                     cargo_output.print_warning(&"Compiler family detection failed since it does not define `__clang__`, `__GNUC__` or `_MSC_VER`, fallback to treating it as GNU");
+--- vendor/cc-1.1.5/src/tool.rs.orig	2024-05-09 18:20:47 UTC
++++ vendor/cc-1.1.5/src/tool.rs
+@@ -151,9 +151,7 @@ impl Tool {
+ 
+             match (clang, accepts_cl_style_flags, gcc) {
+                 (clang_cl, true, _) => Ok(ToolFamily::Msvc { clang_cl }),
+-                (true, false, _) => Ok(ToolFamily::Clang {
+-                    zig_cc: is_zig_cc(path, cargo_output),
+-                }),
++                (true, false, _) => Ok(ToolFamily::Gnu),
+                 (false, false, true) => Ok(ToolFamily::Gnu),
+                 (false, false, false) => {
+                     cargo_output.print_warning(&"Compiler family detection failed since it does not define `__clang__`, `__GNUC__` or `_MSC_VER`, fallback to treating it as GNU");
+
+--- vendor/cc-1.1.6/src/tool.rs.orig	2024-05-09 18:20:47 UTC
++++ vendor/cc-1.1.6/src/tool.rs
+@@ -151,9 +151,7 @@ impl Tool {
+ 
+             match (clang, accepts_cl_style_flags, gcc) {
+                 (clang_cl, true, _) => Ok(ToolFamily::Msvc { clang_cl }),
+-                (true, false, _) => Ok(ToolFamily::Clang {
+-                    zig_cc: is_zig_cc(path, cargo_output),
+-                }),
++                (true, false, _) => Ok(ToolFamily::Gnu),
+                 (false, false, true) => Ok(ToolFamily::Gnu),
+                 (false, false, false) => {
+                     cargo_output.print_warning(&"Compiler family detection failed since it does not define `__clang__`, `__GNUC__` or `_MSC_VER`, fallback to treating it as GNU");
+
+--- vendor/cc-1.1.10/src/tool.rs.orig	2024-05-09 18:20:47 UTC
++++ vendor/cc-1.1.10/src/tool.rs
+@@ -151,9 +151,7 @@ impl Tool {
+ 
+             match (clang, accepts_cl_style_flags, gcc) {
+                 (clang_cl, true, _) => Ok(ToolFamily::Msvc { clang_cl }),
+-                (true, false, _) => Ok(ToolFamily::Clang {
+-                    zig_cc: is_zig_cc(path, cargo_output),
+-                }),
++                (true, false, _) => Ok(ToolFamily::Gnu),
+                 (false, false, true) => Ok(ToolFamily::Gnu),
+                 (false, false, false) => {
+                     cargo_output.print_warning(&"Compiler family detection failed since it does not define `__clang__`, `__GNUC__` or `_MSC_VER`, fallback to treating it as GNU");
diff --git a/lang/rust/files/patch-vendor_libc-0.2.155 b/lang/rust/files/patch-vendor_libc-0.2.155
new file mode 100644
index 000000000000..69c2a03f7062
--- /dev/null
+++ b/lang/rust/files/patch-vendor_libc-0.2.155
@@ -0,0 +1,745 @@
+https://github.com/rust-lang/rust/issues/130677
+
+From 9049542fabce9eea669d1fe3d4d973931c9d7d23 Mon Sep 17 00:00:00 2001
+From: Alan Somers <asomers@gmail.com>
+Date: Mon, 23 Sep 2024 10:22:32 -0600
+Subject: [PATCH] Fix the definition of ino_t on 32-bit FreeBSD 12+
+
+Commit 7437d0a6f1 erroneously defined it as "ulong" instead of u64.
+Nobody noticed the mistake, probably because it was only tested on
+64-bit architectures, where those are equivalent.  But it's a problem
+now, after #3723 , which switched the standard library to a FreeBSD 12
+ABI.
+
+Issue https://github.com/rust-lang/rust/issues/130677
+---
+ src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs | 2 +-
+ src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs | 2 +-
+ src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs | 2 +-
+ src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs | 2 +-
+ src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
+index de34069eabdf2..68a8364194607 100644
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
+@@ -4,7 +4,7 @@
+ pub type nlink_t = u16;
+ // Type of `dev_t` changed from `u32` to `u64` in FreeBSD 12:
+ pub type dev_t = u32;
+-// Type of `ino_t` changed from `unsigned int` to `unsigned long` in FreeBSD 12:
++// Type of `ino_t` changed from `__uint32_t` to `__uint64_t` in FreeBSD 12:
+ pub type ino_t = u32;
+ 
+ s! {
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
+index 10fcaa03a4ef6..197400ffb4e28 100644
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
+@@ -2,7 +2,7 @@
+ 
+ pub type nlink_t = u64;
+ pub type dev_t = u64;
+-pub type ino_t = ::c_ulong;
++pub type ino_t = u64;
+ pub type shmatt_t = ::c_uint;
+ 
+ s! {
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
+index ec6bce2a03091..d3a77d03c48d0 100644
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
+@@ -2,7 +2,7 @@
+ 
+ pub type nlink_t = u64;
+ pub type dev_t = u64;
+-pub type ino_t = ::c_ulong;
++pub type ino_t = u64;
+ pub type shmatt_t = ::c_uint;
+ pub type kpaddr_t = u64;
+ pub type kssize_t = i64;
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
+index 160a4baae481b..9d65317d29cb4 100644
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
+@@ -2,7 +2,7 @@
+ 
+ pub type nlink_t = u64;
+ pub type dev_t = u64;
+-pub type ino_t = ::c_ulong;
++pub type ino_t = u64;
+ pub type shmatt_t = ::c_uint;
+ pub type kpaddr_t = u64;
+ pub type kssize_t = i64;
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs
+index d73215a68ec33..f76208400f324 100644
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs
+@@ -2,7 +2,7 @@
+ 
+ pub type nlink_t = u64;
+ pub type dev_t = u64;
+-pub type ino_t = ::c_ulong;
++pub type ino_t = u64;
+ pub type shmatt_t = ::c_uint;
+ pub type kpaddr_t = u64;
+ pub type kssize_t = i64;
+
+
+From 8aca9c0126f3aa5a7dce1ad7fc016b4a0d6af70a Mon Sep 17 00:00:00 2001
+From: Alan Somers <asomers@gmail.com>
+Date: Mon, 23 Sep 2024 10:44:13 -0600
+Subject: [PATCH] Fix the definition of "struct stat" on 32-bit FreeBSD 12+
+
+The original definitions were never correct.  But nobody noticed because
+we don't do CI on 32-bit FreeBSD.  The problem is apparent now due to
+ #3723 , which caused the nightly toolchain to switch to a FreeBSD 12
+ABI.
+
+Fixes https://github.com/rust-lang/rust/issues/130677
+---
+ .../{freebsd12/b64.rs => freebsd11/b32.rs}    | 13 +++---
+ .../bsd/freebsdlike/freebsd/freebsd11/mod.rs  |  7 +--
+ .../bsd/freebsdlike/freebsd/freebsd12/mod.rs  | 43 +++++++++++++++----
+ .../bsd/freebsdlike/freebsd/freebsd13/b64.rs  | 34 ---------------
+ .../bsd/freebsdlike/freebsd/freebsd13/mod.rs  | 43 +++++++++++++++----
+ .../bsd/freebsdlike/freebsd/freebsd14/b64.rs  | 34 ---------------
+ .../bsd/freebsdlike/freebsd/freebsd14/mod.rs  | 43 +++++++++++++++----
+ .../bsd/freebsdlike/freebsd/freebsd15/b64.rs  | 34 ---------------
+ .../bsd/freebsdlike/freebsd/freebsd15/mod.rs  | 43 +++++++++++++++----
+ src/unix/bsd/freebsdlike/freebsd/x86.rs       | 25 -----------
+ 10 files changed, 146 insertions(+), 173 deletions(-)
+ rename src/unix/bsd/freebsdlike/freebsd/{freebsd12/b64.rs => freebsd11/b32.rs} (89%)
+ delete mode 100644 src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs
+ delete mode 100644 src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs
+ delete mode 100644 src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs
+
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs
+similarity index 89%
+rename from src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs
+rename to src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs
+
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs.orig	2024-10-24 17:21:07.154172000 +0200
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs	2024-10-24 17:21:02.029962000 +0200
+@@ -0,0 +1,34 @@
++#[repr(C)]
++#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
++pub struct stat {
++    pub st_dev: ::dev_t,
++    pub st_ino: ::ino_t,
++    pub st_nlink: ::nlink_t,
++    pub st_mode: ::mode_t,
++    st_padding0: i16,
++    pub st_uid: ::uid_t,
++    pub st_gid: ::gid_t,
++    st_padding1: i32,
++    pub st_rdev: ::dev_t,
++    pub st_atime: ::time_t,
++    pub st_atime_nsec: ::c_long,
++    pub st_mtime: ::time_t,
++    pub st_mtime_nsec: ::c_long,
++    pub st_ctime: ::time_t,
++    pub st_ctime_nsec: ::c_long,
++    pub st_birthtime: ::time_t,
++    pub st_birthtime_nsec: ::c_long,
++    pub st_size: ::off_t,
++    pub st_blocks: ::blkcnt_t,
++    pub st_blksize: ::blksize_t,
++    pub st_flags: ::fflags_t,
++    pub st_gen: u64,
++    pub st_spare: [u64; 10],
++}
++
++impl ::Copy for ::stat {}
++impl ::Clone for ::stat {
++    fn clone(&self) -> ::stat {
++        *self
++    }
++}
+
+
+index 80c6fa1684530..5c1156581fd61 100644
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd12/b64.rs
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd11/b32.rs
+@@ -3,12 +3,10 @@
+ pub struct stat {
+     pub st_dev: ::dev_t,
+     pub st_ino: ::ino_t,
+-    pub st_nlink: ::nlink_t,
+     pub st_mode: ::mode_t,
+-    st_padding0: i16,
++    pub st_nlink: ::nlink_t,
+     pub st_uid: ::uid_t,
+     pub st_gid: ::gid_t,
+-    st_padding1: i32,
+     pub st_rdev: ::dev_t,
+     pub st_atime: ::time_t,
+     pub st_atime_nsec: ::c_long,
+@@ -16,14 +14,15 @@ pub struct stat {
+     pub st_mtime_nsec: ::c_long,
+     pub st_ctime: ::time_t,
+     pub st_ctime_nsec: ::c_long,
+-    pub st_birthtime: ::time_t,
+-    pub st_birthtime_nsec: ::c_long,
+     pub st_size: ::off_t,
+     pub st_blocks: ::blkcnt_t,
+     pub st_blksize: ::blksize_t,
+     pub st_flags: ::fflags_t,
+-    pub st_gen: u64,
+-    pub st_spare: [u64; 10],
++    pub st_gen: u32,
++    pub st_lspare: i32,
++    pub st_birthtime: ::time_t,
++    pub st_birthtime_nsec: ::c_long,
++    __unused: [u8; 8],
+ }
+ 
+ impl ::Copy for ::stat {}
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
+index 68a8364194607..e416ebf745841 100644
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
+@@ -479,10 +479,11 @@ extern "C" {
+ }
+ 
+ cfg_if! {
+-    if #[cfg(any(target_arch = "x86_64",
+-                 target_arch = "aarch64",
+-                 target_arch = "riscv64"))] {
++    if #[cfg(target_pointer_width = "64")] {
+         mod b64;
+         pub use self::b64::*;
++    } else {
++        mod b32;
++        pub use self::b32::*;
+     }
+ }
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
+index 197400ffb4e28..c4431a6458e8f 100644
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
+@@ -218,6 +218,40 @@ s! {
+         /// kthread flag.
+         pub ki_tdflags: ::c_long,
+     }
++
++    pub struct stat {
++        pub st_dev: ::dev_t,
++        pub st_ino: ::ino_t,
++        pub st_nlink: ::nlink_t,
++        pub st_mode: ::mode_t,
++        st_padding0: i16,
++        pub st_uid: ::uid_t,
++        pub st_gid: ::gid_t,
++        st_padding1: i32,
++        pub st_rdev: ::dev_t,
++        #[cfg(target_arch = "x86")]
++        st_atim_ext: i32,
++        pub st_atime: ::time_t,
++        pub st_atime_nsec: ::c_long,
++        #[cfg(target_arch = "x86")]
++        st_mtim_ext: i32,
++        pub st_mtime: ::time_t,
++        pub st_mtime_nsec: ::c_long,
++        #[cfg(target_arch = "x86")]
++        st_ctim_ext: i32,
++        pub st_ctime: ::time_t,
++        pub st_ctime_nsec: ::c_long,
++        #[cfg(target_arch = "x86")]
++        st_btim_ext: i32,
++        pub st_birthtime: ::time_t,
++        pub st_birthtime_nsec: ::c_long,
++        pub st_size: ::off_t,
++        pub st_blocks: ::blkcnt_t,
++        pub st_blksize: ::blksize_t,
++        pub st_flags: ::fflags_t,
++        pub st_gen: u64,
++        pub st_spare: [u64; 10],
++    }
+ }
+ 
+ s_no_extra_traits! {
+@@ -488,15 +522,6 @@ extern "C" {
+     pub fn basename(path: *mut ::c_char) -> *mut ::c_char;
+ }
+ 
+-cfg_if! {
+-    if #[cfg(any(target_arch = "x86_64",
+-                 target_arch = "aarch64",
+-                 target_arch = "riscv64"))] {
+-        mod b64;
+-        pub use self::b64::*;
+-    }
+-}
+-
+ cfg_if! {
+     if #[cfg(target_arch = "x86_64")] {
+         mod x86_64;
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs
+deleted file mode 100644
+index 80c6fa1684530..0000000000000
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd13/b64.rs
++++ /dev/null
+@@ -1,34 +0,0 @@
+-#[repr(C)]
+-#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
+-pub struct stat {
+-    pub st_dev: ::dev_t,
+-    pub st_ino: ::ino_t,
+-    pub st_nlink: ::nlink_t,
+-    pub st_mode: ::mode_t,
+-    st_padding0: i16,
+-    pub st_uid: ::uid_t,
+-    pub st_gid: ::gid_t,
+-    st_padding1: i32,
+-    pub st_rdev: ::dev_t,
+-    pub st_atime: ::time_t,
+-    pub st_atime_nsec: ::c_long,
+-    pub st_mtime: ::time_t,
+-    pub st_mtime_nsec: ::c_long,
+-    pub st_ctime: ::time_t,
+-    pub st_ctime_nsec: ::c_long,
+-    pub st_birthtime: ::time_t,
+-    pub st_birthtime_nsec: ::c_long,
+-    pub st_size: ::off_t,
+-    pub st_blocks: ::blkcnt_t,
+-    pub st_blksize: ::blksize_t,
+-    pub st_flags: ::fflags_t,
+-    pub st_gen: u64,
+-    pub st_spare: [u64; 10],
+-}
+-
+-impl ::Copy for ::stat {}
+-impl ::Clone for ::stat {
+-    fn clone(&self) -> ::stat {
+-        *self
+-    }
+-}
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
+index d3a77d03c48d0..118404e8b089b 100644
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
+@@ -228,6 +228,40 @@ s! {
+         /// kthread flag.
+         pub ki_tdflags: ::c_long,
+     }
++
++    pub struct stat {
++        pub st_dev: ::dev_t,
++        pub st_ino: ::ino_t,
++        pub st_nlink: ::nlink_t,
++        pub st_mode: ::mode_t,
++        st_padding0: i16,
++        pub st_uid: ::uid_t,
++        pub st_gid: ::gid_t,
++        st_padding1: i32,
++        pub st_rdev: ::dev_t,
++        #[cfg(target_arch = "x86")]
++        st_atim_ext: i32,
++        pub st_atime: ::time_t,
++        pub st_atime_nsec: ::c_long,
++        #[cfg(target_arch = "x86")]
++        st_mtim_ext: i32,
++        pub st_mtime: ::time_t,
++        pub st_mtime_nsec: ::c_long,
++        #[cfg(target_arch = "x86")]
++        st_ctim_ext: i32,
++        pub st_ctime: ::time_t,
++        pub st_ctime_nsec: ::c_long,
++        #[cfg(target_arch = "x86")]
++        st_btim_ext: i32,
++        pub st_birthtime: ::time_t,
++        pub st_birthtime_nsec: ::c_long,
++        pub st_size: ::off_t,
++        pub st_blocks: ::blkcnt_t,
++        pub st_blksize: ::blksize_t,
++        pub st_flags: ::fflags_t,
++        pub st_gen: u64,
++        pub st_spare: [u64; 10],
++    }
+ }
+ 
+ s_no_extra_traits! {
+@@ -529,15 +563,6 @@ extern "C" {
+     pub fn kvm_kerndisp(kd: *mut ::kvm_t) -> ::kssize_t;
+ }
+ 
+-cfg_if! {
+-    if #[cfg(any(target_arch = "x86_64",
+-                 target_arch = "aarch64",
+-                 target_arch = "riscv64"))] {
+-        mod b64;
+-        pub use self::b64::*;
+-    }
+-}
+-
+ cfg_if! {
+     if #[cfg(target_arch = "x86_64")] {
+         mod x86_64;
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs
+deleted file mode 100644
+index 80c6fa1684530..0000000000000
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd14/b64.rs
++++ /dev/null
+@@ -1,34 +0,0 @@
+-#[repr(C)]
+-#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
+-pub struct stat {
+-    pub st_dev: ::dev_t,
+-    pub st_ino: ::ino_t,
+-    pub st_nlink: ::nlink_t,
+-    pub st_mode: ::mode_t,
+-    st_padding0: i16,
+-    pub st_uid: ::uid_t,
+-    pub st_gid: ::gid_t,
+-    st_padding1: i32,
+-    pub st_rdev: ::dev_t,
+-    pub st_atime: ::time_t,
+-    pub st_atime_nsec: ::c_long,
+-    pub st_mtime: ::time_t,
+-    pub st_mtime_nsec: ::c_long,
+-    pub st_ctime: ::time_t,
+-    pub st_ctime_nsec: ::c_long,
+-    pub st_birthtime: ::time_t,
+-    pub st_birthtime_nsec: ::c_long,
+-    pub st_size: ::off_t,
+-    pub st_blocks: ::blkcnt_t,
+-    pub st_blksize: ::blksize_t,
+-    pub st_flags: ::fflags_t,
+-    pub st_gen: u64,
+-    pub st_spare: [u64; 10],
+-}
+-
+-impl ::Copy for ::stat {}
+-impl ::Clone for ::stat {
+-    fn clone(&self) -> ::stat {
+-        *self
+-    }
+-}
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
+index 9d65317d29cb4..e624dd7201b0a 100644
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs
+@@ -228,6 +228,40 @@ s! {
+         /// kthread flag.
+         pub ki_tdflags: ::c_long,
+     }
++
++    pub struct stat {
++        pub st_dev: ::dev_t,
++        pub st_ino: ::ino_t,
++        pub st_nlink: ::nlink_t,
++        pub st_mode: ::mode_t,
++        st_padding0: i16,
++        pub st_uid: ::uid_t,
++        pub st_gid: ::gid_t,
++        st_padding1: i32,
++        pub st_rdev: ::dev_t,
++        #[cfg(target_arch = "x86")]
++        st_atim_ext: i32,
++        pub st_atime: ::time_t,
++        pub st_atime_nsec: ::c_long,
++        #[cfg(target_arch = "x86")]
++        st_mtim_ext: i32,
++        pub st_mtime: ::time_t,
++        pub st_mtime_nsec: ::c_long,
++        #[cfg(target_arch = "x86")]
++        st_ctim_ext: i32,
++        pub st_ctime: ::time_t,
++        pub st_ctime_nsec: ::c_long,
++        #[cfg(target_arch = "x86")]
++        st_btim_ext: i32,
++        pub st_birthtime: ::time_t,
++        pub st_birthtime_nsec: ::c_long,
++        pub st_size: ::off_t,
++        pub st_blocks: ::blkcnt_t,
++        pub st_blksize: ::blksize_t,
++        pub st_flags: ::fflags_t,
++        pub st_gen: u64,
++        pub st_spare: [u64; 10],
++    }
+ }
+ 
+ s_no_extra_traits! {
+@@ -529,15 +563,6 @@ extern "C" {
+     pub fn kvm_kerndisp(kd: *mut ::kvm_t) -> ::kssize_t;
+ }
+ 
+-cfg_if! {
+-    if #[cfg(any(target_arch = "x86_64",
+-                 target_arch = "aarch64",
+-                 target_arch = "riscv64"))] {
+-        mod b64;
+-        pub use self::b64::*;
+-    }
+-}
+-
+ cfg_if! {
+     if #[cfg(target_arch = "x86_64")] {
+         mod x86_64;
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs
+deleted file mode 100644
+index 80c6fa1684530..0000000000000
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd15/b64.rs
++++ /dev/null
+@@ -1,34 +0,0 @@
+-#[repr(C)]
+-#[cfg_attr(feature = "extra_traits", derive(Debug, Eq, Hash, PartialEq))]
+-pub struct stat {
+-    pub st_dev: ::dev_t,
+-    pub st_ino: ::ino_t,
+-    pub st_nlink: ::nlink_t,
+-    pub st_mode: ::mode_t,
+-    st_padding0: i16,
+-    pub st_uid: ::uid_t,
+-    pub st_gid: ::gid_t,
+-    st_padding1: i32,
+-    pub st_rdev: ::dev_t,
+-    pub st_atime: ::time_t,
+-    pub st_atime_nsec: ::c_long,
+-    pub st_mtime: ::time_t,
+-    pub st_mtime_nsec: ::c_long,
+-    pub st_ctime: ::time_t,
+-    pub st_ctime_nsec: ::c_long,
+-    pub st_birthtime: ::time_t,
+-    pub st_birthtime_nsec: ::c_long,
+-    pub st_size: ::off_t,
+-    pub st_blocks: ::blkcnt_t,
+-    pub st_blksize: ::blksize_t,
+-    pub st_flags: ::fflags_t,
+-    pub st_gen: u64,
+-    pub st_spare: [u64; 10],
+-}
+-
+-impl ::Copy for ::stat {}
+-impl ::Clone for ::stat {
+-    fn clone(&self) -> ::stat {
+-        *self
+-    }
+-}
+diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs
+index f76208400f324..a299af7d5d53e 100644
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs
+@@ -228,6 +228,40 @@ s! {
+         /// kthread flag.
+         pub ki_tdflags: ::c_long,
+     }
++
++    pub struct stat {
++        pub st_dev: ::dev_t,
++        pub st_ino: ::ino_t,
++        pub st_nlink: ::nlink_t,
++        pub st_mode: ::mode_t,
++        st_padding0: i16,
++        pub st_uid: ::uid_t,
++        pub st_gid: ::gid_t,
++        st_padding1: i32,
++        pub st_rdev: ::dev_t,
++        #[cfg(target_arch = "x86")]
++        st_atim_ext: i32,
++        pub st_atime: ::time_t,
++        pub st_atime_nsec: ::c_long,
++        #[cfg(target_arch = "x86")]
++        st_mtim_ext: i32,
++        pub st_mtime: ::time_t,
++        pub st_mtime_nsec: ::c_long,
++        #[cfg(target_arch = "x86")]
++        st_ctim_ext: i32,
++        pub st_ctime: ::time_t,
++        pub st_ctime_nsec: ::c_long,
++        #[cfg(target_arch = "x86")]
++        st_btim_ext: i32,
++        pub st_birthtime: ::time_t,
++        pub st_birthtime_nsec: ::c_long,
++        pub st_size: ::off_t,
++        pub st_blocks: ::blkcnt_t,
++        pub st_blksize: ::blksize_t,
++        pub st_flags: ::fflags_t,
++        pub st_gen: u64,
++        pub st_spare: [u64; 10],
++    }
+ }
+ 
+ s_no_extra_traits! {
+@@ -529,15 +563,6 @@ extern "C" {
+     pub fn kvm_kerndisp(kd: *mut ::kvm_t) -> ::kssize_t;
+ }
+ 
+-cfg_if! {
+-    if #[cfg(any(target_arch = "x86_64",
+-                 target_arch = "aarch64",
+-                 target_arch = "riscv64"))] {
+-        mod b64;
+-        pub use self::b64::*;
+-    }
+-}
+-
+ cfg_if! {
+     if #[cfg(target_arch = "x86_64")] {
+         mod x86_64;
+diff --git a/src/unix/bsd/freebsdlike/freebsd/x86.rs b/src/unix/bsd/freebsdlike/freebsd/x86.rs
+index c3c576ed66681..31a660e7d0a22 100644
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/x86.rs
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/x86.rs
+@@ -42,31 +42,6 @@ s_no_extra_traits! {
+ }
+ 
+ s! {
+-    pub struct stat {
+-        pub st_dev: ::dev_t,
+-        pub st_ino: ::ino_t,
+-        pub st_mode: ::mode_t,
+-        pub st_nlink: ::nlink_t,
+-        pub st_uid: ::uid_t,
+-        pub st_gid: ::gid_t,
+-        pub st_rdev: ::dev_t,
+-        pub st_atime: ::time_t,
+-        pub st_atime_nsec: ::c_long,
+-        pub st_mtime: ::time_t,
+-        pub st_mtime_nsec: ::c_long,
+-        pub st_ctime: ::time_t,
+-        pub st_ctime_nsec: ::c_long,
+-        pub st_size: ::off_t,
+-        pub st_blocks: ::blkcnt_t,
+-        pub st_blksize: ::blksize_t,
+-        pub st_flags: ::fflags_t,
+-        pub st_gen: u32,
+-        pub st_lspare: i32,
+-        pub st_birthtime: ::time_t,
+-        pub st_birthtime_nsec: ::c_long,
+-        __unused: [u8; 8],
+-    }
+-
+     pub struct ucontext_t {
+         pub uc_sigmask: ::sigset_t,
+         pub uc_mcontext: ::mcontext_t,
+
+
+From f381e010b2439579c9f548ef86fb06409c2c55d2 Mon Sep 17 00:00:00 2001
+From: Alan Somers <asomers@gmail.com>
+Date: Mon, 23 Sep 2024 16:03:48 -0600
+Subject: [PATCH] fixup: fix build on powerpc, powerpc64, and arm
+
+---
+ src/unix/bsd/freebsdlike/freebsd/arm.rs       | 30 -------------------
+ src/unix/bsd/freebsdlike/freebsd/powerpc.rs   | 26 ----------------
+ src/unix/bsd/freebsdlike/freebsd/powerpc64.rs | 26 ----------------
+ 3 files changed, 82 deletions(-)
+
+diff --git a/src/unix/bsd/freebsdlike/freebsd/arm.rs b/src/unix/bsd/freebsdlike/freebsd/arm.rs
+index 300b3dd45ca9d..8ff500c65981c 100644
+--- vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/arm.rs
++++ vendor/libc-0.2.155/src/unix/bsd/freebsdlike/freebsd/arm.rs
+@@ -6,36 +6,6 @@ pub type time_t = i64;
+ pub type suseconds_t = i32;
+ pub type register_t = i32;
+ 
+-s! {
+-    pub struct stat {
+-        pub st_dev: ::dev_t,
+-        pub st_ino: ::ino_t,
+-        pub st_mode: ::mode_t,
+-        pub st_nlink: ::nlink_t,
+-        pub st_uid: ::uid_t,
+-        pub st_gid: ::gid_t,
+-        pub st_rdev: ::dev_t,
*** 1600 LINES SKIPPED ***