pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

rust: Upgrade to version 1.65.0.



Module Name:	pkgsrc-wip
Committed By:	Havard Eidnes <he%NetBSD.org@localhost>
Pushed By:	he
Date:		Sun Nov 27 12:52:46 2022 +0000
Changeset:	6add60c47834873d910b050106ec78b945eeff2c

Modified Files:
	rust/Makefile
	rust/cross.mk
	rust/distinfo
	rust/do-cross.mk
	rust/files/gcc-wrap
	rust/patches/patch-compiler_rustc__llvm_build.rs
	rust/patches/patch-compiler_rustc__target_src_spec_mipsel__unknown__netbsd.rs
	rust/patches/patch-compiler_rustc__target_src_spec_mod.rs
	rust/patches/patch-src_bootstrap_builder.rs
	rust/patches/patch-src_llvm-project_llvm_include_llvm_Analysis_ConstantFolding.h
	rust/patches/patch-vendor_cc_src_lib.rs
	rust/patches/patch-vendor_libc_src_unix_bsd_netbsdlike_netbsd_mod.rs
	rust/patches/patch-vendor_openssl-src_src_lib.rs
	rust/patches/patch-vendor_target-lexicon_src_targets.rs
Added Files:
	rust/patches/patch-library_std_src_sys_unix_thread__parker_netbsd.rs
	rust/patches/patch-src_llvm-project_llvm_lib_Support_BLAKE3_blake3__impl.h
	rust/patches/patch-vendor_libc-0.2.131_src_unix_bsd_netbsdlike_netbsd_mips.rs
	rust/patches/patch-vendor_libc-0.2.131_src_unix_bsd_netbsdlike_netbsd_mod.rs
	rust/patches/patch-vendor_libc-0.2.131_src_unix_solarish_mod.rs
	rust/patches/patch-vendor_openssl-src_openssl_Configurations_10-main.conf
	rust/patches/patch-vendor_openssl-sys_build_main.rs
Removed Files:
	rust/patches/patch-src_tools_rls_rls_src_cmd.rs
	rust/patches/patch-src_tools_rls_rls_src_server_io.rs
	rust/patches/patch-vendor_cc-1.0.69_src_lib.rs

Log Message:
rust: Upgrade to version 1.65.0.

Pkgsrc changes:
 * We now manage to build for mipsel-unknown-netbsd, but despite the
   target spec saying cpu = "mips3", the compiler manages to emit 64-bit
   instructions which cause "illegal instruction" error.  Will need more
   work.  The mipsel-unknown-netbsd entry is commentd out since there
   is no 1.64.0 bootstrap.
 * Managed to retain the build of aarch64_be, llvm needed a patch to
   avoid use of neon instructions in the BE case (llvm doesn't support
   use of neon in BE mode).  Ref. patch to
   src/llvm-project/llvm/lib/Support/BLAKE3/blake3_impl.h.
 * The minimum gcc version is now 7.x, and that includes the cross-compiler
   for the targets.  For i386 this also needs to /usr/include/gcc-7 include
   files in the target root, because immintrin.h from gcc 5 is not
   compatible with gcc 7.x.  This applies for the targets where we build
   against a root from netbsd-8 (sparc64, powerpc, i386), and files/gcc-wrap
   gets a hack for this.
 * Pick up tweak for -latomic inclusion from
   https://github.com/rust-lang/rust/issues/104220
   and
   https://github.com/rust-lang/rust/pull/104572
 * Retain ability to do 32-bit NetBSD, by changing from 64 to 32 bit
   types in library/std/src/sys/unix/thread_parker/netbsd.rs.
 * I've struggled a bit to get the "openssl-src" build with -latomic
   where it's needed.  I introduce "NetBSD-generic32" system type and
   use it for the NetBSD mipsel target.  There is another attempt to
   do the same in the patch to vendor/openssl-sys/build/main.rs.
 * Bump bootstraps to 1.64.0, checksum updates.

Upstream changes:

Version 1.65.0 (2022-11-03)
==========================

