git: aa578f2b8966 - main - lang/rust: Update to 1.61.0

From: Mikael Urankar <mikael_at_FreeBSD.org>
Date: Tue, 31 May 2022 13:06:25 UTC
The branch main has been updated by mikael:

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

commit aa578f2b89663f8ceebf372218cdd744dda11609
Author:     Mikael Urankar <mikael@FreeBSD.org>
AuthorDate: 2022-05-31 12:22:27 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2022-05-31 13:06:17 +0000

    lang/rust: Update to 1.61.0
    
    Announce:               https://blog.rust-lang.org/2022/05/19/Rust-1.61.0.html
    ChangeLog:              https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1610-2022-05-19
    Reviewed by:            pkubaj
    Differential Revision:  https://reviews.freebsd.org/D35335
---
 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                                 | 126 ++++++++++-----------
 .../no-hardlinks/patch-src_bootstrap_native.rs     |  11 +-
 ...ustc__target_src_spec_i686__unknown__freebsd.rs |  12 +-
 ...llvm_lib_Transforms_Vectorize_LoopVectorize.cpp |  62 ++++++++++
 ...llvm_lib_Transforms_Vectorize_VectorCombine.cpp |  49 ++++++++
 ...src_tools_cargo_src_cargo_sources_git_source.rs |  45 ++++----
 ..._target_src_spec_powerpc64__unknown__freebsd.rs |  12 +-
 12 files changed, 226 insertions(+), 109 deletions(-)

diff --git a/Mk/Uses/cargo.mk b/Mk/Uses/cargo.mk
index 39a36af7af9b..f9a46043d64a 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.60.0:lang/${RUST_DEFAULT}
+BUILD_DEPENDS+=	${RUST_DEFAULT}>=1.61.0:lang/${RUST_DEFAULT}
 .  endif
 
 # Location of toolchain (default to lang/rust's toolchain)
diff --git a/Mk/bsd.gecko.mk b/Mk/bsd.gecko.mk
index a5d0b31b562a..146779a26df9 100644
--- a/Mk/bsd.gecko.mk
+++ b/Mk/bsd.gecko.mk
@@ -79,7 +79,7 @@ BUNDLE_LIBS=	yes
 
 BUILD_DEPENDS+=	llvm${LLVM_DEFAULT}>0:devel/llvm${LLVM_DEFAULT} \
 				rust-cbindgen>=0.23.0:devel/rust-cbindgen \
-				${RUST_DEFAULT}>=1.60.0:lang/${RUST_DEFAULT} \
+				${RUST_DEFAULT}>=1.61.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 d12f6315322b..2517ef68f09a 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.60.0
+PORTVERSION=	1.61.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 bc0fd399a54a..8bd244c4fb53 100644
--- a/lang/rust-bootstrap/distinfo
+++ b/lang/rust-bootstrap/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1649150849
-SHA256 (rust/rustc-1.60.0-src.tar.xz) = a025876deccbcb3f288d8e02623ea321f94623f31305d3c5c6f17855bb9685db
-SIZE (rust/rustc-1.60.0-src.tar.xz) = 136183048
+TIMESTAMP = 1653574502
+SHA256 (rust/rustc-1.61.0-src.tar.xz) = a63305a3ad734f170746b337a5e3d07ccaa7aa8f253dc52336b44c0a3b549d7b
+SIZE (rust/rustc-1.61.0-src.tar.xz) = 136696780
diff --git a/lang/rust/Makefile b/lang/rust/Makefile
index f3fad6b4c84e..83a6ab41c6c8 100644
--- a/lang/rust/Makefile
+++ b/lang/rust/Makefile
@@ -1,7 +1,7 @@
 # Created by: Jyun-Yan You <jyyou@cs.nctu.edu.tw>
 
 PORTNAME=	rust
-PORTVERSION?=	1.60.0
+PORTVERSION?=	1.61.0
 PORTREVISION?=	0
 CATEGORIES=	lang
 MASTER_SITES=	https://static.rust-lang.org/dist/:src \
@@ -70,8 +70,8 @@ WASM_VARS=		_COMPONENTS+="rust-analysis-${_PACKAGE_VERS}-wasm32-unknown-unknown
 WASM_VARS_OFF=		_RUST_BUILD_WASM=false
 
 # See WRKSRC/src/stage0.json for the date and version values
-BOOTSTRAPS_DATE?=		2022-02-24
-RUST_BOOTSTRAP_VERSION?=	1.59.0
+BOOTSTRAPS_DATE?=		2022-05-19
+RUST_BOOTSTRAP_VERSION?=	1.60.0
 
 BOOTSTRAPS_SUFFIX?=		${BOOTSTRAPS_SUFFIX_${ARCH}}
 BOOTSTRAPS_SUFFIX_powerpc64?=	-${PPC_ABI:tl}
