pkgsrc-WIP-changes archive

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

rust: Update to 1.48.0.



Module Name:	pkgsrc-wip
Committed By:	Jonathan Perkin <jperkin%joyent.com@localhost>
Pushed By:	jperkin
Date:		Tue Nov 24 19:14:55 2020 +0000
Changeset:	34613f96dad98c0143bef22dddb40bae7e3420ab

Modified Files:
	rust/Makefile
	rust/cross.mk
	rust/distinfo
	rust/patches/patch-src_bootstrap_builder.rs
Added Files:
	rust/patches/patch-compiler_rustc__codegen__ssa_src_back_linker.rs
	rust/patches/patch-compiler_rustc__llvm_build.rs
	rust/patches/patch-compiler_rustc__target_src_spec_solaris__base.rs
	rust/patches/patch-compiler_rustc__target_src_spec_x86__64__sun__solaris.rs
Removed Files:
	rust/patches/patch-src_librustc__codegen__ssa_back_linker.rs
	rust/patches/patch-src_librustc__llvm_build.rs
	rust/patches/patch-src_librustc__target_spec_solaris__base.rs
	rust/patches/patch-src_librustc__target_spec_x86__64__sun__solaris.rs

Log Message:
rust: Update to 1.48.0.

Clean up some of the pkgsrc Makefile, there's still lots in here that
should just be deleted though.  Switch SunOS to the illumos bootstrap
by default.

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 see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=34613f96dad98c0143bef22dddb40bae7e3420ab

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

diffstat:
 rust/Makefile                                      | 77 +++++++++++++---------
 rust/cross.mk                                      | 17 -----
 rust/distinfo                                      | 26 ++++----
 ...compiler_rustc__codegen__ssa_src_back_linker.rs | 15 +++++
 rust/patches/patch-compiler_rustc__llvm_build.rs   | 21 ++++++
 ...ompiler_rustc__target_src_spec_solaris__base.rs | 14 ++++
 ...rustc__target_src_spec_x86__64__sun__solaris.rs | 14 ++++
 rust/patches/patch-src_bootstrap_builder.rs        |  8 +--
 ...patch-src_librustc__codegen__ssa_back_linker.rs | 15 -----
 rust/patches/patch-src_librustc__llvm_build.rs     | 21 ------
 ...atch-src_librustc__target_spec_solaris__base.rs | 14 ----
 ..._librustc__target_spec_x86__64__sun__solaris.rs | 15 -----
 12 files changed, 128 insertions(+), 129 deletions(-)

diffs:
diff --git a/rust/Makefile b/rust/Makefile
index 137a9db973..70c4fe9516 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.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/
@@ -32,8 +32,9 @@ CONFIGURE_ARGS+=		--prefix=${PREFIX}
 CONFIGURE_ARGS+=		--mandir=${PREFIX}/${PKGMANDIR}
 CONFIGURE_ARGS+=		--sysconfdir=${PKG_SYSCONFDIR}
 CONFIGURE_ARGS+=		--python=${PYTHONBIN}
+# Switch this to "nightly" to build a nightly compiler, required for some software,
+# then update BOOTSTRAP_NAME below.
 CONFIGURE_ARGS+=		--release-channel=stable
-#CONFIGURE_ARGS+=		--enable-local-rust
 CONFIGURE_ARGS+=		--local-rust-root=${RUST_BOOTSTRAP_PATH}
 CONFIGURE_ARGS+=		--enable-extended	# Build and install cargo too.
 CONFIGURE_ARGS+=		--enable-rpath
@@ -41,12 +42,6 @@ CONFIGURE_ARGS+=		--disable-codegen-tests
 CONFIGURE_ARGS+=		--disable-dist-src
 CONFIGURE_ARGS+=		--disable-llvm-static-stdcpp
 CONFIGURE_ARGS+=		--disable-ninja
-# XXX: to be enabled in the future
-#CONFIGURE_ARGS+=		--jemalloc-root=${BUILDLINK_PREFIX.jemalloc}/lib
-
-# Use "dist" build target for cross compile of bootstrap
-#BUILD_TARGET=		dist
-BUILD_TARGET=		build
 
 # Include (optional) settings to cross-build rust
 .include "cross.mk"
@@ -67,8 +62,6 @@ CFLAGS.SunOS+=		-D_POSIX_PTHREAD_SEMANTICS
 
 UNLIMIT_RESOURCES+=	cputime datasize virtualsize
 