Language
--------
- [Error on `as` casts of enums with `#[non_exhaustive]` variants]
  (https://github.com/rust-lang/rust/pull/92744/)
- [Stabilize `let else`](https://github.com/rust-lang/rust/pull/93628/)
- [Stabilize generic associated types (GATs)]
  (https://github.com/rust-lang/rust/pull/96709/)
- [Add lints `let_underscore_drop`, `let_underscore_lock`, and
  `let_underscore_must_use` from Clippy]
  (https://github.com/rust-lang/rust/pull/97739/)
- [Stabilize `break`ing from arbitrary labeled blocks ("label-break-value")]
  (https://github.com/rust-lang/rust/pull/99332/)
- [Uninitialized integers, floats, and raw pointers are now considered
  immediate UB](https://github.com/rust-lang/rust/pull/98919/).
  Usage of `MaybeUninit` is the correct way to work with uninitialized
  memory.
- [Stabilize raw-dylib for Windows x86_64, aarch64, and thumbv7a]
  (https://github.com/rust-lang/rust/pull/99916/)
- [Do not allow `Drop` impl on foreign ADTs]
  (https://github.com/rust-lang/rust/pull/99576/)

Compiler
--------
- [Stabilize -Csplit-debuginfo on Linux]
  (https://github.com/rust-lang/rust/pull/98051/)
- [Use niche-filling optimization even when multiple variants have
  data] (https://github.com/rust-lang/rust/pull/94075/)
- [Associated type projections are now verified to be well-formed
  prior to resolving the underlying type]
  (https://github.com/rust-lang/rust/pull/99217/#issuecomment-1209365630)
- [Stringify non-shorthand visibility correctly]
  (https://github.com/rust-lang/rust/pull/100350/)
- [Normalize struct field types when unsizing]
  (https://github.com/rust-lang/rust/pull/101831/)
- [Update to LLVM 15](https://github.com/rust-lang/rust/pull/99464/)
- [Fix aarch64 call abi to correctly zeroext when needed]
  (https://github.com/rust-lang/rust/pull/97800/)
- [debuginfo: Generalize C++-like encoding for enums]
  (https://github.com/rust-lang/rust/pull/98393/)
- [Add `special_module_name` lint]
  (https://github.com/rust-lang/rust/pull/94467/)
- [Add support for generating unique profraw files by default when
  using `-C instrument-coverage`]
  (https://github.com/rust-lang/rust/pull/100384/)
- [Allow dynamic linking for iOS/tvOS targets]
  (https://github.com/rust-lang/rust/pull/100636/)

New targets:
- [Add armv4t-none-eabi as a tier 3 target]
  (https://github.com/rust-lang/rust/pull/100244/)
- [Add powerpc64-unknown-openbsd and riscv64-unknown-openbsd as tier 3 targets]
  (https://github.com/rust-lang/rust/pull/101025/)
- Refer to Rust's [platform support page][platform-support-doc] for more
  information on Rust's tiered platform support.

Libraries
---------
- [Don't generate `PartialEq::ne` in derive(PartialEq)]
  (https://github.com/rust-lang/rust/pull/98655/)
- [Windows RNG: Use `BCRYPT_RNG_ALG_HANDLE` by default]
  (https://github.com/rust-lang/rust/pull/101325/)
- [Forbid mixing `System` with direct system allocator calls]
  (https://github.com/rust-lang/rust/pull/101394/)
- [Document no support for writing to non-blocking stdio/stderr]
  (https://github.com/rust-lang/rust/pull/101416/)
- [`std::layout::Layout` size must not overflow `isize::MAX` when
  rounded up to `align`](https://github.com/rust-lang/rust/pull/95295)
  This also changes the safety conditions on
  `Layout::from_size_align_unchecked`.

Stabilized APIs
---------------
- [`std::backtrace::Backtrace`]
  (https://doc.rust-lang.org/stable/std/backtrace/struct.Backtrace.html)
- [`Bound::as_ref`]
  (https://doc.rust-lang.org/stable/std/ops/enum.Bound.html#method.as_ref)
- [`std::io::read_to_string`]
  (https://doc.rust-lang.org/stable/std/io/fn.read_to_string.html)
- [`<*const T>::cast_mut`]
  (https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.cast_mut)
- [`<*mut T>::cast_const`]
  (https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.cast_const)

These APIs are now stable in const contexts:
- [`<*const T>::offset_from`]
  (https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from)
- [`<*mut T>::offset_from`]
  (https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from)

Cargo
-----
- [Apply GitHub fast path even for partial hashes]
  (https://github.com/rust-lang/cargo/pull/10807/)
- [Do not add home bin path to PATH if it's already there]
  (https://github.com/rust-lang/cargo/pull/11023/)
- [Take priority into account within the pending queue]
  (https://github.com/rust-lang/cargo/pull/11032/).
  This slightly optimizes job scheduling by Cargo, with typically
  small improvements on larger crate graph builds.

Compatibility Notes
-------------------
- [`std::layout::Layout` size must not overflow `isize::MAX` when
  rounded up to `align`] (https://github.com/rust-lang/rust/pull/95295).
  This also changes the safety conditions on
  `Layout::from_size_align_unchecked`.
- [`PollFn` now only implements `Unpin` if the closure is `Unpin`]
  (https://github.com/rust-lang/rust/pull/102737).
  This is a possible breaking change if users were relying on the
  blanket unpin implementation.  See discussion on the PR for
  details of why this change was made.
- [Drop ExactSizeIterator impl from std::char::EscapeAscii]
  (https://github.com/rust-lang/rust/pull/99880)
  This is a backwards-incompatible change to the standard library's
  surface area, but is unlikely to affect real world usage.
- [Do not consider a single repeated lifetime eligible for elision
  in the return type] (https://github.com/rust-lang/rust/pull/103450)
  This behavior was unintentionally changed in 1.64.0, and this
  release reverts that change by making this an error again.
- [Reenable disabled early syntax gates as future-incompatibility
  lints] (https://github.com/rust-lang/rust/pull/99935/)
- [Update the minimum external LLVM to 13]
  (https://github.com/rust-lang/rust/pull/100460/)
- [Don't duplicate file descriptors into stdio fds]
  (https://github.com/rust-lang/rust/pull/101426/)
- [Sunset RLS](https://github.com/rust-lang/rust/pull/100863/)
- [Deny usage of `#![cfg_attr(..., crate_type = ...)]` to set the
  crate type] (https://github.com/rust-lang/rust/pull/99784/)
  This strengthens the forward compatibility lint
  deprecated_cfg_attr_crate_type_name to deny.
- [`llvm-has-rust-patches` allows setting the build system to treat
  the LLVM as having Rust-specific patches]
  (https://github.com/rust-lang/rust/pull/101072)
  This option may need to be set for distributions that are building
  Rust with a patched LLVM via `llvm-config`, not the built-in
  LLVM.

Internal Changes
----------------

These changes do not affect any public interfaces of Rust, but they represent
significant improvements to the performance or internals of rustc and related
tools.

- [Add `x.sh` and `x.ps1` shell scripts]
  (https://github.com/rust-lang/rust/pull/99992/)
- [compiletest: use target cfg instead of hard-coded tables]
  (https://github.com/rust-lang/rust/pull/100260/)
- [Use object instead of LLVM for reading bitcode from rlibs]
  (https://github.com/rust-lang/rust/pull/98100/)
- [Enable MIR inlining for optimized compilations]
  (https://github.com/rust-lang/rust/pull/91743)
  This provides a 3-10% improvement in compiletimes for real world
  crates. See [perf results]
  (https://perf.rust-lang.org/compare.html?start=aedf78e56b2279cc869962feac5153b6ba7001ed&end=0075bb4fad68e64b6d1be06bf2db366c30bc75e1&stat=instructions:u).

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=6add60c47834873d910b050106ec78b945eeff2c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 rust/Makefile                                      |  78 +++----
 rust/cross.mk                                      |  16 +-
 rust/distinfo                                      | 238 +++++++++++----------
 rust/do-cross.mk                                   |  18 +-
 rust/files/gcc-wrap                                |  25 ++-
 rust/patches/patch-compiler_rustc__llvm_build.rs   |  48 ++++-
 ...stc__target_src_spec_mipsel__unknown__netbsd.rs |   3 +-
 .../patch-compiler_rustc__target_src_spec_mod.rs   |   4 +-
 ...brary_std_src_sys_unix_thread__parker_netbsd.rs |  75 +++++++
 rust/patches/patch-src_bootstrap_builder.rs        |   6 +-
 ...ct_llvm_include_llvm_Analysis_ConstantFolding.h |   4 +-
 ...-project_llvm_lib_Support_BLAKE3_blake3__impl.h |  20 ++
 rust/patches/patch-src_tools_rls_rls_src_cmd.rs    |  27 ---
 .../patch-src_tools_rls_rls_src_server_io.rs       |  41 ----
 rust/patches/patch-vendor_cc-1.0.69_src_lib.rs     |  14 --
 rust/patches/patch-vendor_cc_src_lib.rs            |  12 +-
 ...-0.2.131_src_unix_bsd_netbsdlike_netbsd_mips.rs |  27 +++
 ...c-0.2.131_src_unix_bsd_netbsdlike_netbsd_mod.rs |  44 ++++
 ...ch-vendor_libc-0.2.131_src_unix_solarish_mod.rs |  15 ++
 ...ndor_libc_src_unix_bsd_netbsdlike_netbsd_mod.rs |  10 +-
 ...openssl-src_openssl_Configurations_10-main.conf |  18 ++
 rust/patches/patch-vendor_openssl-src_src_lib.rs   |   2 +-
 .../patches/patch-vendor_openssl-sys_build_main.rs |  24 +++
 .../patch-vendor_target-lexicon_src_targets.rs     |  12 +-
 24 files changed, 509 insertions(+), 272 deletions(-)

diffs:
diff --git a/rust/Makefile b/rust/Makefile
index 4b5a49d407..c29b815937 100644
--- a/rust/Makefile
+++ b/rust/Makefile
@@ -1,6 +1,6 @@
 # $NetBSD: Makefile,v 1.197 2020/09/29 16:45:16 gdt Exp $
 
-DISTNAME=	rustc-1.64.0-src
+DISTNAME=	rustc-1.65.0-src
 PKGNAME=	${DISTNAME:S/rustc/rust/:S/-src//}
 CATEGORIES=	lang
 MASTER_SITES=	https://static.rust-lang.org/dist/
@@ -195,49 +195,49 @@ BUILDLINK_TRANSFORM+=	opt:x86_64:arm64
 DISTFILES:=		${DEFAULT_DISTFILES}
 
 .if !empty(MACHINE_PLATFORM:MDarwin-*-aarch64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=	1.63.0
+RUST_STAGE0_VER=	1.64.0
 RUST_ARCH:=		aarch64-apple-darwin
 RUST_STAGE0:=		rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 RUST_STD_STAGE0:=	rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 DISTFILES:=		${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
 .endif
 .if !empty(MACHINE_PLATFORM:MDarwin-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=	1.63.0
+RUST_STAGE0_VER=	1.64.0
 RUST_ARCH:=		x86_64-apple-darwin
 RUST_STAGE0:=		rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 RUST_STD_STAGE0:=	rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 DISTFILES:=		${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
 .endif
 .if !empty(MACHINE_PLATFORM:MLinux-*-aarch64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=	1.63.0
+RUST_STAGE0_VER=	1.64.0
 RUST_ARCH:=		aarch64-unknown-linux-gnu
 RUST_STAGE0:=		rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 RUST_STD_STAGE0:=	rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 DISTFILES:=		${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
 .endif
 .if !empty(MACHINE_PLATFORM:MLinux-*-earmv6hf) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=	1.63.0
+RUST_STAGE0_VER=	1.64.0
 RUST_ARCH:=		arm-unknown-linux-gnueabihf
 RUST_STAGE0:=		rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 RUST_STD_STAGE0:=	rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 DISTFILES:=		${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
 .endif
 .if !empty(MACHINE_PLATFORM:MLinux-*-earmv7hf) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=	1.63.0
+RUST_STAGE0_VER=	1.64.0
 RUST_ARCH:=		armv7-unknown-linux-gnueabihf
 RUST_STAGE0:=		rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 RUST_STD_STAGE0:=	rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 DISTFILES:=		${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
 .endif
 .if !empty(MACHINE_PLATFORM:MLinux-*-i386) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=	1.63.0
+RUST_STAGE0_VER=	1.64.0
 RUST_ARCH:=		i686-unknown-linux-gnu
 RUST_STAGE0:=		rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 RUST_STD_STAGE0:=	rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 DISTFILES:=		${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
 .endif
 .if !empty(MACHINE_PLATFORM:MLinux-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=	1.63.0
+RUST_STAGE0_VER=	1.64.0
 RUST_ARCH:=		x86_64-unknown-linux-gnu
 RUST_STAGE0:=		rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 RUST_STD_STAGE0:=	rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
@@ -262,14 +262,14 @@ CONFIGURE_ARGS+=	--host=${RUST_ARCH}
 CONFIGURE_ARGS+=	--target=${RUST_ARCH}
 .endif
 .if !empty(MACHINE_PLATFORM:MFreeBSD-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=	1.63.0
+RUST_STAGE0_VER=	1.64.0
 RUST_ARCH:=		x86_64-unknown-freebsd
 RUST_STAGE0:=		rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 RUST_STD_STAGE0:=	rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 DISTFILES:=		${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
 .endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-i386) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=	1.63.0
+RUST_STAGE0_VER=	1.64.0
 RUST_ARCH=		i586-unknown-netbsd
 RUST_STAGE0:=		rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
 RUST_STD_STAGE0:=	rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
@@ -289,14 +289,14 @@ pre-build-fix-paxctl:
 	${TOOLS_PLATFORM.paxctl} +am ${WRKDIR}/rust-bootstrap/bin/rustc
 .endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=	1.63.0
+RUST_STAGE0_VER=	1.64.0
 RUST_ARCH=		x86_64-unknown-netbsd
 RUST_STAGE0:=		rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
 RUST_STD_STAGE0:=	rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
 DISTFILES:=		${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
 .endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-powerpc) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=	1.63.0
+RUST_STAGE0_VER=	1.64.0
 RUST_ARCH=		powerpc-unknown-netbsd
 
 # Cross-built against NetBSD 9.0
@@ -319,7 +319,7 @@ SITES.${RUST_STD_STAGE0}=	${MASTER_SITE_LOCAL:=rust/}
 
 .endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-aarch64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=		1.63.0
+RUST_STAGE0_VER=		1.64.0
 RUST_ARCH=			aarch64-unknown-netbsd
 RUST_STAGE0:=			rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
 RUST_STD_STAGE0:=		rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
@@ -328,7 +328,7 @@ SITES.${RUST_STAGE0}=		${MASTER_SITE_LOCAL:=rust/}
 SITES.${RUST_STD_STAGE0}=	${MASTER_SITE_LOCAL:=rust/}
 .endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-aarch64eb) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=		1.63.0
+RUST_STAGE0_VER=		1.64.0
 RUST_ARCH=			aarch64_be-unknown-netbsd
 RUST_STAGE0:=			rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
 RUST_STD_STAGE0:=		rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
@@ -337,7 +337,7 @@ SITES.${RUST_STAGE0}=		${MASTER_SITE_LOCAL:=rust/}
 SITES.${RUST_STD_STAGE0}=	${MASTER_SITE_LOCAL:=rust/}
 .endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-sparc64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=		1.63.0
+RUST_STAGE0_VER=		1.64.0
 RUST_ARCH=			sparc64-unknown-netbsd
 RUST_STAGE0:=			rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
 RUST_STD_STAGE0:=		rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
@@ -347,7 +347,7 @@ SITES.${RUST_STD_STAGE0}=	${MASTER_SITE_LOCAL:=rust/}
 .endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-earmv7hf) || make(distinfo) || make (makesum) || make(mdi)
 RUST_ARCH=			armv7-unknown-netbsd-eabihf
-RUST_STAGE0_VER=		1.63.0
+RUST_STAGE0_VER=		1.64.0
 RUST_STAGE0:=			rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
 RUST_STD_STAGE0:=		rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
 DISTFILES:=			${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
@@ -356,22 +356,22 @@ SITES.${RUST_STD_STAGE0}=	${MASTER_SITE_LOCAL:=rust/}
 .endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-earmv6hf) || make(distinfo) || make (makesum) || make(mdi)
 RUST_ARCH=			armv6-unknown-netbsd-eabihf
-RUST_STAGE0_VER=		1.63.0
-RUST_STAGE0:=			rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
-RUST_STD_STAGE0:=		rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
-DISTFILES:=			${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
-SITES.${RUST_STAGE0}=		${MASTER_SITE_LOCAL:=rust/}
-SITES.${RUST_STD_STAGE0}=	${MASTER_SITE_LOCAL:=rust/}
-.endif
-.if !empty(MACHINE_PLATFORM:MNetBSD-*-mipsel) || make(distinfo) || make (makesum) || make(mdi)
-RUST_ARCH=			mipsel-unknown-netbsd
-RUST_STAGE0_VER=		1.63.0
+RUST_STAGE0_VER=		1.64.0
 RUST_STAGE0:=			rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
 RUST_STD_STAGE0:=		rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
 DISTFILES:=			${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
 SITES.${RUST_STAGE0}=		${MASTER_SITE_LOCAL:=rust/}
 SITES.${RUST_STD_STAGE0}=	${MASTER_SITE_LOCAL:=rust/}
 .endif
+#.if !empty(MACHINE_PLATFORM:MNetBSD-*-mipsel) || make(distinfo) || make (makesum) || make(mdi)
+#RUST_ARCH=			mipsel-unknown-netbsd
+#RUST_STAGE0_VER=		1.64.0
+#RUST_STAGE0:=			rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
+#RUST_STD_STAGE0:=		rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.xz
+#DISTFILES:=			${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
+#SITES.${RUST_STAGE0}=		${MASTER_SITE_LOCAL:=rust/}
+#SITES.${RUST_STD_STAGE0}=	${MASTER_SITE_LOCAL:=rust/}
+#.endif
 
 # You may override RUST_BOOTSTRAP_PATH and RUST_ARCH in mk.conf
 # if you have a local bootstrap compiler.
@@ -406,24 +406,20 @@ SUBST_VARS.rpath=	PREFIX
 
 CKSUM_CRATES+=	vendor/cc
 CKSUMS+=	38970d678de0efb4b5e2978265daa8a613a1db35fc42e669621b03fc56d5b138
-CKSUMS+=	1a5dd77a916141a3398372a99278e05cfa9ec9ff56c99325afca6a6b7375c300
+CKSUMS+=	83df624c670f44d1ad895b8383a848d7fd49d9b3f088e866a77e513008735b70
 
 CKSUM_CRATES+=	vendor/libc
-CKSUMS+=	cb1560bf8ffcc7b2726a27b433efac90e726292960626f3064bd2c6b7f861a55
-CKSUMS+=	cea54f3eb0929a12fa9c2c07e647343f28fbb6d5394ef0f8e7331959fb540fd3
-CKSUMS+=	976b07a13e195840b67c166a62318abfa9ffc8d5ebbb0358f199dd213ec98d1b
-CKSUMS+=	ee760c856bb491d885e9458fb723c53db7988ba775e59ab5b9ee8be438e69cf4
-CKSUMS+=	cb1560bf8ffcc7b2726a27b433efac90e726292960626f3064bd2c6b7f861a55
-CKSUMS+=	b4d5e82df95afc69a931db296be1ef6f40350af60029219587f64ca600f5f53d
+CKSUMS+=	8914a68865af026c1f4fb1d5f02ba0053362ef34b813ad60cc4aa3a88aa4999e
+CKSUMS+=	36261a678137edb49eab7c4d51052e4a9c78312a248dd25c4b67a44180cfbbd6
+CKSUMS+=	8f9613e50c2771b33d7cf817a735d536b389ec57f861b9486d870373c768276e
+CKSUMS+=	86a2db06339eb850f9d28d524a94a9db5aa4f4d2c3fd080fb90c8c101ef53bed
+
+CKSUM_CRATES+=	vendor/libc-0.2.131
 
 CKSUM_CRATES+=	vendor/lzma-sys
 CKSUMS+=	6fd5e9245db34c6f557b8bfcaf03db82fc88c3b06dbfbb5f03b2bcd138983ef9
 CKSUMS+=	5e252578b5d266f6a4c8dc9f71ca7a91536ccb8c5c7d7753b82f12ec886459ef
 
-CKSUM_CRATES+=	vendor/cc-1.0.69
-CKSUMS+=	6dde684bdcc1bb03a808784ce8ccc0721f53bfdf87b84c607045aada916730ba
-CKSUMS+=	dd09a6ad92c998b3cc15d81b3b56a70544886fe0c22d659406aa25d734fe2fd1
-
 CKSUM_CRATES+=	vendor/stacker
 CKSUMS+=	cee329550bad2ed1182abb71db9c24558a91b12e1eab8d9a48e23b997bb8f04e
 CKSUMS+=	79915b243d02df1dc698f5c2de3a9356c6c296d2dedb06d9035dbcc2f8972cf4
@@ -458,7 +454,13 @@ CKSUMS+=	67fd5293c2f8d25fd2eaa4694198178c44e46e4db589fbf6f33459b200419e34
 
 CKSUM_CRATES+=	vendor/openssl-src
 CKSUMS+=	40cd1069246b552b04fcdfd13eb77b3a89194192f18c426b77377a78abbfd72f
-CKSUMS+=	0762dfc33f22810157225d9a78415ac3df6a89d589d1937cc58f75a6611e7fc9
+CKSUMS+=	f358adc7b69c478ca89a96505f9a28f51cc6ad481bcdd304d5089e112c0904db
+CKSUMS+=	b3c59089fa4151eb978a55f17e2adff6ceb752d579b64962336b49cefe41776b
+CKSUMS+=	db49cdc41015692a4dd2076a33d694c3371a6720db176742cb6c509d533a1fcd
+
+CKSUM_CRATES+=	vendor/openssl-sys
+CKSUMS+=	d397af804c0b786978867528635fa9148cd2ad0e6abd591ace21b5bd3719c38d
+CKSUMS+=	246d1f71852a08745fba8d00f126d2bd7816c9428d568a0d5e4907e69548ab9b
 
 SUBST_CLASSES+=		cksum
 SUBST_STAGE.cksum=	pre-configure
diff --git a/rust/cross.mk b/rust/cross.mk
index b50db435dd..e1f9168397 100644
--- a/rust/cross.mk
+++ b/rust/cross.mk
@@ -39,15 +39,15 @@
 # the ultimate target to built for, as well as the
 # host the compiler is supposed to run on.
 # Rust's target designation
-#TARGET=		armv7-unknown-netbsd-eabihf
+#TARGET= 		armv7-unknown-netbsd-eabihf
 #TARGET= 		armv6-unknown-netbsd-eabihf
-#TARGET=		sparc64-unknown-netbsd
-#TARGET=		powerpc-unknown-netbsd
-#TARGET=		aarch64-unknown-netbsd
-#TARGET=		aarch64_be-unknown-netbsd
-#TARGET=		i686-unknown-netbsd
-#TARGET=		i586-unknown-netbsd
-#TARGET=		mipsel-unknown-netbsd
+#TARGET= 		sparc64-unknown-netbsd
+#TARGET= 		powerpc-unknown-netbsd
+#TARGET= 		aarch64-unknown-netbsd
+#TARGET= 		aarch64_be-unknown-netbsd
+#TARGET= 		i686-unknown-netbsd
+#TARGET= 		i586-unknown-netbsd
+#TARGET= 		mipsel-unknown-netbsd
 #
 #SCRIPTS=		${WRKDIR}/scripts
 #CONFIGURE_ARGS+=	--host=${TARGET}
diff --git a/rust/distinfo b/rust/distinfo
index c674b5ad6a..a349c2cb58 100644
--- a/rust/distinfo
+++ b/rust/distinfo
@@ -1,143 +1,142 @@
 $NetBSD: distinfo,v 1.118 2020/08/06 11:42:56 jperkin Exp $
 
-BLAKE2s (rust-1.63.0-aarch64-apple-darwin.tar.gz) = 8b6bb1a17756ad68c516afc05fd0f2760c9608975e65399781b1fc85bd7d91bf
-SHA512 (rust-1.63.0-aarch64-apple-darwin.tar.gz) = f8bca4ac150db2296ea1be8ef7cd887e5a9e2dfbc7a7fb4c5f8d31c539ffdf58aa9d46611a281bd718c6272a85fca2aef60d1838a9a27b0b622e9d50e33cc1e6
-Size (rust-1.63.0-aarch64-apple-darwin.tar.gz) = 228229488 bytes
-BLAKE2s (rust-1.63.0-aarch64-unknown-linux-gnu.tar.gz) = 58ede5121c9ee8b61edfa792771851da61b75a08e63379f9b836395e9e61bbb5
-SHA512 (rust-1.63.0-aarch64-unknown-linux-gnu.tar.gz) = 04d2a917e64c66b15cda3bbe9353d61737c57eb1ee4d9a2207d976b9f8f588e447f8682c7f87cf33cbc3cf14c37195795c8f259202509d3229ce9c5c175311f4
-Size (rust-1.63.0-aarch64-unknown-linux-gnu.tar.gz) = 391767348 bytes
-BLAKE2s (rust-1.63.0-aarch64-unknown-netbsd.tar.xz) = 6aa93fab83a104585c44d4bc78e4ad3e46e37ae907e2e23c5a56a11903e54876
-SHA512 (rust-1.63.0-aarch64-unknown-netbsd.tar.xz) = 690348f679f2d9d6af8b4ce648e6a68cd83bd724906566cdbf4a5e56e75d5aa596b5dc702807baef8296883a94bafdb0c6506a8de1f764271d07b6950a9115de
-Size (rust-1.63.0-aarch64-unknown-netbsd.tar.xz) = 153412536 bytes
-BLAKE2s (rust-1.63.0-aarch64_be-unknown-netbsd.tar.xz) = 0b3fed187c6701c687e028857085f5c09fd4a93bb67b91897c938c5a52427c69
-SHA512 (rust-1.63.0-aarch64_be-unknown-netbsd.tar.xz) = 766344c17c59007fe3c6fdfd4caefb9bf0eec3b6c8fec878744f71979069e3edafc3b023727341f9526c7c5169b13d0fc234a0e3f5118858218149a5c7d85a08
-Size (rust-1.63.0-aarch64_be-unknown-netbsd.tar.xz) = 152749160 bytes
-BLAKE2s (rust-1.63.0-arm-unknown-linux-gnueabihf.tar.gz) = dcb4cc227039a5ee59606b30e29e6172b56eb86590a248e9483d6b4234070d2d
-SHA512 (rust-1.63.0-arm-unknown-linux-gnueabihf.tar.gz) = e27cb6f86ef5c5fd4466afe37a34e09f910a0a09a7a7f98c735831a89983de83d447569165dd44c49fc6511aa37d065742748e222d03e240d519d011c5dbd73c
-Size (rust-1.63.0-arm-unknown-linux-gnueabihf.tar.gz) = 321731846 bytes
-BLAKE2s (rust-1.63.0-armv6-unknown-netbsd-eabihf.tar.xz) = 3b9eef9621283979f385c91814721099120169eb08ed9d6f769d7b04831d2ded
-SHA512 (rust-1.63.0-armv6-unknown-netbsd-eabihf.tar.xz) = 9a4d2c8d31ef62bb9d5bd5854503dc71587fbf6f1d0044c468a6e6de6a9c41b627c086c57b91d4bd466db7c9990a890212f9a8d6b5283c86822b58626b154e94
-Size (rust-1.63.0-armv6-unknown-netbsd-eabihf.tar.xz) = 152484384 bytes
-BLAKE2s (rust-1.63.0-armv7-unknown-linux-gnueabihf.tar.gz) = af2f939e619d49b2ea52628418c9e4d4e6234a37d508335d18a99ac46274e365
-SHA512 (rust-1.63.0-armv7-unknown-linux-gnueabihf.tar.gz) = da0b59f52de3457ab1bf5b47ed4c51b4348e9b4e85844b0698e592706367ed78d3ad12d20740c8e1a9d907116c2d18d68382769e213894ad9844ad7e027af860
-Size (rust-1.63.0-armv7-unknown-linux-gnueabihf.tar.gz) = 313156635 bytes
-BLAKE2s (rust-1.63.0-armv7-unknown-netbsd-eabihf.tar.xz) = e07fdec17a5292b99df1a517349a7b15c1ac2c15c2cd3d5c1620a55f2e222cf7
-SHA512 (rust-1.63.0-armv7-unknown-netbsd-eabihf.tar.xz) = d27f655ede43e38e4a1654c3117346332da73032d8b45a5b79d8bd52ae20acc083fe263b1e32c1bb5b394a33c0b6ac7dcbdc1623da227b505c92f0744e140da3
-Size (rust-1.63.0-armv7-unknown-netbsd-eabihf.tar.xz) = 134099348 bytes
-BLAKE2s (rust-1.63.0-i586-unknown-netbsd.tar.xz) = 4dd319d183bdcf209c47887f54288c1ad92893c25127ae0fc1a6a1c29812f868
-SHA512 (rust-1.63.0-i586-unknown-netbsd.tar.xz) = 6fd39e5e55d9baf3645ff241ac1be63290419533bec6fb9ab0e68a9e0897559195c07ecdfc807dd0a6b1c7ddbfa5d23faff3276e1036cb43fa8c047582f3f466
-Size (rust-1.63.0-i586-unknown-netbsd.tar.xz) = 165878492 bytes
-BLAKE2s (rust-1.63.0-i686-unknown-linux-gnu.tar.gz) = b194a05fc85145bd16a30d9204598a270db509c3a9597eb929a1681c7d43425c
-SHA512 (rust-1.63.0-i686-unknown-linux-gnu.tar.gz) = 759d0bcb79bcbc38a49dbdf9c7611c7d520910b8de6f07939d76140ea6c4178ba6fc80367d399482c2989160b213ac3b26107344996b7cb06cf8d67609fb9ba9
-Size (rust-1.63.0-i686-unknown-linux-gnu.tar.gz) = 369810939 bytes
-BLAKE2s (rust-1.63.0-powerpc-unknown-netbsd.tar.xz) = d4d4b8b369e7c3a2ffe72d66963086e9b35165c97611dd825a05b95d3b2b8f7e
-SHA512 (rust-1.63.0-powerpc-unknown-netbsd.tar.xz) = eeb03a94ded0ee104d5bddf8b370a064ff0ea082228ff621ed19f22fee6cc2a61b79d99b7fc257a5d86666e46a0ff1298a30e62e13a4b47ad1a15cf454e4a3ae
-Size (rust-1.63.0-powerpc-unknown-netbsd.tar.xz) = 169274792 bytes
-BLAKE2s (rust-1.63.0-powerpc-unknown-netbsd90.tar.xz) = 3464e8f6a823eddaea3fbcb0c8b6cf629df73f12f2121ddc21ed45185ed6a3f7
-SHA512 (rust-1.63.0-powerpc-unknown-netbsd90.tar.xz) = 90c5facc452705d2edc87f14b02d117443dadb476d0b02328849a4efc5bbc0520fd3c346112547e3b398dab04601919fdc9f1eec285c6ff5d1e07329d78c35ce
-Size (rust-1.63.0-powerpc-unknown-netbsd90.tar.xz) = 177793992 bytes
-BLAKE2s (rust-1.63.0-sparc64-unknown-netbsd.tar.xz) = 3251a4e4303b1e57d0239e9cb1f49e72354ab9633ec4a729776d651db0856e58
-SHA512 (rust-1.63.0-sparc64-unknown-netbsd.tar.xz) = c9da3d518ece8596ea6f8fe3f69c6623735e0876d3ceb587a885c5a02939bf00fa794dad4d1d081b0916251186b2941ac3185b70d611c58bccaa4893d822c59d
-Size (rust-1.63.0-sparc64-unknown-netbsd.tar.xz) = 149584036 bytes
-BLAKE2s (rust-1.63.0-x86_64-apple-darwin.tar.gz) = 7f12ec36e0deade8f9536c3dc55465afd78e0d8388e5c6b46cb7f3a8092a807d
-SHA512 (rust-1.63.0-x86_64-apple-darwin.tar.gz) = 241f230c6eba6b21eb5a34745b31ab979ea757bef02c86625f6641c0e6579173a5ab29aafc724372a33c6c2d5b741a4861cbc2520cb80242400f8086ed4d32c1
-Size (rust-1.63.0-x86_64-apple-darwin.tar.gz) = 293106442 bytes
-BLAKE2s (rust-1.63.0-x86_64-unknown-freebsd.tar.gz) = eab6148a4ef45c7ce78f10873db3e90ba9cc424f161e3fc7518337e99556998b
-SHA512 (rust-1.63.0-x86_64-unknown-freebsd.tar.gz) = 33652c6e1db7aed358f9fd63fc5e0c10755a558f264a90b6180245c1b95a4292ed201af91c78f9b8b030a55e7d6eb5f2d67823a1770b780ace5ac2da67806dca
-Size (rust-1.63.0-x86_64-unknown-freebsd.tar.gz) = 288166502 bytes
 BLAKE2s (rust-1.63.0-x86_64-unknown-illumos.tar.gz) = 7844914d1a21e8df16bc2a7aad5f01d8502a79806f4606edf2edc7fa38d7f6e5
 SHA512 (rust-1.63.0-x86_64-unknown-illumos.tar.gz) = 1279e4cb7dce1e23cdf8b40afa3540c60e24f22e41a02acd0985cdfa13d825d09ba92859e138734ab2f8435808b4e61c510006a4aba75a02f6b3a45b9bafe556
 Size (rust-1.63.0-x86_64-unknown-illumos.tar.gz) = 201958566 bytes
-BLAKE2s (rust-1.63.0-x86_64-unknown-linux-gnu.tar.gz) = 9ea24101e32efb791fe30f9639b92f705b55c1cb72017a15adada51dd33fe48c
-SHA512 (rust-1.63.0-x86_64-unknown-linux-gnu.tar.gz) = 84a680e7dbf7025490d6681eb49e540acae2f02b32f9762593e92811824300b61862c72671f8288c59483716b3e8a53324714738234e7baf452f75921c751b48
-Size (rust-1.63.0-x86_64-unknown-linux-gnu.tar.gz) = 267333435 bytes
-BLAKE2s (rust-1.63.0-x86_64-unknown-netbsd.tar.xz) = cd865da1c25e3915a8dd8b66554072a550e52ed6dbc284a11f335b49cba52ea3
-SHA512 (rust-1.63.0-x86_64-unknown-netbsd.tar.xz) = 046431fc3382994e42b1755f6ead2e124ffe92ce5df1638bbf6c14d9e5a4bd56bd960d775b49e91dc2573bd3995178e926b719d20a2be223f029b17c3587f536
-Size (rust-1.63.0-x86_64-unknown-netbsd.tar.xz) = 173189252 bytes
-BLAKE2s (rust-std-1.63.0-aarch64-apple-darwin.tar.gz) = 7cbda155876eaff413ca9574dbe90909fd6fd00d4dad40494c03d7a75a519276
-SHA512 (rust-std-1.63.0-aarch64-apple-darwin.tar.gz) = 44252454d3932476675a971fda6a7c01560a372d9dfb51f64ef7d3d53971715bb1a39b09a2cb43cdd6639af2857cf278c4206728e85f6fb68d679ef4ea42f44b
-Size (rust-std-1.63.0-aarch64-apple-darwin.tar.gz) = 39776510 bytes
-BLAKE2s (rust-std-1.63.0-aarch64-unknown-linux-gnu.tar.gz) = d48310db4c8934aac0b039e9c40feb5dec29366956ee6c24a27c3bbede37e8e4
-SHA512 (rust-std-1.63.0-aarch64-unknown-linux-gnu.tar.gz) = 10a8fe1fee134a201393ae5bf0221f599722156d0139bb75175fd10611941f032fe2899d2a256ce708390b0a5a185d045b53cf5cf52fd9ab67da43605a8b9012
-Size (rust-std-1.63.0-aarch64-unknown-linux-gnu.tar.gz) = 57250791 bytes
-BLAKE2s (rust-std-1.63.0-aarch64-unknown-netbsd.tar.xz) = 5b4c8c7c7e1a7e6d151d30cceacb8dc7cb686305c9b67ac6d7a3334958b0ecf7
-SHA512 (rust-std-1.63.0-aarch64-unknown-netbsd.tar.xz) = 1b67a4e5089eae4a092eee248b215621a80f381879682fe629b62fc293e32965c0b18534642ded510abada0bff6f831f5937220eed2360d9e2e38b5924a4d1bf
-Size (rust-std-1.63.0-aarch64-unknown-netbsd.tar.xz) = 22653612 bytes
-BLAKE2s (rust-std-1.63.0-aarch64_be-unknown-netbsd.tar.xz) = c45ee00c8cd3b6636d58128982f0d57a1e4729c8062791c735518db1c9b5bde0
-SHA512 (rust-std-1.63.0-aarch64_be-unknown-netbsd.tar.xz) = 0a142992f084367750bb479fb4ff8694f4ee4256e6f0181815246c6b1ea64320a599da5563642927bc67a6f2ded959c456f45987ffe28c90438388d3c7e9b513
-Size (rust-std-1.63.0-aarch64_be-unknown-netbsd.tar.xz) = 22614832 bytes
-BLAKE2s (rust-std-1.63.0-arm-unknown-linux-gnueabihf.tar.gz) = 9d08ca076d966386b7cbf23aa72f5aeac47600686d105eeca7363867cf4eec66
-SHA512 (rust-std-1.63.0-arm-unknown-linux-gnueabihf.tar.gz) = dd14e86345ffcd6a19c5640c893d941efe70f0f98d226cf76b7d630c4cf56112c2202e908584d17afe15fc85b01b1be7a603ed67da4ba1334254a48ea07b0b4e
-Size (rust-std-1.63.0-arm-unknown-linux-gnueabihf.tar.gz) = 35898004 bytes
-BLAKE2s (rust-std-1.63.0-armv6-unknown-netbsd-eabihf.tar.xz) = 5b6725f8eadbd72384b6fcb6db57710a6bee114dd97aedbcad3427524068e0d1
-SHA512 (rust-std-1.63.0-armv6-unknown-netbsd-eabihf.tar.xz) = fda6ce37ec784eb5a9f57674088ac34d7100dab3a024f44f3eeac04dc3502ac31550e400edcf1c4b5356ed33abf8d3e2b0dc7470d76815a44935672ec0380925
-Size (rust-std-1.63.0-armv6-unknown-netbsd-eabihf.tar.xz) = 20757660 bytes
-BLAKE2s (rust-std-1.63.0-armv7-unknown-linux-gnueabihf.tar.gz) = d54b985d08493510a1fc84084b91b68f3b407d449e9bdfa5fbd379b876e033f5
-SHA512 (rust-std-1.63.0-armv7-unknown-linux-gnueabihf.tar.gz) = b97e3d076a04405890f1540b866d5787ee61cbdbc5fc6b45a6814ccda38276d59c809a2a9fa9a4ed77b07210cf1b7ce4a2f362e65211e803b3107c8aa95cb59b
-Size (rust-std-1.63.0-armv7-unknown-linux-gnueabihf.tar.gz) = 37741784 bytes
-BLAKE2s (rust-std-1.63.0-armv7-unknown-netbsd-eabihf.tar.xz) = e37494b5e764b30b081ee73c1275a488270092d4ab9e263483131fd9ca70982a
-SHA512 (rust-std-1.63.0-armv7-unknown-netbsd-eabihf.tar.xz) = a9920722c8739478a617c93504b06f615865297d87921c1faa8d8da7b2ff95be3cfcd2b2417e6b7ec8e81ef31e5e0396ca65f8e3b4cf19cb73e387b55d2d330e
-Size (rust-std-1.63.0-armv7-unknown-netbsd-eabihf.tar.xz) = 21831664 bytes
-BLAKE2s (rust-std-1.63.0-i586-unknown-netbsd.tar.xz) = 564b67526782d80c9962d2bdbcbb631642a526eb0b157264c996ba83f7aa1fc2
-SHA512 (rust-std-1.63.0-i586-unknown-netbsd.tar.xz) = 269f53d2d197578febef3d96f9feaa2e7f3e098fc0d52e8a85b65530e859943a535904c33f2bbda1631d71e5de921caebda2b616134940e0a6072b1c196c16b6
-Size (rust-std-1.63.0-i586-unknown-netbsd.tar.xz) = 22699044 bytes
-BLAKE2s (rust-std-1.63.0-i686-unknown-linux-gnu.tar.gz) = 5f0e031fbbbf54670535b083165d3d452de4e0588849f9dfb71ed74663402d10
-SHA512 (rust-std-1.63.0-i686-unknown-linux-gnu.tar.gz) = e862660fd94fe3d9b30df994e95247d3ab7b6a4943098e910f2824026cfaf6df0a44afd6950074d80e94e6f0cfa3bde95660a765d6c5c31fc0a742f6818569d0
-Size (rust-std-1.63.0-i686-unknown-linux-gnu.tar.gz) = 39728937 bytes
-BLAKE2s (rust-std-1.63.0-powerpc-unknown-netbsd.tar.xz) = cf467af536d5f44ca40566f8385123f54d60c7587c2f3b12d03a934ed7aa8d55
-SHA512 (rust-std-1.63.0-powerpc-unknown-netbsd.tar.xz) = aa5f69063548875a2cad381fe5004a576376ea121c95599cef831deffb1509d05e5f1764714220de3d6c49794c1768df772789fe772f34281a7ea36cf1ad2097
-Size (rust-std-1.63.0-powerpc-unknown-netbsd.tar.xz) = 20677128 bytes
-BLAKE2s (rust-std-1.63.0-powerpc-unknown-netbsd90.tar.xz) = 8a5734eda79f3d1249e3c5c6343088e5e566e6c35cf5eed9675039c54c3f630f
-SHA512 (rust-std-1.63.0-powerpc-unknown-netbsd90.tar.xz) = 609b321facbda65fea8cadd1b28c6c0c15d7d470bd89af61f442cc6b640e598c4c03b77adcf7f87b0545f5fb8a9da479a810fe813f72e808548c35031183b9f8
-Size (rust-std-1.63.0-powerpc-unknown-netbsd90.tar.xz) = 20743540 bytes
-BLAKE2s (rust-std-1.63.0-sparc64-unknown-netbsd.tar.xz) = 9c38cca66a59768f22737c5b4d88e201ddd9c381239b49556d44cf60d1175af5
-SHA512 (rust-std-1.63.0-sparc64-unknown-netbsd.tar.xz) = ce6e74057ffa960cfd4a87a1f08d2eb2fe7cb15af233caf05fd0b19ff37ad464a82f6a32f8eb4cf9bdccb2ca62b0ff6d682c9bd986d7d05ebb65940b67ab46af
-Size (rust-std-1.63.0-sparc64-unknown-netbsd.tar.xz) = 20674968 bytes
-BLAKE2s (rust-std-1.63.0-x86_64-apple-darwin.tar.gz) = 165cd3cb5ade9ff694fdc60f4a327245ea75ca9794e90624bc5ecd7c7fd731e1
-SHA512 (rust-std-1.63.0-x86_64-apple-darwin.tar.gz) = 2f62040a55e3a9d52a2bfabecacc2f0e36fd1dcdc00b3adc549acac85cb8c1ceeefc68222968eefb6f37d8114a154a91d02fd18ee95889cf80efc291cdc8df6d
-Size (rust-std-1.63.0-x86_64-apple-darwin.tar.gz) = 40445814 bytes
-BLAKE2s (rust-std-1.63.0-x86_64-unknown-freebsd.tar.gz) = 888fad5e8a5b4fd08e8d895cf2fb82d9a552df486716a6b28d98a77e41c1c977
-SHA512 (rust-std-1.63.0-x86_64-unknown-freebsd.tar.gz) = 63c39aa71b0e8ef972bc6211f0c2ec7cf85e30a5ee161d37b8c3f4e2650eb6b843d9c7be46447cb0d4cdef44627b298257a4139c16b5e94636b39ea93d60ee77
-Size (rust-std-1.63.0-x86_64-unknown-freebsd.tar.gz) = 42592740 bytes
-BLAKE2s (rust-std-1.63.0-x86_64-unknown-linux-gnu.tar.gz) = 6202c2a656b8f0069ca2acec86f11103479f35a8ce08d7a699cb55be954d7764
-SHA512 (rust-std-1.63.0-x86_64-unknown-linux-gnu.tar.gz) = d79f38ef9879ea9ec2841c3c64c49a3e4645d7225a6500fad38ef7161c147664905812f2f20dbd1d8f955ae629f15f74c09bff23d24f4d969b91e5bac1191852
-Size (rust-std-1.63.0-x86_64-unknown-linux-gnu.tar.gz) = 44064096 bytes
-BLAKE2s (rust-std-1.63.0-x86_64-unknown-netbsd.tar.xz) = 5328a4215846005afcbc8a8118d9a4d927557a63814a3db3a7095a9999a90c15
-SHA512 (rust-std-1.63.0-x86_64-unknown-netbsd.tar.xz) = b7b1fda019b7a161bd8ceb259c980f2ad26fac186d6deb7c5493b81652cbc04e5ca3036ca93ec64fcf9bee49df24b9c438532c7a4a221472ab1efa4f7cff6f58
-Size (rust-std-1.63.0-x86_64-unknown-netbsd.tar.xz) = 25553764 bytes
-BLAKE2s (rustc-1.64.0-src.tar.gz) = b390e0040c2cffa5b69eadba870e40667986d4d0b9c4952692d6e62b6cddc810
-SHA512 (rustc-1.64.0-src.tar.gz) = 1c453702f6d6cbdb12633d3db617495d69f7b6c6645cbef72750470b6ca826dd410fde0bbacbf11621234c4e12fa72e27f61fc2858983ec4490a68ce025e4660
-Size (rustc-1.64.0-src.tar.gz) = 205881934 bytes
+BLAKE2s (rust-1.64.0-aarch64-apple-darwin.tar.gz) = 22c3a7016f235e2d29825f371976cd8d3e235ac0d97b58aeee780e3818e81f1f
+SHA512 (rust-1.64.0-aarch64-apple-darwin.tar.gz) = c21797d1cf21c409cea46d3dc9d33591c468b77d915f019c9cf2f031b3dc78af4d3b22d0edb6f5032ca6083f52b7ab969878b735ea9aaafe7c0336fe847814c3
+Size (rust-1.64.0-aarch64-apple-darwin.tar.gz) = 232722441 bytes
+BLAKE2s (rust-1.64.0-aarch64-unknown-linux-gnu.tar.gz) = 1c32110fdf2be923932093803b4b33e5ad9e575bf7c6fe3b11368f9484f3559d
+SHA512 (rust-1.64.0-aarch64-unknown-linux-gnu.tar.gz) = 61284a6f5fb5b6b8fba8a17fbe72b27c03dcc04f1a252725b001bf2fa38b5df7ca12bc3aabaf2eb631c3eb9de8c9c563e96b034e2532385178192dcf39377fb4
+Size (rust-1.64.0-aarch64-unknown-linux-gnu.tar.gz) = 421442906 bytes
+BLAKE2s (rust-1.64.0-aarch64-unknown-netbsd.tar.xz) = 69458f8c220274839064ad7d4152944713b193285a3dba7e85ab2828c8f3dc17
+SHA512 (rust-1.64.0-aarch64-unknown-netbsd.tar.xz) = 078c9eb535bc6068f774828ee478d88678654b49ce1a9d832e607f692c38194a1273544af742ac257dbf28defc2107d0fcbdbd469e73aab821568426f6e45d32
+Size (rust-1.64.0-aarch64-unknown-netbsd.tar.xz) = 160377572 bytes
+BLAKE2s (rust-1.64.0-aarch64_be-unknown-netbsd.tar.xz) = c3124bcd13d0b92bc45d8ced830f5e958a07a1965836f13c03c16aa75a0b2e96
+SHA512 (rust-1.64.0-aarch64_be-unknown-netbsd.tar.xz) = 99111f962bb300eedcc5ddfdcd89769765654e2eab080908d99f5906a0efb9673475d602926362b3e13db75a1f97245bdf61f7c7e1354fae92517777d09ce283
+Size (rust-1.64.0-aarch64_be-unknown-netbsd.tar.xz) = 155440804 bytes
+BLAKE2s (rust-1.64.0-arm-unknown-linux-gnueabihf.tar.gz) = 6d2b26f3aeec5b5e56369b1d757b7833f986aba6994631e85dbcb4226df6a38b
+SHA512 (rust-1.64.0-arm-unknown-linux-gnueabihf.tar.gz) = 7f55836e76292c9d0f945610c432b28969709bf45513a286a194848f9989a155527565d4e1cfe38fbde937f344485ac3cbdbe79f392aac571ff49ba896e48cf3
+Size (rust-1.64.0-arm-unknown-linux-gnueabihf.tar.gz) = 328779282 bytes
+BLAKE2s (rust-1.64.0-armv6-unknown-netbsd-eabihf.tar.xz) = 9bfd0efd28426f88f3669a2131dc15a66af70287e27101dc4eb89ee2df0486e7
+SHA512 (rust-1.64.0-armv6-unknown-netbsd-eabihf.tar.xz) = 8199c544c603c2222643f4efefc6fe802da77c7f3b62b50931801dfe540b79b7db356f9066bcd6077acf20b6284a4f96a2b4a1f1c382df4abc6d05eeeb83d7b3
+Size (rust-1.64.0-armv6-unknown-netbsd-eabihf.tar.xz) = 157659320 bytes
+BLAKE2s (rust-1.64.0-armv7-unknown-linux-gnueabihf.tar.gz) = 06cabb1f1ce2f1d724118da6e63ee8823d6a644b0ce722704cc57a2e5b308fe9
+SHA512 (rust-1.64.0-armv7-unknown-linux-gnueabihf.tar.gz) = 689159b77bfbfd13e0f7aae454263b498024c7d4040807e7b7a6ea760fd29563666cbc6c5b47eb0cf834558cce69ac89d63fbf23862b6c631769458e844aa3a8
+Size (rust-1.64.0-armv7-unknown-linux-gnueabihf.tar.gz) = 319828033 bytes
+BLAKE2s (rust-1.64.0-armv7-unknown-netbsd-eabihf.tar.xz) = f578dd33157dc253d86505f31968647bc503288f859168ca096c82adafb5e49a
+SHA512 (rust-1.64.0-armv7-unknown-netbsd-eabihf.tar.xz) = b3df96819a5ff1a137503b6c7d56405542833ae30a435100a465e5b224ed6803aef7b934099951f450b969e0cb0a116ecafb00e3e50a60d1ce56a8760813466b
+Size (rust-1.64.0-armv7-unknown-netbsd-eabihf.tar.xz) = 136518340 bytes
+BLAKE2s (rust-1.64.0-i586-unknown-netbsd.tar.xz) = b1b5754a600d9cf08499eacdc521470a05f4239b2e552a29618be22d756ad549
+SHA512 (rust-1.64.0-i586-unknown-netbsd.tar.xz) = 9ce3fda065e095441824e4843ff3bd08b98c341b4fa4790a3d13126b3408b433ef740d1d66f27b78d20f9dc37d33123becf298e5e59459fa3af7e95ad9bf5b43
+Size (rust-1.64.0-i586-unknown-netbsd.tar.xz) = 173159048 bytes
+BLAKE2s (rust-1.64.0-i686-unknown-linux-gnu.tar.gz) = 060f0aa535ae4bc81ee34c77ff28856106901ee9f11096fcf57dcac4bdf3e9b7
+SHA512 (rust-1.64.0-i686-unknown-linux-gnu.tar.gz) = 40d3d1b25d6159c7b8812c2a29497c21d4d67791e98f7bc56d823ebf8809b6409917675768974e157c75fc40bf9d654a09e6d37a87f2ac96bc46f97f62176bea
+Size (rust-1.64.0-i686-unknown-linux-gnu.tar.gz) = 384878959 bytes
+BLAKE2s (rust-1.64.0-powerpc-unknown-netbsd.tar.xz) = 5c0776dafa0734e14194b2280eae472d2fc9ba3c8263ab6a78766a35670ca5e8
+SHA512 (rust-1.64.0-powerpc-unknown-netbsd.tar.xz) = 7df11c5b27ab1d7ba532132709401a44245bd407dfa80815acd8ca4a41012934d172754d2b1ddc949e36f5b49e232baa9c86c8b582f14a7ca8ca24b191aa82e8
+Size (rust-1.64.0-powerpc-unknown-netbsd.tar.xz) = 175669184 bytes
+BLAKE2s (rust-1.64.0-powerpc-unknown-netbsd90.tar.xz) = cc67867ad46f6e49f1ab36c57b41fd46fc5de2791174a4b2c2eeed9946101215
+SHA512 (rust-1.64.0-powerpc-unknown-netbsd90.tar.xz) = faa572c4016152ca3f0990af047ed75975bb6fdfb61d8d4f3482f8105ad42689baf2dd72ad4a09d73af8acdfd4f60603d9acbf7ddfa2c53088faba8e368900d1
+Size (rust-1.64.0-powerpc-unknown-netbsd90.tar.xz) = 184358988 bytes
+BLAKE2s (rust-1.64.0-sparc64-unknown-netbsd.tar.xz) = db1d8f81ef1850bdedb3fd197a2a7538088726e47ceb613a2690c4c11af03674
+SHA512 (rust-1.64.0-sparc64-unknown-netbsd.tar.xz) = bff8153f8b0e70341b63ac55562bdedd1ff76f3919f07a9b96b58b723eee67f4091e820023d37efe44a1ecc0a152d717ecfcbb41d005fb28a7b87ac32541df02
+Size (rust-1.64.0-sparc64-unknown-netbsd.tar.xz) = 154799664 bytes
+BLAKE2s (rust-1.64.0-x86_64-apple-darwin.tar.gz) = 2dc2518ae1901b6c122c40eb3d8882ccc03aa9c9ed1e4a5f084afb3d5180b2e0
+SHA512 (rust-1.64.0-x86_64-apple-darwin.tar.gz) = b77f3742d7152e5fca5341455c26551f613d45d02f62d28b149803a07a9326bf5d66bae58f1dbf52cc1724b2223623ed67c3360ef169756cb6ee7bf1e3ae1ee9
+Size (rust-1.64.0-x86_64-apple-darwin.tar.gz) = 308074220 bytes
+BLAKE2s (rust-1.64.0-x86_64-unknown-freebsd.tar.gz) = 53096277f018d9f137a7034677655022ea4c3d1f8eab1e031156440eabb72140
+SHA512 (rust-1.64.0-x86_64-unknown-freebsd.tar.gz) = 6782e614a8e7fdc4a8de5eeda4605cacf174fa182f447d90fe99eb8bde1ffffc12093f2018d7050f48f1fe27aad6fd187c18f2ad4e023f37d459e60eb5c11251
+Size (rust-1.64.0-x86_64-unknown-freebsd.tar.gz) = 295539873 bytes
+BLAKE2s (rust-1.64.0-x86_64-unknown-linux-gnu.tar.gz) = 20a707652941e6d1f72612cb5d01f984be5b13908b9e572f080b6c2fa1a98c0d
+SHA512 (rust-1.64.0-x86_64-unknown-linux-gnu.tar.gz) = c74dd6d1bc92db74ee16d951c48234ec0da484b8b4a26eedd1a1abbb737329c6fb4c07ca5bf896215d6422a8c71adc285b31428a286cf783f013cb529de87515
+Size (rust-1.64.0-x86_64-unknown-linux-gnu.tar.gz) = 278604926 bytes
+BLAKE2s (rust-1.64.0-x86_64-unknown-netbsd.tar.xz) = c9ea3782495c4beb89bf6971af76184fbd13675eb445db4d105a6917d161ee40
+SHA512 (rust-1.64.0-x86_64-unknown-netbsd.tar.xz) = 35f9dbd04b0fc2a2a3f0b919dfadd68eb42b9f880543138be3f5a86c0bbbd8a59e82e2124293b951729ce252ad70877d6f1482eb3a30b9a11ef736e29d2bba6a
+Size (rust-1.64.0-x86_64-unknown-netbsd.tar.xz) = 178537552 bytes
+BLAKE2s (rust-std-1.64.0-aarch64-apple-darwin.tar.gz) = 43598162948737b0de41889189ddef5709f0d19a5a8d27ad51c89d442abddfbd
+SHA512 (rust-std-1.64.0-aarch64-apple-darwin.tar.gz) = fc90aa9dbc8c141e66950ba0f14079f95adc702473b07067d1644f2709e6e19f6a68f8961542fa42eb591afc1b9d1e3a658d2705c29a17c922dbc96eb2deb6c6
+Size (rust-std-1.64.0-aarch64-apple-darwin.tar.gz) = 40852207 bytes
+BLAKE2s (rust-std-1.64.0-aarch64-unknown-linux-gnu.tar.gz) = a6544a2e61fde414a0a9a35cdc6443eec4f8d7dfae6e643f7b8b1a455a161088
+SHA512 (rust-std-1.64.0-aarch64-unknown-linux-gnu.tar.gz) = 886141f52cb9215f5ca7f891f8b269b94e8c5c8b41efd007a6a5277cd9925efb078fd8cc413a56dcb1d591af876ae2f69a860216cb022f545de1ad31c819967c
+Size (rust-std-1.64.0-aarch64-unknown-linux-gnu.tar.gz) = 63376902 bytes
+BLAKE2s (rust-std-1.64.0-aarch64-unknown-netbsd.tar.xz) = 3e827b680536df3e9965e747886808df142e9a24bed539d307037d1f54cb0774
+SHA512 (rust-std-1.64.0-aarch64-unknown-netbsd.tar.xz) = 63da2718bb0127b94c29fbe6c119f7e86af2c136c3bdb7421b8bd836302932931f6ee172626b4467be5a9e3b2ca5cbba887ff980b9749d3cd0a9d52d8ae6f137
+Size (rust-std-1.64.0-aarch64-unknown-netbsd.tar.xz) = 23337716 bytes
+BLAKE2s (rust-std-1.64.0-aarch64_be-unknown-netbsd.tar.xz) = 6974e8af0bb937ebc0c3622661231d1e329cb13edcc71e352f763433b383f4dd
+SHA512 (rust-std-1.64.0-aarch64_be-unknown-netbsd.tar.xz) = 26a88d2fd530af3f74281a3a4fc63a232d9d61f55b4ab6587f7beeaae5404b98446ae24e62961ed366705e54e22d6e2a04b09948004aa016b28096c47e5e2b49
+Size (rust-std-1.64.0-aarch64_be-unknown-netbsd.tar.xz) = 23301696 bytes
+BLAKE2s (rust-std-1.64.0-arm-unknown-linux-gnueabihf.tar.gz) = 191e0761caa575a97b653485c642ed3d1bc28e3a5781624b78eb0899009b198c
+SHA512 (rust-std-1.64.0-arm-unknown-linux-gnueabihf.tar.gz) = 6cbf61ad9f0dd313a3d54fa5858a4ed6da1d62299704524b43771b2204d74fdbd715f0640f0c0f535a0536d80a00b47e143a63095a4c3b42e8a12cfdfb1cda50
+Size (rust-std-1.64.0-arm-unknown-linux-gnueabihf.tar.gz) = 37191437 bytes
+BLAKE2s (rust-std-1.64.0-armv6-unknown-netbsd-eabihf.tar.xz) = dd763d197fc1fc2e417b8719e1568fac22df606e383a53e76537f08e7051483a
+SHA512 (rust-std-1.64.0-armv6-unknown-netbsd-eabihf.tar.xz) = 4da70b642ad95d5d5982671455e35e3721dc85b72219ad618dcae0a6cd15577de05e67224b5346e6b7bc343cb0a2dbcf66a1410f81b9c89140cbd60c8707f9d5
+Size (rust-std-1.64.0-armv6-unknown-netbsd-eabihf.tar.xz) = 21527316 bytes
+BLAKE2s (rust-std-1.64.0-armv7-unknown-linux-gnueabihf.tar.gz) = c097faa3390e48d8311a2386886f9aebb070f2c72bf5e7962f54fa2247d149d4
+SHA512 (rust-std-1.64.0-armv7-unknown-linux-gnueabihf.tar.gz) = 8af103400c35ca8974fa5875610be890267d954bf910e3bfd2938a518d9db1a49d7c2af421f558c59347f9f316748a384ca24bfb9fe7c2a7ab7bd11d9bbe7766
+Size (rust-std-1.64.0-armv7-unknown-linux-gnueabihf.tar.gz) = 38950145 bytes
+BLAKE2s (rust-std-1.64.0-armv7-unknown-netbsd-eabihf.tar.xz) = cf209b4e1bac81029f1a30626d844616efe3b81ffb8bc8ff49215385d0e7053f
+SHA512 (rust-std-1.64.0-armv7-unknown-netbsd-eabihf.tar.xz) = 9616fd2cb93b1c2aa1ac070640a834696958a1e2c4354948637bebccb493847403043fc8256aafd0c7c5cac81f87683f5be296032c79a699a36179b9dbcc3548
+Size (rust-std-1.64.0-armv7-unknown-netbsd-eabihf.tar.xz) = 22529920 bytes
+BLAKE2s (rust-std-1.64.0-i586-unknown-netbsd.tar.xz) = 7485113a2c7c4f20d73558362d2e303bb04cb582ed0339ccba5593dec87a662e
+SHA512 (rust-std-1.64.0-i586-unknown-netbsd.tar.xz) = c5d157932b72b8aa3e78b85e33d1cd51e46877e3f89d74c836d74e40446bded6ec8a15fef239f196ddc5b6cd43c25144f1d9620f57d8495bb0cdec0572a2b7ab
+Size (rust-std-1.64.0-i586-unknown-netbsd.tar.xz) = 23407976 bytes
+BLAKE2s (rust-std-1.64.0-i686-unknown-linux-gnu.tar.gz) = c61c865716b19f5ccfca97d15636792a6a59e30dc8151e49ca34cf4ad4478a5b
+SHA512 (rust-std-1.64.0-i686-unknown-linux-gnu.tar.gz) = 3e1481b2182f2faf87a5756d20a87fc07cf1da249c2beddb33c9557a3ad13f80607b714da86d9e2401c3cae59469d24b8c4b8297e31472383949b6888c55fb0f
+Size (rust-std-1.64.0-i686-unknown-linux-gnu.tar.gz) = 40951154 bytes
+BLAKE2s (rust-std-1.64.0-powerpc-unknown-netbsd.tar.xz) = c4e4b44345c14b3a39d20915890ba2d7e6579734cb9a8bf2f1742557feeac34c
+SHA512 (rust-std-1.64.0-powerpc-unknown-netbsd.tar.xz) = b3d520fe26e6aff6721115fb128dafadc190bc2501bb56cee23b67cda9cbe34811886bb73fd476dacd25d43db281ba9efce6e675a113c2e60dfa7b9761b93ff8
+Size (rust-std-1.64.0-powerpc-unknown-netbsd.tar.xz) = 21383612 bytes
+BLAKE2s (rust-std-1.64.0-powerpc-unknown-netbsd90.tar.xz) = 17498a609df2d2f63122cfa74f11c06cfb6a24745e8ee39b4d44b1796dd0b971
+SHA512 (rust-std-1.64.0-powerpc-unknown-netbsd90.tar.xz) = 2ea09a94c4a837f0a78cab8f3c391db482fb59e0e92e2cfe84092e52998eb052b84a37adf0faf5db641999fdc17d7dc458b3f873770702d02f051a1a39a6ffc7
+Size (rust-std-1.64.0-powerpc-unknown-netbsd90.tar.xz) = 21412256 bytes
+BLAKE2s (rust-std-1.64.0-sparc64-unknown-netbsd.tar.xz) = 5eb4209839c53757fccc83e927d513678e71b98f241d95f63d8813f7b443fbd6
+SHA512 (rust-std-1.64.0-sparc64-unknown-netbsd.tar.xz) = b1cc089d0395a552168bb2812a87e6330c0dba5b25f3433abc40ab32ff0016e8afefe83506d5a974ca07e243bb31ff4092674b9220e6fdd01074b08300f63254
+Size (rust-std-1.64.0-sparc64-unknown-netbsd.tar.xz) = 21317136 bytes
+BLAKE2s (rust-std-1.64.0-x86_64-apple-darwin.tar.gz) = 54b5ad3479844d274c2110a06de33958afd776e2d323c7e232a2359f2b94ec75
+SHA512 (rust-std-1.64.0-x86_64-apple-darwin.tar.gz) = 33931df7ff04362238fc5789e0f05f75cb7bdeef3a4532c607c921a5b06371fb30d4d575ea360a3da364c504cad0f87afe0464c358439cc21def4eae9a45832d
+Size (rust-std-1.64.0-x86_64-apple-darwin.tar.gz) = 41561388 bytes
+BLAKE2s (rust-std-1.64.0-x86_64-unknown-freebsd.tar.gz) = c247b73615f3a2d430dccdbeb7471ffd36a17d9d3afc9e24fcf1ac2a687ff215
+SHA512 (rust-std-1.64.0-x86_64-unknown-freebsd.tar.gz) = 1d7e53dee5a13e9ce95e50a96fe744d23f8589ef749fb4b22db11d25ba5439cb0c3ddcc8fb6c3c70b6441f1211b59ea236bf39af4f04ffba321d158d0163aed0
+Size (rust-std-1.64.0-x86_64-unknown-freebsd.tar.gz) = 43726303 bytes
+BLAKE2s (rust-std-1.64.0-x86_64-unknown-linux-gnu.tar.gz) = 1e7cb20e70f9ce09ce099628f381b6c99660086b07dff3dada6f3756b2a61168
+SHA512 (rust-std-1.64.0-x86_64-unknown-linux-gnu.tar.gz) = a04840d22919d02bd6c60f9e496fb69f6dece9a9c7000aaca1e81ee0b599d6375f146054e8b36d28d858ec1de9087ce69fa776cec32decbf96a19aa01c678b5a
+Size (rust-std-1.64.0-x86_64-unknown-linux-gnu.tar.gz) = 45367042 bytes
+BLAKE2s (rust-std-1.64.0-x86_64-unknown-netbsd.tar.xz) = e69610a09255d56e7883fd06240b398e7980c746ca7d14bb718b6e8ca7fb5324
+SHA512 (rust-std-1.64.0-x86_64-unknown-netbsd.tar.xz) = 7b34177ed20de0edfab4f2256ec9e263da82ed09a774f4f51ec874c22a72afde69e550a492f802c622f31b5c57d99284b7abe51821e1bc27cc3f6744fab4851d
+Size (rust-std-1.64.0-x86_64-unknown-netbsd.tar.xz) = 26757388 bytes
+BLAKE2s (rustc-1.65.0-src.tar.gz) = 8928f0949b66cc135a472dca1f3cc4a1749773dc90cc421399b5f276b828828e
+SHA512 (rustc-1.65.0-src.tar.gz) = e7387706c5c30e572c34b755b393dbc0c76061dbff777b5b4a75f94f2699e9c5152001cdaba07f8c465d93e9169b90bc57fe08dc8223d9ab9c878668c328fb44
+Size (rustc-1.65.0-src.tar.gz) = 208744689 bytes
 SHA1 (patch-compiler_rustc__codegen__ssa_src_back_linker.rs) = bfa0196fa53ac0fc95dc30a4a5097b8db805251e
-SHA1 (patch-compiler_rustc__llvm_build.rs) = 73f8225f6dea809da9381d78a8099d13c7c151c0
+SHA1 (patch-compiler_rustc__llvm_build.rs) = e99c9eb2fd1731c0e6f5d38ff74bf28bf0be87d0
 SHA1 (patch-compiler_rustc__target_src_spec_aarch64__be__unknown__netbsd.rs) = c81d0d288699056ae45569f8d0a1c9bb08153ec4
 SHA1 (patch-compiler_rustc__target_src_spec_i586__unknown__netbsd.rs) = 71b5736952023931c94c6996e73cdcfc66b429fe
-SHA1 (patch-compiler_rustc__target_src_spec_mipsel__unknown__netbsd.rs) = 41a6d29fca1419f8a89f9d0be0c190481c349d0e
-SHA1 (patch-compiler_rustc__target_src_spec_mod.rs) = 275120b9e07863a19c821064d9010c6fbb537044
+SHA1 (patch-compiler_rustc__target_src_spec_mipsel__unknown__netbsd.rs) = 2c5d6088a7df293b6c4ffea54c8751d2f5722495
+SHA1 (patch-compiler_rustc__target_src_spec_mod.rs) = 5042a89fe5da4219b54082c104a1b44ba7cc395e
 SHA1 (patch-compiler_rustc__target_src_spec_netbsd__base.rs) = 57b26a7eb55a4a8e9ec8c4fb8b3b318a25d5a78b
 SHA1 (patch-library_backtrace_src_symbolize_gimli.rs) = 32ab8ea3809cd4f6fee9fc0df5db47d76ccbd9d2
 SHA1 (patch-library_backtrace_src_symbolize_gimli_elf.rs) = 56621c10310914672a851cf5dfbf343a9ff4e1be
 SHA1 (patch-library_std_src_sys_unix_mod.rs) = f8669d680f169137ac2891af2977909619366a97
 SHA1 (patch-library_std_src_sys_unix_thread.rs) = e5f661b3dd00058e874fe60cd89d9e919325e99b
+SHA1 (patch-library_std_src_sys_unix_thread__parker_netbsd.rs) = a8dcda5f9ff273b53f5b59718020c24526399a37
 SHA1 (patch-library_unwind_build.rs) = df092d5c07fa0be63a9510f1d6a77e5094ca3b15
 SHA1 (patch-src_bootstrap_bootstrap.py) = fdb4e2e7fd61ae10f4f4b06ef895a8ebf47fbf7a
-SHA1 (patch-src_bootstrap_builder.rs) = a99bdde69d3b55906f8d227a5604a1a6ef55bb1c
+SHA1 (patch-src_bootstrap_builder.rs) = f9bd1fb6a6fef46ef93ed81c409768e632cd8c67
 SHA1 (patch-src_bootstrap_compile.rs) = c57799aee9c12603f5e6a13cb6b5befc8f96b4b6
 SHA1 (patch-src_bootstrap_lib.rs) = f6918e0939b6fe63ae9b524d4c809375149efb15
 SHA1 (patch-src_llvm-project_llvm_CMakeLists.txt) = 7abfabb6ec70df229a69355f8c76825610165c37
 SHA1 (patch-src_llvm-project_llvm_cmake_modules_AddLLVM.cmake) = 67de0d9fc105ef7ea7a0d96fa25fc779c2b89024
 SHA1 (patch-src_llvm-project_llvm_include_llvm-c_DataTypes.h) = cb011fc19957883c01725797f7c85ed1b20f96f1
-SHA1 (patch-src_llvm-project_llvm_include_llvm_Analysis_ConstantFolding.h) = 26982203916ad601599c7a3e05867e4dad742ae1
+SHA1 (patch-src_llvm-project_llvm_include_llvm_Analysis_ConstantFolding.h) = 39d76e6659143d154ae690ac70781b698a2023d8
+SHA1 (patch-src_llvm-project_llvm_lib_Support_BLAKE3_blake3__impl.h) = 67e93f198258a5b59580be20ff47ce58b146c5d5
 SHA1 (patch-src_llvm-project_llvm_utils_FileCheck_FileCheck.cpp) = 2587c2f4d11ad8f75bf8a16de625135b26bacc15
 SHA1 (patch-src_tools_cargo_src_cargo_core_profiles.rs) = dc9b405b41882bc7c74e08b8188acab3d4aed4ad
 SHA1 (patch-src_tools_cargo_tests_testsuite_build.rs) = 60713699c968f3e389f486e796009d31a5048906
-SHA1 (patch-src_tools_rls_rls_src_cmd.rs) = 8174664b7bce2e60e690bc20ab688606b60c55dc
-SHA1 (patch-src_tools_rls_rls_src_server_io.rs) = 5236eda97fa686b5661e4e5832102e2f010def7b
 SHA1 (patch-src_tools_rust-installer_install-template.sh) = ca769db07986ded26d92957e1055961895def546
 SHA1 (patch-vendor_backtrace_src_symbolize_gimli.rs) = b93148ff72a60a17c6a444f2616386c40d872153
 SHA1 (patch-vendor_backtrace_src_symbolize_gimli_elf.rs) = 308538090d9ce11d206d6eef0e675581a1fc6e80
-SHA1 (patch-vendor_cc-1.0.69_src_lib.rs) = b5c0f795624b928b8b02fe01174e6a24e770adea
-SHA1 (patch-vendor_cc_src_lib.rs) = 2f6b0ad800b31cd33334f194651981491ecf7641
+SHA1 (patch-vendor_cc_src_lib.rs) = dc40f4fb0f7508b886d6d93b27e9936403a96765
 SHA1 (patch-vendor_crossbea_no__atomic.rs) = 6054fa9cb00b9cc7d9125354702945ac22ad6aeb
 SHA1 (patch-vendor_crossbeam-epch-0.9.6_no__atomic.rs) = 96334fb4ceee3332b5f1c7750c93664485b01365
 SHA1 (patch-vendor_crossbeam-epoch-0.9.8_no__atomic.rs) = fce16287a86bfa54f4b138f0c4a6c477f2d2e217
@@ -146,12 +145,17 @@ SHA1 (patch-vendor_crossbeam-queue_no__atomic.rs) = aaa732788e97803eb7e219614f5e
 SHA1 (patch-vendor_crossbeam-utils-0.8.0_no__atomic.rs) = 7f31d6c45ef843eb2595df58e46b0e44dded0cc9
 SHA1 (patch-vendor_crossbeam-utils_no__atomic.rs) = 4ada02a26490ca6fcd87af999bbb8cef48078060
 SHA1 (patch-vendor_kqueue_src_time.rs) = 21950e7d79fb88257bdb11b988f2a3ae0084ba3d
+SHA1 (patch-vendor_libc-0.2.131_src_unix_bsd_netbsdlike_netbsd_mips.rs) = 07fb20807cec24932dff175cfadf028a993969bf
+SHA1 (patch-vendor_libc-0.2.131_src_unix_bsd_netbsdlike_netbsd_mod.rs) = ed30af5e87dc8e7668d04f31b29c2c73a57e8adc
+SHA1 (patch-vendor_libc-0.2.131_src_unix_solarish_mod.rs) = cbf7785c7ec801b86c8e9277972aef7c0fa4bda6
 SHA1 (patch-vendor_libc_src_unix_bsd_netbsdlike_netbsd_mips.rs) = 09326b70d7821b1742285c464c70b347400191d7
-SHA1 (patch-vendor_libc_src_unix_bsd_netbsdlike_netbsd_mod.rs) = cd974123dbefc1149abce884f91d9727e82bb8b6
+SHA1 (patch-vendor_libc_src_unix_bsd_netbsdlike_netbsd_mod.rs) = 94608147cae5fd7a6ae2aed14ca8da4b1c92db1e
 SHA1 (patch-vendor_libc_src_unix_solarish_mod.rs) = 8364e19ea09203d32494c37ff3db19fe3d6b9d8a
 SHA1 (patch-vendor_lzma-sys_config.h) = b654c7e129fa02697734bc87173f89b3056a5437
-SHA1 (patch-vendor_openssl-src_src_lib.rs) = 393b5dd0b5bd32c41cd60fec787ffb8a2dc3cd20
+SHA1 (patch-vendor_openssl-src_openssl_Configurations_10-main.conf) = 1c4e1d5520776e70d588f3da0fd54b6f956835b5
+SHA1 (patch-vendor_openssl-src_src_lib.rs) = 918fac850f3a6e948d25ef3f673ef62345de386f
+SHA1 (patch-vendor_openssl-sys_build_main.rs) = 3924efda02e7d8e2115db55b84a7dcc9756e365c
 SHA1 (patch-vendor_rustc-ap-rustc__target_src_spec_aarch64__be__unknown__netbsd.rs) = 4e86aec4c89db9a331950a12f8ec7b8aaa50eed7
 SHA1 (patch-vendor_stacker_src_lib.rs) = e00a1e95eb16540ff182715db778bf97ebd07a5e
-SHA1 (patch-vendor_target-lexicon_src_targets.rs) = e0c67288516ff8d379d6d1e7b05d4ab86f9ac0a7
+SHA1 (patch-vendor_target-lexicon_src_targets.rs) = 7aab839a16e51534aee01a8d3098d7a916803ec4
 SHA1 (patch-vendor_valuable_no__atomic.rs) = 4c3415e08569c6330f238ff47b25ef229ab7b68f
diff --git a/rust/do-cross.mk b/rust/do-cross.mk
index 0325443928..584c4b9929 100644
--- a/rust/do-cross.mk
+++ b/rust/do-cross.mk
@@ -5,15 +5,15 @@
 VERSION!=	make show-var VARNAME=PKGVERSION
 V_NOREV!=	make show-var VARNAME=PKGVERSION_NOREV
 
-SHORT_TARGETS+=	armv7
-SHORT_TARGETS+= armv6
-SHORT_TARGETS+=	sparc64
-SHORT_TARGETS+=	powerpc
-SHORT_TARGETS+=	powerpc90
-SHORT_TARGETS+=	arm64
-SHORT_TARGETS+=	arm64_be
-SHORT_TARGETS+=	i386
-#SHORT_TARGETS+=	mipsel
+SHORT_TARGETS+= 	armv7
+SHORT_TARGETS+= 	armv6
+SHORT_TARGETS+= 	sparc64
+SHORT_TARGETS+= 	powerpc
+SHORT_TARGETS+= 	powerpc90
+SHORT_TARGETS+= 	arm64
+SHORT_TARGETS+= 	arm64_be
+SHORT_TARGETS+= 	i386
+#SHORT_TARGETS+= 	mipsel	# produces 64-bit mips instructions(!)
 
 # Conditional local overrides of ROOT.* variables:
 .sinclude "local-roots.mk"
diff --git a/rust/files/gcc-wrap b/rust/files/gcc-wrap
index c83c870dba..a79d4215f9 100644
--- a/rust/files/gcc-wrap
+++ b/rust/files/gcc-wrap
@@ -8,12 +8,34 @@
 # ...or the native root, when we don't cross-compile
 root=${CROSS_ROOT:-/}
 
+incadd=""
 native=false
 if [ $root = "/" ]; then
 	native=true
 else
 	# What's the tools/bin prefix (if we're cross-building)?
 	gnuarch=${GNU_CROSS_TARGET:?}
+
+	# A special hack for netbsd-8 targets.
+	# netbsd-8 has gcc 5.5, but llvm and rust needs >= 7
+	# so we build tools from -9, and try to use that, but
+	# then the include path becomes wrong, and <stdatomic.h>
+	# is no longer picked up automatically by the compiler
+	# from the target destination directory
+	case $gnuarch in
+		sparc64*)	incadd="-I=/usr/include/gcc-5"
+				;;
+
+				# immintrin & from gcc-5 not
+				# compatible with gcc7, apparently
+		i[3456]86*)	incadd="-I=/usr/include/gcc-7"
+				;;
+	esac
+	# We build both for -8 and -9 due to ABI differences,
+	# so can't just test $gnuarch...  Yes, a vile hack.
+	if [ "$root" = "/u/macppc" ]; then
+		incadd="-I=/usr/include/gcc-5"
+	fi
 fi
 
 # Who are we a wrapper for? (Typically either gcc or c++)
@@ -161,9 +183,10 @@ if $native; then
 else
 	cmd="${root}/tools/bin/${gnuarch}-${who} \
 		--sysroot=${root}/dest \
+		$incadd \
 		$args"
 fi
 
 # Cannot echo to stdout, messes up e.g. "gcc -print-prog-name=ld" output...
-#echo $cmd >&2
+#echo $cmd >> /tmp/gcc-wrap.log
 exec $cmd
diff --git a/rust/patches/patch-compiler_rustc__llvm_build.rs b/rust/patches/patch-compiler_rustc__llvm_build.rs
index 7af182c085..8c4b588527 100644
--- a/rust/patches/patch-compiler_rustc__llvm_build.rs
+++ b/rust/patches/patch-compiler_rustc__llvm_build.rs
@@ -2,9 +2,55 @@ $NetBSD$
 
 Fix build on NetBSD HEAD-llvm. XXX there is probably a better way to do this.
 
+Pick up -latomic tweak from
+https://github.com/rust-lang/rust/issues/104220
+and
+https://github.com/rust-lang/rust/pull/104572
+
 --- compiler/rustc_llvm/build.rs.orig	2021-11-01 07:17:29.000000000 +0000
 +++ compiler/rustc_llvm/build.rs
-@@ -268,7 +268,13 @@ fn main() {
+@@ -235,20 +235,32 @@ fn main() {
+     let mut cmd = Command::new(&llvm_config);
+     cmd.arg(llvm_link_arg).arg("--libs");
+ 
+-    if !is_crossed {
+-        cmd.arg("--system-libs");
+-    } else if target.contains("windows-gnu") {
+-        println!("cargo:rustc-link-lib=shell32");
+-        println!("cargo:rustc-link-lib=uuid");
+-    } else if target.contains("netbsd") || target.contains("haiku") || target.contains("darwin") {
+-        println!("cargo:rustc-link-lib=z");
+-    } else if target.starts_with("arm")
++    if target.starts_with("arm")
+         || target.starts_with("mips-")
+         || target.starts_with("mipsel-")
+         || target.starts_with("powerpc-")
+     {
+         // 32-bit targets need to link libatomic.
+         println!("cargo:rustc-link-lib=atomic");
++        println!("cargo:rustc-link-lib=z");
++    } else if !is_crossed {
++        cmd.arg("--system-libs");
++    } else if target.contains("windows-gnu") {
++        println!("cargo:rustc-link-lib=shell32");
++        println!("cargo:rustc-link-lib=uuid");
++    } else if target.contains("netbsd")
++        || target.contains("haiku") 
++        || target.contains("darwin")
++    {
++	// We build for i486, and then need -latomic for 64-bit atomics
++        if target.starts_with("i386")
++            || target.starts_with("i486") 
++            || target.starts_with("i586") 
++            || target.starts_with("i686") 
++        {
++	    println!("cargo:rustc-link-lib=atomic");
++        }
++        println!("cargo:rustc-link-lib=z");
+     }
+     cmd.args(&components);
+ 
+@@ -334,7 +346,13 @@ fn main() {
          "c++"
      } else if target.contains("netbsd") && llvm_static_stdcpp.is_some() {
          // NetBSD uses a separate library when relocation is required
diff --git a/rust/patches/patch-compiler_rustc__target_src_spec_mipsel__unknown__netbsd.rs b/rust/patches/patch-compiler_rustc__target_src_spec_mipsel__unknown__netbsd.rs
index 225e3a7472..3d6cd07fd4 100644
--- a/rust/patches/patch-compiler_rustc__target_src_spec_mipsel__unknown__netbsd.rs
+++ b/rust/patches/patch-compiler_rustc__target_src_spec_mipsel__unknown__netbsd.rs
@@ -4,13 +4,14 @@ Add target spec for NetBSD/mipsel.
 
 --- compiler/rustc_target/src/spec/mipsel_unknown_netbsd.rs.orig	2022-11-06 18:16:59.750850353 +0000
 +++ compiler/rustc_target/src/spec/mipsel_unknown_netbsd.rs	2022-11-06 18:14:10.846209169 +0000
-@@ -0,0 +1,19 @@
+@@ -0,0 +1,20 @@
 +use crate::abi::Endian;
 +use crate::spec::{Target, TargetOptions};
 +
 +pub fn target() -> Target {
 +    let mut base = super::netbsd_base::opts();
 +    base.max_atomic_width = Some(32);
++    base.cpu = "mips3".into();
 +
 +    Target {
 +	llvm_target: "mipsel-unknown-netbsd".into(),
diff --git a/rust/patches/patch-compiler_rustc__target_src_spec_mod.rs b/rust/patches/patch-compiler_rustc__target_src_spec_mod.rs
index 15922e087f..ff546f34be 100644
--- a/rust/patches/patch-compiler_rustc__target_src_spec_mod.rs
+++ b/rust/patches/patch-compiler_rustc__target_src_spec_mod.rs
@@ -4,8 +4,8 @@ Add i586(pentium), aarch64_be and mips NetBSD targets.
 
 --- compiler/rustc_target/src/spec/mod.rs.orig	2021-03-23 16:15:10.000000000 +0000
 +++ compiler/rustc_target/src/spec/mod.rs
-@@ -898,9 +898,12 @@ supported_targets! {
-     ("powerpc-unknown-openbsd", powerpc_unknown_openbsd),
+@@ -989,9 +989,12 @@ supported_targets! {
+     ("x86_64-unknown-openbsd", x86_64_unknown_openbsd),
  
      ("aarch64-unknown-netbsd", aarch64_unknown_netbsd),
 +    ("aarch64_be-unknown-netbsd", aarch64_be_unknown_netbsd),
diff --git a/rust/patches/patch-library_std_src_sys_unix_thread__parker_netbsd.rs b/rust/patches/patch-library_std_src_sys_unix_thread__parker_netbsd.rs
new file mode 100644
index 0000000000..622d3f9028
--- /dev/null
+++ b/rust/patches/patch-library_std_src_sys_unix_thread__parker_netbsd.rs
@@ -0,0 +1,75 @@
+$NetBSD$
+
+Try to cast to make this build, to avoid
+
+74 |                 tv_nsec: dur.subsec_nanos().into(),
+   |                          ^^^^^^^^^^^^^^^^^^ ---- required by a bound introduced by this call
+   |                          |
+   |                          the trait `core::convert::From<u32>` is not implemented for `i32`
+...
+   = note: required for `u32` to implement `core::convert::Into<i32>`
+
+For more information about this error, try `rustc --explain E0277`.
+
+Also, try to unbreak 32-bit ports ... again.
+
+--- library/std/src/sys/unix/thread_parker/netbsd.rs.orig	2022-11-02 14:36:24.000000000 +0000
++++ library/std/src/sys/unix/thread_parker/netbsd.rs
+@@ -2,7 +2,7 @@ use crate::ffi::{c_int, c_void};
+ use crate::pin::Pin;
+ use crate::ptr::{null, null_mut};
+ use crate::sync::atomic::{
+-    AtomicU64,
++    AtomicU32,
+     Ordering::{Acquire, Relaxed, Release},
+ };
+ use crate::time::Duration;
+@@ -24,19 +24,19 @@ extern "C" {
+ ///
+ /// Zero cannot be a valid LWP id, since it is used as empty value for the unpark
+ /// argument in _lwp_park.
+-const EMPTY: u64 = 0;
++const EMPTY: u32 = 0;
+ /// The token is available. Do not park anymore.
+-const NOTIFIED: u64 = u64::MAX;
++const NOTIFIED: u32 = u32::MAX;
+ 
+ pub struct Parker {
+     /// The parker state. Contains either one of the two state values above or the LWP
+     /// id of the parked thread.
+-    state: AtomicU64,
++    state: AtomicU32,
+ }
+ 
+ impl Parker {
+     pub unsafe fn new(parker: *mut Parker) {
+-        parker.write(Parker { state: AtomicU64::new(EMPTY) })
++        parker.write(Parker { state: AtomicU32::new(EMPTY) })
+     }
+ 
+     // Does not actually need `unsafe` or `Pin`, but the pthread implementation does.
+@@ -44,7 +44,7 @@ impl Parker {
+         // If the token has already been made available, we can skip
+         // a bit of work, so check for it here.
+         if self.state.load(Acquire) != NOTIFIED {
+-            let parked = _lwp_self() as u64;
++            let parked = _lwp_self();
+             let hint = self.state.as_mut_ptr().cast();
+             if self.state.compare_exchange(EMPTY, parked, Relaxed, Acquire).is_ok() {
+                 // Loop to guard against spurious wakeups.
+@@ -65,13 +65,13 @@ impl Parker {
+     // Does not actually need `unsafe` or `Pin`, but the pthread implementation does.
+     pub unsafe fn park_timeout(self: Pin<&Self>, dur: Duration) {
+         if self.state.load(Acquire) != NOTIFIED {
+-            let parked = _lwp_self() as u64;
++            let parked = _lwp_self();
+             let hint = self.state.as_mut_ptr().cast();
+             let mut timeout = timespec {
+                 // Saturate so that the operation will definitely time out
+                 // (even if it is after the heat death of the universe).
+                 tv_sec: dur.as_secs().try_into().ok().unwrap_or(time_t::MAX),
+-                tv_nsec: dur.subsec_nanos().into(),
++                tv_nsec: (dur.subsec_nanos() as libc::c_long).into(),
+             };
+ 
+             if self.state.compare_exchange(EMPTY, parked, Relaxed, Acquire).is_ok() {
diff --git a/rust/patches/patch-src_bootstrap_builder.rs b/rust/patches/patch-src_bootstrap_builder.rs
index 7e04db9c51..0bb7e9dd84 100644
--- a/rust/patches/patch-src_bootstrap_builder.rs
+++ b/rust/patches/patch-src_bootstrap_builder.rs
@@ -5,15 +5,15 @@ Use @PREFIX@, not $ORIGIN in rpath.
 
 --- src/bootstrap/builder.rs.orig	2022-06-27 13:37:07.000000000 +0000
 +++ src/bootstrap/builder.rs
-@@ -743,7 +743,6 @@ impl<'a> Builder<'a> {
+@@ -742,7 +742,6 @@ impl<'a> Builder<'a> {
                  install::Clippy,
                  install::Miri,
                  install::Analysis,
 -                install::Src,
                  install::Rustc
              ),
-             Kind::Run => describe!(run::ExpandYamlAnchors, run::BuildManifest, run::BumpStage0),
-@@ -1702,7 +1701,7 @@ impl<'a> Builder<'a> {
+             Kind::Run => describe!(
+@@ -1706,7 +1705,7 @@ impl<'a> Builder<'a> {
                  Some("-Wl,-rpath,@loader_path/../lib")
              } else if !target.contains("windows") {
                  rustflags.arg("-Clink-args=-Wl,-z,origin");
diff --git a/rust/patches/patch-src_llvm-project_llvm_include_llvm_Analysis_ConstantFolding.h b/rust/patches/patch-src_llvm-project_llvm_include_llvm_Analysis_ConstantFolding.h
index 76f1ced1d1..37d491478d 100644
--- a/rust/patches/patch-src_llvm-project_llvm_include_llvm_Analysis_ConstantFolding.h
+++ b/rust/patches/patch-src_llvm-project_llvm_include_llvm_Analysis_ConstantFolding.h
@@ -12,6 +12,6 @@ Fix SunOS CS conflict not handled by include/llvm-c/DataTypes.h
 +#undef CS
 +#endif
 +
+ #include <stdint.h>
+ 
  namespace llvm {
- class APInt;
- template <typename T> class ArrayRef;
diff --git a/rust/patches/patch-src_llvm-project_llvm_lib_Support_BLAKE3_blake3__impl.h b/rust/patches/patch-src_llvm-project_llvm_lib_Support_BLAKE3_blake3__impl.h
new file mode 100644
index 0000000000..dbd66f923d
--- /dev/null
+++ b/rust/patches/patch-src_llvm-project_llvm_lib_Support_BLAKE3_blake3__impl.h
@@ -0,0 +1,20 @@
+$NetBSD$
+
+Do not try to use neon on big-endian aarch64, as we have
+an #error waiting there.
+
+--- src/llvm-project/llvm/lib/Support/BLAKE3/blake3_impl.h.orig	2022-09-02 08:17:54.000000000 +0000
++++ src/llvm-project/llvm/lib/Support/BLAKE3/blake3_impl.h
+@@ -64,7 +64,11 @@ enum blake3_flags {
+ #if !defined(BLAKE3_USE_NEON) 
+   // If BLAKE3_USE_NEON not manually set, autodetect based on AArch64ness
+   #if defined(IS_AARCH64)
+-    #define BLAKE3_USE_NEON 1
++    #if defined(__ARM_BIG_ENDIAN)
++      #define BLAKE3_USE_NEON 0
++    #else
++      #define BLAKE3_USE_NEON 1
++    #endif
+   #else
+     #define BLAKE3_USE_NEON 0
+   #endif
diff --git a/rust/patches/patch-src_tools_rls_rls_src_cmd.rs b/rust/patches/patch-src_tools_rls_rls_src_cmd.rs
deleted file mode 100644
index 4297be2b96..0000000000
--- a/rust/patches/patch-src_tools_rls_rls_src_cmd.rs
+++ /dev/null
@@ -1,27 +0,0 @@
-$NetBSD: patch-src_tools_rls_rls_src_cmd.rs,v 1.1 2019/04/14 12:42:03 he Exp $
-
-Use 32-bit atomic instead of 64-bit; latter may not be available on
-32-bit platforms (powerpc, earmv7).
-
---- src/tools/rls/rls/src/cmd.rs.orig	2019-04-10 18:46:16.000000000 +0000
-+++ src/tools/rls/rls/src/cmd.rs
-@@ -7,7 +7,7 @@ use crate::config::Config;
- use crate::server::{self, LsService, Notification, Request, RequestId};
- use rls_analysis::{AnalysisHost, Target};
- use rls_vfs::Vfs;
--use std::sync::atomic::{AtomicU64, Ordering};
-+use std::sync::atomic::{AtomicU32, Ordering};
- 
- use lsp_types::{
-     ClientCapabilities, CodeActionContext, CodeActionParams, CompletionItem,
-@@ -316,8 +316,8 @@ fn url(file_name: &str) -> Url {
- }
- 
- fn next_id() -> RequestId {
--    static ID: AtomicU64 = AtomicU64::new(1);
--    RequestId::Num(ID.fetch_add(1, Ordering::SeqCst))
-+    static ID: AtomicU32 = AtomicU32::new(1);
-+    RequestId::Num(ID.fetch_add(1, Ordering::SeqCst) as u64)
- }
- 
- // Custom reader and output for the RLS server.
diff --git a/rust/patches/patch-src_tools_rls_rls_src_server_io.rs b/rust/patches/patch-src_tools_rls_rls_src_server_io.rs
deleted file mode 100644
index 996bc6be27..0000000000
--- a/rust/patches/patch-src_tools_rls_rls_src_server_io.rs
+++ /dev/null
@@ -1,41 +0,0 @@
-$NetBSD: patch-src_tools_rls_rls_src_server_io.rs,v 1.2 2019/05/31 14:11:23 jperkin Exp $
-
-Use 32-bit atomic instead of 64-bit; latter may not be available on
-32-bit platforms (powerpc, earmv7).
-
---- src/tools/rls/rls/src/server/io.rs.orig	2019-05-20 12:10:32.000000000 +0000
-+++ src/tools/rls/rls/src/server/io.rs
-@@ -5,7 +5,7 @@ use crate::lsp_data::{LSPNotification, L
- 
- use std::fmt;
- use std::io::{self, BufRead, Write};
--use std::sync::atomic::{AtomicU64, Ordering};
-+use std::sync::atomic::{AtomicU32, Ordering};
- use std::sync::Arc;
- 
- use jsonrpc_core::{self as jsonrpc, response, version, Id};
-@@ -169,13 +169,13 @@ pub trait Output: Sync + Send + Clone + 
- /// An output that sends notifications and responses on `stdout`.
- #[derive(Clone)]
- pub(super) struct StdioOutput {
--    next_id: Arc<AtomicU64>,
-+    next_id: Arc<AtomicU32>,
- }
- 
- impl StdioOutput {
-     /// Constructs a new `stdout` output.
-     pub(crate) fn new() -> StdioOutput {
--        StdioOutput { next_id: Arc::new(AtomicU64::new(1)) }
-+        StdioOutput { next_id: Arc::new(AtomicU32::new(1)) }
-     }
- }
- 
-@@ -192,7 +192,7 @@ impl Output for StdioOutput {
-     }
- 
-     fn provide_id(&self) -> RequestId {
--        RequestId::Num(self.next_id.fetch_add(1, Ordering::SeqCst))
-+        RequestId::Num(self.next_id.fetch_add(1, Ordering::SeqCst) as u64)
-     }
- }
- 
diff --git a/rust/patches/patch-vendor_cc-1.0.69_src_lib.rs b/rust/patches/patch-vendor_cc-1.0.69_src_lib.rs
deleted file mode 100644
index 8ea275ecb6..0000000000
--- a/rust/patches/patch-vendor_cc-1.0.69_src_lib.rs
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD$
-
-Add aarch64_be-unknown-netbsd.
-
---- vendor/cc-1.0.69/src/lib.rs.orig	2022-04-04 11:10:55.000000000 +0000
-+++ vendor/cc-1.0.69/src/lib.rs
-@@ -2382,6 +2382,7 @@ impl Build {
-             "aarch64-unknown-linux-gnu" => Some("aarch64-linux-gnu"),
-             "aarch64-unknown-linux-musl" => Some("aarch64-linux-musl"),
-             "aarch64-unknown-netbsd" => Some("aarch64--netbsd"),
-+	    "aarch64_be-unknown-netbsd" => Some("aarch64--netbsd"),
-             "arm-unknown-linux-gnueabi" => Some("arm-linux-gnueabi"),
-             "armv4t-unknown-linux-gnueabi" => Some("arm-linux-gnueabi"),
-             "armv5te-unknown-linux-gnueabi" => Some("arm-linux-gnueabi"),
diff --git a/rust/patches/patch-vendor_cc_src_lib.rs b/rust/patches/patch-vendor_cc_src_lib.rs
index d786cb3f52..cfc559a779 100644
--- a/rust/patches/patch-vendor_cc_src_lib.rs
+++ b/rust/patches/patch-vendor_cc_src_lib.rs
@@ -1,10 +1,10 @@
 $NetBSD$
 
-Add aarch64_eb.
+Add aarch64_eb and mipsel for NetBSD.
 
 --- vendor/cc/src/lib.rs.orig	2021-07-26 15:20:38.000000000 +0000
 +++ vendor/cc/src/lib.rs
-@@ -2382,6 +2382,7 @@ impl Build {
+@@ -2551,6 +2551,7 @@ impl Build {
              "aarch64-unknown-linux-gnu" => Some("aarch64-linux-gnu"),
              "aarch64-unknown-linux-musl" => Some("aarch64-linux-musl"),
              "aarch64-unknown-netbsd" => Some("aarch64--netbsd"),
@@ -12,3 +12,11 @@ Add aarch64_eb.
              "arm-unknown-linux-gnueabi" => Some("arm-linux-gnueabi"),
              "armv4t-unknown-linux-gnueabi" => Some("arm-linux-gnueabi"),
              "armv5te-unknown-linux-gnueabi" => Some("arm-linux-gnueabi"),
+@@ -2585,6 +2586,7 @@ impl Build {
+             "mips-unknown-linux-musl" => Some("mips-linux-musl"),
+             "mipsel-unknown-linux-gnu" => Some("mipsel-linux-gnu"),
+             "mipsel-unknown-linux-musl" => Some("mipsel-linux-musl"),
++            "mipsel-unknown-netbsd" => Some("mipsel--netbsd"),
+             "mips64-unknown-linux-gnuabi64" => Some("mips64-linux-gnuabi64"),
+             "mips64el-unknown-linux-gnuabi64" => Some("mips64el-linux-gnuabi64"),
+             "mipsisa32r6-unknown-linux-gnu" => Some("mipsisa32r6-linux-gnu"),
diff --git a/rust/patches/patch-vendor_libc-0.2.131_src_unix_bsd_netbsdlike_netbsd_mips.rs b/rust/patches/patch-vendor_libc-0.2.131_src_unix_bsd_netbsdlike_netbsd_mips.rs
new file mode 100644
index 0000000000..cc3a667dd8
--- /dev/null
+++ b/rust/patches/patch-vendor_libc-0.2.131_src_unix_bsd_netbsdlike_netbsd_mips.rs
@@ -0,0 +1,27 @@
+$NetBSD$
+
+--- vendor/libc-0.2.131/src/unix/bsd/netbsdlike/netbsd/mips.rs.orig	2022-11-21 21:09:34.700302249 +0000
++++ vendor/libc-0.2.131/src/unix/bsd/netbsdlike/netbsd/mips.rs
+@@ -0,0 +1,22 @@
++use PT_FIRSTMACH;
++
++pub type c_long = i32;
++pub type c_ulong = u32;
++pub type c_char = i8;
++pub type __cpu_simple_lock_nv_t = ::c_int;
++
++// 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;
++    }
++}
++
++pub const PT_GETREGS: ::c_int = PT_FIRSTMACH + 1;
++pub const PT_SETREGS: ::c_int = PT_FIRSTMACH + 2;
++pub const PT_GETFPREGS: ::c_int = PT_FIRSTMACH + 3;
++pub const PT_SETFPREGS: ::c_int = PT_FIRSTMACH + 4;
diff --git a/rust/patches/patch-vendor_libc-0.2.131_src_unix_bsd_netbsdlike_netbsd_mod.rs b/rust/patches/patch-vendor_libc-0.2.131_src_unix_bsd_netbsdlike_netbsd_mod.rs
new file mode 100644
index 0000000000..c76cdf2b01
--- /dev/null
+++ b/rust/patches/patch-vendor_libc-0.2.131_src_unix_bsd_netbsdlike_netbsd_mod.rs
@@ -0,0 +1,44 @@
+$NetBSD$
+
+--- vendor/libc-0.2.131/src/unix/bsd/netbsdlike/netbsd/mod.rs.orig	2022-11-02 16:21:41.000000000 +0000
++++ vendor/libc-0.2.131/src/unix/bsd/netbsdlike/netbsd/mod.rs
+@@ -2971,6 +2971,22 @@ extern "C" {
+     pub fn kinfo_getvmmap(pid: ::pid_t, cntp: *mut ::size_t) -> *mut kinfo_vmentry;
+ }
+ 
++#[link(name = "execinfo")]
++extern "C" {
++    pub fn backtrace(addrlist: *mut *mut ::c_void, len: ::size_t) -> ::size_t;
++    pub fn backtrace_symbols(addrlist: *const *mut ::c_void, len: ::size_t) -> *mut *mut ::c_char;
++    pub fn backtrace_symbols_fd(
++        addrlist: *const *mut ::c_void,
++        len: ::size_t,
++        fd: ::c_int,
++    ) -> ::c_int;
++    pub fn backtrace_symbols_fmt(
++        addrlist: *const *mut ::c_void,
++        len: ::size_t,
++        fmt: *const ::c_char,
++    ) -> *mut *mut ::c_char;
++}
++
+ cfg_if! {
+     if #[cfg(target_arch = "aarch64")] {
+         mod aarch64;
+@@ -2990,7 +3006,15 @@ cfg_if! {
+     } else if #[cfg(target_arch = "x86")] {
+         mod x86;
+         pub use self::x86::*;
++    } else if #[cfg(target_arch = "mips")] {
++        mod mips;
++        pub use self::mips::*;
++    } else if #[cfg(target_arch = "mipsel")] {
++        mod mips;
++        pub use self::mips::*;
+     } else {
+-        // Unknown target_arch
++        // Unknown target_arch, this should error out
++        mod unknown;
++        pub use self::unknown::*;
+     }
+ }
diff --git a/rust/patches/patch-vendor_libc-0.2.131_src_unix_solarish_mod.rs b/rust/patches/patch-vendor_libc-0.2.131_src_unix_solarish_mod.rs
new file mode 100644
index 0000000000..32ddc4092c
--- /dev/null
+++ b/rust/patches/patch-vendor_libc-0.2.131_src_unix_solarish_mod.rs
@@ -0,0 +1,15 @@
+$NetBSD: patch-vendor_libc_src_unix_solarish_mod.rs,v 1.1 2019/05/31 14:11:23 jperkin Exp $
+
+Fix xattr build.
+
+--- vendor/libc-0.2.131/src/unix/solarish/mod.rs.orig	2019-05-20 13:47:24.000000000 +0000
++++ vendor/libc-0.2.131/src/unix/solarish/mod.rs
+@@ -1215,6 +1215,8 @@ pub const EOWNERDEAD: ::c_int = 58;
+ pub const ENOTRECOVERABLE: ::c_int = 59;
+ pub const ENOSTR: ::c_int = 60;
+ pub const ENODATA: ::c_int = 61;
++// This is not supported but is required for xattr
++pub const ENOATTR: ::c_int = ::ENODATA;
+ pub const ETIME: ::c_int = 62;
+ pub const ENOSR: ::c_int = 63;
+ pub const ENONET: ::c_int = 64;
diff --git a/rust/patches/patch-vendor_libc_src_unix_bsd_netbsdlike_netbsd_mod.rs b/rust/patches/patch-vendor_libc_src_unix_bsd_netbsdlike_netbsd_mod.rs
index 8f34746b55..f323097969 100644
--- a/rust/patches/patch-vendor_libc_src_unix_bsd_netbsdlike_netbsd_mod.rs
+++ b/rust/patches/patch-vendor_libc_src_unix_bsd_netbsdlike_netbsd_mod.rs
@@ -4,7 +4,7 @@ Copy execinfo function definitions from openbsd's mod.rs.
 
 --- vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs.orig	2022-05-10 20:59:35.217463943 +0000
 +++ vendor/libc/src/unix/bsd/netbsdlike/netbsd/mod.rs
-@@ -2821,6 +2821,22 @@ extern "C" {
+@@ -2971,6 +2971,22 @@ extern "C" {
      pub fn kinfo_getvmmap(pid: ::pid_t, cntp: *mut ::size_t) -> *mut kinfo_vmentry;
  }
  
@@ -27,7 +27,7 @@ Copy execinfo function definitions from openbsd's mod.rs.
  cfg_if! {
      if #[cfg(target_arch = "aarch64")] {
          mod aarch64;
-@@ -2840,6 +2856,12 @@ cfg_if! {
+@@ -2990,7 +3006,15 @@ cfg_if! {
      } else if #[cfg(target_arch = "x86")] {
          mod x86;
          pub use self::x86::*;
@@ -38,5 +38,9 @@ Copy execinfo function definitions from openbsd's mod.rs.
 +        mod mips;
 +        pub use self::mips::*;
      } else {
-         // Unknown target_arch
+-        // Unknown target_arch
++        // Unknown target_arch, this should error out
++        mod unknown;
++        pub use self::unknown::*;
      }
+ }
diff --git a/rust/patches/patch-vendor_openssl-src_openssl_Configurations_10-main.conf b/rust/patches/patch-vendor_openssl-src_openssl_Configurations_10-main.conf
new file mode 100644
index 0000000000..f43dc21125
--- /dev/null
+++ b/rust/patches/patch-vendor_openssl-src_openssl_Configurations_10-main.conf
@@ -0,0 +1,18 @@
+$NetBSD$
+
+Replicate part of
+https://github.com/openssl/openssl/pull/15086
+
+--- vendor/openssl-src/openssl/Configurations/10-main.conf.orig	2022-11-02 16:21:42.000000000 +0000
++++ vendor/openssl-src/openssl/Configurations/10-main.conf
+@@ -943,6 +943,10 @@ my %targets = (
+         shared_cflag     => "-fPIC",
+         shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
+     },
++    "NetBSD-generic32" => {
++        inherit_from     => [ "BSD-generic32" ],
++        ex_libs          => add(threads("-latomic")),
++    },
+     "BSD-generic64" => {
+         inherit_from     => [ "BSD-generic32" ],
+         bn_ops           => "SIXTY_FOUR_BIT_LONG",
diff --git a/rust/patches/patch-vendor_openssl-src_src_lib.rs b/rust/patches/patch-vendor_openssl-src_src_lib.rs
index b7ab3a1365..16b3666581 100644
--- a/rust/patches/patch-vendor_openssl-src_src_lib.rs
+++ b/rust/patches/patch-vendor_openssl-src_src_lib.rs
@@ -40,7 +40,7 @@ Provide defaults for the various NetBSD targets.
              "mips64el-unknown-linux-muslabi64" => "linux64-mips64",
              "mipsel-unknown-linux-gnu" => "linux-mips32",
              "mipsel-unknown-linux-musl" => "linux-mips32",
-+            "mipsel-unknown-netbsd" => "BSD-generic32",
++            "mipsel-unknown-netbsd" => "NetBSD-generic32",
              "powerpc-unknown-freebsd" => "BSD-generic32",
              "powerpc-unknown-linux-gnu" => "linux-ppc",
 +            "powerpc-unknown-netbsd" => "BSD-generic32",
diff --git a/rust/patches/patch-vendor_openssl-sys_build_main.rs b/rust/patches/patch-vendor_openssl-sys_build_main.rs
new file mode 100644
index 0000000000..c77797e311
--- /dev/null
+++ b/rust/patches/patch-vendor_openssl-sys_build_main.rs
@@ -0,0 +1,24 @@
+$NetBSD$
+
+Patterned after Linux and Android, on 32-bit NetBSD ports
+include -latomic.  Parts of this inspired by
+https://github.com/sfackler/rust-openssl/commit/a0a1d1d29263abb7c47fc2e58cef8dab13762a45
+
+--- vendor/openssl-sys/build/main.rs.orig	2022-11-02 16:21:42.000000000 +0000
++++ vendor/openssl-sys/build/main.rs
+@@ -117,6 +117,15 @@ fn main() {
+     {
+         println!("cargo:rustc-link-lib=dylib=atomic");
+     }
++    // Patterned of the above, make sure we include -latomic
++    // on ilp32 ports (yes, this only tests the "p32" part).
++    if kind == "static"
++        && env::var("CARGO_CFG_TARGET_OS").unwrap() == "netbsd"
++        && env::var("CARGO_CFG_TARGET_POINTER_WIDTH").unwrap() == "32"
++    {
++        println!("cargo:rustc-link-lib=dylib=atomic");
++    }
++
+ 
+     if kind == "static" && target.contains("windows") {
+         println!("cargo:rustc-link-lib=dylib=gdi32");
diff --git a/rust/patches/patch-vendor_target-lexicon_src_targets.rs b/rust/patches/patch-vendor_target-lexicon_src_targets.rs
index 323e0d4773..a021070993 100644
--- a/rust/patches/patch-vendor_target-lexicon_src_targets.rs
+++ b/rust/patches/patch-vendor_target-lexicon_src_targets.rs
@@ -1,10 +1,10 @@
 $NetBSD$
 
-Add aarch64_eb for NetBSD.
+Add aarch64_eb and mipsel for NetBSD.
 
 --- vendor/target-lexicon/src/targets.rs.orig	2021-05-03 21:35:46.000000000 +0000
 +++ vendor/target-lexicon/src/targets.rs
-@@ -1287,6 +1287,7 @@ mod tests {
+@@ -1335,6 +1335,7 @@ mod tests {
              "aarch64-unknown-linux-gnu_ilp32",
              "aarch64-unknown-linux-musl",
              "aarch64-unknown-netbsd",
@@ -12,3 +12,11 @@ Add aarch64_eb for NetBSD.
              "aarch64-unknown-none",
              "aarch64-unknown-none-softfloat",
              "aarch64-unknown-openbsd",
+@@ -1423,6 +1424,7 @@ mod tests {
+             "mipsel-unknown-linux-gnu",
+             "mipsel-unknown-linux-musl",
+             "mipsel-unknown-linux-uclibc",
++            "mipsel-unknown-netbsd",
+             "mipsel-unknown-none",
+             "mipsisa32r6el-unknown-linux-gnu",
+             "mipsisa32r6-unknown-linux-gnu",


Home | Main Index | Thread Index | Old Index