commit:     e01ced2da69c0d913e4c91467a0ca5fc3615edcd
Author:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 14 02:51:24 2017 +0000
Commit:     Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Tue Feb 14 02:51:24 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e01ced2d

sys-libs/libunwind: fix build errors on hppa/ia64/ppc/ppc64 #586092

 .../libunwind/files/libunwind-1.2-coredump-regs.patch    | 16 ++++++++++++++++
 sys-libs/libunwind/libunwind-1.2.ebuild                  |  2 ++
 2 files changed, 18 insertions(+)

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
index 0000000000..3ddc610d4a
--- /dev/null
+++ b/sys-libs/libunwind/files/libunwind-1.2-coredump-regs.patch
@@ -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[] =

diff --git a/sys-libs/libunwind/libunwind-1.2.ebuild 
b/sys-libs/libunwind/libunwind-1.2.ebuild
index a95f69a728..bf4a5a9fd3 100644
--- a/sys-libs/libunwind/libunwind-1.2.ebuild
+++ b/sys-libs/libunwind/libunwind-1.2.ebuild
@@ -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

Reply via email to