From a9ca7e9b2f981bc1ae0073c82dda0eeab3c3650da59e4d0addd73ec502775360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Fri, 14 Dec 2012 07:28:24 +0000 Subject: [PATCH] Accepting request 145403 from home:k0da:ppc OBS-URL: https://build.opensuse.org/request/show/145403 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libunwind?expand=0&rev=9 --- 20120704_fix_arm_ftbfs.patch | 307 ----------------------------- libunwind-1.0.1-ia64.diff | 33 ---- libunwind-1.0.1-memset.diff | 112 ----------- libunwind-1.0.1-tests.diff | 52 ----- libunwind-1.0.1.tar.gz | 3 - libunwind-1.1-expected-fails.patch | 15 ++ libunwind-1.1-tests.diff | 10 + libunwind-1.1.tar.gz | 3 + libunwind.changes | 16 ++ libunwind.spec | 22 ++- 10 files changed, 57 insertions(+), 516 deletions(-) delete mode 100644 20120704_fix_arm_ftbfs.patch delete mode 100644 libunwind-1.0.1-ia64.diff delete mode 100644 libunwind-1.0.1-memset.diff delete mode 100644 libunwind-1.0.1-tests.diff delete mode 100644 libunwind-1.0.1.tar.gz create mode 100644 libunwind-1.1-expected-fails.patch create mode 100644 libunwind-1.1-tests.diff create mode 100644 libunwind-1.1.tar.gz diff --git a/20120704_fix_arm_ftbfs.patch b/20120704_fix_arm_ftbfs.patch deleted file mode 100644 index 74379dd..0000000 --- a/20120704_fix_arm_ftbfs.patch +++ /dev/null @@ -1,307 +0,0 @@ -Description: Fix FTBFS on ARM based architectures -Origin: http://git.savannah.gnu.org/gitweb/?p=libunwind.git;a=commitdiff;h=0eba2169fb19ef0707a2c96201e33769001b5f11 - -Index: libunwind/include/libunwind-arm.h -=================================================================== ---- libunwind.orig/include/libunwind-arm.h 2012-07-04 11:28:50.790950000 +0100 -+++ libunwind/include/libunwind-arm.h 2012-07-04 11:35:00.514253939 +0100 -@@ -30,7 +30,7 @@ - #endif - - #include --#include -+#include - - #define UNW_TARGET arm - #define UNW_TARGET_ARM 1 -@@ -250,8 +250,14 @@ - } - unw_tdep_save_loc_t; - --/* On ARM, we can directly use ucontext_t as the unwind context. */ --typedef ucontext_t unw_tdep_context_t; -+/* On ARM, we define our own unw_tdep_context instead of using ucontext_t. -+ This allows us to support systems that don't support getcontext and -+ therefore do not define ucontext_t. */ -+typedef struct unw_tdep_context -+ { -+ unsigned long regs[16]; -+ } -+unw_tdep_context_t; - - /* There is no getcontext() on ARM. Use a stub version which only saves GP - registers. FIXME: Not ideal, may not be sufficient for all libunwind -@@ -259,8 +265,7 @@ - #ifndef __thumb__ - #define unw_tdep_getcontext(uc) (({ \ - unw_tdep_context_t *unw_ctx = (uc); \ -- register int unw_base asm ("r0") \ -- = (int) (&unw_ctx->uc_mcontext.arm_r0); \ -+ register unsigned long *unw_base asm ("r0") = unw_ctx->regs; \ - __asm__ __volatile__ ( \ - "stmia %[base], {r0-r15}" \ - : : [base] "r" (unw_base) : "memory"); \ -@@ -268,8 +273,7 @@ - #else /* __thumb__ */ - #define unw_tdep_getcontext(uc) (({ \ - unw_tdep_context_t *unw_ctx = (uc); \ -- register int unw_base asm ("r0") \ -- = (int) (&unw_ctx->uc_mcontext.arm_r0); \ -+ register unsigned long *unw_base asm ("r0") = unw_ctx->regs; \ - __asm__ __volatile__ ( \ - ".align 2\nbx pc\nnop\n.code 32\n" \ - "stmia %[base], {r0-r15}\n" \ -Index: libunwind/include/tdep-arm/libunwind_i.h -=================================================================== ---- libunwind.orig/include/tdep-arm/libunwind_i.h 2012-07-04 11:28:50.790950000 +0100 -+++ libunwind/include/tdep-arm/libunwind_i.h 2012-07-04 11:35:00.514253939 +0100 -@@ -274,7 +274,7 @@ - extern int tdep_search_unwind_table (unw_addr_space_t as, unw_word_t ip, - unw_dyn_info_t *di, unw_proc_info_t *pi, - int need_unwind_info, void *arg); --extern void *tdep_uc_addr (ucontext_t *uc, int reg); -+extern void *tdep_uc_addr (unw_tdep_context_t *uc, int reg); - extern int tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip, - unsigned long *segbase, unsigned long *mapoff, - char *path, size_t pathlen); -Index: libunwind/src/arm/Gglobal.c -=================================================================== ---- libunwind.orig/src/arm/Gglobal.c 2012-07-04 11:28:50.790950000 +0100 -+++ libunwind/src/arm/Gglobal.c 2012-07-04 11:35:00.514253939 +0100 -@@ -22,7 +22,6 @@ - OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - --#include - #include "unwind_i.h" - #include "dwarf_i.h" - -@@ -37,7 +36,10 @@ - - 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 -+ /* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 */ -+ UNW_ARM_R0, UNW_ARM_R1, UNW_ARM_R2, UNW_ARM_R3, UNW_ARM_R4, UNW_ARM_R5, -+ UNW_ARM_R6, UNW_ARM_R7, UNW_ARM_R8, UNW_ARM_R9, UNW_ARM_R10, UNW_ARM_R11, -+ UNW_ARM_R12, UNW_ARM_R13, UNW_ARM_R14, UNW_ARM_R15 - }; - - HIDDEN void -Index: libunwind/src/arm/Ginit.c -=================================================================== ---- libunwind.orig/src/arm/Ginit.c 2012-07-04 11:28:50.790950000 +0100 -+++ libunwind/src/arm/Ginit.c 2012-07-04 11:35:00.514253939 +0100 -@@ -39,39 +39,18 @@ - PROTECTED unw_addr_space_t unw_local_addr_space = &local_addr_space; - - static inline void * --uc_addr (ucontext_t *uc, int reg) -+uc_addr (unw_tdep_context_t *uc, int reg) - { -- void *addr; -- -- switch (reg) -- { -- case UNW_ARM_R0: addr = &uc->uc_mcontext.arm_r0; break; -- case UNW_ARM_R1: addr = &uc->uc_mcontext.arm_r1; break; -- case UNW_ARM_R2: addr = &uc->uc_mcontext.arm_r2; break; -- case UNW_ARM_R3: addr = &uc->uc_mcontext.arm_r3; break; -- case UNW_ARM_R4: addr = &uc->uc_mcontext.arm_r4; break; -- case UNW_ARM_R5: addr = &uc->uc_mcontext.arm_r5; break; -- case UNW_ARM_R6: addr = &uc->uc_mcontext.arm_r6; break; -- case UNW_ARM_R7: addr = &uc->uc_mcontext.arm_r7; break; -- case UNW_ARM_R8: addr = &uc->uc_mcontext.arm_r8; break; -- case UNW_ARM_R9: addr = &uc->uc_mcontext.arm_r9; break; -- case UNW_ARM_R10: addr = &uc->uc_mcontext.arm_r10; break; -- case UNW_ARM_R11: addr = &uc->uc_mcontext.arm_fp; break; -- case UNW_ARM_R12: addr = &uc->uc_mcontext.arm_ip; break; -- case UNW_ARM_R13: addr = &uc->uc_mcontext.arm_sp; break; -- case UNW_ARM_R14: addr = &uc->uc_mcontext.arm_lr; break; -- case UNW_ARM_R15: addr = &uc->uc_mcontext.arm_pc; break; -- -- default: -- addr = NULL; -- } -- return addr; -+ if (reg >= UNW_ARM_R0 && reg < UNW_ARM_R0 + 16) -+ return &uc->regs[reg - UNW_ARM_R0]; -+ else -+ return NULL; - } - - # ifdef UNW_LOCAL_ONLY - - HIDDEN void * --tdep_uc_addr (ucontext_t *uc, int reg) -+tdep_uc_addr (unw_tdep_context_t *uc, int reg) - { - return uc_addr (uc, reg); - } -@@ -115,7 +94,7 @@ - void *arg) - { - unw_word_t *addr; -- ucontext_t *uc = arg; -+ unw_tdep_context_t *uc = arg; - - if (unw_is_fpreg (reg)) - goto badreg; -@@ -145,7 +124,7 @@ - access_fpreg (unw_addr_space_t as, unw_regnum_t reg, unw_fpreg_t *val, - int write, void *arg) - { -- ucontext_t *uc = arg; -+ unw_tdep_context_t *uc = arg; - unw_fpreg_t *addr; - - if (!unw_is_fpreg (reg)) -Index: libunwind/src/arm/Ginit_local.c -=================================================================== ---- libunwind.orig/src/arm/Ginit_local.c 2012-07-04 11:28:50.790950000 +0100 -+++ libunwind/src/arm/Ginit_local.c 2012-07-04 11:35:00.514253939 +0100 -@@ -29,7 +29,7 @@ - #ifdef UNW_REMOTE_ONLY - - PROTECTED int --unw_init_local (unw_cursor_t *cursor, ucontext_t *uc) -+unw_init_local (unw_cursor_t *cursor, unw_context_t *uc) - { - return -UNW_EINVAL; - } -@@ -37,7 +37,7 @@ - #else /* !UNW_REMOTE_ONLY */ - - PROTECTED int --unw_init_local (unw_cursor_t *cursor, ucontext_t *uc) -+unw_init_local (unw_cursor_t *cursor, unw_context_t *uc) - { - struct cursor *c = (struct cursor *) cursor; - -Index: libunwind/src/arm/Gresume.c -=================================================================== ---- libunwind.orig/src/arm/Gresume.c 2012-07-04 11:28:50.790950000 +0100 -+++ libunwind/src/arm/Gresume.c 2012-07-04 11:35:00.518253964 +0100 -@@ -33,23 +33,23 @@ - { - #ifdef __linux__ - struct cursor *c = (struct cursor *) cursor; -- ucontext_t *uc = c->dwarf.as_arg; -+ unw_tdep_context_t *uc = c->dwarf.as_arg; - - if (c->sigcontext_format == ARM_SCF_NONE) - { - /* Since there are no signals involved here we restore the non scratch - registers only. */ - unsigned long regs[10]; -- regs[0] = uc->uc_mcontext.arm_r4; -- regs[1] = uc->uc_mcontext.arm_r5; -- regs[2] = uc->uc_mcontext.arm_r6; -- regs[3] = uc->uc_mcontext.arm_r7; -- regs[4] = uc->uc_mcontext.arm_r8; -- regs[5] = uc->uc_mcontext.arm_r9; -- regs[6] = uc->uc_mcontext.arm_r10; -- regs[7] = uc->uc_mcontext.arm_fp; -- regs[8] = uc->uc_mcontext.arm_sp; -- regs[9] = uc->uc_mcontext.arm_lr; -+ regs[0] = uc->regs[4]; -+ regs[1] = uc->regs[5]; -+ regs[2] = uc->regs[6]; -+ regs[3] = uc->regs[7]; -+ regs[4] = uc->regs[8]; -+ regs[5] = uc->regs[9]; -+ regs[6] = uc->regs[10]; -+ regs[7] = uc->regs[11]; /* FP */ -+ regs[8] = uc->regs[13]; /* SP */ -+ regs[9] = uc->regs[14]; /* LR */ - - asm __volatile__ ( - "ldmia %0, {r4-r12, lr}\n" -@@ -63,22 +63,22 @@ - /* In case a signal frame is involved, we're using its trampoline which - calls sigreturn. */ - struct sigcontext *sc = (struct sigcontext *) c->sigcontext_addr; -- sc->arm_r0 = uc->uc_mcontext.arm_r0; -- sc->arm_r1 = uc->uc_mcontext.arm_r1; -- sc->arm_r2 = uc->uc_mcontext.arm_r2; -- sc->arm_r3 = uc->uc_mcontext.arm_r3; -- sc->arm_r4 = uc->uc_mcontext.arm_r4; -- sc->arm_r5 = uc->uc_mcontext.arm_r5; -- sc->arm_r6 = uc->uc_mcontext.arm_r6; -- sc->arm_r7 = uc->uc_mcontext.arm_r7; -- sc->arm_r8 = uc->uc_mcontext.arm_r8; -- sc->arm_r9 = uc->uc_mcontext.arm_r9; -- sc->arm_r10 = uc->uc_mcontext.arm_r10; -- sc->arm_fp = uc->uc_mcontext.arm_fp; -- sc->arm_ip = uc->uc_mcontext.arm_ip; -- sc->arm_sp = uc->uc_mcontext.arm_sp; -- sc->arm_lr = uc->uc_mcontext.arm_lr; -- sc->arm_pc = uc->uc_mcontext.arm_pc; -+ sc->arm_r0 = uc->regs[0]; -+ sc->arm_r1 = uc->regs[1]; -+ sc->arm_r2 = uc->regs[2]; -+ sc->arm_r3 = uc->regs[3]; -+ sc->arm_r4 = uc->regs[4]; -+ sc->arm_r5 = uc->regs[5]; -+ sc->arm_r6 = uc->regs[6]; -+ sc->arm_r7 = uc->regs[7]; -+ sc->arm_r8 = uc->regs[8]; -+ sc->arm_r9 = uc->regs[9]; -+ sc->arm_r10 = uc->regs[10]; -+ sc->arm_fp = uc->regs[11]; /* FP */ -+ sc->arm_ip = uc->regs[12]; /* IP */ -+ sc->arm_sp = uc->regs[13]; /* SP */ -+ sc->arm_lr = uc->regs[14]; /* LR */ -+ sc->arm_pc = uc->regs[15]; /* PC */ - /* clear the ITSTATE bits. */ - sc->arm_cpsr &= 0xf9ff03ffUL; - -Index: libunwind/src/arm/init.h -=================================================================== ---- libunwind.orig/src/arm/init.h 2012-07-04 11:28:50.790950000 +0100 -+++ libunwind/src/arm/init.h 2012-07-04 11:35:00.518253964 +0100 -@@ -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[UNW_ARM_R0] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R0); -+ c->dwarf.loc[UNW_ARM_R1] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R1); -+ c->dwarf.loc[UNW_ARM_R2] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R2); -+ c->dwarf.loc[UNW_ARM_R3] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R3); -+ c->dwarf.loc[UNW_ARM_R4] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R4); -+ c->dwarf.loc[UNW_ARM_R5] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R5); -+ c->dwarf.loc[UNW_ARM_R6] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R6); -+ c->dwarf.loc[UNW_ARM_R7] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R7); -+ c->dwarf.loc[UNW_ARM_R8] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R8); -+ c->dwarf.loc[UNW_ARM_R9] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R9); -+ c->dwarf.loc[UNW_ARM_R10] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R10); -+ c->dwarf.loc[UNW_ARM_R11] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R11); -+ c->dwarf.loc[UNW_ARM_R12] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R12); -+ c->dwarf.loc[UNW_ARM_R13] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R13); -+ c->dwarf.loc[UNW_ARM_R14] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R14); -+ c->dwarf.loc[UNW_ARM_R15] = DWARF_REG_LOC (&c->dwarf, UNW_ARM_R15); -+ for (i = UNW_ARM_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[UNW_ARM_R15], &c->dwarf.ip); - if (ret < 0) - return ret; - diff --git a/libunwind-1.0.1-ia64.diff b/libunwind-1.0.1-ia64.diff deleted file mode 100644 index eb4e63e..0000000 --- a/libunwind-1.0.1-ia64.diff +++ /dev/null @@ -1,33 +0,0 @@ -From 962366dace4fed902ad5e89df1b34c13c3224b8b Mon Sep 17 00:00:00 2001 -From: Arun Sharma -Date: Fri, 23 Sep 2011 11:11:34 -0700 -Subject: [PATCH] Fixup compile errors on ia64. - -Suggested-by: Harald Servat ---- - src/ptrace/_UPT_get_dyn_info_list_addr.c | 2 +- - src/ptrace/_UPT_internal.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - ---- a/src/ptrace/_UPT_get_dyn_info_list_addr.c -+++ b/src/ptrace/_UPT_get_dyn_info_list_addr.c -@@ -62,7 +62,7 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg, - - Debug (16, "checking object %s\n", path); - -- di = _UPTi_find_unwind_table (ui, as, path, lo, off); -+ di = _UPTi_find_unwind_table (ui, as, path, lo, off, 0); - if (di) - { - res = _Uia64_find_dyn_list (as, di, arg); ---- a/src/ptrace/_UPT_internal.h -+++ b/src/ptrace/_UPT_internal.h -@@ -64,7 +64,7 @@ struct UPT_info - - extern int _UPT_reg_offset[UNW_REG_LAST + 1]; - --extern int _UPTi_find_unwind_table (struct UPT_info *ui, -+extern unw_dyn_info_t *UPTi_find_unwind_table (struct UPT_info *ui, - unw_addr_space_t as, - char *path, - unw_word_t segbase, diff --git a/libunwind-1.0.1-memset.diff b/libunwind-1.0.1-memset.diff deleted file mode 100644 index d51e4a6..0000000 --- a/libunwind-1.0.1-memset.diff +++ /dev/null @@ -1,112 +0,0 @@ -From f89fb17695e8137a5f4e23570bf9f53374186c96 Mon Sep 17 00:00:00 2001 -From: Arun -Date: Sun, 2 Oct 2011 22:43:28 -0700 -Subject: [PATCH] Fix incorrect calls to memset. - -Found when compiling libunwind with clang. - -Signed-off-by: Paul Pluzhnikov ---- - src/arm/Gget_save_loc.c | 2 +- - src/hppa/Gget_save_loc.c | 2 +- - src/ia64/Gget_save_loc.c | 2 +- - src/mips/Gget_save_loc.c | 2 +- - src/x86/Gget_save_loc.c | 2 +- - src/x86_64/Gget_save_loc.c | 2 +- - tests/test-proc-info.c | 2 +- - 7 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/src/arm/Gget_save_loc.c b/src/arm/Gget_save_loc.c -index ba7bf17..151ba0f 100644 ---- a/src/arm/Gget_save_loc.c -+++ b/src/arm/Gget_save_loc.c -@@ -57,7 +57,7 @@ unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc) - break; - } - -- memset (sloc, 0, sizeof (sloc)); -+ memset (sloc, 0, sizeof (*sloc)); - - if (DWARF_IS_NULL_LOC (loc)) - { -diff --git a/src/hppa/Gget_save_loc.c b/src/hppa/Gget_save_loc.c -index 7aa6f31..1b21919 100644 ---- a/src/hppa/Gget_save_loc.c -+++ b/src/hppa/Gget_save_loc.c -@@ -35,7 +35,7 @@ unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc) - - #warning FIX ME! - -- memset (sloc, 0, sizeof (sloc)); -+ memset (sloc, 0, sizeof (*sloc)); - - if (DWARF_IS_NULL_LOC (loc)) - { -diff --git a/src/ia64/Gget_save_loc.c b/src/ia64/Gget_save_loc.c -index 7bc2b19..49bdaba 100644 ---- a/src/ia64/Gget_save_loc.c -+++ b/src/ia64/Gget_save_loc.c -@@ -142,7 +142,7 @@ unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc) - break; - } - -- memset (sloc, 0, sizeof (sloc)); -+ memset (sloc, 0, sizeof (*sloc)); - - if (IA64_IS_NULL_LOC (loc)) - { -diff --git a/src/mips/Gget_save_loc.c b/src/mips/Gget_save_loc.c -index dbccea8..262e23e 100644 ---- a/src/mips/Gget_save_loc.c -+++ b/src/mips/Gget_save_loc.c -@@ -75,7 +75,7 @@ unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc) - break; - } - -- memset (sloc, 0, sizeof (sloc)); -+ memset (sloc, 0, sizeof (*sloc)); - - if (DWARF_IS_NULL_LOC (loc)) - { -diff --git a/src/x86/Gget_save_loc.c b/src/x86/Gget_save_loc.c -index 6e6f9dc..e8cc79e 100644 ---- a/src/x86/Gget_save_loc.c -+++ b/src/x86/Gget_save_loc.c -@@ -109,7 +109,7 @@ unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc) - break; - } - -- memset (sloc, 0, sizeof (sloc)); -+ memset (sloc, 0, sizeof (*sloc)); - - if (DWARF_IS_NULL_LOC (loc)) - { -diff --git a/src/x86_64/Gget_save_loc.c b/src/x86_64/Gget_save_loc.c -index db81db3..20b14a5 100644 ---- a/src/x86_64/Gget_save_loc.c -+++ b/src/x86_64/Gget_save_loc.c -@@ -49,7 +49,7 @@ unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc) - break; - } - -- memset (sloc, 0, sizeof (sloc)); -+ memset (sloc, 0, sizeof (*sloc)); - - if (DWARF_IS_NULL_LOC (loc)) - { -diff --git a/tests/test-proc-info.c b/tests/test-proc-info.c -index 9e039c6..e8915fb 100644 ---- a/tests/test-proc-info.c -+++ b/tests/test-proc-info.c -@@ -72,7 +72,7 @@ access_fpreg (unw_addr_space_t as, unw_regnum_t regnum, unw_fpreg_t *valp, - int write, void *arg) - { - if (!write) -- memset (valp, 0, sizeof (valp)); -+ memset (valp, 0, sizeof (*valp)); - return 0; - } - --- -1.7.2.5 - diff --git a/libunwind-1.0.1-tests.diff b/libunwind-1.0.1-tests.diff deleted file mode 100644 index dc96034..0000000 --- a/libunwind-1.0.1-tests.diff +++ /dev/null @@ -1,52 +0,0 @@ ---- tests/Makefile.am -+++ tests/Makefile.am -@@ -82,14 +82,20 @@ - - Lia64_test_readonly_SOURCES = Lia64-test-readonly.c ia64-test-readonly-asm.S - Gia64_test_readonly_SOURCES = Gia64-test-readonly.c ia64-test-readonly-asm.S -+ia64_test_sig_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) -+Gia64_test_sig_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) -+Gia64_test_readonly_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) - Lia64_test_stack_SOURCES = Lia64-test-stack.c ia64-test-stack-asm.S \ - ia64-test-stack.h - Gia64_test_stack_SOURCES = Gia64-test-stack.c ia64-test-stack-asm.S \ - ia64-test-stack.h -+Gia64_test_stack_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) - Lia64_test_rbs_SOURCES = Lia64-test-rbs.c ia64-test-rbs-asm.S ia64-test-rbs.h - Gia64_test_rbs_SOURCES = Gia64-test-rbs.c ia64-test-rbs-asm.S ia64-test-rbs.h -+Gia64_test_rbs_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) - Lia64_test_nat_SOURCES = Lia64-test-nat.c ia64-test-nat-asm.S - Gia64_test_nat_SOURCES = Gia64-test-nat.c ia64-test-nat-asm.S -+Gia64_test_nat_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) - ia64_test_dyn1_SOURCES = ia64-test-dyn1.c ia64-dyn-asm.S flush-cache.S - ppc64_test_altivec_SOURCES = ppc64-test-altivec.c ppc64-test-altivec-utils.c - ppc64_test_wchar_SOURCES = ppc64-test-wchar.c -@@ -128,8 +134,8 @@ - - test_async_sig_LDADD = $(LIBUNWIND_local) -lpthread - test_flush_cache_LDADD = $(LIBUNWIND_local) --test_init_remote_LDADD = $(LIBUNWIND) --test_mem_LDADD = $(LIBUNWIND) -+test_init_remote_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) -+test_mem_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) - test_ptrace_LDADD = $(LIBUNWIND_ptrace) $(LIBUNWIND) - test_proc_info_LDADD = $(LIBUNWIND) - test_static_link_LDADD = $(LIBUNWIND) -@@ -137,12 +143,12 @@ - rs_race_LDADD = $(LIBUNWIND) -lpthread - test_varargs_LDADD = @BACKTRACELIB@ - --Gtest_bt_LDADD = $(LIBUNWIND) --Gtest_concurrent_LDADD = $(LIBUNWIND) -lpthread -+Gtest_bt_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) -+Gtest_concurrent_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) -lpthread - Gtest_dyn1_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) --Gtest_exc_LDADD = $(LIBUNWIND) --Gtest_init_LDADD = $(LIBUNWIND) --Gtest_resume_sig_LDADD = $(LIBUNWIND) -+Gtest_exc_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) -+Gtest_init_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) -+Gtest_resume_sig_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) - Gperf_simple_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) - Gtest_trace_LDADD=$(LIBUNWIND) $(LIBUNWIND_local) - Gperf_trace_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) diff --git a/libunwind-1.0.1.tar.gz b/libunwind-1.0.1.tar.gz deleted file mode 100644 index 0d7fbee..0000000 --- a/libunwind-1.0.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aa95fd184c0b90d95891c2f3bac2c7df708ff016d2a6ee8b2eabb769f864101f -size 1028725 diff --git a/libunwind-1.1-expected-fails.patch b/libunwind-1.1-expected-fails.patch new file mode 100644 index 0000000..dc41c74 --- /dev/null +++ b/libunwind-1.1-expected-fails.patch @@ -0,0 +1,15 @@ +Index: libunwind-1.1/tests/Makefile.am +=================================================================== +--- libunwind-1.1.orig/tests/Makefile.am ++++ libunwind-1.1/tests/Makefile.am +@@ -87,6 +87,10 @@ check_SCRIPTS = $(check_SCRIPTS_common) + + TESTS = $(check_PROGRAMS) $(check_SCRIPTS) + ++if !ARCH_IA64 ++XFAIL_TESTS = Gtest-dyn1 Ltest-dyn1 ++endif ++ + noinst_PROGRAMS = $(noinst_PROGRAMS_common) $(noinst_PROGRAMS_cdep) \ + $(noinst_PROGRAMS_arch) + diff --git a/libunwind-1.1-tests.diff b/libunwind-1.1-tests.diff new file mode 100644 index 0000000..2ca9b18 --- /dev/null +++ b/libunwind-1.1-tests.diff @@ -0,0 +1,10 @@ +Index: libunwind-1.1/tests/Makefile.am +=================================================================== +--- libunwind-1.1.orig/tests/Makefile.am ++++ libunwind-1.1/tests/Makefile.am +@@ -188,4 +188,4 @@ Lia64_test_stack_LDADD = $(LIBUNWIND_loc + Lia64_test_rbs_LDADD = $(LIBUNWIND_local) + Lia64_test_readonly_LDADD = $(LIBUNWIND_local) + ia64_test_dyn1_LDADD = $(LIBUNWIND) +-ia64_test_sig_LDADD = $(LIBUNWIND) ++ia64_test_sig_LDADD = $(LIBUNWIND) $(LIBUNWIND_local) diff --git a/libunwind-1.1.tar.gz b/libunwind-1.1.tar.gz new file mode 100644 index 0000000..15234e4 --- /dev/null +++ b/libunwind-1.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a +size 1098603 diff --git a/libunwind.changes b/libunwind.changes index 621e800..3d94448 100644 --- a/libunwind.changes +++ b/libunwind.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Tue Dec 11 18:15:57 UTC 2012 - dvaleev@suse.com + +- update to libunwind 1.1: + coredump unwind support + New arch: SuperH + Improved support for PowerPC, ARM + Lots of cleanups, perf tweaks + pkg-config support + +- drop all upstreamed patches +- refresh libunwind-1.1-tests.diff patch +- enable ppc ppc64 build +- Mark some tests as expected to fail + libunwind-1.1-expected-fails.patch + ------------------------------------------------------------------- Mon Aug 20 23:37:17 UTC 2012 - agraf@suse.com diff --git a/libunwind.spec b/libunwind.spec index 8c0e33a..ad16474 100644 --- a/libunwind.spec +++ b/libunwind.spec @@ -19,19 +19,19 @@ Name: libunwind BuildRequires: gcc-c++ BuildRequires: libtool +BuildRequires: pkg-config Url: http://savannah.nongnu.org/projects/libunwind/ Summary: Unwind Library License: MIT Group: System/Base -Version: 1.0.1 +Version: 1.1 Release: 0 Source: libunwind-%{version}.tar.gz -Patch0: libunwind-1.0.1-ia64.diff -Patch1: libunwind-1.0.1-memset.diff -Patch2: libunwind-1.0.1-tests.diff -Patch3: 20120704_fix_arm_ftbfs.patch +Patch0: libunwind-1.1-tests.diff +#PATCH-FIX-UPSTREAM: upstream commit ae3dd9417a3d178cf51ce744d85b695dbf025b44 +Patch1: libunwind-1.1-expected-fails.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build -ExclusiveArch: %ix86 ia64 x86_64 %arm +ExclusiveArch: %ix86 ia64 x86_64 %arm ppc ppc64 %description A portable and efficient C programming interface (API) to determine the @@ -63,9 +63,6 @@ Authors: %setup -q %patch0 -p1 %patch1 -p1 -%patch2 -%patch3 -p1 -# %patch %build autoreconf -fi @@ -103,6 +100,13 @@ stat "%buildroot"/$(readlink -f "%buildroot/%_libdir/libunwind.so"); %{_prefix}/include/* %{_libdir}/lib*.a %{_libdir}/libunwind-*.so +%{_libdir}/pkgconfig/libunwind-generic.pc +%{_libdir}/pkgconfig/libunwind-ptrace.pc +%{_libdir}/pkgconfig/libunwind-setjmp.pc +%{_libdir}/pkgconfig/libunwind.pc +%ifarch i586 x86_64 +%{_libdir}/pkgconfig/libunwind-coredump.pc +%endif %doc %{_mandir}/man?/* %changelog