git: 183588879e6b - main - lang/rust: Update to 1.58.0

From: Tobias Kortkamp <tobik_at_FreeBSD.org>
Date: Mon, 17 Jan 2022 11:59:12 UTC
The branch main has been updated by tobik:

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

commit 183588879e6bae37e4fd11e4b3336c49d6e64e0f
Author:     Tobias Kortkamp <tobik@FreeBSD.org>
AuthorDate: 2022-01-12 09:38:51 +0000
Commit:     Tobias Kortkamp <tobik@FreeBSD.org>
CommitDate: 2022-01-17 11:56:32 +0000

    lang/rust: Update to 1.58.0
    
    Changes:        https://blog.rust-lang.org/2022/01/13/Rust-1.58.0.html
    PR:             261150
    Exp-run by:     antoine
    Differential Revision:  https://reviews.freebsd.org/D33864
---
 Mk/Uses/cargo.mk                                   |   2 +-
 Mk/bsd.gecko.mk                                    |   2 +-
 lang/rust-bootstrap/Makefile                       |   4 +-
 lang/rust-bootstrap/distinfo                       |   6 +-
 lang/rust/Makefile                                 |   8 +-
 lang/rust/distinfo                                 | 114 +++++++--------
 ...c_unix_bsd_freebsdlike_freebsd_freebsd11_mod.rs |  12 ++
 ...c_unix_bsd_freebsdlike_freebsd_freebsd12_mod.rs |  12 ++
 ...c_unix_bsd_freebsdlike_freebsd_freebsd13_mod.rs |  12 ++
 ...0.2.106_src_unix_bsd_freebsdlike_freebsd_mod.rs |  12 ++
 ...106_src_unix_bsd_freebsdlike_freebsd_riscv64.rs | 157 +++++++++++++++++++++
 11 files changed, 272 insertions(+), 69 deletions(-)

diff --git a/Mk/Uses/cargo.mk b/Mk/Uses/cargo.mk
index a1508a9831aa..bd02dadfaee9 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.57.0:lang/${RUST_DEFAULT}
+BUILD_DEPENDS+=	${RUST_DEFAULT}>=1.58.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 e875a09d7244..2ea7777fb7d8 100644
--- a/Mk/bsd.gecko.mk
+++ b/Mk/bsd.gecko.mk
@@ -76,7 +76,7 @@ BUNDLE_LIBS=	yes
 
 BUILD_DEPENDS+=	llvm${LLVM_DEFAULT}>0:devel/llvm${LLVM_DEFAULT} \
 				rust-cbindgen>=0.19.0:devel/rust-cbindgen \
-				${RUST_DEFAULT}>=1.57.0:lang/${RUST_DEFAULT} \
+				${RUST_DEFAULT}>=1.58.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 115fb7fe206c..f95e8c6cd935 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.57.0
+PORTVERSION=	1.58.0
 CATEGORIES=	lang
 MASTER_SITES=	https://static.rust-lang.org/dist/
 PKGNAMEPREFIX=	${FLAVOR:S/_/-/g}-
@@ -153,7 +153,7 @@ do-configure:
 do-build:
 	@cd ${WRKSRC} && \
 		${SETENV} ${MAKE_ENV} ${PYTHON_CMD} x.py dist --jobs=${MAKE_JOBS_NUMBER} \
-		cargo src/librustc library/std
+		cargo rustc rust-std
 
 do-install:
 	@${MKDIR} ${STAGEDIR}${PREFIX}/rust-bootstrap/${FLAVOR}
diff --git a/lang/rust-bootstrap/distinfo b/lang/rust-bootstrap/distinfo
index 6080a9d6b614..e91fbdaa6252 100644
--- a/lang/rust-bootstrap/distinfo
+++ b/lang/rust-bootstrap/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1638276833
-SHA256 (rust/rustc-1.57.0-src.tar.xz) = fad07ea1daf9c6195c32e6e9c43ece4565c5f2f1de3c3771574790d6abbc9704
-SIZE (rust/rustc-1.57.0-src.tar.xz) = 122681768
+TIMESTAMP = 1641979674
+SHA256 (rust/rustc-1.58.0-src.tar.xz) = 37dce222b82a438e550ccd5e45ca9bad1c57aa7acc7adfec6a897c4ff94b6485
+SIZE (rust/rustc-1.58.0-src.tar.xz) = 124348768
diff --git a/lang/rust/Makefile b/lang/rust/Makefile
index ee8779c2f1e6..c8ca3a806e03 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.57.0
+PORTVERSION?=	1.58.0
 PORTREVISION?=	0
 CATEGORIES=	lang
 MASTER_SITES=	https://static.rust-lang.org/dist/:src \
