[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#680713: marked as done (unblock: libunwind/1.0.1-2)



Your message dated Sun, 8 Jul 2012 16:10:24 +0200
with message-id <20120708141024.GE29142@mraw.org>
and subject line Re: Bug#680713: unblock: libunwind/1.0.1-2
has caused the Debian Bug report #680713,
regarding unblock: libunwind/1.0.1-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
680713: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680713
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock


Please unblock package libunwind

The version 1.0.1-2 in unstable fixes the following bugs, which would be of
use for users and us.

  * 20120707_ia64_FTBFS.patch:
    - Cherry pick patch from upstream to fix FTBFS on ia64 (Closes: #680623).

  [ Daigo Moriwaki ]
  * debian/control: Removes libunwind8's Conflicts and Replaces with
    libunwind7. (Closes: #670957)
  * Imports Ubuntu's patch, supporting the armhf architecture.
    Thanks to James Page <james.page@ubuntu.com>.  (Closes: 680308)
    - 20120704_fix_arm_ftbfs.patch
    - debian/control:
      + Supports armhf.
      + libatomic-ops-dev is no longer required for Build-Depends.

Regards,
Daigo

unblock libunwind/1.0.1-2

-- System Information:
Debian Release: 6.0.5
  APT prefers stable
  APT policy: (990, 'stable'), (500, 'stable-updates'), (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru libunwind-1.0.1/debian/changelog libunwind-1.0.1/debian/changelog
--- libunwind-1.0.1/debian/changelog	2012-04-28 15:55:53.000000000 +0900
+++ libunwind-1.0.1/debian/changelog	2012-07-08 13:42:16.000000000 +0900
@@ -1,3 +1,21 @@
+libunwind (1.0.1-2) unstable; urgency=low
+
+  [ Luca Falavigna ]
+  * 20120707_ia64_FTBFS.patch:
+    - Cherry pick patch from upstream to fix FTBFS on ia64 (Closes: #680623).
+
+  [ Daigo Moriwaki ]
+  * debian/control: Removes libunwind8's Conflicts and Replaces with
+    libunwind7. (Closes: #670957)
+  * Imports Ubuntu's patch, supporting the armhf architecture.
+    Thanks to James Page <james.page@ubuntu.com>.  (Closes: 680308)
+    - 20120704_fix_arm_ftbfs.patch
+    - debian/control:
+      + Supports armhf.
+      + libatomic-ops-dev is no longer required for Build-Depends.
+
+ -- Daigo Moriwaki <daigo@debian.org>  Sun, 08 Jul 2012 13:13:11 +0900
+
 libunwind (1.0.1-1) unstable; urgency=low
 
   [ Jari Aalto ]
diff -Nru libunwind-1.0.1/debian/control libunwind-1.0.1/debian/control
--- libunwind-1.0.1/debian/control	2012-04-28 15:55:53.000000000 +0900
+++ libunwind-1.0.1/debian/control	2012-07-08 13:42:16.000000000 +0900
@@ -3,7 +3,7 @@
 Section: libs
 Maintainer: Daigo Moriwaki <daigo@debian.org>
 Uploaders: Matthieu Delahaye <matthieu@debian.org>, Al Stone <ahs3@debian.org>
-Build-Depends: debhelper (>= 9), libatomic-ops-dev (>> 0.5.1), autoconf, automake, libtool, autotools-dev
+Build-Depends: debhelper (>= 9), autoconf, automake, libtool, autotools-dev
 Standards-Version: 3.9.3
 Homepage: http://www.nongnu.org/libunwind
 Vcs-Git: git://git.debian.org/git/collab-maint/libunwind.git
@@ -12,7 +12,7 @@
 
 Package: libunwind8-dev
 Section: libdevel
-Architecture: ia64 i386 amd64 ppc64 powerpc armel
+Architecture: ia64 i386 amd64 ppc64 powerpc armel armhf
 Depends: ${misc:Depends}, libunwind8 (= ${binary:Version})
 Conflicts: libunwind1-dev, libunwind7-dev
 Replaces: libunwind7-dev
@@ -28,10 +28,10 @@
  This package includes the development support files. 
 
 Package: libunwind8
-Architecture: ia64 i386 amd64 ppc64 powerpc armel
+Architecture: ia64 i386 amd64 ppc64 powerpc armel armhf
 Depends: ${misc:Depends}, ${shlibs:Depends}
-Conflicts: libunwind1-dev, libunwind7
-Replaces: libgcc1 (<< 1:4.0.0-2), libunwind7
+Conflicts: libunwind1-dev
+Replaces: libgcc1 (<< 1:4.0.0-2)
 Description: library to determine the call-chain of a program - runtime
  The primary goal of this project is to define a portable and efficient C
  programming interface (API) to determine the call-chain of a program.
@@ -45,7 +45,7 @@
 
 Package: libunwind-setjmp0-dev
 Section: libdevel
-Architecture: ia64 i386 amd64 ppc64 powerpc armel
+Architecture: ia64 i386 amd64 ppc64 powerpc armel armhf
 Depends: ${misc:Depends}, libunwind8-dev (= ${binary:Version}), libunwind-setjmp0 (= ${binary:Version})
 Description: libunwind-based non local goto - development
  The unwind-setjmp library offers a libunwind-based implementation of
@@ -57,7 +57,7 @@
  This package includes the development support files
 
 Package: libunwind-setjmp0
-Architecture: ia64 i386 amd64 ppc64 powerpc armel
+Architecture: ia64 i386 amd64 ppc64 powerpc armel armhf
 Depends: ${misc:Depends}, ${shlibs:Depends}
 Description: libunwind-based non local goto - runtime
  The unwind-setjmp library offers a libunwind-based implementation of
diff -Nru libunwind-1.0.1/debian/patches/20120704_fix_arm_ftbfs.patch libunwind-1.0.1/debian/patches/20120704_fix_arm_ftbfs.patch
--- libunwind-1.0.1/debian/patches/20120704_fix_arm_ftbfs.patch	1970-01-01 09:00:00.000000000 +0900
+++ libunwind-1.0.1/debian/patches/20120704_fix_arm_ftbfs.patch	2012-07-08 13:42:16.000000000 +0900
@@ -0,0 +1,307 @@
+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;
+ 
diff -Nru libunwind-1.0.1/debian/patches/20120707_ia64_FTBFS.patch libunwind-1.0.1/debian/patches/20120707_ia64_FTBFS.patch
--- libunwind-1.0.1/debian/patches/20120707_ia64_FTBFS.patch	1970-01-01 09:00:00.000000000 +0900
+++ libunwind-1.0.1/debian/patches/20120707_ia64_FTBFS.patch	2012-07-08 13:42:16.000000000 +0900
@@ -0,0 +1,26 @@
+Index: libunwind-1.0.1/src/ptrace/_UPT_get_dyn_info_list_addr.c
+===================================================================
+--- libunwind-1.0.1.orig/src/ptrace/_UPT_get_dyn_info_list_addr.c	2011-09-11 05:06:41.000000000 +0200
++++ libunwind-1.0.1/src/ptrace/_UPT_get_dyn_info_list_addr.c	2012-07-07 13:36:27.632998530 +0200
+@@ -62,7 +62,7 @@
+ 
+       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);
+Index: libunwind-1.0.1/src/ptrace/_UPT_internal.h
+===================================================================
+--- libunwind-1.0.1.orig/src/ptrace/_UPT_internal.h	2011-09-11 05:06:41.000000000 +0200
++++ libunwind-1.0.1/src/ptrace/_UPT_internal.h	2012-07-07 13:37:07.880999763 +0200
+@@ -64,7 +64,7 @@
+ 
+ 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 -Nru libunwind-1.0.1/debian/patches/series libunwind-1.0.1/debian/patches/series
--- libunwind-1.0.1/debian/patches/series	2012-04-28 15:55:53.000000000 +0900
+++ libunwind-1.0.1/debian/patches/series	2012-07-08 13:42:16.000000000 +0900
@@ -1,2 +1,4 @@
 01-rpath.patch
 20120422_tests_Makefile_am.patch
+20120704_fix_arm_ftbfs.patch
+20120707_ia64_FTBFS.patch

--- End Message ---
--- Begin Message ---
Daigo Moriwaki <daigo@debian.org> (08/07/2012):
> unblock libunwind/1.0.1-2

Looks good, unblocked. You may want to check the buildd status, it
appears your package is only tried on a subset of architectures.

Pas says:
| %libunwind: ia64 i386 amd64 ppc64				      # [ANAIS]

See: https://buildd.debian.org/status/package.php?p=libunwind&suite=sid

Mraw,
KiBi.

Attachment: signature.asc
Description: Digital signature


--- End Message ---

Reply to: