Source: a2jmidid
Version: 8~dfsg0-1
Severity: normal
Tags: patch
User: [email protected]

Dear Maintainer,

The package a2jmidid fails to build from source on ppc64el due to the error in 
subject.
Following is the full log:
https://buildd.debian.org/status/fetch.php?pkg=a2jmidid&arch=ppc64el&ver=8~dfsg0-1&stamp=1410448768

That is due to the usage of the sys header ucontext.h by sigsegv.c.
It tries to use a struct defined for powerpc 32-bit within ucontext.h, but there
is a condition that does not allow so.

I worked around the aforementioned situation by adding a condition that uses
the 64-bit struct defined.

I just added the conditions following the same pattern and logic so the package 
builds successfully. Please add your considerations over the patch.

Thanks and regards.

Fernando

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: ppc64el (ppc64le)

Kernel: Linux 3.16-trunk-powerpc64le (SMP w/32 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
diff -Nru a2jmidid-8~dfsg0/debian/changelog a2jmidid-8~dfsg0/debian/changelog
--- a2jmidid-8~dfsg0/debian/changelog	2012-08-02 11:20:39.000000000 +0000
+++ a2jmidid-8~dfsg0/debian/changelog	2014-11-11 16:23:45.000000000 +0000
@@ -1,3 +1,10 @@
+a2jmidid (8~dfsg0-1ppc64el1) UNRELEASED; urgency=medium
+
+  * sigsegv.c: added condition to use ucontext.h for ppc64, which wasn't being covered.
+    This fixes ftbfs on ppc64el
+
+ -- Fernando Seiti Furusato <[email protected]>  Tue, 11 Nov 2014 16:22:32 +0000
+
 a2jmidid (8~dfsg0-1) unstable; urgency=low
 
   * New upstream release:
diff -Nru a2jmidid-8~dfsg0/debian/patches/ppc64-sigsegv.patch a2jmidid-8~dfsg0/debian/patches/ppc64-sigsegv.patch
--- a2jmidid-8~dfsg0/debian/patches/ppc64-sigsegv.patch	1970-01-01 00:00:00.000000000 +0000
+++ a2jmidid-8~dfsg0/debian/patches/ppc64-sigsegv.patch	2014-11-11 16:24:16.000000000 +0000
@@ -0,0 +1,19 @@
+Description: Following the same variable and struct usage within sys header
+ file ucontext.h to cover powerpc 64 bit archs.
+Author: Fernando Seiti Furusato <[email protected]>
+
+--- a2jmidid-8~dfsg0.orig/sigsegv.c
++++ a2jmidid-8~dfsg0/sigsegv.c
+@@ -94,8 +94,11 @@ static void signal_segv(int signum, sigi
+ #if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__)
+     for(i = 0; i < NGREG; i++)
+         a2j_error("reg[%02d]       = 0x" REGFORMAT, i,
+-#if defined(__powerpc__)
++#if defined(__powerpc__) && !defined(__powerpc64__)
+                 ucontext->uc_mcontext.uc_regs[i]
++/* just following the variable type and member logic as the ones used here to cover ppc64*/
++#elif defined(__powerpc64__)
++                ucontext->uc_mcontext.gp_regs[i]
+ #elif defined(__sparc__) && defined(__arch64__)
+                 ucontext->uc_mcontext.mc_gregs[i]
+ #else
diff -Nru a2jmidid-8~dfsg0/debian/patches/series a2jmidid-8~dfsg0/debian/patches/series
--- a2jmidid-8~dfsg0/debian/patches/series	2012-08-02 11:19:38.000000000 +0000
+++ a2jmidid-8~dfsg0/debian/patches/series	2014-11-11 16:20:18.000000000 +0000
@@ -1 +1,2 @@
 shebangs.diff
+ppc64-sigsegv.patch

Reply via email to