]> granicus.if.org Git - strace/commitdiff
ia64: fix sigaction decoding
authorMike Frysinger <vapier@gentoo.org>
Thu, 14 Aug 2014 04:30:24 +0000 (00:30 -0400)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 14 Aug 2014 23:29:09 +0000 (23:29 +0000)
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.

signal.c

index 9a7c82f0b10393fa5b36101937e3381a2adb5736..f6eeed0e8e3ba8407d6f619b7766c350d1c4a095 100644 (file)
--- 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];