Skip to content

Commit

Permalink
dev-lang/rust: fix 1.64.0 build on sparc
Browse files Browse the repository at this point in the history
Issue: bytecodealliance/rustix#408
Bug: https://bugs.gentoo.org/872725
Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
  • Loading branch information
gyakovlev authored and expeditioneer committed Sep 27, 2022
1 parent 43e4c4e commit 652caec
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
From 3fd653f3978e5ec2249c37eb08934bfe343e9198 Mon Sep 17 00:00:00 2001
From: Georgy Yakovlev <gyakovlev@gentoo.org>
Date: Sat, 24 Sep 2022 23:09:38 -0700
Subject: [PATCH] vendor/rustix: sparc has no SIGSTKFLT

gyakovlev: removed checkum HUNK

---
vendor/rustix/.cargo-checksum.json | 2 +-
vendor/rustix/src/imp/libc/process/types.rs | 4 ++++
vendor/rustix/src/imp/linux_raw/process/types.rs | 4 ++--
3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/vendor/rustix/src/imp/libc/process/types.rs b/vendor/rustix/src/imp/libc/process/types.rs
index 60d629d..1278cee 100644
--- a/vendor/rustix/src/imp/libc/process/types.rs
+++ b/vendor/rustix/src/imp/libc/process/types.rs
@@ -197,6 +197,8 @@ pub enum Signal {
target_os = "macos",
target_os = "netbsd",
target_os = "openbsd",
+ target_arch = "sparc",
+ target_arch = "sparc64",
all(
any(target_os = "android", target_os = "linux"),
any(target_arch = "mips", target_arch = "mips64"),
@@ -274,6 +276,8 @@ impl Signal {
target_os = "macos",
target_os = "netbsd",
target_os = "openbsd",
+ target_arch = "sparc",
+ target_arch = "sparc64",
all(
any(target_os = "android", target_os = "linux"),
any(target_arch = "mips", target_arch = "mips64"),
diff --git a/vendor/rustix/src/imp/linux_raw/process/types.rs b/vendor/rustix/src/imp/linux_raw/process/types.rs
index 53e2c7d..859a108 100644
--- a/vendor/rustix/src/imp/linux_raw/process/types.rs
+++ b/vendor/rustix/src/imp/linux_raw/process/types.rs
@@ -119,7 +119,7 @@ pub enum Signal {
/// `SIGTERM`
Term = linux_raw_sys::general::SIGTERM,
/// `SIGSTKFLT`
- #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))]
+ #[cfg(not(any(target_arch = "mips", target_arch = "mips64", target_arch = "sparc", target_arch = "sparc64")))]
Stkflt = linux_raw_sys::general::SIGSTKFLT,
/// `SIGCHLD`
#[doc(alias = "Chld")]
@@ -179,7 +179,7 @@ impl Signal {
linux_raw_sys::general::SIGPIPE => Some(Self::Pipe),
linux_raw_sys::general::SIGALRM => Some(Self::Alarm),
linux_raw_sys::general::SIGTERM => Some(Self::Term),
- #[cfg(not(any(target_arch = "mips", target_arch = "mips64")))]
+ #[cfg(not(any(target_arch = "mips", target_arch = "mips64", target_arch = "sparc", target_arch = "sparc64")))]
linux_raw_sys::general::SIGSTKFLT => Some(Self::Stkflt),
linux_raw_sys::general::SIGCHLD => Some(Self::Child),
linux_raw_sys::general::SIGCONT => Some(Self::Cont),
--
2.37.3

11 changes: 11 additions & 0 deletions dev-lang/rust/rust-1.64.0.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/rust.asc
PATCHES=(
"${FILESDIR}"/1.55.0-ignore-broken-and-non-applicable-tests.patch
"${FILESDIR}"/1.62.1-musl-dynamic-linking.patch
"${FILESDIR}"/${PV}-vendor-rustix-sparc-has-no-SIGSTKFLT.patch
)

S="${WORKDIR}/${MY_P}-src"
Expand Down Expand Up @@ -270,6 +271,16 @@ esetup_unwind_hack() {
}

src_prepare() {
# this supidity is needed because patch is too large to be in filesdir
# and if we move it to devspace - it lacks checksum for sig verification
if [[ "${PV}" == 1.64.0 ]]; then
sed -i \
-e 's/516ba32a547b46a8e80ad20d4a17bf24a00bff0b69b74f56df119f770f3dfff6/fc7eb88c2f5104865379128b76767d36ce5b5fdb9f3483e683d150e514ebc3a3/' \
-e 's/fba10dc8ca9eaf4d481cb82bd1540cf5c05620533c44f917c09a22ea55ef408c/9cc4d1b4511a1f0d91231eb0f11c67ae5e8e38e4becd0bf5eb9e26d043796056/' \
vendor/rustix/.cargo-checksum.json || die
else
die "remove sed mr forgetful maintainer"
fi
if ! use system-bootstrap; then
has_version sys-devel/gcc || esetup_unwind_hack
local rust_stage0_root="${WORKDIR}"/rust-stage0
Expand Down

0 comments on commit 652caec

Please sign in to comment.