pkgsrc-Changes archive

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

CVS commit: pkgsrc/lang/rust



Module Name:    pkgsrc
Committed By:   he
Date:           Fri Jan  1 20:44:49 UTC 2021

Modified Files:
        pkgsrc/lang/rust: Makefile distinfo options.mk
        pkgsrc/lang/rust/patches: patch-src_bootstrap_builder.rs
Added Files:
        pkgsrc/lang/rust/patches:
            patch-compiler_rustc__codegen__ssa_src_back_linker.rs
            patch-compiler_rustc__llvm_build.rs
            patch-compiler_rustc__target_src_spec_netbsd__base.rs
            patch-compiler_rustc__target_src_spec_solaris__base.rs
            patch-compiler_rustc__target_src_spec_x86__64__sun__solaris.rs
            patch-library_backtrace_crates_backtrace-sys_src_libbacktrace_configure
            patch-library_std_src_os_linux_fs.rs patch-vendor_net2_src_ext.rs
            patch-vendor_openssl-src_src_lib.rs
Removed Files:
        pkgsrc/lang/rust/patches:
            patch-src_librustc__codegen__ssa_back_linker.rs
            patch-src_librustc__llvm_build.rs
            patch-src_librustc__target_spec_netbsd__base.rs
            patch-src_librustc__target_spec_solaris__base.rs
            patch-src_librustc__target_spec_x86__64__sun__solaris.rs

Log Message:
Upgrade rust to version 1.48.0.

Pkgsrc changes:
 * Compensate for files being moved around upstream.
 * Introduce optional, on-by-default semi-static building of cargo,
   using the internal curl and openssl sources.  This reduces the dynamic
   dependencies of cargo and therefore the rust package itself.
   Ref. options.mk.
 * The 1.47.0 bootstrap kits have been re-built with the above option
   turned on, so no longer depends on curl or openssl from pkgsrc and/or
   from earlier OS or pkgsrc versions.  This should hopefully fix
   installation of rust with non-default PREFIX, ref. PR#54453.

Upstream changes:

Version 1.48.0 (2020-11-19)
==========================

Language
--------
- [The `unsafe` keyword is now syntactically permitted on modules.][75857] This
  is still rejected *semantically*, but can now be parsed by procedural macros.

Compiler
--------
- [Stabilised the `-C link-self-contained=<yes|no>` compiler flag.][76158]
  This tells `rustc` whether to link its own C runtime and libraries
  or to rely on a external linker to find them. (Supported only on
  `windows-gnu`, `linux-musl`, and `wasi` platforms.)
- [You can now use `-C target-feature=+crt-static` on `linux-gnu` targets.]
  [77386]
  Note: If you're using cargo you must explicitly pass the `--target` flag.
- [Added tier 2\* support for `aarch64-unknown-linux-musl`.][76420]

\* Refer to Rust's [platform support page][forge-platform-support] for more
information on Rust's tiered platform support.

Libraries
---------
- [`io::Write` is now implemented for `&ChildStdin` `&Sink`, `&Stdout`,
  and `&Stderr`.][76275]
- [All arrays of any length now implement `TryFrom<Vec<T>>`.][76310]
- [The `matches!` macro now supports having a trailing comma.][74880]
- [`Vec<A>` now implements `PartialEq<[B]>` where `A: PartialEq<B>`.][74194]
- [The `RefCell::{replace, replace_with, clone}` methods now all use
  `#[track_caller]`.][77055]

Stabilized APIs
---------------
- [`slice::as_ptr_range`]
- [`slice::as_mut_ptr_range`]
- [`VecDeque::make_contiguous`]
- [`future::pending`]
- [`future::ready`]

The following previously stable methods are now `const fn`'s:

- [`Option::is_some`]
- [`Option::is_none`]
- [`Option::as_ref`]
- [`Result::is_ok`]
- [`Result::is_err`]
- [`Result::as_ref`]
- [`Ordering::reverse`]
- [`Ordering::then`]

Cargo
-----

Rustdoc
-------
- [You can now link to items in `rustdoc` using the intra-doc link
  syntax.][74430] E.g. ``/// Uses [`std::future`]`` will automatically generate
  a link to `std::future`'s documentation. See ["Linking to items by
  name"][intradoc-links] for more information.
