From: Mike Frysinger Date: Thu, 14 Aug 2014 04:30:24 +0000 (-0400) Subject: ia64: fix sigaction decoding X-Git-Tag: v4.9~7 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dd80a879bed672bae6a0fc9ba61916d27c4e5fa7;p=strace ia64: fix sigaction decoding Looks like ia64 doesn't have sa_restorer either, yet still defines SA_RESTORER. Deploy the same trick that HPPA is using to make the test pass. * signal.c (SA_RESTORER): Undefine when IA64 is defined. (struct new_sigaction) [IA64]: Disable sa_restorer. --- diff --git a/signal.c b/signal.c index 9a7c82f0..f6eeed0e 100644 --- a/signal.c +++ b/signal.c @@ -100,9 +100,9 @@ struct sigcontext { # endif #endif -/* HPPA defines this in their headers, but doesn't actually have it, +/* Some arches define this in their headers, but don't actually have it, so we have to delete the define. */ -#ifdef HPPA +#if defined(HPPA) || defined(IA64) # undef SA_RESTORER #endif @@ -1134,9 +1134,9 @@ struct new_sigaction #else void (*__sa_handler)(int); unsigned long sa_flags; -# if !defined(ALPHA) && !defined(HPPA) +# if !defined(ALPHA) && !defined(HPPA) && !defined(IA64) void (*sa_restorer)(void); -# endif /* !ALPHA && !HPPA */ +# endif /* !ALPHA && !HPPA && !IA64 */ #endif /* !MIPS */ /* Kernel treats sa_mask as an array of longs. */ unsigned long sa_mask[NSIG / sizeof(long) ? NSIG / sizeof(long) : 1];