summaryrefslogtreecommitdiff
path: root/sys-fs
diff options
context:
space:
mode:
authorGeorgy Yakovlev <gyakovlev@gentoo.org>2020-09-06 20:14:36 -0700
committerGeorgy Yakovlev <gyakovlev@gentoo.org>2020-09-06 21:04:24 -0700
commit180d1e95aaa2e831bd2480b73af927a1632a9817 (patch)
tree42b10525c071b0e0e0a00b566ca3f3a1ab274305 /sys-fs
parentdev-libs/libressl: ppc64 stable (bug #740194) (diff)
downloadgentoo-180d1e95aaa2e831bd2480b73af927a1632a9817.tar.gz
gentoo-180d1e95aaa2e831bd2480b73af927a1632a9817.tar.bz2
gentoo-180d1e95aaa2e831bd2480b73af927a1632a9817.zip
sys-fs/zfs-kmod: add powerpc setjmp/longjmp patch to 0.8.4
kernel-builtin build fails with powerpc64le-unknown-linux-gnu-ld.bfd: fs/zfs/lua/setjmp/setjmp.o: in function `setjmp': (.text+0x0): multiple definition of `setjmp'; arch/powerpc/kernel/misc.o:(.text+0x30): first defined here powerpc64le-unknown-linux-gnu-ld.bfd: fs/zfs/lua/setjmp/setjmp.o: in function `longjmp': (.text+0x78): multiple definition of `longjmp'; arch/powerpc/kernel/misc.o:(.text+0x9c): first defined here Package-Manager: Portage-3.0.5, Repoman-3.0.1 Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
Diffstat (limited to 'sys-fs')
-rw-r--r--sys-fs/zfs-kmod/files/0.8.4-powerpc_jmp_weak.patch48
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-0.8.4-r1.ebuild2
2 files changed, 50 insertions, 0 deletions
diff --git a/sys-fs/zfs-kmod/files/0.8.4-powerpc_jmp_weak.patch b/sys-fs/zfs-kmod/files/0.8.4-powerpc_jmp_weak.patch
new file mode 100644
index 000000000000..1a2948a3158c
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/0.8.4-powerpc_jmp_weak.patch
@@ -0,0 +1,48 @@
+From bd0efd1f062bfba5dd2d6b1fe30b6949f8e0a8ef Mon Sep 17 00:00:00 2001
+From: sterlingjensen <5555776+sterlingjensen@users.noreply.github.com>
+Date: Mon, 24 Aug 2020 22:41:05 -0500
+Subject: [PATCH] Mark lua setjmp/longjmp for powerpc weak
+
+Linux already defines setjmp/longjmp for powerpc, which leads to
+duplicate symbols in a statically linked build.
+
+Signed-off-by: Sterlng Jensen <sterlingjensen@users.noreply.github.com>
+---
+ module/lua/setjmp/setjmp_ppc.S | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/module/lua/setjmp/setjmp_ppc.S b/module/lua/setjmp/setjmp_ppc.S
+index f787ef34913..72aa5d5ab5b 100644
+--- a/module/lua/setjmp/setjmp_ppc.S
++++ b/module/lua/setjmp/setjmp_ppc.S
+@@ -56,7 +56,7 @@
+ #define ENTRY(name) \
+ .align 2 ; \
+ .type name,@function; \
+- .globl name; \
++ .weak name; \
+ name:
+
+ #else /* PPC64_ELF_ABI_v1 */
+@@ -65,8 +65,8 @@ name:
+ #define GLUE(a,b) XGLUE(a,b)
+ #define ENTRY(name) \
+ .align 2 ; \
+- .globl name; \
+- .globl GLUE(.,name); \
++ .weak name; \
++ .weak GLUE(.,name); \
+ .pushsection ".opd","aw"; \
+ name: \
+ .quad GLUE(.,name); \
+@@ -83,8 +83,8 @@ GLUE(.,name):
+ #define ENTRY(name) \
+ .text; \
+ .p2align 4; \
+- .globl name; \
+- .type name,@function; \
++ .weak name; \
++ .type name,@function; \
+ name:
+
+ #endif /* __powerpc64__ */
diff --git a/sys-fs/zfs-kmod/zfs-kmod-0.8.4-r1.ebuild b/sys-fs/zfs-kmod/zfs-kmod-0.8.4-r1.ebuild
index 59ea52ab658b..2276604b161c 100644
--- a/sys-fs/zfs-kmod/zfs-kmod-0.8.4-r1.ebuild
+++ b/sys-fs/zfs-kmod/zfs-kmod-0.8.4-r1.ebuild
@@ -37,6 +37,8 @@ RESTRICT="debug? ( strip ) test"
DOCS=( AUTHORS COPYRIGHT META README.md )
+PATCHES=( "${FILESDIR}/${PV}-powerpc_jmp_weak.patch" )
+
pkg_setup() {
CONFIG_CHECK="
!DEBUG_LOCK_ALLOC