sys-libs/libunwind: fix build errors on hppa/ia64/ppc/ppc64 #586092
authorMike Frysinger <vapier@gentoo.org>
Tue, 14 Feb 2017 02:51:24 +0000 (21:51 -0500)
committerMike Frysinger <vapier@gentoo.org>
Tue, 14 Feb 2017 02:51:24 +0000 (21:51 -0500)
sys-libs/libunwind/files/libunwind-1.2-coredump-regs.patch [new file with mode: 0644]
sys-libs/libunwind/libunwind-1.2.ebuild

diff --git a/sys-libs/libunwind/files/libunwind-1.2-coredump-regs.patch b/sys-libs/libunwind/files/libunwind-1.2-coredump-regs.patch
new file mode 100644 (file)
index 0000000..3ddc610
--- /dev/null
@@ -0,0 +1,16 @@
+https://bugs.gentoo.org/586092
+
+this might not be correct, but at least it builds, and doesn't crash
+
+--- a/src/coredump/_UCD_access_reg_linux.c
++++ b/src/coredump/_UCD_access_reg_linux.c
+@@ -51,6 +51,9 @@ _UCD_access_reg (unw_addr_space_t as,
+ #elif defined(UNW_TARGET_TILEGX)
+   if (regnum < 0 || regnum > UNW_TILEGX_CFA)
+     goto badreg;
++#elif defined(UNW_TARGET_IA64) || defined(UNW_TARGET_HPPA) || defined(UNW_TARGET_PPC32) || defined(UNW_TARGET_PPC64)
++  if (regnum < 0 || regnum >= ARRAY_SIZE(ui->prstatus->pr_reg))
++    goto badreg;
+ #else
+ #if defined(UNW_TARGET_MIPS)
+   static const uint8_t remap_regs[] =
index a95f69a728e08315aa3bc0fa7e5de87160b35bf5..bf4a5a9fd3ba7f40ef786a97fcde6bd8fb2996e8 100644 (file)
@@ -45,6 +45,8 @@ MULTILIB_WRAPPED_HEADERS=(
 )
 
 src_prepare() {
+       epatch "${FILESDIR}"/${PN}-1.2-coredump-regs.patch #586092
+
        # These tests like to fail.  bleh.
        echo 'int main(){return 0;}' > tests/Gtest-dyn1.c
        echo 'int main(){return 0;}' > tests/Ltest-dyn1.c