git: 7e86fe10e4c7 - main - lang/rust: Update to 1.78.0

From: Mikael Urankar <mikael_at_FreeBSD.org>
Date: Mon, 13 May 2024 11:03:52 UTC
The branch main has been updated by mikael:

URL: https://cgit.FreeBSD.org/ports/commit/?id=7e86fe10e4c7066dedd15d5268e0a469a553b260

commit 7e86fe10e4c7066dedd15d5268e0a469a553b260
Author:     Mikael Urankar <mikael@FreeBSD.org>
AuthorDate: 2024-05-06 07:03:47 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2024-05-13 11:03:21 +0000

    lang/rust: Update to 1.78.0
    
    While here, disable RUST_BACKTRACE on ppc64le only
    
    Announce:       https://blog.rust-lang.org/2024/05/02/Rust-1.78.0.html
    ChangeLog:      https://github.com/rust-lang/rust/releases/tag/1.78.0
    
    PR:             278834
    Tested by:      pkubaj,mikael
---
 Mk/Uses/cargo.mk                                   |   4 +-
 Mk/bsd.gecko.mk                                    |   2 +-
 lang/rust-bootstrap/Makefile                       |   2 +-
 lang/rust-bootstrap/distinfo                       |   6 +-
 lang/rust/Makefile                                 |  13 ++-
 lang/rust/distinfo                                 | 102 ++++++++++-----------
 ...iler_rustc__driver__impl_src_signal__handler.rs |  28 ++++++
 ...h-vendor_rustix_src_backend_libc_fs_syscalls.rs |  24 +++++
 ...r_cc_src_lib.rs => patch-vendor_cc_src_tool.rs} |  20 ++--
 9 files changed, 127 insertions(+), 74 deletions(-)

diff --git a/Mk/Uses/cargo.mk b/Mk/Uses/cargo.mk
index 8710374e3584..b6f9af00f11b 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.77.0:lang/${RUST_DEFAULT}
+BUILD_DEPENDS+=	${RUST_DEFAULT}>=1.78.0:lang/${RUST_DEFAULT}
 .  elif ${CARGO_BUILDDEP:tl} == "any-version"
 BUILD_DEPENDS+=	${RUST_DEFAULT}>=0:lang/${RUST_DEFAULT}
 .  endif
@@ -135,7 +135,7 @@ CARGO_ENV+= \
 	RUSTDOC=${RUSTDOC} \
 	RUSTFLAGS="${RUSTFLAGS} ${LDFLAGS:C/.+/-C link-arg=&/}"
 
-.  if ${ARCH} != powerpc
+.  if ${ARCH} != powerpc64le
 CARGO_ENV+=	RUST_BACKTRACE=1
 .  endif
 
diff --git a/Mk/bsd.gecko.mk b/Mk/bsd.gecko.mk
index 9e83aab4aec0..2b19f0f3c248 100644
--- a/Mk/bsd.gecko.mk
+++ b/Mk/bsd.gecko.mk
@@ -74,7 +74,7 @@ BINARY_ALIAS+=	python3=${PYTHON_CMD}
 BUNDLE_LIBS=	yes
 
 BUILD_DEPENDS+=	rust-cbindgen>=0.26.0:devel/rust-cbindgen \