-TEST_TARGET=	check
-
 # bin/* lib/*, but names vary
 CHECK_RELRO_SUPPORTED=	no
 CHECK_SSP_SUPPORTED=	no
@@ -172,14 +165,23 @@ RUST_STD_STAGE0:=	rust-std-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 DISTFILES:=		${DISTFILES} ${RUST_STAGE0} ${RUST_STD_STAGE0}
 pre-build-fix:
 .endif
+#
+# The SunOS target defaults to illumos as that's what the current bootstraps
+# are built on.  If you wish to target Oracle Solaris you'll need to create an
+# x86_64-sun-solaris bootstrap and comment out the overrides.
+#
 .if !empty(MACHINE_PLATFORM:MSunOS-*-x86_64) || make(distinfo) || make (makesum) || make(mdi)
-RUST_STAGE0_VER=	1.46.0
-RUST_ARCH:=		x86_64-sun-solaris
-#RUST_ARCH:=		x86_64-unknown-illumos
+RUST_STAGE0_VER=	1.48.0
+RUST_ARCH:=		x86_64-unknown-illumos
 RUST_STAGE0:=		rust-${RUST_STAGE0_VER}-${RUST_ARCH}.tar.gz
 SITES.${RUST_STAGE0}=	https://us-east.manta.joyent.com/pkgsrc/public/pkg-bootstraps/
 DISTFILES:=		${DISTFILES} ${RUST_STAGE0}
 RUST_BOOTSTRAP_PATH?=	${WRKDIR}/rust-${RUST_STAGE0_VER}-${RUST_ARCH}
+# Override default "x86_64-sun-solaris" selection
+CONFIGURE_ARGS+=	--set=target.${RUST_ARCH}.llvm-config=${LLVM_CONFIG_PATH}
+CONFIGURE_ARGS+=	--build=${RUST_ARCH}
+CONFIGURE_ARGS+=	--host=${RUST_ARCH}
+CONFIGURE_ARGS+=	--target=${RUST_ARCH}
 pre-build-fix:
 .endif
 .if !empty(MACHINE_PLATFORM:MFreeBSD-*-i386) || make(distinfo) || make (makesum) || make(mdi)
@@ -281,8 +283,9 @@ TOOLS_PLATFORM.gzcat=	${PREFIX}/bin/gzip -cd
 
 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
 
 #
@@ -292,16 +295,16 @@ 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
 
 SUBST_CLASSES+=		cksum
 SUBST_STAGE.cksum=	pre-configure
@@ -349,18 +352,29 @@ pre-build: pre-build-fix
 	cp ${FILESDIR}/libgcc_s.so.1 ${RUST_BOOTSTRAP_PATH}/lib/.
 .endif
 
+#
+# These are essentially copies of the "all", "test", and "install" Makefile
+# targets, but are duplicated here so that we can specify -j.
+#
 do-build:
-	cd ${WRKSRC} \
-	&& ${_ULIMIT_CMD} ${SETENV} ${INSTALL_ENV} ${MAKE_ENV} \
-	sh -c "if [ \"${BUILD_TARGET}\" = \"dist\" ]; then \
-			unset DESTDIR; \
-		fi; \
-		${PYTHONBIN} ./x.py -v ${BUILD_TARGET} -j ${_MAKE_JOBS_N}"
+	${RUN}${_ULIMIT_CMD}						\
+	cd ${WRKSRC} &&							\
+	${SETENV} ${MAKE_ENV} ${PYTHONBIN} ./x.py -v			\
+	    build --stage 2 -j ${_MAKE_JOBS_N} &&			\
+	${SETENV} ${MAKE_ENV} ${PYTHONBIN} ./x.py -v			\
+	    doc --stage 2 -j ${_MAKE_JOBS_N}
+
+do-test:
+	${RUN}${_ULIMIT_CMD}						\
+	cd ${WRKSRC} &&							\
+	${SETENV} ${MAKE_ENV} ${PYTHONBIN} ./x.py -v			\
+	    test -j ${_MAKE_JOBS_N}
 
 do-install:
-	cd ${WRKSRC} \
-	&& ${_ULIMIT_CMD} ${SETENV} ${INSTALL_ENV} ${MAKE_ENV} \
-		${PYTHONBIN} ./x.py -v install -j ${_MAKE_JOBS_N}
+	${RUN}${_ULIMIT_CMD}						\
+	cd ${WRKSRC} &&							\
+	${SETENV} ${MAKE_ENV} ${INSTALL_ENV} ${PYTHONBIN} ./x.py -v	\
+	    install -j ${_MAKE_JOBS_N}
 
 .if ${OPSYS} == "Darwin"
 .PHONY: fix-darwin-install-name
