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
This commit is contained in:
parent
83486d0a3c
commit
a9ca7e9b2f
@ -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 <inttypes.h>
|
||||
-#include <ucontext.h>
|
||||
+#include <stddef.h>
|
||||
|
||||
#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 <ucontext.h>
|
||||
#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;
|
||||
|
@ -1,33 +0,0 @@
|
||||
From 962366dace4fed902ad5e89df1b34c13c3224b8b Mon Sep 17 00:00:00 2001
|
||||
From: Arun Sharma <asharma@fb.com>
|
||||
Date: Fri, 23 Sep 2011 11:11:34 -0700
|
||||
Subject: [PATCH] Fixup compile errors on ia64.
|
||||
|
||||
Suggested-by: Harald Servat <harald.servat@bsc.es>
|
||||
---
|
||||
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,
|
@ -1,112 +0,0 @@
|
||||
From f89fb17695e8137a5f4e23570bf9f53374186c96 Mon Sep 17 00:00:00 2001
|
||||
From: Arun <asharma@fb.com>
|
||||
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 <ppluzhnikov@google.com>
|
||||
---
|
||||
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
|
||||
|
@ -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)
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:aa95fd184c0b90d95891c2f3bac2c7df708ff016d2a6ee8b2eabb769f864101f
|
||||
size 1028725
|
15
libunwind-1.1-expected-fails.patch
Normal file
15
libunwind-1.1-expected-fails.patch
Normal file
@ -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)
|
||||
|
10
libunwind-1.1-tests.diff
Normal file
10
libunwind-1.1-tests.diff
Normal file
@ -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)
|
3
libunwind-1.1.tar.gz
Normal file
3
libunwind-1.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a
|
||||
size 1098603
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user