diff options
author | Georgy Yakovlev <gyakovlev@gentoo.org> | 2022-09-24 23:11:45 -0700 |
---|---|---|
committer | Georgy Yakovlev <gyakovlev@gentoo.org> | 2022-09-24 23:37:04 -0700 |
commit | 46a3260c72f0a4d918daa3f313f8e586f12475f4 (patch) | |
tree | b396197d7c0fcbdd2783f062f2100e168c983528 /dev-lang | |
parent | sys-apps/openrc: Stabilize 0.45.2 ppc64, #865099 (diff) | |
download | gentoo-46a3260c72f0a4d918daa3f313f8e586f12475f4.tar.gz gentoo-46a3260c72f0a4d918daa3f313f8e586f12475f4.tar.bz2 gentoo-46a3260c72f0a4d918daa3f313f8e586f12475f4.zip |
dev-lang/rust: fix 1.64.0 build on sparc
Issue: https://github.com/bytecodealliance/rustix/issues/408
Bug: https://bugs.gentoo.org/872725
Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
Diffstat (limited to 'dev-lang')
-rw-r--r-- | dev-lang/rust/files/1.64.0-vendor-rustix-sparc-has-no-SIGSTKFLT.patch | 60 | ||||
-rw-r--r-- | dev-lang/rust/rust-1.64.0.ebuild | 11 |
2 files changed, 71 insertions, 0 deletions
diff --git a/dev-lang/rust/files/1.64.0-vendor-rustix-sparc-has-no-SIGSTKFLT.patch b/dev-lang/rust/files/1.64.0-vendor-rustix-sparc-has-no-SIGSTKFLT.patch new file mode 100644 index 000000000000..5d685baac569 --- /dev/null +++ b/dev-lang/rust/files/1.64.0-vendor-rustix-sparc-has-no-SIGSTKFLT.patch @@ -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 + diff --git a/dev-lang/rust/rust-1.64.0.ebuild b/dev-lang/rust/rust-1.64.0.ebuild index 0300d3cc4b10..9f7e86a87d56 100644 --- a/dev-lang/rust/rust-1.64.0.ebuild +++ b/dev-lang/rust/rust-1.64.0.ebuild @@ -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" @@ -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 |