- [You can now specify `#[doc(alias = "<alias>")]` on items to add
  search aliases when searching through `rustdoc`'s UI.][75740]

Compatibility Notes
-------------------
- [Promotion of references to `'static` lifetime inside `const fn`
  now follows the same rules as inside a `fn` body.][75502] In
  particular, `&foo()` will not be promoted to `'static` lifetime
  any more inside `const fn`s.
- [Associated type bindings on trait objects are now verified to meet the bounds
  declared on the trait when checking that they implement the trait.][27675]
- [When trait bounds on associated types or opaque types are ambiguous, the
  compiler no longer makes an arbitrary choice on which bound to use.][54121]
- [Fixed recursive nonterminals not being expanded in macros during
  pretty-print/reparse check.][77153] This may cause errors if your macro wasn't
  correctly handling recursive nonterminal tokens.
- [`&mut` references to non zero-sized types are no longer promoted.][75585]
- [`rustc` will now warn if you use attributes like `#[link_name]` or `#[cold]`
  in places where they have no effect.][73461]
- [Updated `_mm256_extract_epi8` and `_mm256_extract_epi16` signatures in
  `arch::{x86, x86_64}` to return `i32` to match the vendor signatures.][73166]
- [`mem::uninitialized` will now panic if any inner types inside
  a struct or enum disallow zero-initialization.][71274]
- [`#[target_feature]` will now error if used in a place where it
  has no effect.][78143]
- [Foreign exceptions are now caught by `catch_unwind` and will
  cause an abort.][70212] Note: This behaviour is not guaranteed
  and is still considered undefined behaviour, see the [`catch_unwind`]
  documentation for further information.

Internal Only
-------------
These changes provide no direct user facing benefits, but represent significant
improvements to the internals and overall performance of rustc and
related tools.

- [Building `rustc` from source now uses `ninja` by default over `make`.][74922]
  You can continue building with `make` by setting `ninja=false` in
  your `config.toml`.
- [cg_llvm: `fewer_names` in `uncached_llvm_type`][76030]
- [Made `ensure_sufficient_stack()` non-generic][76680]

[78143]: https://github.com/rust-lang/rust/issues/78143
[76680]: https://github.com/rust-lang/rust/pull/76680/
[76030]: https://github.com/rust-lang/rust/pull/76030/
[70212]: https://github.com/rust-lang/rust/pull/70212/
[27675]: https://github.com/rust-lang/rust/issues/27675/
[54121]: https://github.com/rust-lang/rust/issues/54121/
[71274]: https://github.com/rust-lang/rust/pull/71274/
[77386]: https://github.com/rust-lang/rust/pull/77386/
[77153]: https://github.com/rust-lang/rust/pull/77153/
[77055]: https://github.com/rust-lang/rust/pull/77055/
[76275]: https://github.com/rust-lang/rust/pull/76275/
[76310]: https://github.com/rust-lang/rust/pull/76310/
[76420]: https://github.com/rust-lang/rust/pull/76420/
[76158]: https://github.com/rust-lang/rust/pull/76158/
[75857]: https://github.com/rust-lang/rust/pull/75857/
[75585]: https://github.com/rust-lang/rust/pull/75585/
[75740]: https://github.com/rust-lang/rust/pull/75740/
[75502]: https://github.com/rust-lang/rust/pull/75502/
[74880]: https://github.com/rust-lang/rust/pull/74880/
[74922]: https://github.com/rust-lang/rust/pull/74922/
[74430]: https://github.com/rust-lang/rust/pull/74430/
[74194]: https://github.com/rust-lang/rust/pull/74194/
[73461]: https://github.com/rust-lang/rust/pull/73461/
[73166]: https://github.com/rust-lang/rust/pull/73166/
[intradoc-links]: https://doc.rust-lang.org/rustdoc/linking-to-items-by-name.html
[`catch_unwind`]: https://doc.rust-lang.org/std/panic/fn.catch_unwind.html
[`Option::is_some`]: https://doc.rust-lang.org/std/option/enum.Option.html#method.is_some
[`Option::is_none`]: https://doc.rust-lang.org/std/option/enum.Option.html#method.is_none
[`Option::as_ref`]: https://doc.rust-lang.org/std/option/enum.Option.html#method.as_ref
[`Result::is_ok`]: https://doc.rust-lang.org/std/result/enum.Result.html#method.is_ok
[`Result::is_err`]: https://doc.rust-lang.org/std/result/enum.Result.html#method.is_err
[`Result::as_ref`]: https://doc.rust-lang.org/std/result/enum.Result.html#method.as_ref
[`Ordering::reverse`]: https://doc.rust-lang.org/std/cmp/enum.Ordering.html#method.reverse
[`Ordering::then`]: https://doc.rust-lang.org/std/cmp/enum.Ordering.html#method.then
[`slice::as_ptr_range`]: https://doc.rust-lang.org/std/primitive.slice.html#method.as_ptr_range
[`slice::as_mut_ptr_range`]: https://doc.rust-lang.org/std/primitive.slice.html#method.as_mut_ptr_range
[`VecDeque::make_contiguous`]: https://doc.rust-lang.org/std/collections/struct.VecDeque.html#method.make_contiguous
[`future::pending`]: https://doc.rust-lang.org/std/future/fn.pending.html
[`future::ready`]: https://doc.rust-lang.org/std/future/fn.ready.html


To generate a diff of this commit:
cvs rdiff -u -r1.208 -r1.209 pkgsrc/lang/rust/Makefile
cvs rdiff -u -r1.122 -r1.123 pkgsrc/lang/rust/distinfo
cvs rdiff -u -r1.7 -r1.8 pkgsrc/lang/rust/options.mk
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/lang/rust/patches/patch-compiler_rustc__codegen__ssa_src_back_linker.rs \
    pkgsrc/lang/rust/patches/patch-compiler_rustc__llvm_build.rs \
    pkgsrc/lang/rust/patches/patch-compiler_rustc__target_src_spec_netbsd__base.rs \
    pkgsrc/lang/rust/patches/patch-compiler_rustc__target_src_spec_solaris__base.rs \
    pkgsrc/lang/rust/patches/patch-compiler_rustc__target_src_spec_x86__64__sun__solaris.rs \
    pkgsrc/lang/rust/patches/patch-library_backtrace_crates_backtrace-sys_src_libbacktrace_configure \
    pkgsrc/lang/rust/patches/patch-library_std_src_os_linux_fs.rs \
    pkgsrc/lang/rust/patches/patch-vendor_openssl-src_src_lib.rs
cvs rdiff -u -r1.11 -r1.12 \
    pkgsrc/lang/rust/patches/patch-src_bootstrap_builder.rs
cvs rdiff -u -r1.1 -r0 \
    pkgsrc/lang/rust/patches/patch-src_librustc__codegen__ssa_back_linker.rs \
    pkgsrc/lang/rust/patches/patch-src_librustc__target_spec_netbsd__base.rs \
    pkgsrc/lang/rust/patches/patch-src_librustc__target_spec_x86__64__sun__solaris.rs
cvs rdiff -u -r1.6 -r0 \
    pkgsrc/lang/rust/patches/patch-src_librustc__llvm_build.rs
cvs rdiff -u -r1.4 -r0 \
    pkgsrc/lang/rust/patches/patch-src_librustc__target_spec_solaris__base.rs
cvs rdiff -u -r0 -r1.3 pkgsrc/lang/rust/patches/patch-vendor_net2_src_ext.rs

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

Modified files:

Index: pkgsrc/lang/rust/Makefile
diff -u pkgsrc/lang/rust/Makefile:1.208 pkgsrc/lang/rust/Makefile:1.209
--- pkgsrc/lang/rust/Makefile:1.208     Sun Nov 29 20:15:15 2020
+++ pkgsrc/lang/rust/Makefile   Fri Jan  1 20:44:48 2021
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.208 2020/11/29 20:15:15 he Exp $
+# $NetBSD: Makefile,v 1.209 2021/01/01 20:44:48 he Exp $
 
-DISTNAME=      rustc-1.47.0-src
+DISTNAME=      rustc-1.48.0-src
 PKGNAME=       ${DISTNAME:S/rustc/rust/:S/-src//}
 CATEGORIES=    lang
 MASTER_SITES=  https://static.rust-lang.org/dist/
@@ -44,12 +44,18 @@ CONFIGURE_ARGS+=            --disable-ninja
 # XXX: to be enabled in the future
 #CONFIGURE_ARGS+=              --jemalloc-root=${BUILDLINK_PREFIX.jemalloc}/lib
 
+# Include (optional) settings to cross-build rust
+.include "cross.mk"
+
+.if !empty(TARGET)
 # Use "dist" build target for cross compile of bootstrap
-#BUILD_TARGET=         dist
+BUILD_TARGET=          dist
+.else
 BUILD_TARGET=          build
+.endif
 
-# Include (optional) settings to cross-build rust
-.include "cross.mk"
+# More diag when failing
+#MAKE_ENV+=            RUST_BACKTRACE=1
 
 # Getting RPATH with $ORIGIN into bootstrap may be troublesome, so
 # uncommenting the LD_LIBRARY_PATH setting may be required to run
@@ -154,7 +160,7 @@ BUILDLINK_TRANSFORM.NetBSD+=        rm:-Wl,--en
 DISTFILES:=            ${DEFAULT_DISTFILES}
 
 .if !empty(MACHINE_PLATFORM:MDarwin-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=       1.46.0
+RUST_STAGE0_VER=       1.47.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
@@ -162,7 +168,7 @@ DISTFILES:=         ${DISTFILES} ${RUST_STAGE0}
 pre-build-fix:
 .endif
 .if !empty(MACHINE_PLATFORM:MLinux-*-i386) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=       1.46.0
+RUST_STAGE0_VER=       1.47.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
@@ -170,7 +176,7 @@ DISTFILES:=         ${DISTFILES} ${RUST_STAGE0}
 pre-build-fix:
 .endif
 .if !empty(MACHINE_PLATFORM:MLinux-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=       1.46.0
+RUST_STAGE0_VER=       1.47.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
@@ -187,7 +193,7 @@ RUST_BOOTSTRAP_PATH?=       ${WRKDIR}/rust-${R
 pre-build-fix:
 .endif
 .if !empty(MACHINE_PLATFORM:MFreeBSD-*-i386) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=       1.46.0
+RUST_STAGE0_VER=       1.47.0
 RUST_ARCH:=            i686-unknown-freebsd
 RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
@@ -195,7 +201,7 @@ DISTFILES:=         ${DISTFILES} ${RUST_STAGE0}
 pre-build-fix:
 .endif
 .if !empty(MACHINE_PLATFORM:MFreeBSD-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=       1.46.0
+RUST_STAGE0_VER=       1.47.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
@@ -203,7 +209,7 @@ DISTFILES:=         ${DISTFILES} ${RUST_STAGE0}
 pre-build-fix:
 .endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-i386) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=       1.46.0
+RUST_STAGE0_VER=       1.47.0
 RUST_ARCH=             i686-unknown-netbsd
 RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
@@ -220,7 +226,7 @@ pre-build-fix:
        ${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.46.0
+RUST_STAGE0_VER=       1.47.0
 RUST_ARCH=             x86_64-unknown-netbsd
 RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
@@ -228,7 +234,7 @@ DISTFILES:=         ${DISTFILES} ${RUST_STAGE0}
 pre-build-fix:
 .endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-powerpc) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=       1.46.0
+RUST_STAGE0_VER=       1.47.0
 RUST_ARCH=             powerpc-unknown-netbsd
 
 # Cross-built against NetBSD 9.0
@@ -252,7 +258,7 @@ SITES.${RUST_STD_STAGE0}=   ${MASTER_SITE_
 pre-build-fix:
 .endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-aarch64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=       1.46.0
+RUST_STAGE0_VER=       1.47.0
 RUST_ARCH=             aarch64-unknown-netbsd
 RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
@@ -262,7 +268,7 @@ SITES.${RUST_STD_STAGE0}=   ${MASTER_SITE_
 pre-build-fix:
 .endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-sparc64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=       1.46.0
+RUST_STAGE0_VER=       1.47.0
 RUST_ARCH=             sparc64-unknown-netbsd
 RUST_STAGE0:=          rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 RUST_STD_STAGE0:=      rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
@@ -273,7 +279,7 @@ pre-build-fix:
 .endif
 .if !empty(MACHINE_PLATFORM:MNetBSD-*-earmv7hf) || make(distinfo) || make (makesum) || make(mdi)
 RUST_ARCH=             armv7-unknown-netbsd-eabihf
-RUST_STAGE0_VER=       1.46.0
+RUST_STAGE0_VER=       1.47.0
 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}
@@ -282,7 +288,8 @@ SITES.${RUST_STD_STAGE0}=   ${MASTER_SITE_
 pre-build-fix:
 .endif
 
-# You may override RUST_BOOTSTRAP_PATH and RUST_ARCH in mk.conf if you have a local bootstrap compiler.
+# You may override RUST_BOOTSTRAP_PATH and RUST_ARCH in mk.conf
+# if you have a local bootstrap compiler.
 .if !defined(RUST_ARCH) && !defined(RUST_BOOTSTRAP_PATH)
 NOT_FOR_PLATFORM+=     ${MACHINE_PLATFORM}
 .else
@@ -299,8 +306,9 @@ TOOLS_PLATFORM.gzcat=       ${PREFIX}/bin/gzip
 
 SUBST_CLASSES+=                rpath
 SUBST_STAGE.rpath=     pre-configure
-SUBST_FILES.rpath+=    src/librustc_codegen_ssa/back/linker.rs
+SUBST_FILES.rpath+=    compiler/rustc_codegen_ssa/src/back/linker.rs
 SUBST_FILES.rpath+=    src/bootstrap/builder.rs
+SUBST_FILES.rpath+=    src/bootstrap/compile.rs
 SUBST_VARS.rpath=      PREFIX
 
 #
@@ -310,16 +318,25 @@ SUBST_VARS.rpath= PREFIX
 # updating and verification.
 #
 CKSUM_CRATES+= vendor/libc
-CKSUMS+=       9f96e346d87296e2b0b87b9fe375d67fb66cd88ce61ea2905466c8c5891d3108
-CKSUMS+=       ebcb0709586e6ed1e8b4538368201638006e26042d464bbc1151bef9eb158f8c
+CKSUMS+=       a9e46c0eee970cb5b4bd910924141d223fad4aa45380d3df1ce4b25992a13037
+CKSUMS+=       41394431697e352653c37188233bd44776881eb704132203b1a232271d1afd92
 
 CKSUM_CRATES+= vendor/lzma-sys
 CKSUMS+=       6fd5e9245db34c6f557b8bfcaf03db82fc88c3b06dbfbb5f03b2bcd138983ef9
 CKSUMS+=       5e252578b5d266f6a4c8dc9f71ca7a91536ccb8c5c7d7753b82f12ec886459ef
 
 CKSUM_CRATES+= vendor/stacker
-CKSUMS+=       37ef9666d048191eeca23d8f7d99cf912b953cc489bf860107aec306b95b2d99
-CKSUMS+=       410f22f5e95860530be1abaaf2e279d2f4226e5c17c2cee302661d8079246b3a
+CKSUMS+=       cee329550bad2ed1182abb71db9c24558a91b12e1eab8d9a48e23b997bb8f04e
+CKSUMS+=       79915b243d02df1dc698f5c2de3a9356c6c296d2dedb06d9035dbcc2f8972cf4
+
+CKSUM_CRATES+= vendor/net2
+CKSUMS+=       03836f768aaf8c7bc9a351f3c10ce47d1f27f162133e99941850f84bb0e9dbc5
+CKSUMS+=       bc857fca2bb7a6c999b19911339dff54a882ef096ad424f21dcec9e13600b871
+
+CKSUM_CRATES+= vendor/openssl-src
+CKSUMS+=       29499e62a2cde2fda48d21df58812ee5c198ef744522992bde8faae76747ac08
+CKSUMS+=       e34f9921c6531d043f3516821442aaeda86c7912d40cbddaf79bba6b08c37952
+
 
 SUBST_CLASSES+=                cksum
 SUBST_STAGE.cksum=     pre-configure
@@ -330,6 +347,17 @@ SUBST_FILES.cksum+=        ${crate}/.cargo-chec
 SUBST_SED.cksum+=      -e 's,${from},${to},g'
 .endfor
 
+# Patchelf appears to create unrecognized binaries...
+#.if ${OPSYS} == "NetBSD"
+#TOOL_DEPENDS+=        patchelf-[0-9]*:../../devel/patchelf
+#PATCHELF=     ${PREFIX}/bin/patchelf
+#FORCE_RPATH=  --force-rpath
+#.endif
+
+#TOOL_DEPENDS+=                patchelf-[0-9]*:../../devel/patchelf
+#PATCHELF=             ${PREFIX}/bin/patchelf
+#FORCE_RPATH=          --force-rpath
+
 post-extract:
        set -e;                                                                 \
        if ${TEST} -e ${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}/install.sh \
@@ -351,6 +379,12 @@ post-extract:
        ${LN} -s gcc-wrap c++-wrap; \
        ${LN} -s gcc-wrap clang++-wrap; \
        ${LN} -s gcc-wrap clang-wrap
+       # Fixup cargo rpath to pick up libcurl.so
+#      RPATH='${PREFIX}/lib:/lib:/usr/lib:$$ORIGIN/../lib'; \
+#      for f in bin/cargo; do \
+#              f=${RUST_BOOTSTRAP_PATH:Q}/$$f; \
+#              ${PATCHELF} ${FORCE_RPATH} --set-rpath $${RPATH} $$f; \
+#      done
 .endif
 
 .if ${OPSYS} == "FreeBSD"
@@ -439,7 +473,11 @@ stage0-bootstrap: install
        ${ECHO} "$${RUST_STD_FILE}"; \
        )
 .endif
+
 .if ${OS_VARIANT} == "SmartOS"
+stage0-bootstrap: install
+       ${RM} -rf ${BOOTSTRAP_TMPDIR}
+       ${MKDIR} ${BOOTSTRAP_TMPDIR}
        ${CP} -R ${DESTDIR}/${PREFIX}/bin ${BOOTSTRAP_TMPDIR}/
        ${CP} -R ${DESTDIR}/${PREFIX}/lib ${BOOTSTRAP_TMPDIR}/
        ${MKDIR} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc
@@ -447,12 +485,12 @@ stage0-bootstrap: install
                ${CP} `${PKG_CC} -print-file-name=$${lib}` \
                    ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \
        done
-       # direct dependencies
+       : direct dependencies
        for lib in libLLVM-10.so libcrypto.so.1.1 libcurl.so.4 \
                   libssl.so.1.1 libz.so.1; do \
                ${CP} ${PREFIX}/lib/$${lib} ${BOOTSTRAP_TMPDIR}/lib/pkgsrc/; \
        done
-       # libcurl dependencies
+       : libcurl dependencies
        for lib in libiconv.so.2 libidn2.so.0 libintl.so.8 liblber-2.4.so.2 \
                   libldap-2.4.so.2 libnghttp2.so.14 libsasl2.so.3 \
                   libssh2.so.1 libunistring.so.2; do \
@@ -527,9 +565,13 @@ DEPENDS+=  libatomic-links>=0:../../devel
 DEPENDS+=      openssl>=1.1:../../security/openssl
 .endif
 
+# This is for when we build natively:
+.if ((${OPSYS} == "NetBSD") && \
+       ((${MACHINE_ARCH} == "powerpc") || (${MACHINE_ARCH} == "i386")))
+# For 8-byte atomics, required by LLVM
+.include "../../devel/libatomic/buildlink3.mk"
+.endif
+
 .include "../../devel/zlib/buildlink3.mk"
 .include "../../lang/python/tool.mk"
-.include "../../security/openssl/buildlink3.mk"
-BUILDLINK_API_DEPENDS.curl+= curl>=7.67.0
-.include "../../www/curl/buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"

Index: pkgsrc/lang/rust/distinfo
diff -u pkgsrc/lang/rust/distinfo:1.122 pkgsrc/lang/rust/distinfo:1.123
--- pkgsrc/lang/rust/distinfo:1.122     Sun Nov 29 20:15:15 2020
+++ pkgsrc/lang/rust/distinfo   Fri Jan  1 20:44:48 2021
@@ -1,121 +1,123 @@
-$NetBSD: distinfo,v 1.122 2020/11/29 20:15:15 he Exp $
+$NetBSD: distinfo,v 1.123 2021/01/01 20:44:48 he Exp $
 
-SHA1 (rust-1.46.0-aarch64-unknown-netbsd.tar.gz) = eded0c71aa6a82c76d6cfbac118894a6f7da4ec6
-RMD160 (rust-1.46.0-aarch64-unknown-netbsd.tar.gz) = 2cd29b4fbc4d0ef45b8c354143285d10544bbc99
-SHA512 (rust-1.46.0-aarch64-unknown-netbsd.tar.gz) = c786388985624bca14f570fac428b3cf5c44651eb6b4531a772a37532aad0a483675ad14eb085a151e2df5158015b3304fc50f6891143b87db6062c631e03e0b
-Size (rust-1.46.0-aarch64-unknown-netbsd.tar.gz) = 182621413 bytes
-SHA1 (rust-1.46.0-armv7-unknown-netbsd-eabihf.tar.gz) = 893a266a63dfe09f9171ccdbc9f1ed0a5e1ed790
-RMD160 (rust-1.46.0-armv7-unknown-netbsd-eabihf.tar.gz) = 784efe53365fb31e3c22b65665d787c6bcc7429e
-SHA512 (rust-1.46.0-armv7-unknown-netbsd-eabihf.tar.gz) = b14d57936a2acf0b75ed06f993f6a3fc3d6256916a8779d95e32070035fa70244c438757cdaa7589e579a94506f4fd51b642c3741efcc4600fa74fe17b13289e
-Size (rust-1.46.0-armv7-unknown-netbsd-eabihf.tar.gz) = 178391148 bytes
-SHA1 (rust-1.46.0-i686-unknown-freebsd.tar.gz) = ae44f976ccf0d75fa628111066c837b30fe48552
-RMD160 (rust-1.46.0-i686-unknown-freebsd.tar.gz) = 7192a7ec3466e052adff03276aa4a700056d9c6a
-SHA512 (rust-1.46.0-i686-unknown-freebsd.tar.gz) = 83dc955a5d4ae662cc9d040f63ad4256f4f119840206e9a6cc63a50471e50e0ec2d8ba0d5a08c884be426f0c564e5aac8cdb72f3d53d1dcf9693721fb1907281
-Size (rust-1.46.0-i686-unknown-freebsd.tar.gz) = 148236060 bytes
-SHA1 (rust-1.46.0-i686-unknown-linux-gnu.tar.gz) = 03708900d3b598fb5d0744fc3231717583332480
-RMD160 (rust-1.46.0-i686-unknown-linux-gnu.tar.gz) = b1b0edef4ef59fb45b10651be535e86ab39388cb
-SHA512 (rust-1.46.0-i686-unknown-linux-gnu.tar.gz) = f1c31dd5ff2418558adc066ec28a30397174c98c430fe2d460e7fd8aa69bdf829c4664d6ce0e0865abe0826a2c4b984f657fbdd16434b652c246f9565e726e8e
-Size (rust-1.46.0-i686-unknown-linux-gnu.tar.gz) = 239332716 bytes
-SHA1 (rust-1.46.0-i686-unknown-netbsd.tar.gz) = b0df9421abd4fb83642b70f7e4b2110b7832d7b6
-RMD160 (rust-1.46.0-i686-unknown-netbsd.tar.gz) = 607b734ba3ba0a22e72d90aea6e5a108e7f8349b
-SHA512 (rust-1.46.0-i686-unknown-netbsd.tar.gz) = 9f3fe35d90560d421d2b6451c224ce25e428b503edeff0480ae641816de417114fc4625403c9de9ace25727ba3e96d0724972a1de8ca842436e1cc0b1a7fa3fa
-Size (rust-1.46.0-i686-unknown-netbsd.tar.gz) = 188902391 bytes
-SHA1 (rust-1.46.0-powerpc-unknown-netbsd.tar.gz) = cd9f2ead55fd0a352c49e8b8ec54d3d2dadfac9f
-RMD160 (rust-1.46.0-powerpc-unknown-netbsd.tar.gz) = b7256e0585cc847ee7ce684df7eef9b2c3b33cab
-SHA512 (rust-1.46.0-powerpc-unknown-netbsd.tar.gz) = cec587e5f637e98b7e84dbb98a7909761ff542a11db4a8bba803c23c5506f3e295c978a44d58b8dc04e1922eaa84a8975e51e94d6468a389a8269b4112be734a
-Size (rust-1.46.0-powerpc-unknown-netbsd.tar.gz) = 203327311 bytes
-SHA1 (rust-1.46.0-powerpc-unknown-netbsd90.tar.gz) = 351da480de1729ed2b71da77db33125bace91502
-RMD160 (rust-1.46.0-powerpc-unknown-netbsd90.tar.gz) = 31e921ff8afa8d5fb10bde7c978db0201c2f416e
-SHA512 (rust-1.46.0-powerpc-unknown-netbsd90.tar.gz) = 246db3de65be1f15f258a2fc0d1a8581fd7f79b9f268b3c0f4a5d2c568128015d9ee1a58764554adc391511b2456be1865bbba1ab8157ea326056d40cf21221b
-Size (rust-1.46.0-powerpc-unknown-netbsd90.tar.gz) = 205741294 bytes
-SHA1 (rust-1.46.0-sparc64-unknown-netbsd.tar.gz) = 81496a47afde128a6e218372120d246443f4b8b6
-RMD160 (rust-1.46.0-sparc64-unknown-netbsd.tar.gz) = 1cc4cef2f9cfd870c880f968f9e1f0886c7a3005
-SHA512 (rust-1.46.0-sparc64-unknown-netbsd.tar.gz) = 13b71a650d6c654bf226d2e576e56f502bc09135db467e72bfc6a72a3487aa42a53ae5b3f8d5872cb5d984038c1331eaf2520e64fd54fa9b9342e8593f96bdda
-Size (rust-1.46.0-sparc64-unknown-netbsd.tar.gz) = 194861080 bytes
-SHA1 (rust-1.46.0-x86_64-apple-darwin.tar.gz) = ab50631713ba1ea0c9cf8759d4a4773dc2583133
-RMD160 (rust-1.46.0-x86_64-apple-darwin.tar.gz) = 389cca70b6343be27ba0719803a00117a36b882d
-SHA512 (rust-1.46.0-x86_64-apple-darwin.tar.gz) = a49f3e1205a0cf4419a0c910168f16c5566b665129ca5f7c7ba0b7c885a335672484aecffad1bf2fb8b462d1e08a7f70c5150e1a7394e138eec0e8c7f3ee8d28
-Size (rust-1.46.0-x86_64-apple-darwin.tar.gz) = 200695610 bytes
 SHA1 (rust-1.46.0-x86_64-sun-solaris.tar.gz) = 081ed2fab901b7b4fbf5035b731abe7793e927b8
 RMD160 (rust-1.46.0-x86_64-sun-solaris.tar.gz) = fdac437710f87a228d4c56b569fc831784f193c5
 SHA512 (rust-1.46.0-x86_64-sun-solaris.tar.gz) = cbb5be647b1ee0f2f2074d1e3138e6b1ec69e500e4411342255128b1625cb78797af15e0bc895601d62f43ce50049401b2f88edb7c951a405ee7aa645e4b67cf
 Size (rust-1.46.0-x86_64-sun-solaris.tar.gz) = 174780795 bytes
-SHA1 (rust-1.46.0-x86_64-unknown-freebsd.tar.gz) = 8232b2e76f71d56c3e274ca62c44767020926a56
-RMD160 (rust-1.46.0-x86_64-unknown-freebsd.tar.gz) = 6dd5f589bb146c59139a56b023f76b6903d79eff
-SHA512 (rust-1.46.0-x86_64-unknown-freebsd.tar.gz) = 1e1b0dbeaa17e27be58704b7c600d88b53322689a05471e8ffcfd65934b90a3ff4dddc49cbf2be8ae1f069ca4ee6512b5e3aebc7a88ee329baa3d37d12788118
-Size (rust-1.46.0-x86_64-unknown-freebsd.tar.gz) = 148721211 bytes
-SHA1 (rust-1.46.0-x86_64-unknown-linux-gnu.tar.gz) = 466e32dbaf6fe105e7d754c1daba4ab32365d3d6
-RMD160 (rust-1.46.0-x86_64-unknown-linux-gnu.tar.gz) = 832375edc504d4b7eab308c64db86b4f13c76d4c
-SHA512 (rust-1.46.0-x86_64-unknown-linux-gnu.tar.gz) = 1924938ad33a145c022d0880b6d2ae03dc263a2a3c316147f4ec44751d42a74a4280b4a74ea32f1723644f8299e26ddcb0876b12f32ee9a3d359072bfa55be22
-Size (rust-1.46.0-x86_64-unknown-linux-gnu.tar.gz) = 220885103 bytes
-SHA1 (rust-1.46.0-x86_64-unknown-netbsd.tar.gz) = 61956d35f668318f91523edf983ef280c967e4f8
-RMD160 (rust-1.46.0-x86_64-unknown-netbsd.tar.gz) = f73fe050d4f536bba8577104eb93471a468b714c
-SHA512 (rust-1.46.0-x86_64-unknown-netbsd.tar.gz) = afaeb235f445a8813838548ee694c90ab71c3a0fc235652ce0d35e932f0609e2be9f5986bd99ed80d03b24e1b1362ccb6db05cb1eff61284a523477b19f34d7a
-Size (rust-1.46.0-x86_64-unknown-netbsd.tar.gz) = 154685586 bytes
-SHA1 (rust-std-1.46.0-aarch64-unknown-netbsd.tar.gz) = d04cb25391069a02db58a04e23407c6334d34ae3
-RMD160 (rust-std-1.46.0-aarch64-unknown-netbsd.tar.gz) = ee49ba41901143b8fafe71dad2e0b775458f7fac
-SHA512 (rust-std-1.46.0-aarch64-unknown-netbsd.tar.gz) = 562418e30c7339caec19259fdf4154d3690e913ec1c2f6498f05acd9b877b13527acd7c5daecfe32dc0f0c30142860fcd1315488df0c585190bf96862bf68162
-Size (rust-std-1.46.0-aarch64-unknown-netbsd.tar.gz) = 17642299 bytes
-SHA1 (rust-std-1.46.0-armv7-unknown-netbsd-eabihf.tar.gz) = c2484f9088ac95a9121608a56b115fa5399cfea7
-RMD160 (rust-std-1.46.0-armv7-unknown-netbsd-eabihf.tar.gz) = 32db03fbc65dcc85ab3336ba1ae6093977652683
-SHA512 (rust-std-1.46.0-armv7-unknown-netbsd-eabihf.tar.gz) = 2400ff368953bd65b90b52354d1c037a6fe6ea1f9ede3cd7388678107af799b717187921716b5a479647e940010a746facadcc4a5d03106a17316132ae290548
-Size (rust-std-1.46.0-armv7-unknown-netbsd-eabihf.tar.gz) = 17330293 bytes
-SHA1 (rust-std-1.46.0-i686-unknown-freebsd.tar.gz) = 71034bf67db32451c92dd1c60ac106f6f47c4d3f
-RMD160 (rust-std-1.46.0-i686-unknown-freebsd.tar.gz) = 900eec237b79d3fd8aa54954c8694d48024d7880
-SHA512 (rust-std-1.46.0-i686-unknown-freebsd.tar.gz) = 1280f7b6571522d635e27c529fe32c4d4b65b796ed5ddf6a62dd64e96ee19136f9437027fcee282998c4b52b959c55590f418dfc17c1576339ccfbe88e9e3419
-Size (rust-std-1.46.0-i686-unknown-freebsd.tar.gz) = 22264630 bytes
-SHA1 (rust-std-1.46.0-i686-unknown-linux-gnu.tar.gz) = 9963b64d434d3119e3bc450f5316251ff79fd812
-RMD160 (rust-std-1.46.0-i686-unknown-linux-gnu.tar.gz) = 8f5fa510347b15c0f7d02f56c5eb849a82dbded4
-SHA512 (rust-std-1.46.0-i686-unknown-linux-gnu.tar.gz) = 64172faa19ef725748a3b219d8cdd3d919ceca61ee8dd3fdb11b6ef540f4956b759eb589888af83829bd5f95c033b0a528115a996b41e09c3dfa090b7aba5438
-Size (rust-std-1.46.0-i686-unknown-linux-gnu.tar.gz) = 22931718 bytes
-SHA1 (rust-std-1.46.0-i686-unknown-netbsd.tar.gz) = 4df47785a48a91b0e97447437281764617123f52
-RMD160 (rust-std-1.46.0-i686-unknown-netbsd.tar.gz) = de36c4ec1da2923e6df222e1842ab9f862013038
-SHA512 (rust-std-1.46.0-i686-unknown-netbsd.tar.gz) = e343a4be4d7bad99eb34c0a78b85a418b1745b92e01e0366dc4faee785d8abc64db86781508a184298085d6f4fef5e405b7c25a2c47461b4d7dd9ef63526ea25
-Size (rust-std-1.46.0-i686-unknown-netbsd.tar.gz) = 19130660 bytes
-SHA1 (rust-std-1.46.0-powerpc-unknown-netbsd.tar.gz) = 720f9223284f64c46b4a97b03646dbf49bdbd8b9
-RMD160 (rust-std-1.46.0-powerpc-unknown-netbsd.tar.gz) = 383f5d6d0b1d5400c4350f4beb330bb7c845e070
-SHA512 (rust-std-1.46.0-powerpc-unknown-netbsd.tar.gz) = 8c300cfbefe0e6d73da6db23bb29bd53f72f44f1fc141d35bf54b92253ad32f1a67b0a046a062dec748f2fe596b375d29b960de2461537bfdf2b07b2a1f5e812
-Size (rust-std-1.46.0-powerpc-unknown-netbsd.tar.gz) = 17214042 bytes
-SHA1 (rust-std-1.46.0-powerpc-unknown-netbsd90.tar.gz) = e8402adb09f3b6f5f1e2d946326b080b39f85273
-RMD160 (rust-std-1.46.0-powerpc-unknown-netbsd90.tar.gz) = 5cfd6606ba4efafc24510744a2128873134c185a
-SHA512 (rust-std-1.46.0-powerpc-unknown-netbsd90.tar.gz) = fca29cc0d24214e9adbfcef066eba90d8547895d6cb11756437d2c9e546f2177270006c2920d8df2d446167ede4da77e7a44d962c9b0cdef1bce0f2c2025cb1f
-Size (rust-std-1.46.0-powerpc-unknown-netbsd90.tar.gz) = 17215928 bytes
-SHA1 (rust-std-1.46.0-sparc64-unknown-netbsd.tar.gz) = a8c7c0fc2ea161cc7b510fced1ffdd901606c72b
-RMD160 (rust-std-1.46.0-sparc64-unknown-netbsd.tar.gz) = b33198386d7bc104ec2de32391dc743bcf34c90a
-SHA512 (rust-std-1.46.0-sparc64-unknown-netbsd.tar.gz) = 5be3e09c41c30273422364e02c08152b0ad4566cdd9226c7f93b3d2ee4b6b61ff111deeb1f52c78fcdae83e70b45b3b318acb6a419053709d2fdbb976a06bb4c
-Size (rust-std-1.46.0-sparc64-unknown-netbsd.tar.gz) = 17426659 bytes
-SHA1 (rust-std-1.46.0-x86_64-apple-darwin.tar.gz) = b13298974a034fbabd93dfba6555a3a9d5615dfa
-RMD160 (rust-std-1.46.0-x86_64-apple-darwin.tar.gz) = bd8d58fca200428b03603d770beeee8bf94e5de6
-SHA512 (rust-std-1.46.0-x86_64-apple-darwin.tar.gz) = d8d46db3dd54c7b14115bf8da7c96a18dc62e7fcf1605ec3060c0760bd2db960fd9b5e0a22a0b7e39c3429454d60d24d67eca4a546dd8e5acf46aad33113e16b
-Size (rust-std-1.46.0-x86_64-apple-darwin.tar.gz) = 22888748 bytes
-SHA1 (rust-std-1.46.0-x86_64-unknown-freebsd.tar.gz) = 04bf127ce1d9037d8bd6eb5ca7fb86c0a34a8af1
-RMD160 (rust-std-1.46.0-x86_64-unknown-freebsd.tar.gz) = 02f08dbccf2db9cfbcca54c295005c77597fef62
-SHA512 (rust-std-1.46.0-x86_64-unknown-freebsd.tar.gz) = 3f55e514aff6dfcc61c1959a94d182d3c6ac0c2ac597de4770f400ade8905259f689b0e92854ed0ede6d82ca8ea2f0934c6acb51eef28e2346f38f8eec63bfec
-Size (rust-std-1.46.0-x86_64-unknown-freebsd.tar.gz) = 22639606 bytes
-SHA1 (rust-std-1.46.0-x86_64-unknown-linux-gnu.tar.gz) = deb1cb9d57777ef630b2acbda60794f902dc5a08
-RMD160 (rust-std-1.46.0-x86_64-unknown-linux-gnu.tar.gz) = 928fa8cee3123af975ab3e5bbcc58f8258a37cd9
-SHA512 (rust-std-1.46.0-x86_64-unknown-linux-gnu.tar.gz) = 0291f64bb01ca02dbfa8e25c23ff1c90ffc431e8455244e366bc1e88ce3db9ff5de452f744692b5bb3e9c34c50308fe11997737566f378ec3c09ac4345889c8a
-Size (rust-std-1.46.0-x86_64-unknown-linux-gnu.tar.gz) = 26310833 bytes
-SHA1 (rust-std-1.46.0-x86_64-unknown-netbsd.tar.gz) = 154767516a8f1e358c340d602efa9d86622cb4bd
-RMD160 (rust-std-1.46.0-x86_64-unknown-netbsd.tar.gz) = 1f504e4f7053246067d0e41ddbcadd85ddf573c6
-SHA512 (rust-std-1.46.0-x86_64-unknown-netbsd.tar.gz) = 2e3431bfe462408906b4553a181653b68c615bae6170362e73dd125ae538b499cd745cc903ca79db41aff9bff3ce366726c92570be5fa264723be7d7018fbbce
-Size (rust-std-1.46.0-x86_64-unknown-netbsd.tar.gz) = 22644831 bytes
-SHA1 (rustc-1.47.0-src.tar.gz) = 5a337c88aeb04a31011037671588fd66b046ca32
-RMD160 (rustc-1.47.0-src.tar.gz) = 2fee85c5e52046982a51eff62f64e123f798ed56
-SHA512 (rustc-1.47.0-src.tar.gz) = a6df9e2d599806eeddbfb35f7dea976781533f63d369a765b8a304221281c9f9e642ff952978f69eaaa0b28740ab5ea566b35ce481097c37fd5117bfec1f43dd
-Size (rustc-1.47.0-src.tar.gz) = 151861620 bytes
+SHA1 (rust-1.47.0-aarch64-unknown-netbsd.tar.gz) = f0b42fe4c567ffb0d83b523854bca4fa67d4167e
+RMD160 (rust-1.47.0-aarch64-unknown-netbsd.tar.gz) = e5d079b0920aa02b16b4a9804867e6d1118833eb
+SHA512 (rust-1.47.0-aarch64-unknown-netbsd.tar.gz) = 169ec96ffaa4acf11a788df32645e2a05eec51577bb9fa1dc6d92138e7b192cfd9cc5cf7233888fc2f92faea9b01e825c6ad12bce22e90cdb3547d921b716072
+Size (rust-1.47.0-aarch64-unknown-netbsd.tar.gz) = 199151437 bytes
+SHA1 (rust-1.47.0-armv7-unknown-netbsd-eabihf.tar.gz) = af3cd6f8e399bb4bd3b380656bd38be442659d63
+RMD160 (rust-1.47.0-armv7-unknown-netbsd-eabihf.tar.gz) = 252e5b5acd7127771c3e2efad5d0778261d3e9c7
+SHA512 (rust-1.47.0-armv7-unknown-netbsd-eabihf.tar.gz) = 8e848269796a8873a6a38280fc6d36126e028fc86a23fc6b10abe9144f0ac3fde8bbaeab94a2fff6f8c6afc472102397b25acad9c941ffb9df675b807abb4e7d
+Size (rust-1.47.0-armv7-unknown-netbsd-eabihf.tar.gz) = 194009311 bytes
+SHA1 (rust-1.47.0-i686-unknown-freebsd.tar.gz) = 300946572098d0b5a0f0cb478a3db603552b0094
+RMD160 (rust-1.47.0-i686-unknown-freebsd.tar.gz) = df7837448c979ed0236fdca341416970ed318789
+SHA512 (rust-1.47.0-i686-unknown-freebsd.tar.gz) = 3afd2825a595a0b49f70be5208af32d009a893a0503d39a8107c0a7f6aed03388de17d7969952f38e5f17cb8eec797c7b6c0ef4fb7e8753117d25b8f636867b2
+Size (rust-1.47.0-i686-unknown-freebsd.tar.gz) = 165705233 bytes
+SHA1 (rust-1.47.0-i686-unknown-linux-gnu.tar.gz) = 4bfcacb88da06c79cbf4befed7abaf2c68879136
+RMD160 (rust-1.47.0-i686-unknown-linux-gnu.tar.gz) = 18f068c22805456608b317388599c16198fe3577
+SHA512 (rust-1.47.0-i686-unknown-linux-gnu.tar.gz) = e0242669826ea5cdc7c16f76cfb5aa83ea8b258575086e48c60e47b4532f763133ec3d205be262bc2ea6fb34157e71fae1a9851075d88065c2a44bb1aa05c083
+Size (rust-1.47.0-i686-unknown-linux-gnu.tar.gz) = 260725750 bytes
+SHA1 (rust-1.47.0-i686-unknown-netbsd.tar.gz) = 8879f74868b4be0cb3a67e8cb8f0e5012f860886
+RMD160 (rust-1.47.0-i686-unknown-netbsd.tar.gz) = ac76b7f4dcc02869c914078198815c75ab31dede
+SHA512 (rust-1.47.0-i686-unknown-netbsd.tar.gz) = 7adfa7bd4333e51f66747c020e357611078bd043fa198eaff794f1c7052b88f567eca8d072a6d91256524057108985e4c274727dc6b069093329557f6b19a1da
+Size (rust-1.47.0-i686-unknown-netbsd.tar.gz) = 211036337 bytes
+SHA1 (rust-1.47.0-powerpc-unknown-netbsd.tar.gz) = c525e9f7e5522aa5317d2a4cbcfac9be6ad51450
+RMD160 (rust-1.47.0-powerpc-unknown-netbsd.tar.gz) = 505fb203ef2760b4e4b959bb086942086d3869e4
+SHA512 (rust-1.47.0-powerpc-unknown-netbsd.tar.gz) = 244cce86e51069c6e551c396340294b47ac980c86f7c87e0c8e5b0e6d2412d463cb877c17173534198d96880de86bec63d158ec28781f350c5cc37a88ddba57f
+Size (rust-1.47.0-powerpc-unknown-netbsd.tar.gz) = 221658288 bytes
+SHA1 (rust-1.47.0-powerpc-unknown-netbsd90.tar.gz) = 77af4384128f27a8c90927485fdc9d9f317003f3
+RMD160 (rust-1.47.0-powerpc-unknown-netbsd90.tar.gz) = 98d1bfcc425dc36b8c43d2bd660d517903a7d534
+SHA512 (rust-1.47.0-powerpc-unknown-netbsd90.tar.gz) = 5f076f9499c7ff99dc242fd32600b1fae8d95009f4aa7e23bd8d24d5e3fe661c37f861678229e053767da346f43f4ad9198854bcb7cdc583f30f3b3566b811fc
+Size (rust-1.47.0-powerpc-unknown-netbsd90.tar.gz) = 224431630 bytes
+SHA1 (rust-1.47.0-sparc64-unknown-netbsd.tar.gz) = 6fba5170fe900e407df2fb9458dd0b55bbeb3abd
+RMD160 (rust-1.47.0-sparc64-unknown-netbsd.tar.gz) = af00b5c05f4596326ddee34c2b49c83ca82cf0af
+SHA512 (rust-1.47.0-sparc64-unknown-netbsd.tar.gz) = fa7b8171a8fc3cc68e8d01d19ef7cbdd86c972d72b12ff4b82db453cff7ab2737cf877998dbed04110d194a7921c51dbfa7d74290bbf6a032ae47e9c76243750
+Size (rust-1.47.0-sparc64-unknown-netbsd.tar.gz) = 213420565 bytes
+SHA1 (rust-1.47.0-x86_64-apple-darwin.tar.gz) = b6fab31455cab494f6181fadf62a62024e3f04bf
+RMD160 (rust-1.47.0-x86_64-apple-darwin.tar.gz) = 96a923852dcd07403dc99690cbb8a30f8f079b8e
+SHA512 (rust-1.47.0-x86_64-apple-darwin.tar.gz) = a79d0b63c80156071f3c45495aef8c15a21e542ef91ddc82b060fe855435931aff9a033e49489d1bdc99b9fa90c3699c070ec315ba1528ae80c3b04dca386092
+Size (rust-1.47.0-x86_64-apple-darwin.tar.gz) = 217297294 bytes
+SHA1 (rust-1.47.0-x86_64-unknown-freebsd.tar.gz) = 188b6ff63d84c5cc77837a8c0da336a252817193
+RMD160 (rust-1.47.0-x86_64-unknown-freebsd.tar.gz) = 75b1bf671bb213c21e2837b2906a304efed73140
+SHA512 (rust-1.47.0-x86_64-unknown-freebsd.tar.gz) = c7f824a3c30abe88dc1407d9cf3df3a15ae1956bac1440ef840bb8568ba5c90de41752c5fb7911efe6ea2d980e043024a919a91c00baf9818d9860b73e8c095f
+Size (rust-1.47.0-x86_64-unknown-freebsd.tar.gz) = 167054016 bytes
+SHA1 (rust-1.47.0-x86_64-unknown-linux-gnu.tar.gz) = 0490c63e3867f2f08ccb9d59115d4178fe9a2d48
+RMD160 (rust-1.47.0-x86_64-unknown-linux-gnu.tar.gz) = a778edf90b0588410548fe4be0555c8d6af04d83
+SHA512 (rust-1.47.0-x86_64-unknown-linux-gnu.tar.gz) = 71a4e1502fa61343f375e546d32be9c7ef80f5121ed8245fc5bce4fc63a71e5b773860c1c73c30b43b0fe9d925edef83724e5bdee647a57674cc0a49ae80a140
+Size (rust-1.47.0-x86_64-unknown-linux-gnu.tar.gz) = 258961351 bytes
+SHA1 (rust-1.47.0-x86_64-unknown-netbsd.tar.gz) = 7266eda5b62ad3694adf060ae338b377f87a1964
+RMD160 (rust-1.47.0-x86_64-unknown-netbsd.tar.gz) = 3af2c1979828ac4b58f8bac7afab6f74a7c50049
+SHA512 (rust-1.47.0-x86_64-unknown-netbsd.tar.gz) = 8144315817e95bda035bfb4e36d26cc98b05207608153d904a6b844d7fb5b91c05d8b85e835364c61ac03e1abc7de35da9c1f38f14e097821336707ef9bc8103
+Size (rust-1.47.0-x86_64-unknown-netbsd.tar.gz) = 169801360 bytes
+SHA1 (rust-std-1.47.0-aarch64-unknown-netbsd.tar.gz) = 884af2f7056645358eff12d13d9cb31e67144b0c
+RMD160 (rust-std-1.47.0-aarch64-unknown-netbsd.tar.gz) = a103715a5281546f5d980bb24eac6f5967b1ff61
+SHA512 (rust-std-1.47.0-aarch64-unknown-netbsd.tar.gz) = 813507abf2bec48741823315d0b234460ab248da1ff6b0f8eeb72452b7dd9ef80e3fa1df98134204aeced60486d6076ac11cc2f1ce77a370957aa9111a1d1fda
+Size (rust-std-1.47.0-aarch64-unknown-netbsd.tar.gz) = 24376858 bytes
+SHA1 (rust-std-1.47.0-armv7-unknown-netbsd-eabihf.tar.gz) = d082780034e9c0bafd349f9e3a4e863754e814ac
+RMD160 (rust-std-1.47.0-armv7-unknown-netbsd-eabihf.tar.gz) = d1decf4edda1898ac80b4529361d13d12a464dae
+SHA512 (rust-std-1.47.0-armv7-unknown-netbsd-eabihf.tar.gz) = 39d9fb834732a385da7ee931e2e2fea569c484fbe2a582c0c8c487fd1edd82818acf9c88dca792bcc8c6629110dd5f88ff483af86f9c28821922904d999ce762
+Size (rust-std-1.47.0-armv7-unknown-netbsd-eabihf.tar.gz) = 24100214 bytes
+SHA1 (rust-std-1.47.0-i686-unknown-freebsd.tar.gz) = 518fad5ad56029f56d6ff336bd211e6e004eb913
+RMD160 (rust-std-1.47.0-i686-unknown-freebsd.tar.gz) = ab375f9c4c70598f05dd0ebb1b51388b104807a7
+SHA512 (rust-std-1.47.0-i686-unknown-freebsd.tar.gz) = a0b047de934f54db8298409f98e3d96f81d67bcc476a80573c5a3dcc13da9c6e83a0118992a2d6831c5659f08f02421dae9a0b78f2c1e3c5fbc188bdcc2caf4e
+Size (rust-std-1.47.0-i686-unknown-freebsd.tar.gz) = 30859334 bytes
+SHA1 (rust-std-1.47.0-i686-unknown-linux-gnu.tar.gz) = 467467bfe511a6f02b4df1d41254793d4439d537
+RMD160 (rust-std-1.47.0-i686-unknown-linux-gnu.tar.gz) = fe3145387d6294a79df0530cc4a7b57409368644
+SHA512 (rust-std-1.47.0-i686-unknown-linux-gnu.tar.gz) = efe1495c98f400d3d3fc9f720b0102dab5805d4d0117d231e5d7cc0849022ef6230b0c9d84c8d932e039ab79c76cf7368b5f5281af91152fee4219b8dc614275
+Size (rust-std-1.47.0-i686-unknown-linux-gnu.tar.gz) = 31420176 bytes
+SHA1 (rust-std-1.47.0-i686-unknown-netbsd.tar.gz) = 344493acb21c5300948df243bfc09f4e3d2549c4
+RMD160 (rust-std-1.47.0-i686-unknown-netbsd.tar.gz) = 7ac33388f10dbac506103d07c5dedeea5d7189e4
+SHA512 (rust-std-1.47.0-i686-unknown-netbsd.tar.gz) = c50311303f42be9bcc685a325475b171c525ff8b04dacc4909fb3cb7efdf4a6d6727713cb886d65878226220e3ab6b033539c1f45a3ffc8664e6b10b0c1e793e
+Size (rust-std-1.47.0-i686-unknown-netbsd.tar.gz) = 27757522 bytes
+SHA1 (rust-std-1.47.0-powerpc-unknown-netbsd.tar.gz) = 38baf76e558de59734bb8e206f24469edb8bed38
+RMD160 (rust-std-1.47.0-powerpc-unknown-netbsd.tar.gz) = 6695e5f27cd67bc21fe691cb765e75aba1e7f89d
+SHA512 (rust-std-1.47.0-powerpc-unknown-netbsd.tar.gz) = eac80d5eac3a7cb68703c9a3725ef4edfe13492a9663d1523dd1a68bfa583b345e0dec80bc452cb771d22066e4ab6d9487b7be72da6c9c6d6e335e8724b3d7e5
+Size (rust-std-1.47.0-powerpc-unknown-netbsd.tar.gz) = 23960056 bytes
+SHA1 (rust-std-1.47.0-powerpc-unknown-netbsd90.tar.gz) = 525732d0e731c80285db7f2a06f77f094fa4ea9f
+RMD160 (rust-std-1.47.0-powerpc-unknown-netbsd90.tar.gz) = 15f0254a64d644177d706b5dddefd79ede2bf118
+SHA512 (rust-std-1.47.0-powerpc-unknown-netbsd90.tar.gz) = 08a06928090fdd9dcbacca4b9155737ea9bc0eafc16e7a4873caea35e34946ed347f10f79e9f9c630f315f51e64124907cd1f3ad8fa76c99f80243f56378d223
+Size (rust-std-1.47.0-powerpc-unknown-netbsd90.tar.gz) = 23954845 bytes
+SHA1 (rust-std-1.47.0-sparc64-unknown-netbsd.tar.gz) = cfe530888826ef444be25c9e7574cab259667d4a
+RMD160 (rust-std-1.47.0-sparc64-unknown-netbsd.tar.gz) = 5fe62ffada49ef06cfdb9a510e0fc279e65a04fc
+SHA512 (rust-std-1.47.0-sparc64-unknown-netbsd.tar.gz) = dbc3e1d9deea4682e4c6e8558611bf79ae6dafabb99ee119408e2822cc847792cce1174691c37e659b011b6ee14f11d6936a3962e4d8ea32bac9ef7f5da38266
+Size (rust-std-1.47.0-sparc64-unknown-netbsd.tar.gz) = 24246031 bytes
+SHA1 (rust-std-1.47.0-x86_64-apple-darwin.tar.gz) = 170efd4dab0b26a15689a8fe07044f25de23dcb7
+RMD160 (rust-std-1.47.0-x86_64-apple-darwin.tar.gz) = e14974ba0ad1756d19e586fd1323437c46a6928a
+SHA512 (rust-std-1.47.0-x86_64-apple-darwin.tar.gz) = 687f82a95fc3c7ff14611ad0f3322bb64aabc97395edcd3d3f62a9143344ae43e8151f7757eabc4d2c809190d5fc773739909116b94ea230eae83e8032dc3ed0
+Size (rust-std-1.47.0-x86_64-apple-darwin.tar.gz) = 31292294 bytes
+SHA1 (rust-std-1.47.0-x86_64-unknown-freebsd.tar.gz) = f98597b57d0ccb032fd55500c9a955a19fa2f83b
+RMD160 (rust-std-1.47.0-x86_64-unknown-freebsd.tar.gz) = 48d7eb61876ef75c1ba396e914cdf3e84d4fda48
+SHA512 (rust-std-1.47.0-x86_64-unknown-freebsd.tar.gz) = 5f7707a83f69e7dfc73e1b7a88cfad82aa974af04e533bc77073252804b17b40cef16423febcd3d2a994925318631eadcc6103e635f7d7cb13f5ba4f5be197a8
+Size (rust-std-1.47.0-x86_64-unknown-freebsd.tar.gz) = 33406878 bytes
+SHA1 (rust-std-1.47.0-x86_64-unknown-linux-gnu.tar.gz) = e597556b5f3c006b695ec4d6281273077e0f261e
+RMD160 (rust-std-1.47.0-x86_64-unknown-linux-gnu.tar.gz) = c5d7f6bfc6cb36222d855ddcaca10e07977f21c4
+SHA512 (rust-std-1.47.0-x86_64-unknown-linux-gnu.tar.gz) = 7a37d9d910ba2cf5afc44a6951e8b82ff30a26f5ff88f98acdaef6336d5aef3ca50e7ca9814b3ca8d790866f12daf3fcd9aba446e7c7c3a3ff7717c2cd29b453
+Size (rust-std-1.47.0-x86_64-unknown-linux-gnu.tar.gz) = 34935707 bytes
+SHA1 (rust-std-1.47.0-x86_64-unknown-netbsd.tar.gz) = c5cfef99946d0868031bcadd198ca790c82709a2
+RMD160 (rust-std-1.47.0-x86_64-unknown-netbsd.tar.gz) = b463eff178c6ba0bb8f375e079c0e09a6bd00834
+SHA512 (rust-std-1.47.0-x86_64-unknown-netbsd.tar.gz) = 5696d3ad8db20e250dc4d93130160b61b7e359623b0838edd8a836cc126264dcdccddba7f50c968d98c02472880ebffe2057f48b2ab2c8cab7be54eb708ad3ef
+Size (rust-std-1.47.0-x86_64-unknown-netbsd.tar.gz) = 30938962 bytes
+SHA1 (rustc-1.48.0-src.tar.gz) = a26f089d27c9cc283a7305fc8ece6b4674a036fd
+RMD160 (rustc-1.48.0-src.tar.gz) = 28b6c2319a29c8f4282bf15da2c97d8c43bb27e1
+SHA512 (rustc-1.48.0-src.tar.gz) = e28e5f0813cfd94fb92399a2d64aa19bdf0933b5fc768ea10da2a5b787c94bac6a5efb98b2c3702da3d1c46c6766b157df3727e5845b4b83a237b44ec45b27ba
+Size (rustc-1.48.0-src.tar.gz) = 154487032 bytes
+SHA1 (patch-compiler_rustc__codegen__ssa_src_back_linker.rs) = 72746bbf0fa5e72fe151c95e3876b9eb1e70ae39
+SHA1 (patch-compiler_rustc__llvm_build.rs) = 42ff9f15004426e9e6d134bf1364df997f78964d
+SHA1 (patch-compiler_rustc__target_src_spec_netbsd__base.rs) = 61d2a0d0d7947a7e272c97a5bb773b6e2d6d3a81
+SHA1 (patch-compiler_rustc__target_src_spec_solaris__base.rs) = 362534c5af4d59d33e049fb771df0fc9f8d8505b
+SHA1 (patch-compiler_rustc__target_src_spec_x86__64__sun__solaris.rs) = ba9216104891f8d2c239c9dd8d62e2c0c444360c
+SHA1 (patch-library_backtrace_crates_backtrace-sys_src_libbacktrace_configure) = 5dc1cfc843894156b513c86453db5032917a5529
 SHA1 (patch-library_std_build.rs) = c69af2a424bca60bc91741b8d4cb5fd633bbacca
+SHA1 (patch-library_std_src_os_linux_fs.rs) = 33c5e22c9a15c01898a5ffe2d7091e78381ec120
 SHA1 (patch-library_std_src_sys_unix_thread.rs) = 517a1836d6c5c56d5b7ec642559ccbe1f980e9d5
 SHA1 (patch-library_unwind_build.rs) = 68bd62f14c764a266b7e92a2a3cd36810d006847
 SHA1 (patch-src_bootstrap_bootstrap.py) = 53e0409527f3e52dd00b5c86e6c38047626e2379
-SHA1 (patch-src_bootstrap_builder.rs) = 5dd33ec8458cdcc6f1780d98c7e0b8e7a93e00d9
+SHA1 (patch-src_bootstrap_builder.rs) = 59d7ac0c525f232ed5d89ef725b6cad9fa13d23f
 SHA1 (patch-src_bootstrap_compile.rs) = 67d5ad13e13e6818535a319f55e990d511e7b83f
 SHA1 (patch-src_bootstrap_lib.rs) = 3277f2be69a269ac761a2a6ab4d5389d121e6ca6
-SHA1 (patch-src_librustc__codegen__ssa_back_linker.rs) = e7c592f78b9ee317521cf0258686173a31f1d2e0
-SHA1 (patch-src_librustc__llvm_build.rs) = 7cc2aa0568aa2cbf4eb1fdbb00922b10df0b3ff6
-SHA1 (patch-src_librustc__target_spec_netbsd__base.rs) = 841d8fd276b0f48b15e9010e1c170da93888fd9f
-SHA1 (patch-src_librustc__target_spec_solaris__base.rs) = 5ed283e5ead1ec60f0c9879fa3c8190248976dc7
-SHA1 (patch-src_librustc__target_spec_x86__64__sun__solaris.rs) = f6ad33b41906bbf83a1cbd0e2fe13a4da37266fa
 SHA1 (patch-src_llvm-project_llvm_CMakeLists.txt) = d49503d19c30a64d571eb7fa79e7aad7038cd427
 SHA1 (patch-src_llvm-project_llvm_cmake_modules_AddLLVM.cmake) = bfdf8dc323cc5e59e880627fc7a240be805941d8
 SHA1 (patch-src_llvm-project_llvm_include_llvm-c_DataTypes.h) = 7588a46aaa277ef04b33ac6d904b9d1d81579f2a
@@ -128,4 +130,6 @@ SHA1 (patch-src_tools_rls_rls_src_server
 SHA1 (patch-src_tools_rust-installer_install-template.sh) = f2ec6dced2be1fa23773d5827503ad07d0913dc2
 SHA1 (patch-vendor_libc_src_unix_solarish_mod.rs) = 804ea03be546fef0d2bd37d7f8abb26d38a7892b
 SHA1 (patch-vendor_lzma-sys_config.h) = ab963fc8d7a847715e0e0dc2928333efe38e923f
+SHA1 (patch-vendor_net2_src_ext.rs) = 5c34f3eaaa0589eefe14d374d34fadd4900565fd
+SHA1 (patch-vendor_openssl-src_src_lib.rs) = 1512fa1da8c19aebca27ac5576293b7e7447aa40
 SHA1 (patch-vendor_stacker_src_lib.rs) = 2f4db9971c0558ec7034052c810b8c8be80c4ae3

Index: pkgsrc/lang/rust/options.mk
diff -u pkgsrc/lang/rust/options.mk:1.7 pkgsrc/lang/rust/options.mk:1.8
--- pkgsrc/lang/rust/options.mk:1.7     Wed Jun 24 09:46:26 2020
+++ pkgsrc/lang/rust/options.mk Fri Jan  1 20:44:48 2021
@@ -1,4 +1,4 @@
-# $NetBSD: options.mk,v 1.7 2020/06/24 09:46:26 nia Exp $
+# $NetBSD: options.mk,v 1.8 2021/01/01 20:44:48 he Exp $
 
 PKG_OPTIONS_VAR=       PKG_OPTIONS.rust
 PKG_SUPPORTED_OPTIONS= # empty
@@ -14,6 +14,9 @@ PKG_SUGGESTED_OPTIONS+=               rust-llvm
 .  endif
 .endif
 
+PKG_SUPPORTED_OPTIONS+=        rust-cargo-static
+PKG_SUGGESTED_OPTIONS+=        rust-cargo-static
+
 .include "../../mk/bsd.options.mk"
 
 #
@@ -30,3 +33,16 @@ CONFIGURE_ARGS+=     --llvm-root=${BUILDLINK
 # XXX: fix for Rust 1.41.0 https://github.com/rust-lang/rust/issues/68714
 MAKE_ENV+=     LIBRARY_PATH=${BUILDLINK_PREFIX.llvm}/lib
 .endif
+
+#
+# Link cargo statically against "native" libraries.
+# (openssl and curl specifically).
+#
+.if !empty(PKG_OPTIONS:Mrust-cargo-static)
+CONFIGURE_ARGS+=       --enable-cargo-native-static
+.else
+BUILDLINK_API_DEPENDS.nghttp2+= nghttp2>=1.41.0
+BUILDLINK_API_DEPENDS.curl+=   curl>=7.67.0
+.include "../../www/curl/buildlink3.mk"
+.include "../../security/openssl/buildlink3.mk"
+.endif

Index: pkgsrc/lang/rust/patches/patch-src_bootstrap_builder.rs
diff -u pkgsrc/lang/rust/patches/patch-src_bootstrap_builder.rs:1.11 pkgsrc/lang/rust/patches/patch-src_bootstrap_builder.rs:1.12
--- pkgsrc/lang/rust/patches/patch-src_bootstrap_builder.rs:1.11        Mon Jul  6 13:56:32 2020
+++ pkgsrc/lang/rust/patches/patch-src_bootstrap_builder.rs     Fri Jan  1 20:44:48 2021
@@ -1,21 +1,21 @@
-$NetBSD: patch-src_bootstrap_builder.rs,v 1.11 2020/07/06 13:56:32 he Exp $
+$NetBSD: patch-src_bootstrap_builder.rs,v 1.12 2021/01/01 20:44:48 he Exp $
 
 Do not install 'src'.
 Use @PREFIX@, not $ORIGIN in rpath.
 
 Fix RPATH for pkgsrc.
 
---- src/bootstrap/builder.rs.orig      2020-01-27 15:34:02.000000000 +0000
+--- src/bootstrap/builder.rs.orig      2020-11-16 14:01:53.000000000 +0000
 +++ src/bootstrap/builder.rs
-@@ -454,7 +454,6 @@ impl<'a> Builder<'a> {
+@@ -475,7 +475,6 @@ impl<'a> Builder<'a> {
                  install::Clippy,
                  install::Miri,
                  install::Analysis,
 -                install::Src,
                  install::Rustc
              ),
-             Kind::Run => describe!(run::ExpandYamlAnchors,),
-@@ -956,7 +955,7 @@ impl<'a> Builder<'a> {
+             Kind::Run => describe!(run::ExpandYamlAnchors, run::BuildManifest,),
+@@ -1001,7 +1000,7 @@ impl<'a> Builder<'a> {
                  rustflags.arg("-Zosx-rpath-install-name");
                  Some("-Wl,-rpath,@loader_path/../lib")
              } else if !target.contains("windows") {

Added files:

Index: pkgsrc/lang/rust/patches/patch-compiler_rustc__codegen__ssa_src_back_linker.rs
diff -u /dev/null pkgsrc/lang/rust/patches/patch-compiler_rustc__codegen__ssa_src_back_linker.rs:1.1
--- /dev/null   Fri Jan  1 20:44:49 2021
+++ pkgsrc/lang/rust/patches/patch-compiler_rustc__codegen__ssa_src_back_linker.rs      Fri Jan  1 20:44:48 2021
@@ -0,0 +1,15 @@
+$NetBSD: patch-compiler_rustc__codegen__ssa_src_back_linker.rs,v 1.1 2021/01/01 20:44:48 he Exp $
+
+Do not use @rpath on Darwin.
+
+--- compiler/rustc_codegen_ssa/src/back/linker.rs.orig 2020-11-16 14:01:53.000000000 +0000
++++ compiler/rustc_codegen_ssa/src/back/linker.rs
+@@ -244,7 +244,7 @@ impl<'a> GccLinker<'a> {
+             // the right `-Wl,-install_name` with an `@rpath` in it.
+             if self.sess.opts.cg.rpath || self.sess.opts.debugging_opts.osx_rpath_install_name {
+                 self.linker_arg("-install_name");
+-                let mut v = OsString::from("@rpath/");
++                let mut v = OsString::from("@PREFIX@/lib/");
+                 v.push(out_filename.file_name().unwrap());
+                 self.linker_arg(&v);
+             }
Index: pkgsrc/lang/rust/patches/patch-compiler_rustc__llvm_build.rs
diff -u /dev/null pkgsrc/lang/rust/patches/patch-compiler_rustc__llvm_build.rs:1.1
--- /dev/null   Fri Jan  1 20:44:49 2021
+++ pkgsrc/lang/rust/patches/patch-compiler_rustc__llvm_build.rs        Fri Jan  1 20:44:48 2021
@@ -0,0 +1,21 @@
+$NetBSD: patch-compiler_rustc__llvm_build.rs,v 1.1 2021/01/01 20:44:48 he Exp $
+
+fix build on NetBSD HEAD-llvm. XXX there is probably a better way to do this.
+
+--- compiler/rustc_llvm/build.rs.orig  2019-08-13 06:27:22.000000000 +0000
++++ compiler/rustc_llvm/build.rs
+@@ -261,7 +261,13 @@ fn main() {
+         "c++"
+     } else if target.contains("netbsd") && llvm_static_stdcpp.is_some() {
+         // NetBSD uses a separate library when relocation is required
+-        "stdc++_pic"
++        if env::var_os("PKGSRC_HAVE_LIBCPP").is_some() {
++            "c++_pic"
++        } else {
++            "stdc++_pic"
++        }
++    } else if env::var_os("PKGSRC_HAVE_LIBCPP").is_some() {
++        "c++"
+     } else if llvm_use_libcxx.is_some() {
+         "c++"
+     } else {
Index: pkgsrc/lang/rust/patches/patch-compiler_rustc__target_src_spec_netbsd__base.rs
diff -u /dev/null pkgsrc/lang/rust/patches/patch-compiler_rustc__target_src_spec_netbsd__base.rs:1.1
--- /dev/null   Fri Jan  1 20:44:49 2021
+++ pkgsrc/lang/rust/patches/patch-compiler_rustc__target_src_spec_netbsd__base.rs      Fri Jan  1 20:44:48 2021
@@ -0,0 +1,16 @@
+$NetBSD: patch-compiler_rustc__target_src_spec_netbsd__base.rs,v 1.1 2021/01/01 20:44:48 he Exp $
+
+For the benefit of powerpc, when libatomic-links is installed,
+search the directory containing the symlinks to -latomic.
+
+--- compiler/rustc_target/src/spec/netbsd_base.rs.orig 2020-08-24 15:00:49.000000000 +0000
++++ compiler/rustc_target/src/spec/netbsd_base.rs
+@@ -10,6 +10,8 @@ pub fn opts() -> TargetOptions {
+             // libraries which follow this flag.  Thus, use it before
+             // specifying libraries to link to.
+             "-Wl,--as-needed".to_string(),
++          // For the benefit of powerpc, when libatomic-links is installed,
++            "-Wl,-L/usr/pkg/lib/libatomic".to_string(),
+         ],
+     );
+ 
Index: pkgsrc/lang/rust/patches/patch-compiler_rustc__target_src_spec_solaris__base.rs
diff -u /dev/null pkgsrc/lang/rust/patches/patch-compiler_rustc__target_src_spec_solaris__base.rs:1.1
--- /dev/null   Fri Jan  1 20:44:49 2021
+++ pkgsrc/lang/rust/patches/patch-compiler_rustc__target_src_spec_solaris__base.rs     Fri Jan  1 20:44:48 2021
@@ -0,0 +1,14 @@
+$NetBSD: patch-compiler_rustc__target_src_spec_solaris__base.rs,v 1.1 2021/01/01 20:44:48 he Exp $
+
+Enable frame pointers on SunOS.
+
+--- compiler/rustc_target/src/spec/solaris_base.rs.orig        2020-08-24 15:00:49.000000000 +0000
++++ compiler/rustc_target/src/spec/solaris_base.rs
+@@ -7,6 +7,7 @@ pub fn opts() -> TargetOptions {
+         has_rpath: true,
+         target_family: Some("unix".to_string()),
+         is_like_solaris: true,
++      eliminate_frame_pointer: false,
+         limit_rdylib_exports: false, // Linker doesn't support this
+         eh_frame_header: false,
+ 
Index: pkgsrc/lang/rust/patches/patch-compiler_rustc__target_src_spec_x86__64__sun__solaris.rs
diff -u /dev/null pkgsrc/lang/rust/patches/patch-compiler_rustc__target_src_spec_x86__64__sun__solaris.rs:1.1
--- /dev/null   Fri Jan  1 20:44:49 2021
+++ pkgsrc/lang/rust/patches/patch-compiler_rustc__target_src_spec_x86__64__sun__solaris.rs     Fri Jan  1 20:44:48 2021
@@ -0,0 +1,15 @@
+$NetBSD: patch-compiler_rustc__target_src_spec_x86__64__sun__solaris.rs,v 1.1 2021/01/01 20:44:48 he Exp $
+
+Enable stack probes on SunOS.
+
+--- compiler/rustc_target/src/spec/x86_64_sun_solaris.rs.orig  2019-01-16 09:30:27.000000000 +0000
++++ compiler/rustc_target/src/spec/x86_64_sun_solaris.rs
+@@ -15,7 +15,7 @@ pub fn target() -> TargetResult {
+     base.pre_link_args.insert(LinkerFlavor::Gcc, vec!["-m64".to_string()]);
+     base.cpu = "x86-64".to_string();
+     base.max_atomic_width = Some(64);
+-    base.stack_probes = true;
++    base.stack_probes = false;
+ 
+     Ok(Target {
+         llvm_target: "x86_64-pc-solaris".to_string(),
Index: pkgsrc/lang/rust/patches/patch-library_backtrace_crates_backtrace-sys_src_libbacktrace_configure
diff -u /dev/null pkgsrc/lang/rust/patches/patch-library_backtrace_crates_backtrace-sys_src_libbacktrace_configure:1.1
--- /dev/null   Fri Jan  1 20:44:49 2021
+++ pkgsrc/lang/rust/patches/patch-library_backtrace_crates_backtrace-sys_src_libbacktrace_configure    Fri Jan  1 20:44:48 2021
@@ -0,0 +1,15 @@
+$NetBSD: patch-library_backtrace_crates_backtrace-sys_src_libbacktrace_configure,v 1.1 2021/01/01 20:44:48 he Exp $
+
+Use pkgsrc libtool.
+
+--- library/backtrace/crates/backtrace-sys/src/libbacktrace/configure.orig     2020-10-07 08:04:03.000000000 +0000
++++ library/backtrace/crates/backtrace-sys/src/libbacktrace/configure
+@@ -7916,7 +7916,7 @@ fi
+ LIBTOOL_DEPS="$ltmain"
+ 
+ # Always use our own libtool.
+-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
++LIBTOOL='libtool'
+ 
+ 
+ 
Index: pkgsrc/lang/rust/patches/patch-library_std_src_os_linux_fs.rs
diff -u /dev/null pkgsrc/lang/rust/patches/patch-library_std_src_os_linux_fs.rs:1.1
--- /dev/null   Fri Jan  1 20:44:49 2021
+++ pkgsrc/lang/rust/patches/patch-library_std_src_os_linux_fs.rs       Fri Jan  1 20:44:48 2021
@@ -0,0 +1,16 @@
+$NetBSD: patch-library_std_src_os_linux_fs.rs,v 1.1 2021/01/01 20:44:48 he Exp $
+
+Disambiguate reference; on some targets we get a warning turned into
+error that this is both a function and a struct.
+
+--- library/std/src/os/linux/fs.rs.orig        2020-11-16 14:01:53.000000000 +0000
++++ library/std/src/os/linux/fs.rs
+@@ -20,7 +20,7 @@ pub trait MetadataExt {
+     /// Unix platforms. The `os::unix::fs::MetadataExt` trait contains the
+     /// cross-Unix abstractions contained within the raw stat.
+     ///
+-    /// [`stat`]: crate::os::linux::raw::stat
++    /// [`stat`]: struct@crate::os::linux::raw::stat
+     ///
+     /// # Examples
+     ///
Index: pkgsrc/lang/rust/patches/patch-vendor_openssl-src_src_lib.rs
diff -u /dev/null pkgsrc/lang/rust/patches/patch-vendor_openssl-src_src_lib.rs:1.1
--- /dev/null   Fri Jan  1 20:44:49 2021
+++ pkgsrc/lang/rust/patches/patch-vendor_openssl-src_src_lib.rs        Fri Jan  1 20:44:48 2021
@@ -0,0 +1,44 @@
+$NetBSD: patch-vendor_openssl-src_src_lib.rs,v 1.1 2021/01/01 20:44:48 he Exp $
+
+Provide defaults for the various NetBSD targets.
+
+--- vendor/openssl-src/src/lib.rs.orig 2020-11-16 14:27:50.000000000 +0000
++++ vendor/openssl-src/src/lib.rs
+@@ -167,6 +167,7 @@ impl Build {
+             "aarch64-unknown-freebsd" => "BSD-generic64",
+             "aarch64-unknown-linux-gnu" => "linux-aarch64",
+             "aarch64-unknown-linux-musl" => "linux-aarch64",
++            "aarch64-unknown-netbsd" => "BSD-generic64",
+             "aarch64-pc-windows-msvc" => "VC-WIN64-ARM",
+             "arm-linux-androideabi" => "linux-armv4",
+             "armv7-linux-androideabi" => "linux-armv4",
+@@ -178,6 +179,7 @@ impl Build {
+             "armv7-unknown-freebsd" => "BSD-generic32",
+             "armv7-unknown-linux-gnueabihf" => "linux-armv4",
+             "armv7-unknown-linux-musleabihf" => "linux-armv4",
++          "armv7-unknown-netbsd-eabihf" => "BSD-generic32",
+             "asmjs-unknown-emscripten" => "gcc",
+             "i686-apple-darwin" => "darwin-i386-cc",
+             "i686-linux-android" => "linux-elf",
+@@ -186,6 +188,7 @@ impl Build {
+             "i686-unknown-freebsd" => "BSD-x86-elf",
+             "i686-unknown-linux-gnu" => "linux-elf",
+             "i686-unknown-linux-musl" => "linux-elf",
++          "i686-unknown-netbsd" => "BSD-x86-elf",
+             "mips-unknown-linux-gnu" => "linux-mips32",
+             "mips-unknown-linux-musl" => "linux-mips32",
+             "mips64-unknown-linux-gnuabi64" => "linux64-mips64",
+@@ -193,11 +196,13 @@ impl Build {
+             "mipsel-unknown-linux-gnu" => "linux-mips32",
+             "mipsel-unknown-linux-musl" => "linux-mips32",
+             "powerpc-unknown-linux-gnu" => "linux-ppc",
++          "powerpc-unknown-netbsd" => "BSD-generic32",
+             "powerpc64-unknown-freebsd" => "BSD-generic64",
+             "powerpc64-unknown-linux-gnu" => "linux-ppc64",
+             "powerpc64le-unknown-linux-gnu" => "linux-ppc64le",
+             "riscv64gc-unknown-linux-gnu" => "linux-generic64",
+             "s390x-unknown-linux-gnu" => "linux64-s390x",
++          "sparc64-unknown-netbsd" => "BSD-generic64",
+             "x86_64-apple-darwin" => "darwin64-x86_64-cc",
+             "x86_64-linux-android" => "linux-x86_64",
+             "x86_64-pc-windows-gnu" => "mingw64",

Index: pkgsrc/lang/rust/patches/patch-vendor_net2_src_ext.rs
diff -u /dev/null pkgsrc/lang/rust/patches/patch-vendor_net2_src_ext.rs:1.3
--- /dev/null   Fri Jan  1 20:44:49 2021
+++ pkgsrc/lang/rust/patches/patch-vendor_net2_src_ext.rs       Fri Jan  1 20:44:48 2021
@@ -0,0 +1,17 @@
+$NetBSD: patch-vendor_net2_src_ext.rs,v 1.3 2021/01/01 20:44:48 he Exp $
+
+It looks like NetBSD doesn't need the same tweak as OpenBSD
+to use SO_KEEPALIVE instead of TCP_KEEPIDLE when specifying
+TCP-layer keepalive value.
+
+--- vendor/net2/src/ext.rs.orig        2020-11-16 14:27:49.000000000 +0000
++++ vendor/net2/src/ext.rs
+@@ -668,7 +668,7 @@ impl<T: AsRawSocket> AsSock for T {
+ cfg_if! {
+     if #[cfg(any(target_os = "macos", target_os = "ios"))] {
+         use libc::TCP_KEEPALIVE as KEEPALIVE_OPTION;
+-    } else if #[cfg(any(target_os = "haiku", target_os = "netbsd", target_os = "openbsd"))] {
++    } else if #[cfg(any(target_os = "haiku", target_os = "openbsd"))] {
+         use libc::SO_KEEPALIVE as KEEPALIVE_OPTION;
+     } else if #[cfg(unix)] {
+         use libc::TCP_KEEPIDLE as KEEPALIVE_OPTION;



Home | Main Index | Thread Index | Old Index