@@ -68,10 +68,8 @@ WASM_VARS=		_RUST_BUILD_WASM=true \
 WASM_VARS_OFF=		_RUST_BUILD_WASM=false
 
 # See WRKSRC/src/stage0.json for the date and version values
-BOOTSTRAPS_DATE?=		2021-10-21
-RUST_BOOTSTRAP_VERSION?=	1.56.0
-BOOTSTRAPS_DATE_riscv64=	2021-12-02
-RUST_BOOTSTRAP_VERSION_riscv64=	1.57.0
+BOOTSTRAPS_DATE?=		2021-12-02
+RUST_BOOTSTRAP_VERSION?=	1.57.0
 
 BOOTSTRAPS_SUFFIX?=		${BOOTSTRAPS_SUFFIX_${ARCH}}
 BOOTSTRAPS_SUFFIX_powerpc64?=	-${PPC_ABI:tl}
diff --git a/lang/rust/distinfo b/lang/rust/distinfo
index c698f325589e..29eb7a0227d7 100644
--- a/lang/rust/distinfo
+++ b/lang/rust/distinfo
@@ -1,63 +1,63 @@
-TIMESTAMP = 1638276823
-SHA256 (rust/rustc-1.57.0-src.tar.xz) = fad07ea1daf9c6195c32e6e9c43ece4565c5f2f1de3c3771574790d6abbc9704
-SIZE (rust/rustc-1.57.0-src.tar.xz) = 122681768
-SHA256 (rust/2021-10-21/rustc-1.56.0-aarch64-unknown-freebsd.tar.xz) = 82a236e2d72daa16743df13f1099958b57551a4a8ed41eb4b59667caa777080a
-SIZE (rust/2021-10-21/rustc-1.56.0-aarch64-unknown-freebsd.tar.xz) = 47996592
-SHA256 (rust/2021-10-21/rust-std-1.56.0-aarch64-unknown-freebsd.tar.xz) = 8820ad8aed80fcddde255b5fdf6eb7113c9a9e618f785238da0e06ffd56ff16d
-SIZE (rust/2021-10-21/rust-std-1.56.0-aarch64-unknown-freebsd.tar.xz) = 19678584
-SHA256 (rust/2021-10-21/cargo-1.56.0-aarch64-unknown-freebsd.tar.xz) = 3d853f970f0b5eade8e8b3aa6eaba32d00eee08936dd6acd0cf4caae583a019c
-SIZE (rust/2021-10-21/cargo-1.56.0-aarch64-unknown-freebsd.tar.xz) = 4559904
-SHA256 (rust/2021-10-21/rustc-1.56.0-x86_64-unknown-freebsd.tar.xz) = bc423830573a46d8cee0efd848da71be9b36115ecf34747da952fcd045f48047
-SIZE (rust/2021-10-21/rustc-1.56.0-x86_64-unknown-freebsd.tar.xz) = 43726460
-SHA256 (rust/2021-10-21/rust-std-1.56.0-x86_64-unknown-freebsd.tar.xz) = 47d9a983de22a43187d5bc1b1c14391590a50d3430b5ee6ab55a9d6baa23cd88
-SIZE (rust/2021-10-21/rust-std-1.56.0-x86_64-unknown-freebsd.tar.xz) = 20550680
-SHA256 (rust/2021-10-21/cargo-1.56.0-x86_64-unknown-freebsd.tar.xz) = 079ae609bd970eb387d3803a91e4fc6628722262cbc8f041a9e5b6848f6684e3
-SIZE (rust/2021-10-21/cargo-1.56.0-x86_64-unknown-freebsd.tar.xz) = 5298904
-SHA256 (rust/2021-10-21/rustc-1.56.0-armv6-unknown-freebsd.tar.xz) = ae0fc0c317cf7fc3d4efd2a3246e86704111019ef3f2ac62d054b0ae907f2822
-SIZE (rust/2021-10-21/rustc-1.56.0-armv6-unknown-freebsd.tar.xz) = 48727792
-SHA256 (rust/2021-10-21/rust-std-1.56.0-armv6-unknown-freebsd.tar.xz) = 71f14d1c93cd0c8cdc5e52fe0febae60fcadbe99ed32a80fb12cf73a25249704
-SIZE (rust/2021-10-21/rust-std-1.56.0-armv6-unknown-freebsd.tar.xz) = 18669524
-SHA256 (rust/2021-10-21/cargo-1.56.0-armv6-unknown-freebsd.tar.xz) = 75494c867ca1f2710edf6b5e43de04a861ffbc01aee7948870c028e5dfba5ca8
-SIZE (rust/2021-10-21/cargo-1.56.0-armv6-unknown-freebsd.tar.xz) = 4705020
-SHA256 (rust/2021-10-21/rustc-1.56.0-armv7-unknown-freebsd.tar.xz) = 40e174760b9a4360d28d2b3104516176dbb0e3c188c6628d1b2abe56d3cc8e03
-SIZE (rust/2021-10-21/rustc-1.56.0-armv7-unknown-freebsd.tar.xz) = 48981152
-SHA256 (rust/2021-10-21/rust-std-1.56.0-armv7-unknown-freebsd.tar.xz) = 3b09cfd7d392b6047ac1e9ffff065b3dc803e4afe8b6b41b96111d9f5f9b9ecf
-SIZE (rust/2021-10-21/rust-std-1.56.0-armv7-unknown-freebsd.tar.xz) = 19441136
-SHA256 (rust/2021-10-21/cargo-1.56.0-armv7-unknown-freebsd.tar.xz) = 4f9b55eff84c6011fdcbffca2ebdbc939340a35f87f95ab1fa00f18a342a7679
-SIZE (rust/2021-10-21/cargo-1.56.0-armv7-unknown-freebsd.tar.xz) = 4692220
-SHA256 (rust/2021-10-21/rustc-1.56.0-i686-unknown-freebsd.tar.xz) = db1a697eced4bc65b36ddf590b8c0bb5b8c50a75032b7a3e088c8fe1b2c86c52
-SIZE (rust/2021-10-21/rustc-1.56.0-i686-unknown-freebsd.tar.xz) = 52722604
-SHA256 (rust/2021-10-21/rust-std-1.56.0-i686-unknown-freebsd.tar.xz) = f48e0b23e0979bc44db13b4470d65eb057c68f508af1df5e1f38497cc66e8e2f
-SIZE (rust/2021-10-21/rust-std-1.56.0-i686-unknown-freebsd.tar.xz) = 20434844
-SHA256 (rust/2021-10-21/cargo-1.56.0-i686-unknown-freebsd.tar.xz) = 748b14fa68924216c7a08bebb2758933f923feabc4cabefb8356924ea4515aae
-SIZE (rust/2021-10-21/cargo-1.56.0-i686-unknown-freebsd.tar.xz) = 5438960
-SHA256 (rust/2021-10-21/rustc-1.56.0-powerpc-unknown-freebsd.tar.xz) = 76638a9b16960288aea7efdea4249b96a931b2f93b88ad8b4614c046ebc41206
-SIZE (rust/2021-10-21/rustc-1.56.0-powerpc-unknown-freebsd.tar.xz) = 49648024
-SHA256 (rust/2021-10-21/rust-std-1.56.0-powerpc-unknown-freebsd.tar.xz) = d06ff829d0fbc05fe740f60d648f2768f6907b21747f8dfc3ca38b8dde5d55de
-SIZE (rust/2021-10-21/rust-std-1.56.0-powerpc-unknown-freebsd.tar.xz) = 18478484
-SHA256 (rust/2021-10-21/cargo-1.56.0-powerpc-unknown-freebsd.tar.xz) = e4668521bc16b5b81b61280ff601f016185299cf4c74b07e1ea023704b7ef1f6
-SIZE (rust/2021-10-21/cargo-1.56.0-powerpc-unknown-freebsd.tar.xz) = 5054048
-SHA256 (rust/2021-10-21/rustc-1.56.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = d5f6563c40110e0d5e63e1ce0fbd1a8522d4da80de8a04d56313cfde0f906a58
-SIZE (rust/2021-10-21/rustc-1.56.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 58767712
-SHA256 (rust/2021-10-21/rust-std-1.56.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = f8f40ff0d3592766b95e66d048fe7724110970d5274281e72073ce3bd70411fb
-SIZE (rust/2021-10-21/rust-std-1.56.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 18692716
-SHA256 (rust/2021-10-21/cargo-1.56.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = a623c36df322e4dc5376821387c4121499cc799e933d04a45b934d4731d84b38
-SIZE (rust/2021-10-21/cargo-1.56.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 5105400
-SHA256 (rust/2021-10-21/rustc-1.56.0-powerpc64le-unknown-freebsd.tar.xz) = 7edfbf3c163742ca56401dcf44ad7d54ebe4dc8fae4b8c111b46e5583abde2bd
-SIZE (rust/2021-10-21/rustc-1.56.0-powerpc64le-unknown-freebsd.tar.xz) = 50451092
-SHA256 (rust/2021-10-21/rust-std-1.56.0-powerpc64le-unknown-freebsd.tar.xz) = d713bb476500e87b9b1a4bc3f1caa7912d586727ad0a7b0792911358cb5efde0
-SIZE (rust/2021-10-21/rust-std-1.56.0-powerpc64le-unknown-freebsd.tar.xz) = 18805860
-SHA256 (rust/2021-10-21/cargo-1.56.0-powerpc64le-unknown-freebsd.tar.xz) = c29c558c07d09e56c0288d2c9528b63311072ca491a047b9588ea3320d1699bb
-SIZE (rust/2021-10-21/cargo-1.56.0-powerpc64le-unknown-freebsd.tar.xz) = 5046108
+TIMESTAMP = 1641979673
+SHA256 (rust/rustc-1.58.0-src.tar.xz) = 37dce222b82a438e550ccd5e45ca9bad1c57aa7acc7adfec6a897c4ff94b6485
+SIZE (rust/rustc-1.58.0-src.tar.xz) = 124348768
+SHA256 (rust/2021-12-02/rustc-1.57.0-aarch64-unknown-freebsd.tar.xz) = c157138a0d2179875aa68ce8674a04fb622e3a9f51be48dad29e4080e663ba07
+SIZE (rust/2021-12-02/rustc-1.57.0-aarch64-unknown-freebsd.tar.xz) = 49524084
+SHA256 (rust/2021-12-02/rust-std-1.57.0-aarch64-unknown-freebsd.tar.xz) = 47c414bf12951670fc439b4810ce88443069fc1d7cfbe2c49e005ca164d39a5a
+SIZE (rust/2021-12-02/rust-std-1.57.0-aarch64-unknown-freebsd.tar.xz) = 21447236
+SHA256 (rust/2021-12-02/cargo-1.57.0-aarch64-unknown-freebsd.tar.xz) = ef00c5bf73003983dd6bc4b3edf06f8502b26be1c4def4c55e4f65fd95ba5f6c
+SIZE (rust/2021-12-02/cargo-1.57.0-aarch64-unknown-freebsd.tar.xz) = 4606180
+SHA256 (rust/2021-12-02/rustc-1.57.0-x86_64-unknown-freebsd.tar.xz) = ef215995462aedd5d06ed9d5a527c0ca536309924d25326b4fcbeb806804b6ca
+SIZE (rust/2021-12-02/rustc-1.57.0-x86_64-unknown-freebsd.tar.xz) = 44829204
+SHA256 (rust/2021-12-02/rust-std-1.57.0-x86_64-unknown-freebsd.tar.xz) = fde2cd6ede33b0a61e5d7b8aea2e84946aefc6784508821b02cf312691367531
+SIZE (rust/2021-12-02/rust-std-1.57.0-x86_64-unknown-freebsd.tar.xz) = 22048312
+SHA256 (rust/2021-12-02/cargo-1.57.0-x86_64-unknown-freebsd.tar.xz) = fc16b9401eb322bbd34ba990d1d6822ae2cabb31ad2fe56cab069383d9e4e42f
+SIZE (rust/2021-12-02/cargo-1.57.0-x86_64-unknown-freebsd.tar.xz) = 5349980
+SHA256 (rust/2021-12-02/rustc-1.57.0-armv6-unknown-freebsd.tar.xz) = 453aa01d61a9ebd181d174fb1d3770a25bb21c6efaf1eb3515b32a7302dbcd2d
+SIZE (rust/2021-12-02/rustc-1.57.0-armv6-unknown-freebsd.tar.xz) = 50036940
+SHA256 (rust/2021-12-02/rust-std-1.57.0-armv6-unknown-freebsd.tar.xz) = 440bce823b40abfb1c9a497e4e9798e4955db07d8092c51106a8ae338df94f6d
+SIZE (rust/2021-12-02/rust-std-1.57.0-armv6-unknown-freebsd.tar.xz) = 20057828
+SHA256 (rust/2021-12-02/cargo-1.57.0-armv6-unknown-freebsd.tar.xz) = d36b6e47df598e02e3bb3fda78c052d4ca7938eea78bcf8ad12813c1ff86cf74
+SIZE (rust/2021-12-02/cargo-1.57.0-armv6-unknown-freebsd.tar.xz) = 4655820
+SHA256 (rust/2021-12-02/rustc-1.57.0-armv7-unknown-freebsd.tar.xz) = a3f4273f77ba1b92ca98357566df12962f7a6a5fccc21c90058129d091f335c1
+SIZE (rust/2021-12-02/rustc-1.57.0-armv7-unknown-freebsd.tar.xz) = 50251684
+SHA256 (rust/2021-12-02/rust-std-1.57.0-armv7-unknown-freebsd.tar.xz) = 523dec227f60ec75d186a2b91032e10a79d0f49c4919df6b6193fe476efdc37d
+SIZE (rust/2021-12-02/rust-std-1.57.0-armv7-unknown-freebsd.tar.xz) = 20911364
+SHA256 (rust/2021-12-02/cargo-1.57.0-armv7-unknown-freebsd.tar.xz) = cd1fff41b3e15b29e2be50dd78aa747c4ad74b2ad3eab2f5756700a438a42b33
+SIZE (rust/2021-12-02/cargo-1.57.0-armv7-unknown-freebsd.tar.xz) = 4640496
+SHA256 (rust/2021-12-02/rustc-1.57.0-i686-unknown-freebsd.tar.xz) = 1db681e4c512a9982b0a237c708ecd74b1d9e50605fa1a7ef719f8998a0d4f53
+SIZE (rust/2021-12-02/rustc-1.57.0-i686-unknown-freebsd.tar.xz) = 54031364
+SHA256 (rust/2021-12-02/rust-std-1.57.0-i686-unknown-freebsd.tar.xz) = e014271ead0910971bffc5fe3bca2c3ee0f27e9e3b4e585284405cc729926fdc
+SIZE (rust/2021-12-02/rust-std-1.57.0-i686-unknown-freebsd.tar.xz) = 21912908
+SHA256 (rust/2021-12-02/cargo-1.57.0-i686-unknown-freebsd.tar.xz) = 911b0f8702e1f097a05f2e877205aea1786788836745fb073074a7b7fd5e34ea
+SIZE (rust/2021-12-02/cargo-1.57.0-i686-unknown-freebsd.tar.xz) = 5488972
+SHA256 (rust/2021-12-02/rustc-1.57.0-powerpc-unknown-freebsd.tar.xz) = 64788e7941ec3d8061987c316a31f7c1e865229581c0fa9c47375e5ce37f9d31
+SIZE (rust/2021-12-02/rustc-1.57.0-powerpc-unknown-freebsd.tar.xz) = 50523480
+SHA256 (rust/2021-12-02/rust-std-1.57.0-powerpc-unknown-freebsd.tar.xz) = f9b0760a736ff3c4fbf25ca3217abb493a9a09fbfd5c098e897ed8360148ebe5
+SIZE (rust/2021-12-02/rust-std-1.57.0-powerpc-unknown-freebsd.tar.xz) = 19872204
+SHA256 (rust/2021-12-02/cargo-1.57.0-powerpc-unknown-freebsd.tar.xz) = ac1846a53e6dae28bae80568a5e380d839e9c72ecb72a7aca067aa3dbef433f0
+SIZE (rust/2021-12-02/cargo-1.57.0-powerpc-unknown-freebsd.tar.xz) = 5101416
+SHA256 (rust/2021-12-02/rustc-1.57.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = f9992775ec99de1db97702df73c19352335407c99a91f0264ab506ded4a439af
+SIZE (rust/2021-12-02/rustc-1.57.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 59568592
+SHA256 (rust/2021-12-02/rust-std-1.57.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 2d2dbdd2fa93f220e12f772c73141ef954d9438ac996a85e8cf51d826cad0a29
+SIZE (rust/2021-12-02/rust-std-1.57.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 19940428
+SHA256 (rust/2021-12-02/cargo-1.57.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = ffd3c62850fcbcba4364d880ace33899e8aa03638ce72e8a53f9ea92547224dc
+SIZE (rust/2021-12-02/cargo-1.57.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 5153396
+SHA256 (rust/2021-12-02/rustc-1.57.0-powerpc64le-unknown-freebsd.tar.xz) = 8a5ab4a1dea568b3337e931507b2c728eb6de0f7b87e36a98e7b17d566f13a78
+SIZE (rust/2021-12-02/rustc-1.57.0-powerpc64le-unknown-freebsd.tar.xz) = 52114084
+SHA256 (rust/2021-12-02/rust-std-1.57.0-powerpc64le-unknown-freebsd.tar.xz) = 08af0d18ac8cbcd3b125a61d4f01bc0cf9b0efa7d18eb2b16fca9857a57a22b7
+SIZE (rust/2021-12-02/rust-std-1.57.0-powerpc64le-unknown-freebsd.tar.xz) = 20114788
+SHA256 (rust/2021-12-02/cargo-1.57.0-powerpc64le-unknown-freebsd.tar.xz) = a0006f594bd446e01c62868b2db7a40aac23ae694dfbfe9de89edf33f707989b
+SIZE (rust/2021-12-02/cargo-1.57.0-powerpc64le-unknown-freebsd.tar.xz) = 5092864
 SHA256 (rust/2021-12-02/rustc-1.57.0-riscv64gc-unknown-freebsd.tar.xz) = 7831ebf7d9b9c579d3e16e1b7b556a793d63a62f36636fba3b63ef2ed13c6872
 SIZE (rust/2021-12-02/rustc-1.57.0-riscv64gc-unknown-freebsd.tar.xz) = 141961976
 SHA256 (rust/2021-12-02/rust-std-1.57.0-riscv64gc-unknown-freebsd.tar.xz) = 3068b2f74537e5efcd293ebae7ce0e16bff92603cbc3ac5201ba3bb8e9ebe4ef
 SIZE (rust/2021-12-02/rust-std-1.57.0-riscv64gc-unknown-freebsd.tar.xz) = 27221940
 SHA256 (rust/2021-12-02/cargo-1.57.0-riscv64gc-unknown-freebsd.tar.xz) = c88fb84cd53349fcac5516f79b88f8b23ebdcbac40408719a112ef095068a95d
 SIZE (rust/2021-12-02/cargo-1.57.0-riscv64gc-unknown-freebsd.tar.xz) = 24413628
-SHA256 (rust/2021-10-21/rustc-1.56.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = b5f715c8b66e53ae3ef4a0dcd6fd70b033595316ded47c5b733c34408e8bf1e5
-SIZE (rust/2021-10-21/rustc-1.56.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 48308540
-SHA256 (rust/2021-10-21/rust-std-1.56.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 012200453f449bd1a5b7b43ccafe11fa6169b6bf3c009f5de689740a43bd39ec
-SIZE (rust/2021-10-21/rust-std-1.56.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 18631992
-SHA256 (rust/2021-10-21/cargo-1.56.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = b4d09cf715f0be1aa3a0d681e8e2f9de5d254422bb813bd5ed3a3d4df57823cd
-SIZE (rust/2021-10-21/cargo-1.56.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 4791156
+SHA256 (rust/2021-12-02/rustc-1.57.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 3cb08f51df429d0decfd32020ce2a68c92a8fe7dc52b32ab57f61955a91fcf8c
+SIZE (rust/2021-12-02/rustc-1.57.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 49856512
+SHA256 (rust/2021-12-02/rust-std-1.57.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 5ae8f118545c9ecf6c89f8f1358bd08cacd2b37d9ae0dc001c2ec05ce14d5321
+SIZE (rust/2021-12-02/rust-std-1.57.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 19848988
+SHA256 (rust/2021-12-02/cargo-1.57.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 662772c902e8512ef9a0c2b6e3543de511835c591bb374218d43141ac3f77546
+SIZE (rust/2021-12-02/cargo-1.57.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 4833052
diff --git a/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_freebsd11_mod.rs b/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_freebsd11_mod.rs
new file mode 100644
index 000000000000..bdde822353ff
--- /dev/null
+++ b/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_freebsd11_mod.rs
@@ -0,0 +1,12 @@
+--- vendor/libc-0.2.106/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs.orig	2021-11-29 20:27:33 UTC
++++ vendor/libc-0.2.106/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs
+@@ -217,7 +217,8 @@ extern "C" {
+ 
+ cfg_if! {
+     if #[cfg(any(target_arch = "x86_64",
+-                 target_arch = "aarch64"))] {
++                 target_arch = "aarch64",
++                 target_arch = "riscv64"))] {
+         mod b64;
+         pub use self::b64::*;
+     }
diff --git a/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_freebsd12_mod.rs b/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_freebsd12_mod.rs
new file mode 100644
index 000000000000..bde4f77fac49
--- /dev/null
+++ b/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_freebsd12_mod.rs
@@ -0,0 +1,12 @@
+--- vendor/libc-0.2.106/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs.orig	2021-11-29 20:27:33 UTC
++++ vendor/libc-0.2.106/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs
+@@ -241,7 +241,8 @@ extern "C" {
+ 
+ cfg_if! {
+     if #[cfg(any(target_arch = "x86_64",
+-                 target_arch = "aarch64"))] {
++                 target_arch = "aarch64",
++                 target_arch = "riscv64"))] {
+         mod b64;
+         pub use self::b64::*;
+     }
diff --git a/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_freebsd13_mod.rs b/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_freebsd13_mod.rs
new file mode 100644
index 000000000000..3dda6014eeb2
--- /dev/null
+++ b/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_freebsd13_mod.rs
@@ -0,0 +1,12 @@
+--- vendor/libc-0.2.106/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs.orig	2021-11-29 20:27:33 UTC
++++ vendor/libc-0.2.106/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs
+@@ -271,7 +271,8 @@ extern "C" {
+ 
+ cfg_if! {
+     if #[cfg(any(target_arch = "x86_64",
+-                 target_arch = "aarch64"))] {
++                 target_arch = "aarch64",
++                 target_arch = "riscv64"))] {
+         mod b64;
+         pub use self::b64::*;
+     }
diff --git a/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_mod.rs b/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_mod.rs
new file mode 100644
index 000000000000..371806f231de
--- /dev/null
+++ b/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_mod.rs
@@ -0,0 +1,12 @@
+--- vendor/libc-0.2.106/src/unix/bsd/freebsdlike/freebsd/mod.rs.orig	2021-11-29 20:27:33 UTC
++++ vendor/libc-0.2.106/src/unix/bsd/freebsdlike/freebsd/mod.rs
+@@ -2021,6 +2021,9 @@ cfg_if! {
+     } else if #[cfg(target_arch = "powerpc")] {
+         mod powerpc;
+         pub use self::powerpc::*;
++    } else if #[cfg(target_arch = "riscv64")] {
++        mod riscv64;
++        pub use self::riscv64::*;
+     } else {
+         // Unknown target_arch
+     }
diff --git a/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_riscv64.rs b/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_riscv64.rs
new file mode 100644
index 000000000000..57f82315c60d
--- /dev/null
+++ b/lang/rust/files/riscv64/patch-vendor_libc-0.2.106_src_unix_bsd_freebsdlike_freebsd_riscv64.rs
@@ -0,0 +1,157 @@
+--- vendor/libc-0.2.106/src/unix/bsd/freebsdlike/freebsd/riscv64.rs.orig	2021-11-05 13:41:21 UTC
++++ vendor/libc-0.2.106/src/unix/bsd/freebsdlike/freebsd/riscv64.rs
+@@ -0,0 +1,154 @@
++pub type c_char = u8;
++pub type c_long = i64;
++pub type c_ulong = u64;
++pub type wchar_t = ::c_int;
++pub type time_t = i64;
++pub type suseconds_t = ::c_long;
++pub type register_t = i64;
++
++// should be pub(crate), but that requires Rust 1.18.0
++cfg_if! {
++    if #[cfg(libc_const_size_of)] {
++        #[doc(hidden)]
++        pub const _ALIGNBYTES: usize = ::mem::size_of::<::c_longlong>() - 1;
++    } else {
++        #[doc(hidden)]
++        pub const _ALIGNBYTES: usize = 8 - 1;
++    }
++}
++
++s_no_extra_traits! {
++    pub struct gpregs {
++        pub gp_ra: ::register_t,
++        pub gp_sp: ::register_t,
++        pub gp_gp: ::register_t,
++        pub gp_tp: ::register_t,
++        pub gp_t: [::register_t; 7],
++        pub gp_s: [::register_t; 12],
++        pub gp_a: [::register_t; 8],
++        pub gp_sepc: ::register_t,
++        pub gp_sstatus: ::register_t,
++    }
++
++    pub struct fpregs {
++        pub fp_x: [[::register_t; 2]; 32],
++        pub fp_fcsr: ::register_t,
++        pub fp_flags: ::c_int,
++        pub fp_pad: ::c_int,
++    }
++
++    pub struct mcontext_t {
++        pub mc_gpregs: gpregs,
++        pub mc_fpregs: fpregs,
++        pub mc_flags: ::c_int,
++        pub mc_pad: ::c_int,
++        pub mc_spare: [u64; 8],
++    }
++}
++
++cfg_if! {
++    if #[cfg(feature = "extra_traits")] {
++        impl PartialEq for gpregs {
++            fn eq(&self, other: &gpregs) -> bool {
++                self.gp_ra == other.gp_ra &&
++                self.gp_sp == other.gp_sp &&
++                self.gp_gp == other.gp_gp &&
++                self.gp_tp == other.gp_tp &&
++                self.gp_t.iter().zip(other.gp_t.iter()).all(|(a, b)| a == b) &&
++                self.gp_s.iter().zip(other.gp_s.iter()).all(|(a, b)| a == b) &&
++                self.gp_a.iter().zip(other.gp_a.iter()).all(|(a, b)| a == b) &&
++                self.gp_sepc == other.gp_sepc &&
++                self.gp_sstatus == other.gp_sstatus
++            }
++        }
++        impl Eq for gpregs {}
++        impl ::fmt::Debug for gpregs {
++            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
++                f.debug_struct("gpregs")
++                    .field("gp_ra", &self.gp_ra)
++                    .field("gp_sp", &self.gp_sp)
++                    .field("gp_gp", &self.gp_gp)
++                    .field("gp_tp", &self.gp_tp)
++                    .field("gp_t", &self.gp_t)
++                    .field("gp_s", &self.gp_s)
++                    .field("gp_a", &self.gp_a)
++                    .field("gp_sepc", &self.gp_sepc)
++                    .field("gp_sstatus", &self.gp_sstatus)
++                    .finish()
++            }
++        }
++        impl ::hash::Hash for gpregs {
++            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
++                self.gp_ra.hash(state);
++                self.gp_sp.hash(state);
++                self.gp_gp.hash(state);
++                self.gp_tp.hash(state);
++                self.gp_t.hash(state);
++                self.gp_s.hash(state);
++                self.gp_a.hash(state);
++                self.gp_sepc.hash(state);
++                self.gp_sstatus.hash(state);
++            }
++        }
++        impl PartialEq for fpregs {
++            fn eq(&self, other: &fpregs) -> bool {
++                self.fp_x == other.fp_x &&
++                self.fp_fcsr == other.fp_fcsr &&
++                self.fp_flags == other.fp_flags &&
++                self.fp_pad == other.fp_pad
++            }
++        }
++        impl Eq for fpregs {}
++        impl ::fmt::Debug for fpregs {
++            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
++                f.debug_struct("fpregs")
++                    .field("fp_x", &self.fp_x)
++                    .field("fp_fcsr", &self.fp_fcsr)
++                    .field("fp_flags", &self.fp_flags)
++                    .field("fp_pad", &self.fp_pad)
++                    .finish()
++            }
++        }
++        impl ::hash::Hash for fpregs {
++            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
++                self.fp_x.hash(state);
++                self.fp_fcsr.hash(state);
++                self.fp_flags.hash(state);
++                self.fp_pad.hash(state);
++            }
++        }
++        impl PartialEq for mcontext_t {
++            fn eq(&self, other: &mcontext_t) -> bool {
++                self.mc_gpregs == other.mc_gpregs &&
++                self.mc_fpregs == other.mc_fpregs &&
++                self.mc_flags == other.mc_flags &&
++                self.mc_pad == other.mc_pad &&
++                self.mc_spare.iter().zip(other.mc_spare.iter()).all(|(a, b)| a == b)
++            }
++        }
++        impl Eq for mcontext_t {}
++        impl ::fmt::Debug for mcontext_t {
++            fn fmt(&self, f: &mut ::fmt::Formatter) -> ::fmt::Result {
++                f.debug_struct("mcontext_t")
++                    .field("mc_gpregs", &self.mc_gpregs)
++                    .field("mc_fpregs", &self.mc_fpregs)
++                    .field("mc_flags", &self.mc_flags)
++                    .field("mc_pad", &self.mc_pad)
++                    .field("mc_spare", &self.mc_spare)
++                    .finish()
++            }
++        }
++        impl ::hash::Hash for mcontext_t {
++            fn hash<H: ::hash::Hasher>(&self, state: &mut H) {
++                self.mc_gpregs.hash(state);
++                self.mc_fpregs.hash(state);
++                self.mc_flags.hash(state);
++                self.mc_pad.hash(state);
++                self.mc_spare.hash(state);
++            }
++        }
++    }
++}
++
++pub const MAP_32BIT: ::c_int = 0x00080000;
++pub const MINSIGSTKSZ: ::size_t = 4096; // 1024 * 4