commit: 70c83504d5c92a66b3fba923b2e819b9568990f9 Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org> AuthorDate: Wed Feb 8 22:35:25 2023 +0000 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org> CommitDate: Wed Feb 8 22:35:57 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70c83504
dev-lang/rust: fix 1.67.0 with both doc and wasm enabled Closes: https://bugs.gentoo.org/892513 Signed-off-by: Georgy Yakovlev <gyakovlev <AT> gentoo.org> dev-lang/rust/files/1.67.0-doc-wasm.patch | 34 +++++++++++++++++++++++++++++++ dev-lang/rust/rust-1.67.0.ebuild | 1 + 2 files changed, 35 insertions(+) diff --git a/dev-lang/rust/files/1.67.0-doc-wasm.patch b/dev-lang/rust/files/1.67.0-doc-wasm.patch new file mode 100644 index 000000000000..06011deb795b --- /dev/null +++ b/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 <[email protected]> +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/dev-lang/rust/rust-1.67.0.ebuild b/dev-lang/rust/rust-1.67.0.ebuild index 095c3d5689e0..9cef9622f2b5 100644 --- a/dev-lang/rust/rust-1.67.0.ebuild +++ b/dev-lang/rust/rust-1.67.0.ebuild @@ -164,6 +164,7 @@ 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"
