summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgy Yakovlev <gyakovlev@gentoo.org>2023-02-08 14:35:25 -0800
committerGeorgy Yakovlev <gyakovlev@gentoo.org>2023-02-08 14:35:57 -0800
commit70c83504d5c92a66b3fba923b2e819b9568990f9 (patch)
tree3fbb8a3cb4d0bc076c5cf34a78088e365e30ec1d /dev-lang
parentdev-python/simber: remove python_requires (diff)
downloadgentoo-70c83504d5c92a66b3fba923b2e819b9568990f9.tar.gz
gentoo-70c83504d5c92a66b3fba923b2e819b9568990f9.tar.bz2
gentoo-70c83504d5c92a66b3fba923b2e819b9568990f9.zip
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@gentoo.org>
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/rust/files/1.67.0-doc-wasm.patch34
-rw-r--r--dev-lang/rust/rust-1.67.0.ebuild1
2 files changed, 35 insertions, 0 deletions
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 <john@john-millikin.com>
+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"