From c2bd71a089abbdad8f7a1dd47c162bb021de2dc6 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 16 Feb 2012 00:57:04 +0000 Subject: [PATCH] Add patch to fix build on ARM --- libunwind-arm-register-rename.patch | 59 +++++++++++++++++++++++++++++ libunwind.spec | 7 +++- 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 libunwind-arm-register-rename.patch diff --git a/libunwind-arm-register-rename.patch b/libunwind-arm-register-rename.patch new file mode 100644 index 0000000..9d7b91c --- /dev/null +++ b/libunwind-arm-register-rename.patch @@ -0,0 +1,59 @@ +--- libunwind-1.0.1/src/arm/init.h.orig 2012-02-15 18:33:08.000000000 -0500 ++++ libunwind-1.0.1/src/arm/init.h 2012-02-15 18:29:19.000000000 -0500 +@@ -29,26 +29,26 @@ + { + int ret, i; + +- c->dwarf.loc[R0] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R0); +- c->dwarf.loc[R1] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R1); +- c->dwarf.loc[R2] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R2); +- c->dwarf.loc[R3] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R3); +- c->dwarf.loc[R4] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R4); +- c->dwarf.loc[R5] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R5); +- c->dwarf.loc[R6] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R6); +- c->dwarf.loc[R7] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R7); +- c->dwarf.loc[R8] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R8); +- c->dwarf.loc[R9] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R9); +- c->dwarf.loc[R10] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R10); +- c->dwarf.loc[R11] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R11); +- c->dwarf.loc[R12] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R12); +- c->dwarf.loc[R13] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R13); +- c->dwarf.loc[R14] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R14); +- c->dwarf.loc[R15] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R15); +- for (i = R15 + 1; i < DWARF_NUM_PRESERVED_REGS; ++i) ++ c->dwarf.loc[REG_R0] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R0); ++ c->dwarf.loc[REG_R1] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R1); ++ c->dwarf.loc[REG_R2] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R2); ++ c->dwarf.loc[REG_R3] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R3); ++ c->dwarf.loc[REG_R4] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R4); ++ c->dwarf.loc[REG_R5] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R5); ++ c->dwarf.loc[REG_R6] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R6); ++ c->dwarf.loc[REG_R7] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R7); ++ c->dwarf.loc[REG_R8] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R8); ++ c->dwarf.loc[REG_R9] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R9); ++ c->dwarf.loc[REG_R10] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R10); ++ c->dwarf.loc[REG_R11] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R11); ++ c->dwarf.loc[REG_R12] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R12); ++ c->dwarf.loc[REG_R13] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R13); ++ c->dwarf.loc[REG_R14] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R14); ++ c->dwarf.loc[REG_R15] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R15); ++ for (i = REG_R15 + 1; i < DWARF_NUM_PRESERVED_REGS; ++i) + c->dwarf.loc[i] = DWARF_NULL_LOC; + +- ret = dwarf_get (&c->dwarf, c->dwarf.loc[R15], &c->dwarf.ip); ++ ret = dwarf_get (&c->dwarf, c->dwarf.loc[REG_R15], &c->dwarf.ip); + if (ret < 0) + return ret; + +--- libunwind-1.0.1/src/arm/Gglobal.c.orig 2012-02-15 18:33:21.000000000 -0500 ++++ libunwind-1.0.1/src/arm/Gglobal.c 2012-02-15 18:28:27.000000000 -0500 +@@ -37,7 +37,8 @@ + + HIDDEN uint8_t dwarf_to_unw_regnum_map[16] = + { +- R0, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15 ++ REG_R0, REG_R1, REG_R2, REG_R3, REG_R4, REG_R5, REG_R6, REG_R7, ++ REG_R8, REG_R9, REG_R10, REG_R11, REG_R12, REG_R13, REG_R14, REG_R15 + }; + + HIDDEN void diff --git a/libunwind.spec b/libunwind.spec index 5d3c4e9..a04a02e 100644 --- a/libunwind.spec +++ b/libunwind.spec @@ -4,13 +4,14 @@ Summary: An unwinding library Name: libunwind Version: 1.0.1 -Release: 2%{?dist} +Release: 3%{?dist} License: BSD Group: Development/Debuggers Source: http://download.savannah.gnu.org/releases/libunwind/libunwind-%{version}.tar.gz #Fedora specific patch Patch1: libunwind-disable-setjmp.patch Patch2: libunwind-install-ptrace.patch +Patch3: libunwind-arm-register-rename.patch URL: http://savannah.nongnu.org/projects/libunwind ExclusiveArch: %{arm} hppa ia64 mips ppc ppc64 %{ix86} x86_64 @@ -36,6 +37,7 @@ libunwind. %setup -q %patch1 -p1 %patch2 -p1 +%patch3 -p1 -b .arm %build aclocal @@ -86,6 +88,9 @@ echo ====================TESTSUITE DISABLED========================= %{_includedir}/libunwind*.h %changelog +* Wed Feb 15 2012 Peter Robinson - 1.0.1-3 +- Add patch to fix build on ARM + * Fri Jan 13 2012 Fedora Release Engineering - 1.0.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild