From e01ced2da69c0d913e4c91467a0ca5fc3615edcd Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Mon, 13 Feb 2017 21:51:24 -0500 Subject: [PATCH] sys-libs/libunwind: fix build errors on hppa/ia64/ppc/ppc64 #586092 --- .../files/libunwind-1.2-coredump-regs.patch | 16 ++++++++++++++++ sys-libs/libunwind/libunwind-1.2.ebuild | 2 ++ 2 files changed, 18 insertions(+) create mode 100644 sys-libs/libunwind/files/libunwind-1.2-coredump-regs.patch 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 000000000000..3ddc610d4afc --- /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 a95f69a728e0..bf4a5a9fd3ba 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 -- 2.26.2