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