@@ -378,7 +392,11 @@ GENERATE_PLIST+=	${FIND} ${DESTDIR}${PREFIX} \( -type f -o -type l \) -print | \
 # Create a relocatable stage2 bootstrap from the bits we just built that can be
 # used to build the next version of rust.  Currently only tested on SmartOS.
 #
-BOOTSTRAP_TMPDIR=	${WRKDIR}/${PKGNAME_NOREV}-${RUST_ARCH}
+# Use the alternate BOOTSTRAP_NAME when creating a nightly release.
+#
+#BOOTSTRAP_NAME=	${PKGNAME_NOREV:C/rust/rust-nightly/}-${RUST_ARCH}
+BOOTSTRAP_NAME=		${PKGNAME_NOREV}-${RUST_ARCH}
+BOOTSTRAP_TMPDIR=	${WRKDIR}/${BOOTSTRAP_NAME}
 USE_TOOLS+=		gtar
 
 # The NetBSD part is so far untested, because I could not convince
@@ -452,8 +470,7 @@ stage0-bootstrap: install
 	for f in ${BOOTSTRAP_TMPDIR}/lib/rustlib/*/*/*.so*; do \
 		${ELFEDIT} -e 'dyn:runpath $$ORIGIN:$$ORIGIN/../../..:$$ORIGIN/../../../pkgsrc' $$f; \
 	done
-	(cd ${WRKDIR}; \
-	 ${GTAR} -zcf ${PKGNAME_NOREV}-${RUST_ARCH}.tar.gz ${PKGNAME_NOREV}-${RUST_ARCH})
+	(cd ${WRKDIR}; ${GTAR} -zcf ${BOOTSTRAP_NAME}.tar.gz ${BOOTSTRAP_NAME})
 .endif
 
 .include "options.mk"
diff --git a/rust/cross.mk b/rust/cross.mk
index 3ae16dfd9a..fb049aba4b 100644
--- a/rust/cross.mk
+++ b/rust/cross.mk
@@ -48,20 +48,3 @@
 
 # May be required when cross-building on NetBSD
 #MAKE_ENV+=		OPENSSL_DIR=/usr
-
-#
-# Cross-compile illumos target.  The host is identical, it's just the target
-# that is renamed from x86_64-sun-solaris to x86_64-unknown-illumos.
-#
-#TARGET=		x86_64-unknown-illumos
-#
-# Use these variables for "cross-compiling" from x86_64-sun-solaris.
-#
-#CONFIGURE_ARGS+=	--set=target.${TARGET}.llvm-config=${LLVM_CONFIG_PATH}
-#CONFIGURE_ARGS+=	--host=${TARGET}
-#CONFIGURE_ARGS+=	--target=${TARGET}
-#
-# Set this variable when using a native x86_64-unknown-illumos bootstrap, as
-# the build still defaults to x86_64-sun-solaris based on uname.
-#
-#CONFIGURE_ARGS+=	--build=${TARGET}
diff --git a/rust/distinfo b/rust/distinfo
index 1e8d9f8ec7..7dc26c7ba1 100644
--- a/rust/distinfo
+++ b/rust/distinfo
@@ -40,14 +40,14 @@ SHA1 (rust-1.44.1-x86_64-unknown-linux-gnu.tar.gz) = d9f79f976c7270a782cba9e5c08
 RMD160 (rust-1.44.1-x86_64-unknown-linux-gnu.tar.gz) = 3a5cbf8538b3aadfe2bda6cbec5599a2eccba9ce
 SHA512 (rust-1.44.1-x86_64-unknown-linux-gnu.tar.gz) = aa78c32a3dfd4b01d5e69a44bc978206b50581586af1b45105400fbd6b28a9946141063d68781218ca9fbaaf0edfdfe708081ecf97facba176095868b6187773
 Size (rust-1.44.1-x86_64-unknown-linux-gnu.tar.gz) = 189534350 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-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-1.48.0-x86_64-unknown-illumos.tar.gz) = 23afcbc003c01940277978553b4afd75ec5d333d
