V(SA_RESTART),
V(SA_NODEFER),
V(SA_SIGINFO),
+#ifdef SA_RESTORER
V(SA_RESTORER),
+#endif
{0, NULL}
};
strlcat (ptr, ", ", len);
_stp_lookup_or_str(_stp_sa_flags_list, act->sa_flags, ptr, len);
strlcat (ptr, ", ", len);
-#if !defined (__ia64__)
+#if !defined (__ia64__) && !defined (__mips__)
slen = strlen(ptr);
_stp_snprintf(ptr + slen, len - slen,
"0x%lx, ", (long)act->sa_restorer);
act.sa_handler = (void *)compat_ptr(act32.sa_handler);
act.sa_flags = (unsigned long)act32.sa_flags;
+#ifdef SA_RESTORER
act.sa_restorer = (void *)compat_ptr(act32.sa_restorer);
-
+#endif
/* swap words around to get right endian order. */
switch (_NSIG_WORDS)
{
struct sigaction act;
act.sa_handler = (void *)compat_ptr(act32.sa_handler);
+#ifdef SA_RESTORER
act.sa_restorer = (void *)compat_ptr(act32.sa_restorer);
+#endif
act.sa_flags = (unsigned long)act32.sa_flags;
siginitset(&act.sa_mask, act32.sa_mask);
_stp_sigaction_str(&act, STAP_RETVALUE, MAXSTRINGLEN);