-				${RUST_DEFAULT}>=1.77.0:lang/${RUST_DEFAULT} \
+				${RUST_DEFAULT}>=1.78.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 17f7d487c6f1..62b434cd2a06 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.77.0
+PORTVERSION=	1.78.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 0626df1d180d..ff788c17a5e5 100644
--- a/lang/rust-bootstrap/distinfo
+++ b/lang/rust-bootstrap/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1710748679
-SHA256 (rust/rustc-1.77.0-src.tar.xz) = 66126989782cbf77fa3aff121bbb108429f2d46fe19328c3de231553de711b90
-SIZE (rust/rustc-1.77.0-src.tar.xz) = 162805036
+TIMESTAMP = 1714719126
+SHA256 (rust/rustc-1.78.0-src.tar.xz) = 8065824f0255faa3901db8206e6f9423f6f8c07cec28bc6f2797c6c948310ece
+SIZE (rust/rustc-1.78.0-src.tar.xz) = 159181212
diff --git a/lang/rust/Makefile b/lang/rust/Makefile
index f5e569551593..860c8ad75ce9 100644
--- a/lang/rust/Makefile
+++ b/lang/rust/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	rust
-PORTVERSION?=	1.77.0
-PORTREVISION?=	1
+PORTVERSION?=	1.78.0
+PORTREVISION?=	0
 CATEGORIES=	lang
 MASTER_SITES=	https://static.rust-lang.org/dist/:src \
 		https://dev-static.rust-lang.org/dist/:src \
@@ -34,7 +34,6 @@ CPE_VENDOR=	rust-lang
 
 MAKE_ENV=	DESTDIR=${STAGEDIR} \
 		LIBGIT2_NO_PKG_CONFIG=1 \
-		RUST_BACKTRACE=1 \
 		OPENSSL_DIR="${OPENSSLBASE}"
 TEST_ENV=	${MAKE_ENV} \
 		ALLOW_NONZERO_RLIMIT_CORE=1
@@ -68,8 +67,8 @@ WASM_VARS=		_COMPONENTS+="rust-analysis-${_PACKAGE_VERS}-wasm32-unknown-unknown
 			_RUST_TARGETS+=wasm32-unknown-unknown
 
 # See WRKSRC/src/stage0.json for the date and version values
-BOOTSTRAPS_DATE?=		2024-02-08
-RUST_BOOTSTRAP_VERSION?=	1.76.0
+BOOTSTRAPS_DATE?=		2024-03-21
+RUST_BOOTSTRAP_VERSION?=	1.77.0
 
 CARGO_VENDOR_DIR?=		${WRKSRC}/vendor
 
@@ -109,6 +108,10 @@ _RUST_TOOLS+=	rls
 _COMPONENTS+=	rls-${_PACKAGE_VERS}-${_RUST_TARGET}
 .endif
 
+.if ${ARCH} != powerpc64le
+MAKE_ENV+=	RUST_BACKTRACE=1
+.endif
+
 # per https://rust-lang.github.io/rustup/concepts/components.html
 # rustc-dev is only usefull on nightly
 .if defined(NIGHTLY_DATE)