+RMD160 (rust-1.48.0-x86_64-unknown-illumos.tar.gz) = 6510186be6f216e47cb1971500dbf1fd27f96e09
+SHA512 (rust-1.48.0-x86_64-unknown-illumos.tar.gz) = e0153c7c400eea2f3b59c9f63c0ee0dbaf3f8ccf645c1ad4c66f90727d41894dcb49ddacf622fc8572ab45734472e59970de64939bec0f6d6f94f5797ce05fb4
+Size (rust-1.48.0-x86_64-unknown-illumos.tar.gz) = 189960423 bytes
 SHA1 (rust-std-1.44.0-armv7-unknown-netbsd-eabihf.tar.gz) = ef2043dd95e4b56526060f9497c523ca7670ebcd
 RMD160 (rust-std-1.44.0-armv7-unknown-netbsd-eabihf.tar.gz) = f2a11dea07bd9982b99e26baf74259ce21af3121
 SHA512 (rust-std-1.44.0-armv7-unknown-netbsd-eabihf.tar.gz) = 8903e258f3cc3a9fd8b1bf982b42560bbc47b3be583dea8687d50eadc92a98f739211d865a812de2cf6e4828e94e97a5934a02120d3eaff8342669ee1e0afc37
@@ -92,22 +92,22 @@ SHA1 (rust-std-1.46.0-x86_64-unknown-netbsd.tar.gz) = 154767516a8f1e358c340d602e
 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 (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) = b5157022f0f1942ae2db1ab78145af1526780b18
+SHA1 (patch-compiler_rustc__target_src_spec_solaris__base.rs) = bcc420e4c8148cc0c92826aa7d146fc47e7c4863
+SHA1 (patch-compiler_rustc__target_src_spec_x86__64__sun__solaris.rs) = 2c6f22a6c8412573b0e5ad436c8a231a3b740326
 SHA1 (patch-library_backtrace_crates_backtrace-sys_src_libbacktrace_configure) = 5dc1cfc843894156b513c86453db5032917a5529
 SHA1 (patch-library_std_build.rs) = 34b95b6dcaa788fe7e0e10e9c77a796d35e6ca14
 SHA1 (patch-library_std_src_sys_unix_thread.rs) = f3af869fba5bc0ab8d28042f55fe830f93b8ef54
 SHA1 (patch-library_unwind_build.rs) = ae096a20aed95304eb3806be4cd237fe4ffd9afb
 SHA1 (patch-src_bootstrap_bootstrap.py) = 53e0409527f3e52dd00b5c86e6c38047626e2379
-SHA1 (patch-src_bootstrap_builder.rs) = d0fa2a58fa89171cb58e236384bcce614daf412f
+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) = 48b71063184c1ef608d41a8cf5014a6c064a8893
-SHA1 (patch-src_librustc__llvm_build.rs) = 7cc2aa0568aa2cbf4eb1fdbb00922b10df0b3ff6
-SHA1 (patch-src_librustc__target_spec_solaris__base.rs) = 10b00a889f2d3788172098021e8fc1e4939ec897
-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) = 77a2a9e4d324885d6fa5e68cf15ef84db0a2483b
 SHA1 (patch-src_llvm-project_llvm_include_llvm-c_DataTypes.h) = 7588a46aaa277ef04b33ac6d904b9d1d81579f2a
