aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikael Urankar <mikael@FreeBSD.org>2022-05-01 15:40:06 +0000
committerMikael Urankar <mikael@FreeBSD.org>2022-05-01 16:39:19 +0000
commite57dfbf32324ca40f17bb6c4a10581e6a06ab00b (patch)
tree92a22758ee80a6e7de0ce3c6659f87ee2166b069
parent17ad2e0d3c07a5a0b6b6bfe86b12b85bcd15a7f0 (diff)
downloadports-e57dfbf32324ca40f17bb6c4a10581e6a06ab00b.tar.gz
ports-e57dfbf32324ca40f17bb6c4a10581e6a06ab00b.zip
lang/rust: Update to 1.60.0
- Switch to using "x.py dist" instead of "x.py build" in the do-build phase as we are missing the rustc-dev component on nightly - Revert part of [1] as it causes cross build problem with lang/rust-bootstrap@powerpc - Mark devel/racer as deprecated: it's hard to maintain due to recurrent build problem and it's not actively maintained. Upstream advises to use devel/rust-analyzer instead. [1] https://github.com/rust-lang/rust/commit/07dae5a97b64100f5abd511f1e2d5a6263a54006 Announce: https://blog.rust-lang.org/2022/04/07/Rust-1.60.0.html ChangeLog: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1600-2022-04-07 Reviewed by: tobik Exp-run by: antoine Differential Revision: https://reviews.freebsd.org/D34823
-rw-r--r--Mk/Uses/cargo.mk2
-rw-r--r--Mk/bsd.gecko.mk2
-rw-r--r--devel/racer/Makefile4
-rw-r--r--lang/rust-bootstrap/Makefile2
-rw-r--r--lang/rust-bootstrap/distinfo6
-rw-r--r--lang/rust/Makefile67
-rw-r--r--lang/rust/distinfo126
-rw-r--r--lang/rust/files/patch-src_bootstrap_native.rs15
-rw-r--r--lang/rust/files/patch-src_llvm-project_compiler-rt_lib_builtins_cpu__model.c19
-rw-r--r--lang/rust/files/powerpc/patch-vendor_rustc__ap__rustc__target_src_spec_mod.rs10
-rw-r--r--lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_freebsd11_mod.rs12
-rw-r--r--lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_freebsd12_mod.rs12
-rw-r--r--lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_freebsd13_mod.rs12
-rw-r--r--lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_mod.rs12
-rw-r--r--lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_riscv64.rs157
-rw-r--r--lang/rust/files/riscv64/patch-vendor_rustc__ap__rustc__target_src_spec_mod.rs9
16 files changed, 139 insertions, 328 deletions
diff --git a/Mk/Uses/cargo.mk b/Mk/Uses/cargo.mk
index 4d4a0921abfc..39a36af7af9b 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.59.0:lang/${RUST_DEFAULT}
+BUILD_DEPENDS+= ${RUST_DEFAULT}>=1.60.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 4997aa86031a..f73b6fb7eb8f 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.19.0:devel/rust-cbindgen \
- ${RUST_DEFAULT}>=1.59.0:lang/${RUST_DEFAULT} \
+ ${RUST_DEFAULT}>=1.60.0:lang/${RUST_DEFAULT} \
node:www/node
LIB_DEPENDS+= libdrm.so:graphics/libdrm
RUN_DEPENDS+= ${LOCALBASE}/lib/libpci.so:devel/libpci
diff --git a/devel/racer/Makefile b/devel/racer/Makefile
index 060f822e5663..3b41d4d37c20 100644
--- a/devel/racer/Makefile
+++ b/devel/racer/Makefile
@@ -13,6 +13,10 @@ COMMENT= Rust code completion helper
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE-MIT
+BROKEN= fails to build: unknown feature thread_local_const_init
+DEPRECATED= Racer is not actively developped now. Please consider using newer software such as devel/rust-analyzer.
+EXPIRATION_DATE=2022-06-30
+
USES= cargo
CARGO_CRATES= aho-corasick-0.7.10 \
annotate-snippets-0.8.0 \
diff --git a/lang/rust-bootstrap/Makefile b/lang/rust-bootstrap/Makefile
index 4909139bc831..d12f6315322b 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.59.0
+PORTVERSION= 1.60.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 be2225716a59..bc0fd399a54a 100644
--- a/lang/rust-bootstrap/distinfo
+++ b/lang/rust-bootstrap/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1646648374
-SHA256 (rust/rustc-1.59.0-src.tar.xz) = 375996ead731cab2203ec10a66a3c4568ab6997d7e5d3ae597658164fe27be3d
-SIZE (rust/rustc-1.59.0-src.tar.xz) = 128942756
+TIMESTAMP = 1649150849
+SHA256 (rust/rustc-1.60.0-src.tar.xz) = a025876deccbcb3f288d8e02623ea321f94623f31305d3c5c6f17855bb9685db
+SIZE (rust/rustc-1.60.0-src.tar.xz) = 136183048
diff --git a/lang/rust/Makefile b/lang/rust/Makefile
index 17793efc96b7..63cbce92cd92 100644
--- a/lang/rust/Makefile
+++ b/lang/rust/Makefile
@@ -1,13 +1,12 @@
# Created by: Jyun-Yan You <jyyou@cs.nctu.edu.tw>
PORTNAME= rust
-PORTVERSION?= 1.59.0
+PORTVERSION?= 1.60.0
PORTREVISION?= 0
CATEGORIES= lang
MASTER_SITES= https://static.rust-lang.org/dist/:src \
https://dev-static.rust-lang.org/dist/:src \
- LOCAL/tobik/rust:bootstrap \
- LOCAL/mikael/rust:bootstrap \
+ LOCAL/rust:bootstrap \
https://static.rust-lang.org/dist/:bootstrap
DISTNAME?= ${PORTNAME}c-${PORTVERSION}-src
DISTFILES?= ${NIGHTLY_DATE:D${NIGHTLY_DATE}/}${DISTNAME}${EXTRACT_SUFX}:src \
@@ -32,7 +31,7 @@ ONLY_FOR_ARCHS_REASON?= requires prebuilt bootstrap compiler
BUILD_DEPENDS= cmake:devel/cmake
LIB_DEPENDS= libcurl.so:ftp/curl
-USES= cpe ninja:build pkgconfig python:3.6+,build ssl tar:xz
+USES= cpe ninja:build pkgconfig python:3.7+,build shebangfix ssl tar:xz
CPE_VENDOR= rust-lang
@@ -52,7 +51,7 @@ TMPDIR?= ${WRKDIR}
OPTIONS_DEFINE= DOCS GDB SOURCES WASM
OPTIONS_DEFAULT= SOURCES WASM
-OPTIONS_EXCLUDE_armv6= DOCS
+OPTIONS_EXCLUDE= DOCS # https://github.com/rust-lang/rust/issues/76526
GDB_DESC= Install ports gdb (necessary for debugging rust programs)
SOURCES_DESC= Install source files
@@ -61,14 +60,16 @@ WASM_DESC= Build the WebAssembly target (wasm32-unknown-unknown)
DOCS_VARS= _RUST_BUILD_DOCS=true
DOCS_VARS_OFF= _RUST_BUILD_DOCS=false
GDB_RUN_DEPENDS= ${LOCALBASE}/bin/gdb:devel/gdb
-SOURCES_VARS= _RUST_TOOLS+=src
-WASM_VARS= _RUST_BUILD_WASM=true \
+SOURCES_VARS= _COMPONENTS+=rust-src-${_PACKAGE_VERS} \
+ _RUST_TOOLS+=src
+WASM_VARS= _COMPONENTS+="rust-analysis-${_PACKAGE_VERS}-wasm32-unknown-unknown rust-std-${_PACKAGE_VERS}-wasm32-unknown-unknown" \
+ _RUST_BUILD_WASM=true \
_RUST_TARGETS+=wasm32-unknown-unknown
WASM_VARS_OFF= _RUST_BUILD_WASM=false
# See WRKSRC/src/stage0.json for the date and version values
-BOOTSTRAPS_DATE?= 2022-01-20
-RUST_BOOTSTRAP_VERSION?= 1.58.1
+BOOTSTRAPS_DATE?= 2022-02-24
+RUST_BOOTSTRAP_VERSION?= 1.59.0
BOOTSTRAPS_SUFFIX?= ${BOOTSTRAPS_SUFFIX_${ARCH}}
BOOTSTRAPS_SUFFIX_powerpc64?= -${PPC_ABI:tl}
@@ -87,6 +88,19 @@ _RUSTC_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rustc-${RUST_BO
_RUST_STD_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${_RUST_TARGET}
_CARGO_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/cargo-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${_RUST_TARGET}
+_PACKAGE_VERS= ${NIGHTLY_DATE:?nightly:${PORTVERSION}}
+_COMPONENTS+= cargo-${_PACKAGE_VERS}-${_RUST_TARGET} \
+ clippy-${_PACKAGE_VERS}-${_RUST_TARGET} \
+ rustc-${_PACKAGE_VERS}-${_RUST_TARGET} \
+ rustfmt-${_PACKAGE_VERS}-${_RUST_TARGET} \
+ rust-analysis-${_PACKAGE_VERS}-${_RUST_TARGET} \
+ rust-std-${_PACKAGE_VERS}-${_RUST_TARGET}
+
+# https://github.com/bjorn3/rustc_codegen_cranelift/commit/83d470d91c15d0cb5890705291e6ee9e5be8a842
+# https://github.com/rust-lang/rustc_codegen_gcc/pull/160
+SHEBANG_FILES= compiler/rustc_codegen_cranelift/scripts/* \
+ compiler/rustc_codegen_gcc/*.sh compiler/rustc_codegen_gcc/build_sysroot/*.sh
+
.include <bsd.port.pre.mk>
.if ${OPSYS} != FreeBSD
@@ -98,8 +112,19 @@ IGNORE= is only for FreeBSD
BUILD_DEPENDS+= ld.bfd:devel/binutils
.else
MAKE_ENV+= RUST_BACKTRACE=1
-# rls needs 64-bit atomics
+.endif
+
+# rls doesn't build on rust nightly
+# rls needs 64-bit atomics: it doesn't build on powerpc
+.if !defined(NIGHTLY_DATE) && ${ARCH} != powerpc
_RUST_TOOLS+= rls
+_COMPONENTS+= rls-${_PACKAGE_VERS}-${_RUST_TARGET}
+.endif
+
+# per https://rust-lang.github.io/rustup/concepts/components.html
+# rustc-dev is only usefull on nightly
+.if defined(NIGHTLY_DATE)
+_COMPONENTS+= rustc-dev-${_PACKAGE_VERS}-${_RUST_TARGET}
.endif
.if exists(${PATCHDIR}/${ARCH}${BOOTSTRAPS_SUFFIX})
@@ -238,20 +263,30 @@ do-configure:
do-build:
@cd ${WRKSRC} && \
- ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} x.py build --jobs=${MAKE_JOBS_NUMBER}
+ ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} x.py dist --jobs=${MAKE_JOBS_NUMBER}
do-install:
- @cd ${WRKSRC} && \
- ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} x.py install --jobs=${MAKE_JOBS_NUMBER}
+ ${RM} -r ${WRKDIR}/_extractdist
+.for _c in ${_COMPONENTS}
+ ${MKDIR} ${WRKDIR}/_extractdist
+ ${TAR} xf ${WRKDIR}/_build/dist/${_c}.tar.xz -C ${WRKDIR}/_extractdist
+ cd ${WRKDIR}/_extractdist/${_c} && \
+ ${SH} install.sh \
+ --docdir="${STAGEDIR}${DOCSDIR}" \
+ --mandir="${STAGEDIR}${PREFIX}/share/man" \
+ --prefix="${STAGEDIR}${PREFIX}"
+ ${RM} -r ${WRKDIR}/_extractdist
+.endfor
+
# We autogenerate the plist file. We do that, instead of the
# regular pkg-plist, because several libraries have a computed
# filename based on the absolute path of the source files. As it
# is user-specific, we cannot know their filename in advance.
- @${RM} -r ${STAGEDIR}${DOCSDIR}/*.old \
- ${STAGEDIR}${DOCSDIR}/html/.lock \
- ${STAGEDIR}${DOCSDIR}/html/.stamp \
+ @${RM} ${STAGEDIR}${DOCSDIR}/*.old \
+ ${STAGEDIR}${PREFIX}/lib/rustlib/components \
${STAGEDIR}${PREFIX}/lib/rustlib/install.log \
${STAGEDIR}${PREFIX}/lib/rustlib/manifest-* \
+ ${STAGEDIR}${PREFIX}/lib/rustlib/rust-installer-version \
${STAGEDIR}${PREFIX}/lib/rustlib/uninstall.sh
@${FIND} ${STAGEDIR}${PREFIX}/bin ${STAGEDIR}${PREFIX}/lib \
${STAGEDIR}${PREFIX}/libexec -exec ${FILE} -i {} + | \
diff --git a/lang/rust/distinfo b/lang/rust/distinfo
index d2f99eadfe64..da9267f9cf77 100644
--- a/lang/rust/distinfo
+++ b/lang/rust/distinfo
@@ -1,63 +1,63 @@
-TIMESTAMP = 1646648477
-SHA256 (rust/rustc-1.59.0-src.tar.xz) = 375996ead731cab2203ec10a66a3c4568ab6997d7e5d3ae597658164fe27be3d
-SIZE (rust/rustc-1.59.0-src.tar.xz) = 128942756
-SHA256 (rust/2022-01-20/rustc-1.58.1-aarch64-unknown-freebsd.tar.xz) = e34a7a90f31326ef0d7a56c4df61205ffad91ecefab192f79a8f50759aa86f64
-SIZE (rust/2022-01-20/rustc-1.58.1-aarch64-unknown-freebsd.tar.xz) = 49629860
-SHA256 (rust/2022-01-20/rust-std-1.58.1-aarch64-unknown-freebsd.tar.xz) = 40a8430d595ec0fa5f2b0889069bb4b74e8550be76445f699422e136e98f13ed
-SIZE (rust/2022-01-20/rust-std-1.58.1-aarch64-unknown-freebsd.tar.xz) = 22066068
-SHA256 (rust/2022-01-20/cargo-1.58.1-aarch64-unknown-freebsd.tar.xz) = dbd317208a43f6437cc6d0637e4495b83541595b695156dfd70c41abcb0d9ef8
-SIZE (rust/2022-01-20/cargo-1.58.1-aarch64-unknown-freebsd.tar.xz) = 4563964
-SHA256 (rust/2022-01-20/rustc-1.58.1-x86_64-unknown-freebsd.tar.xz) = 78fc6d5abaae2e7d05c3570c464e3026ea02040e28e5595561a3200f251000f9
-SIZE (rust/2022-01-20/rustc-1.58.1-x86_64-unknown-freebsd.tar.xz) = 44721628
-SHA256 (rust/2022-01-20/rust-std-1.58.1-x86_64-unknown-freebsd.tar.xz) = a2d0b510b421de864ee7cd2b3b803b8f843605fbf19d9daf49dc9b3ccae0a641
-SIZE (rust/2022-01-20/rust-std-1.58.1-x86_64-unknown-freebsd.tar.xz) = 22227776
-SHA256 (rust/2022-01-20/cargo-1.58.1-x86_64-unknown-freebsd.tar.xz) = d958dad7ebcf4c2a6cba8cea7ef1add8c3928715dcfbb73aa7a7a5992f53077f
-SIZE (rust/2022-01-20/cargo-1.58.1-x86_64-unknown-freebsd.tar.xz) = 5296884
-SHA256 (rust/2022-01-20/rustc-1.58.1-armv6-unknown-freebsd.tar.xz) = 593ca881e40b907f6b09d346ebfb42dc16c4f450a5ac6c7d2a0381b416456196
-SIZE (rust/2022-01-20/rustc-1.58.1-armv6-unknown-freebsd.tar.xz) = 50451208
-SHA256 (rust/2022-01-20/rust-std-1.58.1-armv6-unknown-freebsd.tar.xz) = fd4009b30db0212b91481597ea2054ea24323bf0e3a755190c1527dc1f78f4de
-SIZE (rust/2022-01-20/rust-std-1.58.1-armv6-unknown-freebsd.tar.xz) = 20316724
-SHA256 (rust/2022-01-20/cargo-1.58.1-armv6-unknown-freebsd.tar.xz) = 75016cf2d3ee35f9f74aade08ffaf870286d5a4012b1ea3af69358a9102627c0
-SIZE (rust/2022-01-20/cargo-1.58.1-armv6-unknown-freebsd.tar.xz) = 4600584
-SHA256 (rust/2022-01-20/rustc-1.58.1-armv7-unknown-freebsd.tar.xz) = bc4e1fa2905639d5989127f668bf3a54498bcc80b54848270c0ae246c7dbce19
-SIZE (rust/2022-01-20/rustc-1.58.1-armv7-unknown-freebsd.tar.xz) = 50293136
-SHA256 (rust/2022-01-20/rust-std-1.58.1-armv7-unknown-freebsd.tar.xz) = 9add6afedee77c8e65608c3fefa7d7bb2d7eee22763fd9562ffdf9bbcb8311c3
-SIZE (rust/2022-01-20/rust-std-1.58.1-armv7-unknown-freebsd.tar.xz) = 21240724
-SHA256 (rust/2022-01-20/cargo-1.58.1-armv7-unknown-freebsd.tar.xz) = 10d412dd707ecfa656fe4e9f3e08f92a4c396dffedcfabb10405b0bafb0849c2
-SIZE (rust/2022-01-20/cargo-1.58.1-armv7-unknown-freebsd.tar.xz) = 4588676
-SHA256 (rust/2022-01-20/rustc-1.58.1-i686-unknown-freebsd.tar.xz) = 1a50ddeefb20da5851c665465869202bb6f762988a7bf523950418d3f4049c84
-SIZE (rust/2022-01-20/rustc-1.58.1-i686-unknown-freebsd.tar.xz) = 53748856
-SHA256 (rust/2022-01-20/rust-std-1.58.1-i686-unknown-freebsd.tar.xz) = 248a070d8a4f8ab87c323476c709d7db83118bdb8b3b32c1f787092941dc3bae
-SIZE (rust/2022-01-20/rust-std-1.58.1-i686-unknown-freebsd.tar.xz) = 22017868
-SHA256 (rust/2022-01-20/cargo-1.58.1-i686-unknown-freebsd.tar.xz) = 885da898ea041d8f108a2678ed0c5e0a88e3f914231fccc0c74f5193e450aca2
-SIZE (rust/2022-01-20/cargo-1.58.1-i686-unknown-freebsd.tar.xz) = 5454892
-SHA256 (rust/2022-01-20/rustc-1.58.1-powerpc-unknown-freebsd.tar.xz) = 9f3a19cb004ed98fb1773b0b85dbd0b613ca9ac88cc64617be93ed8f10027304
-SIZE (rust/2022-01-20/rustc-1.58.1-powerpc-unknown-freebsd.tar.xz) = 51339132
-SHA256 (rust/2022-01-20/rust-std-1.58.1-powerpc-unknown-freebsd.tar.xz) = e0ec787bc6122402df83bc58854ea0adc141476c611d7d5a820d74d37cee0da6
-SIZE (rust/2022-01-20/rust-std-1.58.1-powerpc-unknown-freebsd.tar.xz) = 19986132
-SHA256 (rust/2022-01-20/cargo-1.58.1-powerpc-unknown-freebsd.tar.xz) = f9f363c90b61857d7166f07ab105ddfbb8834feb2391a234577688085efcd1b2
-SIZE (rust/2022-01-20/cargo-1.58.1-powerpc-unknown-freebsd.tar.xz) = 5044396
-SHA256 (rust/2022-01-20/rustc-1.58.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 41a65df771fbdb707f397c46051494b6643bc372ccba5e00d85fd243f58ae9a8
-SIZE (rust/2022-01-20/rustc-1.58.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 59874020
-SHA256 (rust/2022-01-20/rust-std-1.58.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 235a1882af9f82c8be19561705fa42826485540eb5e12f877a01d77849bfcd5f
-SIZE (rust/2022-01-20/rust-std-1.58.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 20142520
-SHA256 (rust/2022-01-20/cargo-1.58.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 9dcc2ed48ea9c5195b4bcbec8bdbad9107f422ef2d94fb6581c639d91f60f757
-SIZE (rust/2022-01-20/cargo-1.58.1-powerpc64-unknown-freebsd-elfv1.tar.xz) = 5124252
-SHA256 (rust/2022-01-20/rustc-1.58.1-powerpc64le-unknown-freebsd.tar.xz) = a4dcc3cb8dba4bd683a39410abde7142cfbd01a210721d065891fa9722d6a94a
-SIZE (rust/2022-01-20/rustc-1.58.1-powerpc64le-unknown-freebsd.tar.xz) = 51876588
-SHA256 (rust/2022-01-20/rust-std-1.58.1-powerpc64le-unknown-freebsd.tar.xz) = 70620d17631dc2224aa33e731d34a258f01f8011a4b977e4bcb39f7eca21b37f
-SIZE (rust/2022-01-20/rust-std-1.58.1-powerpc64le-unknown-freebsd.tar.xz) = 20287396
-SHA256 (rust/2022-01-20/cargo-1.58.1-powerpc64le-unknown-freebsd.tar.xz) = 5f0393765a6fd7f131f7f161d9036486e5fbae23a49717e21cc88b86949e64f7
-SIZE (rust/2022-01-20/cargo-1.58.1-powerpc64le-unknown-freebsd.tar.xz) = 5035344
-SHA256 (rust/2022-01-20/rustc-1.58.1-riscv64gc-unknown-freebsd.tar.xz) = 30e83e1682819d0dd0af59a657c7c9e43a0ab12c65e895450bc4c6217644567a
-SIZE (rust/2022-01-20/rustc-1.58.1-riscv64gc-unknown-freebsd.tar.xz) = 146101152
-SHA256 (rust/2022-01-20/rust-std-1.58.1-riscv64gc-unknown-freebsd.tar.xz) = 996617dbf439fbbaeeaf561f8df2384f6911ed3a5f37aac5299d7c2fe7c04d59
-SIZE (rust/2022-01-20/rust-std-1.58.1-riscv64gc-unknown-freebsd.tar.xz) = 27900440
-SHA256 (rust/2022-01-20/cargo-1.58.1-riscv64gc-unknown-freebsd.tar.xz) = 1fadc4457e169c5adf9226bd39e3baa429c19934d66d35082fccf12d36177d23
-SIZE (rust/2022-01-20/cargo-1.58.1-riscv64gc-unknown-freebsd.tar.xz) = 25171860
-SHA256 (rust/2022-01-20/rustc-1.58.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = f51bbce85904167eb3140fd338c0db1461d773a12816eda5a9e23d99e7d43858
-SIZE (rust/2022-01-20/rustc-1.58.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 49776472
-SHA256 (rust/2022-01-20/rust-std-1.58.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = f66dc338c191603a84b8c2765035a3de0e8ea24720448ca708d75a318464a79e
-SIZE (rust/2022-01-20/rust-std-1.58.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 20119252
-SHA256 (rust/2022-01-20/cargo-1.58.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 125db61c8bcd860b31250bc621bc4899cc7a35f6a320f2bf55887580af5019c6
-SIZE (rust/2022-01-20/cargo-1.58.1-powerpc64-unknown-freebsd-elfv2.tar.xz) = 4773656
+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
diff --git a/lang/rust/files/patch-src_bootstrap_native.rs b/lang/rust/files/patch-src_bootstrap_native.rs
new file mode 100644
index 000000000000..7638edc6f734
--- /dev/null
+++ b/lang/rust/files/patch-src_bootstrap_native.rs
@@ -0,0 +1,15 @@
+Revert part of [1] as it causes cross build problem with lang/rust-bootstrap@powerpc
+
+[1] https://github.com/rust-lang/rust/commit/07dae5a97b64100f5abd511f1e2d5a6263a54006
+
+--- src/bootstrap/native.rs.orig 2022-04-13 15:53:33.692586000 +0200
++++ src/bootstrap/native.rs 2022-04-13 15:53:47.191939000 +0200
+@@ -318,7 +318,7 @@ impl Step for Llvm {
+
+ // Workaround for ppc32 lld limitation
+ if target == "powerpc-unknown-freebsd" {
+- ldflags.exe.push(" -fuse-ld=bfd");
++ cfg.define("CMAKE_EXE_LINKER_FLAGS", "-fuse-ld=bfd");
+ }
+
+ // https://llvm.org/docs/HowToCrossCompileLLVM.html
diff --git a/lang/rust/files/patch-src_llvm-project_compiler-rt_lib_builtins_cpu__model.c b/lang/rust/files/patch-src_llvm-project_compiler-rt_lib_builtins_cpu__model.c
deleted file mode 100644
index 714cb844ceb4..000000000000
--- a/lang/rust/files/patch-src_llvm-project_compiler-rt_lib_builtins_cpu__model.c
+++ /dev/null
@@ -1,19 +0,0 @@
-https://reviews.llvm.org/D109330
-
---- src/llvm-project/compiler-rt/lib/builtins/cpu_model.c.orig 2021-07-12 08:53:30 UTC
-+++ src/llvm-project/compiler-rt/lib/builtins/cpu_model.c
-@@ -775,8 +775,14 @@ _Bool __aarch64_have_lse_atomics
- #define HWCAP_ATOMICS (1 << 8)
- #endif
- static void CONSTRUCTOR_ATTRIBUTE init_have_lse_atomics(void) {
-+#if defined(__FreeBSD__)
-+ unsigned long hwcap;
-+ int result = elf_aux_info(AT_HWCAP, &hwcap, sizeof hwcap);
-+ __aarch64_have_lse_atomics = result == 0 && (hwcap & HWCAP_ATOMICS) != 0;
-+#else
- unsigned long hwcap = getauxval(AT_HWCAP);
- __aarch64_have_lse_atomics = (hwcap & HWCAP_ATOMICS) != 0;
-+#endif
- }
- #endif // defined(__has_include)
- #endif // __has_include(<sys/auxv.h>)
diff --git a/lang/rust/files/powerpc/patch-vendor_rustc__ap__rustc__target_src_spec_mod.rs b/lang/rust/files/powerpc/patch-vendor_rustc__ap__rustc__target_src_spec_mod.rs
deleted file mode 100644
index 7f951fb9a43e..000000000000
--- a/lang/rust/files/powerpc/patch-vendor_rustc__ap__rustc__target_src_spec_mod.rs
+++ /dev/null
@@ -1,10 +0,0 @@
---- vendor/rustc-ap-rustc_target/src/spec/mod.rs.orig 2021-04-24 18:21:48.422522000 -0500
-+++ vendor/rustc-ap-rustc_target/src/spec/mod.rs 2021-04-24 18:22:21.105142000 -0500
-@@ -684,6 +684,7 @@ supported_targets! {
- ("armv6-unknown-freebsd", armv6_unknown_freebsd),
- ("armv7-unknown-freebsd", armv7_unknown_freebsd),
- ("i686-unknown-freebsd", i686_unknown_freebsd),
-+ ("powerpc-unknown-freebsd", powerpc_unknown_freebsd),
- ("powerpc64-unknown-freebsd", powerpc64_unknown_freebsd),
- ("x86_64-unknown-freebsd", x86_64_unknown_freebsd),
-
diff --git a/lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_freebsd11_mod.rs b/lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_freebsd11_mod.rs
deleted file mode 100644
index 4427d55ed653..000000000000
--- a/lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_freebsd11_mod.rs
+++ /dev/null
@@ -1,12 +0,0 @@
---- vendor/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd11/mod.rs.orig 2021-11-29 20:27:33 UTC
-+++ vendor/libc-0.2.108/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.108_src_unix_bsd_freebsdlike_freebsd_freebsd12_mod.rs b/lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_freebsd12_mod.rs
deleted file mode 100644
index 18f866da36eb..000000000000
--- a/lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_freebsd12_mod.rs
+++ /dev/null
@@ -1,12 +0,0 @@
---- vendor/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs.orig 2021-11-29 20:27:33 UTC
-+++ vendor/libc-0.2.108/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.108_src_unix_bsd_freebsdlike_freebsd_freebsd13_mod.rs b/lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_freebsd13_mod.rs
deleted file mode 100644
index 5bf019e846eb..000000000000
--- a/lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_freebsd13_mod.rs
+++ /dev/null
@@ -1,12 +0,0 @@
---- vendor/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs.orig 2021-11-29 20:27:33 UTC
-+++ vendor/libc-0.2.108/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.108_src_unix_bsd_freebsdlike_freebsd_mod.rs b/lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_mod.rs
deleted file mode 100644
index affd8555921c..000000000000
--- a/lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_mod.rs
+++ /dev/null
@@ -1,12 +0,0 @@
---- vendor/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/mod.rs.orig 2021-11-29 20:27:33 UTC
-+++ vendor/libc-0.2.108/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.108_src_unix_bsd_freebsdlike_freebsd_riscv64.rs b/lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_riscv64.rs
deleted file mode 100644
index c395951cc851..000000000000
--- a/lang/rust/files/riscv64/patch-vendor_libc-0.2.108_src_unix_bsd_freebsdlike_freebsd_riscv64.rs
+++ /dev/null
@@ -1,157 +0,0 @@
---- vendor/libc-0.2.108/src/unix/bsd/freebsdlike/freebsd/riscv64.rs.orig 2021-11-05 13:41:21 UTC
-+++ vendor/libc-0.2.108/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
diff --git a/lang/rust/files/riscv64/patch-vendor_rustc__ap__rustc__target_src_spec_mod.rs b/lang/rust/files/riscv64/patch-vendor_rustc__ap__rustc__target_src_spec_mod.rs
deleted file mode 100644
index 9e0858752a7f..000000000000
--- a/lang/rust/files/riscv64/patch-vendor_rustc__ap__rustc__target_src_spec_mod.rs
+++ /dev/null
@@ -1,9 +0,0 @@
---- vendor/rustc-ap-rustc_target/src/spec/mod.rs.orig 2021-11-04 11:23:50 UTC
-+++ vendor/rustc-ap-rustc_target/src/spec/mod.rs
-@@ -805,6 +805,7 @@ supported_targets! {
- ("powerpc-unknown-freebsd", powerpc_unknown_freebsd),
- ("powerpc64-unknown-freebsd", powerpc64_unknown_freebsd),
-+ ("riscv64gc-unknown-freebsd", riscv64gc_unknown_freebsd),
- ("x86_64-unknown-freebsd", x86_64_unknown_freebsd),
-
- ("x86_64-unknown-dragonfly", x86_64_unknown_dragonfly),