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

Bug#805570: libsigsegv: FTBFS on sparc64 due to outdated definition of SIGSEGV_FAULT_STACKPOINTER

Source: libsigsegv
Version: 2.10-4
Severity: important
Tags: patch


libsigsegv currently fails to build from source on sparc64:

make[3]: Entering directory '/«PKGBUILDDIR»/src'
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I. -I.  -D_FORTIFY_SOURCE=2  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c -o handler.lo handler.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I. -I. -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c handler.c  -fPIC -DPIC -o .libs/handler.o
In file included from fault.h:37:0,
                 from handler-unix.c:71,
                 from handler.c:20:
handler-unix.c: In function 'sigsegv_handler':
fault-linux-sparc.h:30:70: error: 'mcontext_t {aka struct <anonymous>}' has no member named 'gregs'
 #define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_mcontext.gregs[REG_O6]

This is due to the fact that the #define for SIGSEGV_FAULT_STACKPOINTER uses an outdated
variable name for the gregs member in uc_mcontext. It should be renamed from "gregs"
to "mc_gregs".

The attached patch does exactly that and fixes the FTBFS on sparc64 and sparc (V9/V8+).
Please apply the patch to help us with the porting efforts for sparc64.

Credits for the patch to Romain Dolbeau <romain@dolbeau.org>.


 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
Description: Fix the definition of SIGSEGV_FAULT_STACKPOINTER for sparc
 The definition of SIGSEGV_FAULT_STACKPOINTER uses an outdated variable
 identifier for the register window array. sparc V8+ and later renamed
 this array from gregs to mc_gregs. This patch fixes an FTBFS.

--- libsigsegv-2.9.orig/src/fault-linux-sparc.h
+++ libsigsegv-2.9/src/fault-linux-sparc.h
@@ -27,4 +27,4 @@
    (see also <asm/sigcontext.h>)
    are quite different types.  */
-#define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_mcontext.gregs[REG_O6]
+#define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_mcontext.mc_gregs[REG_O6]

Reply to: