diff --git a/sdk_container/src/third_party/coreos-overlay/dev-lang/rust/files/1.67.0-bootstrap.patch b/sdk_container/src/third_party/coreos-overlay/dev-lang/rust/files/1.67.0-bootstrap.patch deleted file mode 100644 index eb160661a2..0000000000 --- a/sdk_container/src/third_party/coreos-overlay/dev-lang/rust/files/1.67.0-bootstrap.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 675fa0b3dd5fe14b43ad5b7862f4528df7322468 Mon Sep 17 00:00:00 2001 -From: Michael Goulet -Date: Mon, 12 Dec 2022 18:29:33 +0000 -Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A8=20fix=20unsoundness=20in=20bootstr?= - =?UTF-8?q?ap=20cache=20code?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - ---- - src/bootstrap/cache.rs | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/bootstrap/cache.rs b/src/bootstrap/cache.rs -index be5c9bb078808..05f25af68ea8f 100644 ---- a/src/bootstrap/cache.rs -+++ b/src/bootstrap/cache.rs -@@ -89,16 +89,16 @@ impl Hash for Interned { - - impl Deref for Interned { - type Target = T::Target; -- fn deref(&self) -> &'static Self::Target { -+ fn deref(&self) -> &Self::Target { - let l = T::intern_cache().lock().unwrap(); -- unsafe { mem::transmute::<&Self::Target, &'static Self::Target>(l.get(*self)) } -+ unsafe { mem::transmute::<&Self::Target, &Self::Target>(l.get(*self)) } - } - } - - impl, U: ?Sized> AsRef for Interned { -- fn as_ref(&self) -> &'static U { -+ fn as_ref(&self) -> &U { - let l = T::intern_cache().lock().unwrap(); -- unsafe { mem::transmute::<&U, &'static U>(l.get(*self).as_ref()) } -+ unsafe { mem::transmute::<&U, &U>(l.get(*self).as_ref()) } - } - } - diff --git a/sdk_container/src/third_party/coreos-overlay/dev-lang/rust/files/1.67.0-doc-wasm.patch b/sdk_container/src/third_party/coreos-overlay/dev-lang/rust/files/1.67.0-doc-wasm.patch new file mode 100644 index 0000000000..06011deb79 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/dev-lang/rust/files/1.67.0-doc-wasm.patch @@ -0,0 +1,34 @@ +From 92aa5f6b272bcdc020a34f8d90f9ef851b5b4504 Mon Sep 17 00:00:00 2001 +From: John Millikin +Date: Mon, 9 Jan 2023 13:54:21 +0900 +Subject: [PATCH] Disable `linux_ext` in wasm32 and fortanix rustdoc builds. + +The `std::os::unix` module is stubbed out when building docs for these +target platforms. The introduction of Linux-specific extension traits +caused `std::os::net` to depend on sub-modules of `std::os::unix`, +which broke rustdoc for the `wasm32-unknown-unknown` target. + +Adding an additional `#[cfg]` guard solves that rustdoc failure by +not declaring `linux_ext` on targets with a stubbed `std::os::unix`. +--- + library/std/src/os/net/mod.rs | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/library/std/src/os/net/mod.rs b/library/std/src/os/net/mod.rs +index 5ec267c41e97c..b7046dd7c598c 100644 +--- a/library/std/src/os/net/mod.rs ++++ b/library/std/src/os/net/mod.rs +@@ -1,4 +1,13 @@ + //! OS-specific networking functionality. + ++// See cfg macros in `library/std/src/os/mod.rs` for why these platforms must ++// be special-cased during rustdoc generation. ++#[cfg(not(all( ++ doc, ++ any( ++ all(target_arch = "wasm32", not(target_os = "wasi")), ++ all(target_vendor = "fortanix", target_env = "sgx") ++ ) ++)))] + #[cfg(any(target_os = "linux", target_os = "android", doc))] + pub(super) mod linux_ext; diff --git a/sdk_container/src/third_party/coreos-overlay/dev-lang/rust/rust-1.67.1.ebuild b/sdk_container/src/third_party/coreos-overlay/dev-lang/rust/rust-1.67.1.ebuild index edee75443d..dc35c602de 100644 --- a/sdk_container/src/third_party/coreos-overlay/dev-lang/rust/rust-1.67.1.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/dev-lang/rust/rust-1.67.1.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{8..11} ) +PYTHON_COMPAT=( python3_{9..11} ) inherit bash-completion-r1 check-reqs estack flag-o-matic llvm multiprocessing \ multilib multilib-build python-any-r1 rust-toolchain toolchain-funcs verify-sig @@ -40,9 +40,9 @@ ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM AVR BPF Hexagon Lanai Mips MSP430 ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/(-)?} -LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" +LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA" -IUSE="clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind miri nightly parallel-compiler profiler rls rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" +IUSE="clippy cpu_flags_x86_sse2 debug dist doc llvm-libunwind miri nightly parallel-compiler profiler rustfmt rust-analyzer rust-src system-bootstrap system-llvm test wasm ${ALL_LLVM_TARGETS[*]}" # Please keep the LLVM dependency block separate. Since LLVM is slotted, # we need to *really* make sure we're not pulling more than one slot @@ -126,7 +126,6 @@ RDEPEND="${DEPEND} REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} ) miri? ( nightly ) parallel-compiler? ( nightly ) - rls? ( rust-src ) test? ( ${ALL_LLVM_TARGETS[*]} ) wasm? ( llvm_targets_WebAssembly ) x86? ( cpu_flags_x86_sse2 ) @@ -166,7 +165,7 @@ VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc PATCHES=( "${FILESDIR}"/1.65.0-ignore-broken-and-non-applicable-tests.patch "${FILESDIR}"/1.62.1-musl-dynamic-linking.patch - "${FILESDIR}"/1.67.0-bootstrap.patch + "${FILESDIR}"/1.67.0-doc-wasm.patch ) S="${WORKDIR}/${MY_P}-src" @@ -207,7 +206,6 @@ pre_build_checks() { fi M=$(( $(usex clippy 128 0) + ${M} )) M=$(( $(usex miri 128 0) + ${M} )) - M=$(( $(usex rls 512 0) + ${M} )) M=$(( $(usex rustfmt 256 0) + ${M} )) # add 2G if we compile llvm and 256M per llvm_target if ! use system-llvm; then @@ -324,9 +322,8 @@ src_configure() { use clippy && tools+=',"clippy"' use miri && tools+=',"miri"' use profiler && tools+=',"rust-demangler"' - use rls && tools+=',"rls","analysis"' use rustfmt && tools+=',"rustfmt"' - use rust-analyzer && tools+=',"rust-analyzer"' + use rust-analyzer && tools+=',"rust-analyzer","analysis"' use rust-src && tools+=',"src"' local rust_stage0_root @@ -675,7 +672,6 @@ src_install() { use clippy && symlinks+=( clippy-driver cargo-clippy ) use miri && symlinks+=( miri cargo-miri ) use profiler && symlinks+=( rust-demangler ) - use rls && symlinks+=( rls ) use rustfmt && symlinks+=( rustfmt cargo-fmt ) use rust-analyzer && symlinks+=( rust-analyzer ) @@ -736,9 +732,6 @@ src_install() { if use profiler; then echo /usr/bin/rust-demangler >> "${T}/provider-${P}" fi - if use rls; then - echo /usr/bin/rls >> "${T}/provider-${P}" - fi if use rustfmt; then echo /usr/bin/rustfmt >> "${T}/provider-${P}" echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"