diff --git a/lang/rust/distinfo b/lang/rust/distinfo
index da9267f9cf77..adf29895d635 100644
--- a/lang/rust/distinfo
+++ b/lang/rust/distinfo
@@ -1,63 +1,63 @@
-TIMESTAMP = 1649150849
-SHA256 (rust/rustc-1.60.0-src.tar.xz) = a025876deccbcb3f288d8e02623ea321f94623f31305d3c5c6f17855bb9685db
-SIZE (rust/rustc-1.60.0-src.tar.xz) = 136183048
-SHA256 (rust/2022-02-24/rustc-1.59.0-aarch64-unknown-freebsd.tar.xz) = 0c3d2c9bc8491937932a992a489670025e3af85def7c1e539718c10e8ecd49c7
-SIZE (rust/2022-02-24/rustc-1.59.0-aarch64-unknown-freebsd.tar.xz) = 41050564
-SHA256 (rust/2022-02-24/rust-std-1.59.0-aarch64-unknown-freebsd.tar.xz) = d2486c8e4a98602901862856670635362ed7a3adde87468ef5d300d73c704c59
-SIZE (rust/2022-02-24/rust-std-1.59.0-aarch64-unknown-freebsd.tar.xz) = 22577656
-SHA256 (rust/2022-02-24/cargo-1.59.0-aarch64-unknown-freebsd.tar.xz) = 80d23f538affffcde6c48c263a2e6558958982e31da03d5ab3609c900d0f5dff
-SIZE (rust/2022-02-24/cargo-1.59.0-aarch64-unknown-freebsd.tar.xz) = 4421792
-SHA256 (rust/2022-02-24/rustc-1.59.0-x86_64-unknown-freebsd.tar.xz) = 347fd661cc1c455f3b30fa53f759c9f2fcdac8f418ecf2df56c7967b7fc99f4d
-SIZE (rust/2022-02-24/rustc-1.59.0-x86_64-unknown-freebsd.tar.xz) = 37789512
-SHA256 (rust/2022-02-24/rust-std-1.59.0-x86_64-unknown-freebsd.tar.xz) = 35ddf333c4c943851eb544e11531144c786a9a1fbf2e9e82e9a15a3aa9531f9a
-SIZE (rust/2022-02-24/rust-std-1.59.0-x86_64-unknown-freebsd.tar.xz) = 22778748
-SHA256 (rust/2022-02-24/cargo-1.59.0-x86_64-unknown-freebsd.tar.xz) = 6066e3df548aef04b9ad9b0c7dd42e0a873d9dcae92e3ec6869ad7a7c947b459
-SIZE (rust/2022-02-24/cargo-1.59.0-x86_64-unknown-freebsd.tar.xz) = 5162252
-SHA256 (rust/2022-02-24/rustc-1.59.0-armv6-unknown-freebsd.tar.xz) = 622597d01bae8c134a4b94ea627507183f1274590b93147c9a8d18676b069ade
-SIZE (rust/2022-02-24/rustc-1.59.0-armv6-unknown-freebsd.tar.xz) = 42435404
-SHA256 (rust/2022-02-24/rust-std-1.59.0-armv6-unknown-freebsd.tar.xz) = e39ab0f876741e9af5b51141ff696a8508e79897d51f66489f476243e2931469
-SIZE (rust/2022-02-24/rust-std-1.59.0-armv6-unknown-freebsd.tar.xz) = 20834404
-SHA256 (rust/2022-02-24/cargo-1.59.0-armv6-unknown-freebsd.tar.xz) = 5ff0274c0deddba82e17bbe79c12a356541604d9b153f585f51d1382998f41bc
-SIZE (rust/2022-02-24/cargo-1.59.0-armv6-unknown-freebsd.tar.xz) = 4485388
-SHA256 (rust/2022-02-24/rustc-1.59.0-armv7-unknown-freebsd.tar.xz) = 1098292e557bfb7218478c08b0c1cdd0575ab7867311977b192a2180511d834c
-SIZE (rust/2022-02-24/rustc-1.59.0-armv7-unknown-freebsd.tar.xz) = 42455852
-SHA256 (rust/2022-02-24/rust-std-1.59.0-armv7-unknown-freebsd.tar.xz) = 387644c5dded45b54c0f1b433851904b0afc6eb57e2c64b8cf43be50835e52e7
-SIZE (rust/2022-02-24/rust-std-1.59.0-armv7-unknown-freebsd.tar.xz) = 21911820
-SHA256 (rust/2022-02-24/cargo-1.59.0-armv7-unknown-freebsd.tar.xz) = 7458e91fc799b191b2a5a0d7be03b49568979f1bf9086aa9207c20b49f348da3
-SIZE (rust/2022-02-24/cargo-1.59.0-armv7-unknown-freebsd.tar.xz) = 4472188
-SHA256 (rust/2022-02-24/rustc-1.59.0-i686-unknown-freebsd.tar.xz) = 2c7a633fdd4baed67fec386b42240bade2b467656a1fbbf6add440183563c27c
-SIZE (rust/2022-02-24/rustc-1.59.0-i686-unknown-freebsd.tar.xz) = 46912192
-SHA256 (rust/2022-02-24/rust-std-1.59.0-i686-unknown-freebsd.tar.xz) = 3964122e38d71c8e85bdfebf526e8145444ba327a1e4df7108b85818e36ba7cd
-SIZE (rust/2022-02-24/rust-std-1.59.0-i686-unknown-freebsd.tar.xz) = 22754924
-SHA256 (rust/2022-02-24/cargo-1.59.0-i686-unknown-freebsd.tar.xz) = ba02bbfd73608fe77629a04baa20664f0b503e9e1b07f4c0a3f87dcdbc4c3651
-SIZE (rust/2022-02-24/cargo-1.59.0-i686-unknown-freebsd.tar.xz) = 5300496
-SHA256 (rust/2022-02-24/rustc-1.59.0-powerpc-unknown-freebsd.tar.xz) = c3a100399552b7fb1bccfcd702357e57ccb924cace09026cabbd22af0f9274c6
-SIZE (rust/2022-02-24/rustc-1.59.0-powerpc-unknown-freebsd.tar.xz) = 43965252
-SHA256 (rust/2022-02-24/rust-std-1.59.0-powerpc-unknown-freebsd.tar.xz) = 16e0139998cec181d4c31c323b069498a933fe3a2bf7ac6b27198510802a492f
-SIZE (rust/2022-02-24/rust-std-1.59.0-powerpc-unknown-freebsd.tar.xz) = 20527232
-SHA256 (rust/2022-02-24/cargo-1.59.0-powerpc-unknown-freebsd.tar.xz) = 3ebebe88bcd43ed0367b8060c9f5065b7d34132f5dc8d4102ed3be9f55ff19f8
-SIZE (rust/2022-02-24/cargo-1.59.0-powerpc-unknown-freebsd.tar.xz) = 4890476
-SHA256 (rust/2022-02-24/rustc-1.59.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 97ad75f47fb6a1044f9b917d5a6ffbcfb0dadc8a878fd851acc333d3deceb19c
-SIZE (rust/2022-02-24/rustc-1.59.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 50379384
-SHA256 (rust/2022-02-24/rust-std-1.59.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 33e9fa830279431040cfe3e6cc0feb2a24b2c8c2d44546051ad8019bb98de5ef
-SIZE (rust/2022-02-24/rust-std-1.59.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 20765208
-SHA256 (rust/2022-02-24/cargo-1.59.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = ffdc5207e74e5ffce283ab3166d2876a2721110bc5edae8005f9493a55582f38
-SIZE (rust/2022-02-24/cargo-1.59.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 4976872
-SHA256 (rust/2022-02-24/rustc-1.59.0-powerpc64le-unknown-freebsd.tar.xz) = 1e06b3bcb63cc4498436c70d236d5c6e7b98aa92b07b01b1f7ef9f2a2e5e0887
-SIZE (rust/2022-02-24/rustc-1.59.0-powerpc64le-unknown-freebsd.tar.xz) = 44181548
-SHA256 (rust/2022-02-24/rust-std-1.59.0-powerpc64le-unknown-freebsd.tar.xz) = d6a8ec902b529ee048bac70ea8e3989317167052a3438fef3763755b720d833f
-SIZE (rust/2022-02-24/rust-std-1.59.0-powerpc64le-unknown-freebsd.tar.xz) = 20722244
-SHA256 (rust/2022-02-24/cargo-1.59.0-powerpc64le-unknown-freebsd.tar.xz) = 5bb65faeea8be4f76a898b0e86e3de189b87a3a928e0a51036e616a607c67154
-SIZE (rust/2022-02-24/cargo-1.59.0-powerpc64le-unknown-freebsd.tar.xz) = 4893140
-SHA256 (rust/2022-02-24/rustc-1.59.0-riscv64gc-unknown-freebsd.tar.xz) = 919e17d5962a434cde698f020e30fd8b08e53abb94da952851699e06b186712d
-SIZE (rust/2022-02-24/rustc-1.59.0-riscv64gc-unknown-freebsd.tar.xz) = 138775268
-SHA256 (rust/2022-02-24/rust-std-1.59.0-riscv64gc-unknown-freebsd.tar.xz) = f6c4ab3f101ed628f52ae4a426ad94ff531b51986998cf118321ab12d31249c7
-SIZE (rust/2022-02-24/rust-std-1.59.0-riscv64gc-unknown-freebsd.tar.xz) = 28278800
-SHA256 (rust/2022-02-24/cargo-1.59.0-riscv64gc-unknown-freebsd.tar.xz) = 3bd8b26b91b85b318e29ed27862a5214f5abec1c9479915679c66bdb805e579f
-SIZE (rust/2022-02-24/cargo-1.59.0-riscv64gc-unknown-freebsd.tar.xz) = 24261364
-SHA256 (rust/2022-02-24/rustc-1.59.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 143acd58436b3e469effc8fa38c2de036ed29d4a21ea78d0778b451ff92c346b
-SIZE (rust/2022-02-24/rustc-1.59.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 42083776
-SHA256 (rust/2022-02-24/rust-std-1.59.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 760b5baa42f654bcf0e26a62f48527150186024cd227cd676195aa101005d5ea
-SIZE (rust/2022-02-24/rust-std-1.59.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 20682952
-SHA256 (rust/2022-02-24/cargo-1.59.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 1358d9dad2379f4342e6b189280c2bf42e1bb1de8269bba95f04d0f05c5d206e
-SIZE (rust/2022-02-24/cargo-1.59.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 4645868
+TIMESTAMP = 1653476014
+SHA256 (rust/rustc-1.61.0-src.tar.xz) = a63305a3ad734f170746b337a5e3d07ccaa7aa8f253dc52336b44c0a3b549d7b
+SIZE (rust/rustc-1.61.0-src.tar.xz) = 136696780
+SHA256 (rust/2022-05-19/rustc-1.60.0-aarch64-unknown-freebsd.tar.xz) = 856171555e0bad6cfcf7fbf162785af6b26307261d4fc0af72a9fb946c7aaa3c
+SIZE (rust/2022-05-19/rustc-1.60.0-aarch64-unknown-freebsd.tar.xz) = 41938500
+SHA256 (rust/2022-05-19/rust-std-1.60.0-aarch64-unknown-freebsd.tar.xz) = 6c9ae993d4ddf008389ff34fa069ffe3743ce3ca7b72968a32108e8fcf00aefb
+SIZE (rust/2022-05-19/rust-std-1.60.0-aarch64-unknown-freebsd.tar.xz) = 23049616
+SHA256 (rust/2022-05-19/cargo-1.60.0-aarch64-unknown-freebsd.tar.xz) = 8c12e7434ce7961846b9337d60234de3ead26d5d42c102aaf0600fa06cd78318
+SIZE (rust/2022-05-19/cargo-1.60.0-aarch64-unknown-freebsd.tar.xz) = 4621520
+SHA256 (rust/2022-05-19/rustc-1.60.0-x86_64-unknown-freebsd.tar.xz) = 50a593550807f849a5401b10c5c4e939b2d5a2bd51cc74ee16c684e169f40910
+SIZE (rust/2022-05-19/rustc-1.60.0-x86_64-unknown-freebsd.tar.xz) = 37933600
+SHA256 (rust/2022-05-19/rust-std-1.60.0-x86_64-unknown-freebsd.tar.xz) = 729fc5586175ae264878ff55358931dca8f89e4be35bcadb25f28423d970ae94
+SIZE (rust/2022-05-19/rust-std-1.60.0-x86_64-unknown-freebsd.tar.xz) = 22996636
+SHA256 (rust/2022-05-19/cargo-1.60.0-x86_64-unknown-freebsd.tar.xz) = 119141aafce4214c80042023049defe8202428de1da75b3ffe915e82880c8bbf
+SIZE (rust/2022-05-19/cargo-1.60.0-x86_64-unknown-freebsd.tar.xz) = 5334672
+SHA256 (rust/2022-05-19/rustc-1.60.0-armv6-unknown-freebsd.tar.xz) = 0f39168f1aa52865409421ec542f6b4c6ea2b282b5fd0a915b4a06dffef4095d
+SIZE (rust/2022-05-19/rustc-1.60.0-armv6-unknown-freebsd.tar.xz) = 42659216
+SHA256 (rust/2022-05-19/rust-std-1.60.0-armv6-unknown-freebsd.tar.xz) = 5a8ae5c6e22d323780e332758b0523b0be644c748718b0a4c11669457e3255b4
+SIZE (rust/2022-05-19/rust-std-1.60.0-armv6-unknown-freebsd.tar.xz) = 21039444
+SHA256 (rust/2022-05-19/cargo-1.60.0-armv6-unknown-freebsd.tar.xz) = 850d5a38dc64e6e1538aca3fb42fbff3708f08443ca5608d3599f5283efaf1c6
+SIZE (rust/2022-05-19/cargo-1.60.0-armv6-unknown-freebsd.tar.xz) = 4627940
+SHA256 (rust/2022-05-19/rustc-1.60.0-armv7-unknown-freebsd.tar.xz) = fb2a4409108708840736603e47c9e0cb3652700d24cd7c961a5b1624d247ddf4
+SIZE (rust/2022-05-19/rustc-1.60.0-armv7-unknown-freebsd.tar.xz) = 42735092
+SHA256 (rust/2022-05-19/rust-std-1.60.0-armv7-unknown-freebsd.tar.xz) = b640f71a425488f22560d08810c73b913794ac246a730d6983bd19bdf4d0f973
+SIZE (rust/2022-05-19/rust-std-1.60.0-armv7-unknown-freebsd.tar.xz) = 22363208
+SHA256 (rust/2022-05-19/cargo-1.60.0-armv7-unknown-freebsd.tar.xz) = a731efeffd1b9d735bfd867974a0c367317155e827ca334b0369824a32519e37
+SIZE (rust/2022-05-19/cargo-1.60.0-armv7-unknown-freebsd.tar.xz) = 4617840
+SHA256 (rust/2022-05-19/rustc-1.60.0-i686-unknown-freebsd.tar.xz) = 66bf481268d5639034a4eb89658e1620c03b153b29853264801a999a8261f830
+SIZE (rust/2022-05-19/rustc-1.60.0-i686-unknown-freebsd.tar.xz) = 47012508
+SHA256 (rust/2022-05-19/rust-std-1.60.0-i686-unknown-freebsd.tar.xz) = 5bc6b3abb047d6313464af484b34fe33648b79e128b31afd201733ea8ec966fd
+SIZE (rust/2022-05-19/rust-std-1.60.0-i686-unknown-freebsd.tar.xz) = 23148528
+SHA256 (rust/2022-05-19/cargo-1.60.0-i686-unknown-freebsd.tar.xz) = 6d8beb4292c192d8ff1dc3684ab881fdf7ea0a6b9bd141329bf939fe670d82a4
+SIZE (rust/2022-05-19/cargo-1.60.0-i686-unknown-freebsd.tar.xz) = 5495444
+SHA256 (rust/2022-05-19/rustc-1.60.0-powerpc-unknown-freebsd.tar.xz) = 8e1a2c1850a89f5ef7dd18ed5236effe4395dc95732cea6179420fb1b3f32209
+SIZE (rust/2022-05-19/rustc-1.60.0-powerpc-unknown-freebsd.tar.xz) = 44903352
+SHA256 (rust/2022-05-19/rust-std-1.60.0-powerpc-unknown-freebsd.tar.xz) = ed55aad34ce284e84d9937ffcb812a3a926afbf7cb683afd396f2149fa821156
+SIZE (rust/2022-05-19/rust-std-1.60.0-powerpc-unknown-freebsd.tar.xz) = 20867312
+SHA256 (rust/2022-05-19/cargo-1.60.0-powerpc-unknown-freebsd.tar.xz) = 4f64bebbdbfb34fed496d4962b9e64085a8b9e35483f93032f8574cb8d387245
+SIZE (rust/2022-05-19/cargo-1.60.0-powerpc-unknown-freebsd.tar.xz) = 5054540
+SHA256 (rust/2022-05-19/rustc-1.60.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = f2f1e5bb5fa73edc58253cdf7eacfc172c46f922b7d3126913dc8e328a87f433
+SIZE (rust/2022-05-19/rustc-1.60.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 50827868
+SHA256 (rust/2022-05-19/rust-std-1.60.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = bf05dbc2ed003cacbe99505456ce3886f11c51b0e828322bad912657726b7426
+SIZE (rust/2022-05-19/rust-std-1.60.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 20999060
+SHA256 (rust/2022-05-19/cargo-1.60.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 3c6f48a3e59590cdd250ca8a7454d34923b1ab004f22e78c63c9ee97ed3b85cc
+SIZE (rust/2022-05-19/cargo-1.60.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 5141224
+SHA256 (rust/2022-05-19/rustc-1.60.0-powerpc64le-unknown-freebsd.tar.xz) = 4441542942feb74e50f19d0bcc0918deb601abb49c54a0eec4f0653fd3776a6d
+SIZE (rust/2022-05-19/rustc-1.60.0-powerpc64le-unknown-freebsd.tar.xz) = 44720396
+SHA256 (rust/2022-05-19/rust-std-1.60.0-powerpc64le-unknown-freebsd.tar.xz) = c1cf4efcf22cc7283529029abcea0a21c2347f96d1814398f62bb4d4125db9ea
+SIZE (rust/2022-05-19/rust-std-1.60.0-powerpc64le-unknown-freebsd.tar.xz) = 21150980
+SHA256 (rust/2022-05-19/cargo-1.60.0-powerpc64le-unknown-freebsd.tar.xz) = 69c4c4ab60f09c4422a6840ff74cff12ebfc0637e0d141765afcdb8525085058
+SIZE (rust/2022-05-19/cargo-1.60.0-powerpc64le-unknown-freebsd.tar.xz) = 5076628
+SHA256 (rust/2022-05-19/rustc-1.60.0-riscv64gc-unknown-freebsd.tar.xz) = af8c38fa28f13d8edbd24d1bb05a0f37921dec31a945ac941a6fb7919d1f46e1
+SIZE (rust/2022-05-19/rustc-1.60.0-riscv64gc-unknown-freebsd.tar.xz) = 143639456
+SHA256 (rust/2022-05-19/rust-std-1.60.0-riscv64gc-unknown-freebsd.tar.xz) = 1f42fd5787029321bc33ec4cd4c1cb727d4408a535547617e311bfd37ae7d229
+SIZE (rust/2022-05-19/rust-std-1.60.0-riscv64gc-unknown-freebsd.tar.xz) = 28941004
+SHA256 (rust/2022-05-19/cargo-1.60.0-riscv64gc-unknown-freebsd.tar.xz) = 8859047df077edad1fe1707e4ed61739fcfdd9d895c4fd44964510934a98798e
+SIZE (rust/2022-05-19/cargo-1.60.0-riscv64gc-unknown-freebsd.tar.xz) = 26042744
+SHA256 (rust/2022-05-19/rustc-1.60.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 0b84323d8654ed8fb4e9661b9d4e2e6a98a93b6336fd74a2b40de0549c8dae69
+SIZE (rust/2022-05-19/rustc-1.60.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 42733192
+SHA256 (rust/2022-05-19/rust-std-1.60.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 2d2dd654594796cfa241143fbe2c275075f7c8e62dd423867b3dfc27f30e482b
+SIZE (rust/2022-05-19/rust-std-1.60.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 20979640
+SHA256 (rust/2022-05-19/cargo-1.60.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = cd104531239d5a854e1ce53e5c9f2239ed6d535b9e81b61ee880b8a55bc033a9
+SIZE (rust/2022-05-19/cargo-1.60.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 4795344
diff --git a/lang/rust/files/no-hardlinks/patch-src_bootstrap_native.rs b/lang/rust/files/no-hardlinks/patch-src_bootstrap_native.rs
index 18a334c6b76c..2e4a03cd315c 100644
--- a/lang/rust/files/no-hardlinks/patch-src_bootstrap_native.rs
+++ b/lang/rust/files/no-hardlinks/patch-src_bootstrap_native.rs
@@ -5,9 +5,9 @@ that is only really needed on Windows.
 
 --- src/bootstrap/native.rs.orig	2020-08-24 15:00:49 UTC
 +++ src/bootstrap/native.rs
-@@ -517,26 +522,9 @@ impl Step for Lld {
+@@ -634,22 +634,6 @@ impl Step for Lld {
          let mut cfg = cmake::Config::new(builder.src.join("src/llvm-project/lld"));
-         configure_cmake(builder, target, &mut cfg, true);
+         configure_cmake(builder, target, &mut cfg, true, LdFlags::default());
  
 -        // This is an awful, awful hack. Discovered when we migrated to using
 -        // clang-cl to compile LLVM/LLD it turns out that LLD, when built out of
@@ -25,8 +25,13 @@ that is only really needed on Windows.
 -        // there's probably a lot of reasons you can't do that other than this.
 -        let llvm_config_shim = env::current_exe().unwrap().with_file_name("llvm-config-wrapper");
 -
+         // Re-use the same flags as llvm to control the level of debug information
+         // generated for lld.
+         let profile = match (builder.config.llvm_optimize, builder.config.llvm_release_debuginfo) {
+@@ -660,8 +644,7 @@ impl Step for Lld {
+ 
          cfg.out_dir(&out_dir)
-             .profile("Release")
+             .profile(profile)
 -            .env("LLVM_CONFIG_REAL", &llvm_config)
 -            .define("LLVM_CONFIG_PATH", llvm_config_shim)
 +            .define("LLVM_CONFIG_PATH", &llvm_config)
diff --git a/lang/rust/files/patch-compiler_rustc__target_src_spec_i686__unknown__freebsd.rs b/lang/rust/files/patch-compiler_rustc__target_src_spec_i686__unknown__freebsd.rs
index 9d3dc5a067aa..0bbcd7b0f70d 100644
--- a/lang/rust/files/patch-compiler_rustc__target_src_spec_i686__unknown__freebsd.rs
+++ b/lang/rust/files/patch-compiler_rustc__target_src_spec_i686__unknown__freebsd.rs
@@ -1,11 +1,11 @@
 --- compiler/rustc_target/src/spec/i686_unknown_freebsd.rs.orig	2020-01-23 19:40:44 UTC
 +++ compiler/rustc_target/src/spec/i686_unknown_freebsd.rs
-@@ -2,7 +2,7 @@ use crate::spec::{LinkerFlavor, Target, TargetResult};
+@@ -2,7 +2,7 @@ pub fn target() -> Target {
  
- pub fn target() -> TargetResult {
+ pub fn target() -> Target {
      let mut base = super::freebsd_base::opts();
--    base.cpu = "pentium4".to_string();
-+    base.cpu = "pentiumpro".to_string();
+-    base.cpu = "pentium4".into();
++    base.cpu = "pentiumpro".into();
      base.max_atomic_width = Some(64);
-     let pre_link_args = base.pre_link_args.get_mut(&LinkerFlavor::Gcc).unwrap();
-     pre_link_args.push("-m32".to_string());
+     let pre_link_args = base.pre_link_args.entry(LinkerFlavor::Gcc).or_default();
+     pre_link_args.push("-m32".into());
diff --git a/lang/rust/files/patch-src_llvm-project_llvm_lib_Transforms_Vectorize_LoopVectorize.cpp b/lang/rust/files/patch-src_llvm-project_llvm_lib_Transforms_Vectorize_LoopVectorize.cpp
new file mode 100644
index 000000000000..4713a0b67630
--- /dev/null
+++ b/lang/rust/files/patch-src_llvm-project_llvm_lib_Transforms_Vectorize_LoopVectorize.cpp
@@ -0,0 +1,62 @@
+Fix a SIGFPE when building sysutils/exa
+https://github.com/ogham/exa/issues/1068
+https://bugs.gentoo.org/847421
+
+From fe8a27acd716a42667f5a572f52f2b04636010ff Mon Sep 17 00:00:00 2001
+From: Florian Hahn <flo@fhahn.com>
+Date: Tue, 29 Mar 2022 22:52:42 +0100
+Subject: [PATCH] [LV] Handle zero cost loops in selectInterleaveCount.
+
+In some case, like in the added test case, we can reach
+selectInterleaveCount with loops that actually have a cost of 0.
+
+Unfortunately a loop cost of 0 is also used to communicate that the cost
+has not been computed yet. To resolve the crash, bail out if the cost
+remains zero after computing it.
+
+This seems like the best option, as there are multiple code paths that
+return a cost of 0 to force a computation in selectInterleaveCount.
+Computing the cost at multiple places up front there would unnecessarily
+complicate the logic.
+
+Fixes #54413.
+
+(cherry picked from commit ecb4171dcbf1b433c9963fd605a74898303e850d)
+--- src/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp.orig	2022-03-23 19:37:48.000000000 +0100
++++ src/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp	2022-05-27 15:16:30.510761000 +0200
+@@ -6035,6 +6035,18 @@ unsigned LoopVectorizationCostModel::selectInterleaveC
+       !(InterleaveSmallLoopScalarReduction && HasReductions && VF.isScalar()))
+     return 1;
+ 
++  // If we did not calculate the cost for VF (because the user selected the VF)
++  // then we calculate the cost of VF here.
++  if (LoopCost == 0) {
++    InstructionCost C = expectedCost(VF).first;
++    assert(C.isValid() && "Expected to have chosen a VF with valid cost");
++    LoopCost = *C.getValue();
++
++    // Loop body is free and there is no need for interleaving.
++    if (LoopCost == 0)
++      return 1;
++  }
++
+   RegisterUsage R = calculateRegisterUsage({VF})[0];
+   // We divide by these constants so assume that we have at least one
+   // instruction that uses at least one register.
+@@ -6125,16 +6137,6 @@ unsigned LoopVectorizationCostModel::selectInterleaveC
+     IC = std::max(1u, IC);
+ 
+   assert(IC > 0 && "Interleave count must be greater than 0.");
+-
+-  // If we did not calculate the cost for VF (because the user selected the VF)
+-  // then we calculate the cost of VF here.
+-  if (LoopCost == 0) {
+-    InstructionCost C = expectedCost(VF).first;
+-    assert(C.isValid() && "Expected to have chosen a VF with valid cost");
+-    LoopCost = *C.getValue();
+-  }
+-
+-  assert(LoopCost && "Non-zero loop cost expected");
+ 
+   // Interleave if we vectorized this loop and there is a reduction that could
+   // benefit from interleaving.
diff --git a/lang/rust/files/patch-src_llvm-project_llvm_lib_Transforms_Vectorize_VectorCombine.cpp b/lang/rust/files/patch-src_llvm-project_llvm_lib_Transforms_Vectorize_VectorCombine.cpp
new file mode 100644
index 000000000000..88fde2f621e3
--- /dev/null
+++ b/lang/rust/files/patch-src_llvm-project_llvm_lib_Transforms_Vectorize_VectorCombine.cpp
@@ -0,0 +1,49 @@
+Fix a SIGFPE when building sysutils/exa
+https://github.com/ogham/exa/issues/1068 
+https://bugs.gentoo.org/847421 
+
+
+From 67a290460c374d5e0d18a06c798896cac0b19e59 Mon Sep 17 00:00:00 2001
+From: Fraser Cormack <fraser@codeplay.com>
+Date: Wed, 16 Mar 2022 10:14:07 +0000
+Subject: [PATCH] [VectorCombine] Insert addrspacecast when crossing address
+ space boundaries
+
+We can not bitcast pointers across different address spaces. This was
+previously fixed in D89577 but then in D93229 an enhancement was added
+which peeks further through the ponter operand, opening up the
+possibility that address-space violations could be introduced.
+
+Instead of bailing as the previous fix did, simply insert an
+addrspacecast cast instruction.
+
+Reviewed By: lebedev.ri
+
+Differential Revision: https://reviews.llvm.org/D121787
+
+(cherry picked from commit 2e44b7872bc638ed884ae4aa86e38b3b47e0b65a)
+--- src/llvm-project/llvm/lib/Transforms/Vectorize/VectorCombine.cpp.orig	2022-03-23 19:37:48.000000000 +0100
++++ src/llvm-project/llvm/lib/Transforms/Vectorize/VectorCombine.cpp	2022-05-27 15:16:24.686183000 +0200
+@@ -152,12 +152,7 @@ bool VectorCombine::vectorizeLoadInsert(Instruction &I
+   Value *SrcPtr = Load->getPointerOperand()->stripPointerCasts();
+   assert(isa<PointerType>(SrcPtr->getType()) && "Expected a pointer type");
+ 
+-  // If original AS != Load's AS, we can't bitcast the original pointer and have
+-  // to use Load's operand instead. Ideally we would want to strip pointer casts
+-  // without changing AS, but there's no API to do that ATM.
+   unsigned AS = Load->getPointerAddressSpace();
+-  if (AS != SrcPtr->getType()->getPointerAddressSpace())
+-    SrcPtr = Load->getPointerOperand();
+ 
+   // We are potentially transforming byte-sized (8-bit) memory accesses, so make
+   // sure we have all of our type-based constraints in place for this target.
+@@ -245,7 +240,8 @@ bool VectorCombine::vectorizeLoadInsert(Instruction &I
+   // It is safe and potentially profitable to load a vector directly:
+   // inselt undef, load Scalar, 0 --> load VecPtr
+   IRBuilder<> Builder(Load);
+-  Value *CastedPtr = Builder.CreateBitCast(SrcPtr, MinVecTy->getPointerTo(AS));
++  Value *CastedPtr = Builder.CreatePointerBitCastOrAddrSpaceCast(
++      SrcPtr, MinVecTy->getPointerTo(AS));
+   Value *VecLd = Builder.CreateAlignedLoad(MinVecTy, CastedPtr, Alignment);
+   VecLd = Builder.CreateShuffleVector(VecLd, Mask);
+ 
diff --git a/lang/rust/files/patch-src_tools_cargo_src_cargo_sources_git_source.rs b/lang/rust/files/patch-src_tools_cargo_src_cargo_sources_git_source.rs
index 90312d1fb270..ee09c8d53031 100644
--- a/lang/rust/files/patch-src_tools_cargo_src_cargo_sources_git_source.rs
+++ b/lang/rust/files/patch-src_tools_cargo_src_cargo_sources_git_source.rs
@@ -11,35 +11,36 @@ be stabilized first.  It will be available in Rust 1.56.
 
 [1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256581
 
---- src/tools/cargo/src/cargo/sources/git/source.rs.orig	2021-09-06 18:42:51 UTC
+--- src/tools/cargo/src/cargo/sources/git/source.rs.orig	2021-10-04 20:59:57 UTC
 +++ src/tools/cargo/src/cargo/sources/git/source.rs
-@@ -84,6 +84,9 @@ impl<'cfg> Debug for GitSource<'cfg> {
+@@ -86,6 +86,9 @@ impl<'cfg> Source for GitSource<'cfg> {
  
  impl<'cfg> Source for GitSource<'cfg> {
-     fn query(&mut self, dep: &Dependency, f: &mut dyn FnMut(Summary)) -> CargoResult<()> {
+     fn query(&mut self, dep: &Dependency, f: &mut dyn FnMut(Summary)) -> Poll<CargoResult<()>> {
 +        if std::env::var("CARGO_FREEBSD_PORTS_SKIP_GIT_UPDATE").is_ok() {
-+            return Ok(());
++            return Poll::Ready(Ok(()));
 +        }
-         let src = self
-             .path_source
-             .as_mut()
-@@ -92,6 +95,9 @@ impl<'cfg> Source for GitSource<'cfg> {
-     }
- 
-     fn fuzzy_query(&mut self, dep: &Dependency, f: &mut dyn FnMut(Summary)) -> CargoResult<()> {
+         if let Some(src) = self.path_source.as_mut() {
+             src.query(dep, f)
+         } else {
+@@ -98,6 +101,9 @@ impl<'cfg> Source for GitSource<'cfg> {
+         dep: &Dependency,
+         f: &mut dyn FnMut(Summary),
+     ) -> Poll<CargoResult<()>> {
 +        if std::env::var("CARGO_FREEBSD_PORTS_SKIP_GIT_UPDATE").is_ok() {
-+            return Ok(());
++            return Poll::Ready(Ok(()));
 +        }
-         let src = self
-             .path_source
-             .as_mut()
-@@ -112,6 +118,9 @@ impl<'cfg> Source for GitSource<'cfg> {
-     }
+         if let Some(src) = self.path_source.as_mut() {
+             src.fuzzy_query(dep, f)
+         } else {
+@@ -119,6 +125,10 @@ impl<'cfg> Source for GitSource<'cfg> {
  
-     fn update(&mut self) -> CargoResult<()> {
-+        if std::env::var("CARGO_FREEBSD_PORTS_SKIP_GIT_UPDATE").is_ok() {
+     fn block_until_ready(&mut self) -> CargoResult<()> {
+         if self.path_source.is_some() {
 +            return Ok(());
 +        }
-         let git_path = self.config.git_path();
-         let git_path = self.config.assert_package_cache_locked(&git_path);
-         let db_path = git_path.join("db").join(&self.ident);
++
++        if std::env::var("CARGO_FREEBSD_PORTS_SKIP_GIT_UPDATE").is_ok() {
+             return Ok(());
+         }
+ 
diff --git a/lang/rust/files/powerpc64-elfv2/patch-compiler_rustc__target_src_spec_powerpc64__unknown__freebsd.rs b/lang/rust/files/powerpc64-elfv2/patch-compiler_rustc__target_src_spec_powerpc64__unknown__freebsd.rs
index 5525c1f5aaac..22b0f628dade 100644
--- a/lang/rust/files/powerpc64-elfv2/patch-compiler_rustc__target_src_spec_powerpc64__unknown__freebsd.rs
+++ b/lang/rust/files/powerpc64-elfv2/patch-compiler_rustc__target_src_spec_powerpc64__unknown__freebsd.rs
@@ -1,14 +1,14 @@
 --- compiler/rustc_target/src/spec/powerpc64_unknown_freebsd.rs.orig	2020-12-29 04:03:08 UTC
 +++ compiler/rustc_target/src/spec/powerpc64_unknown_freebsd.rs
-@@ -11,6 +11,10 @@ pub fn target() -> Target {
+@@ -12,6 +12,10 @@ pub fn target() -> Target {
          pointer_width: 64,
-         data_layout: "E-m:e-i64:64-n32:64".to_string(),
-         arch: "powerpc64".to_string(),
--        options: TargetOptions { endian: Endian::Big, mcount: "_mcount".to_string(), ..base },
+         data_layout: "E-m:e-i64:64-n32:64".into(),
+         arch: "powerpc64".into(),
+-        options: TargetOptions { endian: Endian::Big, mcount: "_mcount".into(), ..base },
 +        options: TargetOptions {
 +            endian: Endian::Big,
-+            mcount: "_mcount".to_string(),
-+            llvm_abiname: "elfv2".to_string(),
++            mcount: "_mcount".into(),
++            llvm_abiname: "elfv2".into(),
 +            ..base },
      }
  }