commit: 180d1e95aaa2e831bd2480b73af927a1632a9817 Author: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org> AuthorDate: Mon Sep 7 03:14:36 2020 +0000 Commit: Georgy Yakovlev <gyakovlev <AT> gentoo <DOT> org> CommitDate: Mon Sep 7 04:04:24 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=180d1e95
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 <AT> gentoo.org> sys-fs/zfs-kmod/files/0.8.4-powerpc_jmp_weak.patch | 48 ++++++++++++++++++++++ sys-fs/zfs-kmod/zfs-kmod-0.8.4-r1.ebuild | 2 + 2 files changed, 50 insertions(+) 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 00000000000..1a2948a3158 --- /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 <[email protected]> +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 <[email protected]> +--- + 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 59ea52ab658..2276604b161 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