diff --git a/rust/patches/patch-compiler_rustc__codegen__ssa_src_back_linker.rs b/rust/patches/patch-compiler_rustc__codegen__ssa_src_back_linker.rs
new file mode 100644
index 0000000000..93a6fe6a5e
--- /dev/null
+++ b/rust/patches/patch-compiler_rustc__codegen__ssa_src_back_linker.rs
@@ -0,0 +1,15 @@
+$NetBSD$
+
+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);
+             }
diff --git a/rust/patches/patch-compiler_rustc__llvm_build.rs b/rust/patches/patch-compiler_rustc__llvm_build.rs
new file mode 100644
index 0000000000..11349b424a
--- /dev/null
+++ b/rust/patches/patch-compiler_rustc__llvm_build.rs
@@ -0,0 +1,21 @@
+$NetBSD$
+
+Fix build on NetBSD HEAD-llvm. XXX there is probably a better way to do this.
+
+--- compiler/rustc_llvm/build.rs.orig	2020-11-16 14:01:53.000000000 +0000
++++ compiler/rustc_llvm/build.rs
+@@ -284,7 +284,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 {
diff --git a/rust/patches/patch-compiler_rustc__target_src_spec_solaris__base.rs b/rust/patches/patch-compiler_rustc__target_src_spec_solaris__base.rs
new file mode 100644
index 0000000000..058368bcc5
--- /dev/null
+++ b/rust/patches/patch-compiler_rustc__target_src_spec_solaris__base.rs
@@ -0,0 +1,14 @@
+$NetBSD$
+
+Enable frame pointers on SunOS.
+
+--- compiler/rustc_target/src/spec/solaris_base.rs.orig	2020-11-16 14:01:53.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,
+ 
diff --git a/rust/patches/patch-compiler_rustc__target_src_spec_x86__64__sun__solaris.rs b/rust/patches/patch-compiler_rustc__target_src_spec_x86__64__sun__solaris.rs
new file mode 100644
index 0000000000..a2709f74f4
--- /dev/null
+++ b/rust/patches/patch-compiler_rustc__target_src_spec_x86__64__sun__solaris.rs
@@ -0,0 +1,14 @@
+$NetBSD$
+
+Disable stack probes on SunOS.
+
+--- compiler/rustc_target/src/spec/x86_64_sun_solaris.rs.orig	2020-11-16 14:01:53.000000000 +0000
++++ compiler/rustc_target/src/spec/x86_64_sun_solaris.rs
+@@ -5,7 +5,6 @@ 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;
+ 
+     Ok(Target {
+         llvm_target: "x86_64-pc-solaris".to_string(),
diff --git a/rust/patches/patch-src_bootstrap_builder.rs b/rust/patches/patch-src_bootstrap_builder.rs
index 326c4a8189..bc083d6d65 100644
--- a/rust/patches/patch-src_bootstrap_builder.rs
+++ b/rust/patches/patch-src_bootstrap_builder.rs
@@ -5,17 +5,17 @@ Use @PREFIX@, not $ORIGIN in rpath.
 
 Fix RPATH for pkgsrc.
 
---- src/bootstrap/builder.rs.orig	2020-08-24 15:00:49.000000000 +0000
+--- src/bootstrap/builder.rs.orig	2020-11-16 14:01:53.000000000 +0000
 +++ src/bootstrap/builder.rs
-@@ -481,7 +481,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,),
-@@ -1003,7 +1002,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") {
diff --git a/rust/patches/patch-src_librustc__codegen__ssa_back_linker.rs b/rust/patches/patch-src_librustc__codegen__ssa_back_linker.rs
deleted file mode 100644
index adf11fc4bf..0000000000
--- a/rust/patches/patch-src_librustc__codegen__ssa_back_linker.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-src_librustc__codegen__ssa_back_linker.rs,v 1.1 2019/09/09 16:19:49 adam Exp $
-
-Do not use @rpath on Darwin.
-
---- src/librustc_codegen_ssa/back/linker.rs.orig	2020-08-24 15:00:49.000000000 +0000
-+++ src/librustc_codegen_ssa/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);
-             }
diff --git a/rust/patches/patch-src_librustc__llvm_build.rs b/rust/patches/patch-src_librustc__llvm_build.rs
deleted file mode 100644
index 7398c1e442..0000000000
--- a/rust/patches/patch-src_librustc__llvm_build.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-$NetBSD: patch-src_librustc__llvm_build.rs,v 1.6 2019/09/19 17:37:29 jperkin Exp $
-
-fix build on NetBSD HEAD-llvm. XXX there is probably a better way to do this.
-
---- src/librustc_llvm/build.rs.orig	2019-08-13 06:27:22.000000000 +0000
-+++ src/librustc_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 {
diff --git a/rust/patches/patch-src_librustc__target_spec_solaris__base.rs b/rust/patches/patch-src_librustc__target_spec_solaris__base.rs
deleted file mode 100644
index 20cf835a47..0000000000
--- a/rust/patches/patch-src_librustc__target_spec_solaris__base.rs
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD: patch-src_librustc__target_spec_solaris__base.rs,v 1.3 2020/03/13 18:34:53 jperkin Exp $
-
-Enable frame pointers on SunOS.
-
---- src/librustc_target/spec/solaris_base.rs.orig	2020-08-24 15:00:49.000000000 +0000
-+++ src/librustc_target/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,
- 
diff --git a/rust/patches/patch-src_librustc__target_spec_x86__64__sun__solaris.rs b/rust/patches/patch-src_librustc__target_spec_x86__64__sun__solaris.rs
deleted file mode 100644
index 9401273cf7..0000000000
--- a/rust/patches/patch-src_librustc__target_spec_x86__64__sun__solaris.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-src_librustc__target_spec_x86__64__sun__solaris.rs,v 1.1 2019/05/31 14:11:23 jperkin Exp $
-
-Enable stack probes on SunOS.
-
---- src/librustc_target/spec/x86_64_sun_solaris.rs.orig	2019-01-16 09:30:27.000000000 +0000
-+++ src/librustc_target/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(),


Home | Main Index | Thread Index | Old Index