diff --git a/lang/rust/distinfo b/lang/rust/distinfo
index ba5c7a1737dc..34146c2d3e79 100644
--- a/lang/rust/distinfo
+++ b/lang/rust/distinfo
@@ -1,51 +1,51 @@
-TIMESTAMP = 1711456563
-SHA256 (rust/rustc-1.77.0-src.tar.xz) = 66126989782cbf77fa3aff121bbb108429f2d46fe19328c3de231553de711b90
-SIZE (rust/rustc-1.77.0-src.tar.xz) = 162805036
-SHA256 (rust/2024-02-08/rustc-1.76.0-aarch64-unknown-freebsd.tar.xz) = f0b25d271209ddc1e4def1f1d56e9e8ae4f7a82568f5642f41fbda8609917535
-SIZE (rust/2024-02-08/rustc-1.76.0-aarch64-unknown-freebsd.tar.xz) = 57385336
-SHA256 (rust/2024-02-08/rust-std-1.76.0-aarch64-unknown-freebsd.tar.xz) = 7ff348be5bc862ccc56f8a9618bffa82996a7e10627dd3a40beb08c86301e2c6
-SIZE (rust/2024-02-08/rust-std-1.76.0-aarch64-unknown-freebsd.tar.xz) = 25689920
-SHA256 (rust/2024-02-08/cargo-1.76.0-aarch64-unknown-freebsd.tar.xz) = dd57f627601fa0e9c2b4137ac837f9d70756e9996127c63ac55be9029adac431
-SIZE (rust/2024-02-08/cargo-1.76.0-aarch64-unknown-freebsd.tar.xz) = 9265312
-SHA256 (rust/2024-02-08/rustc-1.76.0-x86_64-unknown-freebsd.tar.xz) = d6b41c957c1f5316719f067d8c6de79dacab0d2bd58da44d3645097b74bce91d
-SIZE (rust/2024-02-08/rustc-1.76.0-x86_64-unknown-freebsd.tar.xz) = 46043156
-SHA256 (rust/2024-02-08/rust-std-1.76.0-x86_64-unknown-freebsd.tar.xz) = 3566fb8773dc5d65996a6137c327a2c43856f4b1807a28a7a6ccfd5e661b51a5
-SIZE (rust/2024-02-08/rust-std-1.76.0-x86_64-unknown-freebsd.tar.xz) = 26331780
-SHA256 (rust/2024-02-08/cargo-1.76.0-x86_64-unknown-freebsd.tar.xz) = 9e5dd4b595be7c842577a8adf6cb8a25021276493faae484ba7c3266274929e5
-SIZE (rust/2024-02-08/cargo-1.76.0-x86_64-unknown-freebsd.tar.xz) = 10293320
-SHA256 (rust/2024-02-08/rustc-1.76.0-armv7-unknown-freebsd.tar.xz) = 23ea462bfb356e87ecc2b6fddb50c3e8dc3e9ec871b36c71e0726b91d2f75d4a
-SIZE (rust/2024-02-08/rustc-1.76.0-armv7-unknown-freebsd.tar.xz) = 57559240
-SHA256 (rust/2024-02-08/rust-std-1.76.0-armv7-unknown-freebsd.tar.xz) = 9455ab2df3e1998c759969866fa3faca7f595de7cc10e76eaf5c869b24993d24
-SIZE (rust/2024-02-08/rust-std-1.76.0-armv7-unknown-freebsd.tar.xz) = 25064708
-SHA256 (rust/2024-02-08/cargo-1.76.0-armv7-unknown-freebsd.tar.xz) = 5ce24b5596addf05154fe2ab42b95be9ce89595c0d52945297f952af5dbecc06
-SIZE (rust/2024-02-08/cargo-1.76.0-armv7-unknown-freebsd.tar.xz) = 9322500
-SHA256 (rust/2024-02-08/rustc-1.76.0-i686-unknown-freebsd.tar.xz) = 6a112c3cda138a6cb99195b4289a4397a26b5409379d0bcd18843d976e5b27f4
-SIZE (rust/2024-02-08/rustc-1.76.0-i686-unknown-freebsd.tar.xz) = 64357228
-SHA256 (rust/2024-02-08/rust-std-1.76.0-i686-unknown-freebsd.tar.xz) = c99bbef70d2f9f2e3c716e10e026665c1a48317dae1919de99f667064173f9ce
-SIZE (rust/2024-02-08/rust-std-1.76.0-i686-unknown-freebsd.tar.xz) = 26304688
-SHA256 (rust/2024-02-08/cargo-1.76.0-i686-unknown-freebsd.tar.xz) = 66e00532dd450cbc8613771e2f4285b70ac5cb72c9daecb2751dc206c74689c5
-SIZE (rust/2024-02-08/cargo-1.76.0-i686-unknown-freebsd.tar.xz) = 10623276
-SHA256 (rust/2024-02-08/rustc-1.76.0-powerpc-unknown-freebsd.tar.xz) = c8ad87381bf87c9136841894b3c651c7f93f0fc686bc835f9d70397c877d7c98
-SIZE (rust/2024-02-08/rustc-1.76.0-powerpc-unknown-freebsd.tar.xz) = 61862920
-SHA256 (rust/2024-02-08/rust-std-1.76.0-powerpc-unknown-freebsd.tar.xz) = ee08bd50697cd0f11842248838a324e2b796a483f74cd9f37258fe5d03390f3f
-SIZE (rust/2024-02-08/rust-std-1.76.0-powerpc-unknown-freebsd.tar.xz) = 24225220
-SHA256 (rust/2024-02-08/cargo-1.76.0-powerpc-unknown-freebsd.tar.xz) = 0ee63c0a159250ec13da2a5a6c310d88c4ebfbb0582a8f29ef6660355d94d3eb
-SIZE (rust/2024-02-08/cargo-1.76.0-powerpc-unknown-freebsd.tar.xz) = 10494116
-SHA256 (rust/2024-02-08/rustc-1.76.0-powerpc64-unknown-freebsd.tar.xz) = a16c057e1bb889ef0f8f86498b22f5c865a75d807511f8e6e52c9e5fc25fb0f6
-SIZE (rust/2024-02-08/rustc-1.76.0-powerpc64-unknown-freebsd.tar.xz) = 60767760
-SHA256 (rust/2024-02-08/rust-std-1.76.0-powerpc64-unknown-freebsd.tar.xz) = e8097fe97c77ee71fc8a99eb923c8f080f044577818b7ad8892149b007515e75
-SIZE (rust/2024-02-08/rust-std-1.76.0-powerpc64-unknown-freebsd.tar.xz) = 24245360
-SHA256 (rust/2024-02-08/cargo-1.76.0-powerpc64-unknown-freebsd.tar.xz) = 3e0b07a62d9cf8f9e10e647ee322c7b445e1a85683bae10fcf5fc78751dd0a4f
-SIZE (rust/2024-02-08/cargo-1.76.0-powerpc64-unknown-freebsd.tar.xz) = 10272448
-SHA256 (rust/2024-02-08/rustc-1.76.0-powerpc64le-unknown-freebsd.tar.xz) = 604a89241acaf53b7e8555cdc9f5f8bf13a2f1573af58a3f77c9fb9347cf2848
-SIZE (rust/2024-02-08/rustc-1.76.0-powerpc64le-unknown-freebsd.tar.xz) = 62546460
-SHA256 (rust/2024-02-08/rust-std-1.76.0-powerpc64le-unknown-freebsd.tar.xz) = e8b30cb0bde065b34b41ba279a4c3077c0f2b5391de881b631b4030e7eee26e4
-SIZE (rust/2024-02-08/rust-std-1.76.0-powerpc64le-unknown-freebsd.tar.xz) = 24368908
-SHA256 (rust/2024-02-08/cargo-1.76.0-powerpc64le-unknown-freebsd.tar.xz) = 329535594705efb520d35a749a73ff518ed4bedbfe57491e4b38fa4cd756fa03
-SIZE (rust/2024-02-08/cargo-1.76.0-powerpc64le-unknown-freebsd.tar.xz) = 10596008
-SHA256 (rust/2024-02-08/rustc-1.76.0-riscv64gc-unknown-freebsd.tar.xz) = 0ae66f2d6cdbaf2c626f4af491312fb90ac05d1ccdc5eebcc3942847a98775df
-SIZE (rust/2024-02-08/rustc-1.76.0-riscv64gc-unknown-freebsd.tar.xz) = 72687416
-SHA256 (rust/2024-02-08/rust-std-1.76.0-riscv64gc-unknown-freebsd.tar.xz) = 4d7b6f81f4d9e7a38341d4d0f3612ba28c53a6c9716220eac2a9923ae8718762
-SIZE (rust/2024-02-08/rust-std-1.76.0-riscv64gc-unknown-freebsd.tar.xz) = 24299456
-SHA256 (rust/2024-02-08/cargo-1.76.0-riscv64gc-unknown-freebsd.tar.xz) = 1ad0ffd64284dc7e0903a5087bd14794dc86cdb65ff4323b430771ff029ce954
-SIZE (rust/2024-02-08/cargo-1.76.0-riscv64gc-unknown-freebsd.tar.xz) = 13117416
+TIMESTAMP = 1714719125
+SHA256 (rust/rustc-1.78.0-src.tar.xz) = 8065824f0255faa3901db8206e6f9423f6f8c07cec28bc6f2797c6c948310ece
+SIZE (rust/rustc-1.78.0-src.tar.xz) = 159181212
+SHA256 (rust/2024-03-21/rustc-1.77.0-aarch64-unknown-freebsd.tar.xz) = b8c0c1f4ac561c94023ac3e61bb05cc48868b08b408e4a889209628552cfa696
+SIZE (rust/2024-03-21/rustc-1.77.0-aarch64-unknown-freebsd.tar.xz) = 55677936
+SHA256 (rust/2024-03-21/rust-std-1.77.0-aarch64-unknown-freebsd.tar.xz) = cf609884cf154e8ba9bd3838bf508c100c5420dd9b62dcdc1d2d772637745806
+SIZE (rust/2024-03-21/rust-std-1.77.0-aarch64-unknown-freebsd.tar.xz) = 25613204
+SHA256 (rust/2024-03-21/cargo-1.77.0-aarch64-unknown-freebsd.tar.xz) = bd6d57c016f64facd353c16d4540b894ad46a8153c03292c4dbdd1e71883d296
+SIZE (rust/2024-03-21/cargo-1.77.0-aarch64-unknown-freebsd.tar.xz) = 8789392
+SHA256 (rust/2024-03-21/rustc-1.77.0-x86_64-unknown-freebsd.tar.xz) = c8f690079fa43d18c644b7239d884a4f40319299ed04f274be85e8572398b7a0
+SIZE (rust/2024-03-21/rustc-1.77.0-x86_64-unknown-freebsd.tar.xz) = 45066612
+SHA256 (rust/2024-03-21/rust-std-1.77.0-x86_64-unknown-freebsd.tar.xz) = f4300a839fa6df8a3861b1583d47f17b5efd72a09466a6056ed654e7415936fd
+SIZE (rust/2024-03-21/rust-std-1.77.0-x86_64-unknown-freebsd.tar.xz) = 26400816
+SHA256 (rust/2024-03-21/cargo-1.77.0-x86_64-unknown-freebsd.tar.xz) = 82b166b6d3e0e4f09224bfc75e0d3a9db75228983d20e021adef3922c50c35ce
+SIZE (rust/2024-03-21/cargo-1.77.0-x86_64-unknown-freebsd.tar.xz) = 9765968
+SHA256 (rust/2024-03-21/rustc-1.77.0-armv7-unknown-freebsd.tar.xz) = beb39431f8b0625607b2a276c77001c5e71613005a6b2b72a3bd94878e8d2c5a
+SIZE (rust/2024-03-21/rustc-1.77.0-armv7-unknown-freebsd.tar.xz) = 56049192
+SHA256 (rust/2024-03-21/rust-std-1.77.0-armv7-unknown-freebsd.tar.xz) = fd9ad61cd1bdc3e743b6d86a4f1b635c365750d6ea7de193eba58f608cde9a99
+SIZE (rust/2024-03-21/rust-std-1.77.0-armv7-unknown-freebsd.tar.xz) = 25031820
+SHA256 (rust/2024-03-21/cargo-1.77.0-armv7-unknown-freebsd.tar.xz) = 38192d50b9358b60dffb93a70986a05271f410ba75f7d2a66671281a7d53ea58
+SIZE (rust/2024-03-21/cargo-1.77.0-armv7-unknown-freebsd.tar.xz) = 8806328
+SHA256 (rust/2024-03-21/rustc-1.77.0-i686-unknown-freebsd.tar.xz) = f673b37ca9d259ac619987ff0559c922f6284eaa6c77e6dcf04f665cba46ecc7
+SIZE (rust/2024-03-21/rustc-1.77.0-i686-unknown-freebsd.tar.xz) = 62316264
+SHA256 (rust/2024-03-21/rust-std-1.77.0-i686-unknown-freebsd.tar.xz) = 2268a4bbdf103e66d58229aa522948af25d91507a982d883c9835a8fc4ea869c
+SIZE (rust/2024-03-21/rust-std-1.77.0-i686-unknown-freebsd.tar.xz) = 26171668
+SHA256 (rust/2024-03-21/cargo-1.77.0-i686-unknown-freebsd.tar.xz) = 81433410da18557780134ff00dcbf9d1945b8f54cd7051273246cc047761e9a3
+SIZE (rust/2024-03-21/cargo-1.77.0-i686-unknown-freebsd.tar.xz) = 10015380
+SHA256 (rust/2024-03-21/rustc-1.77.0-powerpc-unknown-freebsd.tar.xz) = 9a45efe873a3862909e5e1252e481b6aef72216b22ad1c317eeaaafa9fdfaf90
+SIZE (rust/2024-03-21/rustc-1.77.0-powerpc-unknown-freebsd.tar.xz) = 59996448
+SHA256 (rust/2024-03-21/rust-std-1.77.0-powerpc-unknown-freebsd.tar.xz) = 2e0ab25bfeb0efc5c5aafb753b34b65692c4e87d2083c865f726db5eff9fdf24
+SIZE (rust/2024-03-21/rust-std-1.77.0-powerpc-unknown-freebsd.tar.xz) = 24278008
+SHA256 (rust/2024-03-21/cargo-1.77.0-powerpc-unknown-freebsd.tar.xz) = 22fdac0eadc5202c7fb0a1268748b793e95897fd5c95545d13e5140df7eda97b
+SIZE (rust/2024-03-21/cargo-1.77.0-powerpc-unknown-freebsd.tar.xz) = 9944700
+SHA256 (rust/2024-03-21/rustc-1.77.0-powerpc64-unknown-freebsd.tar.xz) = 53d7655656c53d065a108bf57bfbf7be1f7e14f8e1a00be06d2815d35a1375ce
+SIZE (rust/2024-03-21/rustc-1.77.0-powerpc64-unknown-freebsd.tar.xz) = 58964296
+SHA256 (rust/2024-03-21/rust-std-1.77.0-powerpc64-unknown-freebsd.tar.xz) = 905ddb832b0e005248c044f603afada55674fe3bceca96ca3212eec2130d9746
+SIZE (rust/2024-03-21/rust-std-1.77.0-powerpc64-unknown-freebsd.tar.xz) = 24292400
+SHA256 (rust/2024-03-21/cargo-1.77.0-powerpc64-unknown-freebsd.tar.xz) = d12e818d9221f1fe9590b0153e018937ba2c90aba081578dc87792605467c839
+SIZE (rust/2024-03-21/cargo-1.77.0-powerpc64-unknown-freebsd.tar.xz) = 9617420
+SHA256 (rust/2024-03-21/rustc-1.77.0-powerpc64le-unknown-freebsd.tar.xz) = e46369a0bbac72a8a931aed5efb71d47c41c135415380fcf06daf9c77dfc7609
+SIZE (rust/2024-03-21/rustc-1.77.0-powerpc64le-unknown-freebsd.tar.xz) = 60839172
+SHA256 (rust/2024-03-21/rust-std-1.77.0-powerpc64le-unknown-freebsd.tar.xz) = dda78aad0a5b500321b1067afb6f2f423c2a1811c75d8c7a2c54a7498f0d9975
+SIZE (rust/2024-03-21/rust-std-1.77.0-powerpc64le-unknown-freebsd.tar.xz) = 24364400
+SHA256 (rust/2024-03-21/cargo-1.77.0-powerpc64le-unknown-freebsd.tar.xz) = cf454e20b7d7356f9a08c368d5d00fefc5b4d591e263a57df15d8c5d24d792f8
+SIZE (rust/2024-03-21/cargo-1.77.0-powerpc64le-unknown-freebsd.tar.xz) = 9978364
+SHA256 (rust/2024-03-21/rustc-1.77.0-riscv64gc-unknown-freebsd.tar.xz) = ca3ab27fd22c1919e9b1c6b0be3db9dfc4571a867db83007f68356ebedc3c08f
+SIZE (rust/2024-03-21/rustc-1.77.0-riscv64gc-unknown-freebsd.tar.xz) = 70096420
+SHA256 (rust/2024-03-21/rust-std-1.77.0-riscv64gc-unknown-freebsd.tar.xz) = 2e3a76771d1281606793f7724521ca7e7019d1a00f1cef3da6bf961348228d27
+SIZE (rust/2024-03-21/rust-std-1.77.0-riscv64gc-unknown-freebsd.tar.xz) = 24331376
+SHA256 (rust/2024-03-21/cargo-1.77.0-riscv64gc-unknown-freebsd.tar.xz) = a728e4333c602d4bc330964df090f6bd0e3228744f55640595957f9862ba735c
+SIZE (rust/2024-03-21/cargo-1.77.0-riscv64gc-unknown-freebsd.tar.xz) = 12483200
diff --git a/lang/rust/files/armv7/patch-compiler_rustc__driver__impl_src_signal__handler.rs b/lang/rust/files/armv7/patch-compiler_rustc__driver__impl_src_signal__handler.rs
new file mode 100644
index 000000000000..17585c99ce3d
--- /dev/null
+++ b/lang/rust/files/armv7/patch-compiler_rustc__driver__impl_src_signal__handler.rs
@@ -0,0 +1,28 @@
+error[E0308]: mismatched types
+    --> compiler/rustc_driver_impl/src/signal_handler.rs:43:63
+     |
+43   |        let depth = libc::backtrace(STACK_TRACE.as_mut_ptr(), MAX_FRAMES as i32);
+     |                    ---------------                           ^^^^^^^^^^^^^^^^^ expected `usize`, found `i32`
+     |                    |
+     |                    arguments to this function are incorrect
+     |
+note: function defined here
+    --> /wrkdirs/usr/ports/lang/rust-bootstrap/work-armv7/rustc-1.78.0-src/vendor/libc/src/unix/bsd/freebsdlike/mod.rs:1861:12
+     |
+1861 |     pub fn backtrace(addrlist: *mut *mut ::c_void, len: ::size_t) -> ::size_t;
+     |            ^^^^^^^^^
+help: you can convert an `i32` to a `usize` and panic if the converted value doesn't fit
+     |
+43   |         let depth = libc::backtrace(STACK_TRACE.as_mut_ptr(), (MAX_FRAMES as i32).try_into().unwrap());
+
+--- compiler/rustc_driver_impl/src/signal_handler.rs.orig	2024-05-06 16:00:17 UTC
++++ compiler/rustc_driver_impl/src/signal_handler.rs
+@@ -40,7 +40,7 @@ extern "C" fn print_stack_trace(_: libc::c_int) {
+     static mut STACK_TRACE: [*mut libc::c_void; MAX_FRAMES] = [ptr::null_mut(); MAX_FRAMES];
+     let stack = unsafe {
+         // Collect return addresses
+-        let depth = libc::backtrace(STACK_TRACE.as_mut_ptr(), MAX_FRAMES as i32);
++        let depth = libc::backtrace(STACK_TRACE.as_mut_ptr(), (MAX_FRAMES as i32).try_into().unwrap());
+         if depth == 0 {
+             return;
+         }
diff --git a/lang/rust/files/armv7/patch-vendor_rustix_src_backend_libc_fs_syscalls.rs b/lang/rust/files/armv7/patch-vendor_rustix_src_backend_libc_fs_syscalls.rs
new file mode 100644
index 000000000000..423655a62676
--- /dev/null
+++ b/lang/rust/files/armv7/patch-vendor_rustix_src_backend_libc_fs_syscalls.rs
@@ -0,0 +1,24 @@
+gnueabihf was changed to gnu in this commit and it breaks rustix
+https://github.com/rust-lang/rust/commit/93ec0e6299e31e6857e8ad741750034f35762b11
+
+
+--- vendor/rustix/src/backend/libc/fs/syscalls.rs.orig	2024-05-06 16:29:17.182875000 +0200
++++ vendor/rustix/src/backend/libc/fs/syscalls.rs	2024-05-06 16:29:48.897744000 +0200
+@@ -140,7 +140,7 @@ pub(crate) fn open(path: &CStr, oflags: OFlags, mode: 
+ pub(crate) fn open(path: &CStr, oflags: OFlags, mode: Mode) -> io::Result<OwnedFd> {
+     // Work around <https://sourceware.org/bugzilla/show_bug.cgi?id=17523>.
+     // glibc versions before 2.25 don't handle `O_TMPFILE` correctly.
+-    #[cfg(all(unix, target_env = "gnu", not(target_os = "hurd")))]
++    #[cfg(all(unix, target_env = "gnu", not(any(target_os = "freebsd", target_os = "hurd"))))]
+     if oflags.contains(OFlags::TMPFILE) && crate::backend::if_glibc_is_less_than_2_25() {
+         return open_via_syscall(path, oflags, mode);
+     }
+@@ -203,7 +203,7 @@ pub(crate) fn openat(
+ ) -> io::Result<OwnedFd> {
+     // Work around <https://sourceware.org/bugzilla/show_bug.cgi?id=17523>.
+     // glibc versions before 2.25 don't handle `O_TMPFILE` correctly.
+-    #[cfg(all(unix, target_env = "gnu", not(target_os = "hurd")))]
++    #[cfg(all(unix, target_env = "gnu", not(any(target_os = "freebsd", target_os = "hurd"))))]
+     if oflags.contains(OFlags::TMPFILE) && crate::backend::if_glibc_is_less_than_2_25() {
+         return openat_via_syscall(dirfd, path, oflags, mode);
+     }
diff --git a/lang/rust/files/patch-vendor_cc_src_lib.rs b/lang/rust/files/patch-vendor_cc_src_tool.rs
similarity index 73%
rename from lang/rust/files/patch-vendor_cc_src_lib.rs
rename to lang/rust/files/patch-vendor_cc_src_tool.rs
index 16cb75a1f677..42c63f436594 100644
--- a/lang/rust/files/patch-vendor_cc_src_lib.rs
+++ b/lang/rust/files/patch-vendor_cc_src_tool.rs
@@ -8,13 +8,12 @@ until LLVM can be updated to use libc++ by default.
 
 https://reviews.llvm.org/D77776
 
---- vendor/cc/src/lib.rs.orig	2021-03-04 20:58:54 UTC
-+++ vendor/cc/src/lib.rs
-@@ -2659,24 +2659,7 @@ impl Tool {
-     }
+--- vendor/cc/src/tool.rs.orig	2024-03-18 11:23:17 UTC
++++ vendor/cc/src/tool.rs
+@@ -122,22 +122,7 @@ impl Tool {
+         };
  
-     fn with_features(path: PathBuf, clang_driver: Option<&str>, cuda: bool) -> Self {
--        // Try to detect family of the tool from its name, falling back to Gnu.
+         // 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 }
@@ -26,13 +25,12 @@ https://reviews.llvm.org/D77776
 -                    _ => ToolFamily::Clang,
 -                }
 -            } else {
--                ToolFamily::Gnu
+-                detect_family(&path)
 -            }
 -        } else {
--            ToolFamily::Gnu
+-            detect_family(&path)
 -        };
--
 +        let family = ToolFamily::Gnu;
+ 
          Tool {
-             path: path,
-             cc_wrapper_path: None,
+             path,