]> granicus.if.org Git - strace/commitdiff
2007-07-05 Roland McGrath <roland@redhat.com>
authorRoland McGrath <roland@redhat.com>
Thu, 5 Jul 2007 19:08:42 +0000 (19:08 +0000)
committerRoland McGrath <roland@redhat.com>
Thu, 5 Jul 2007 19:08:42 +0000 (19:08 +0000)
* configure.ac: Check for struct sigcontext.sc_hi2.
* signal.c (sys_sigreturn) [MIPS]: Use sc_hi2 vs sc_sigset if found.

configure.ac
signal.c

index 49a9b2093baa1291b10c1e93c0f3d46ccaca2455..5832fb70c4c1b88e2ba294cf804d36ee971b4b9b 100644 (file)
@@ -218,6 +218,10 @@ AC_CHECK_TYPES([struct user_desc],,, [#include <asm/ldt.h>])
 
 AC_CHECK_MEMBERS([struct dqblk.dqb_curblocks],,, [#include <sys/quota.h>])
 
+AC_CHECK_MEMBERS([struct sigcontext.sc_hi2],,, [#include <signal.h>
+#include <asm/sigcontext.h>])
+
+
 AC_CHECK_DECLS([sys_errlist])
 AC_CHECK_DECLS([sys_siglist, _sys_siglist],,, [#include <signal.h>])
 
index d23727dd0ba6b0712b62596c0b84ca17f3916362..5950831d918e20cb21474b227ca602694d0a6240 100644 (file)
--- a/signal.c
+++ b/signal.c
@@ -1435,7 +1435,11 @@ struct tcb *tcp;
                if (umove(tcp, sp, &sc) < 0)
                        return 0;
                tcp->u_arg[0] = 1;
+# ifdef HAVE_STRUCT_SIGCONTEXT_SC_HI2
+               tcp->u_arg[1] = sc.sc_hi2;
+# else
                tcp->u_arg[1] = sc.sc_sigset;
+# endif
        } else {
                tcp->u_rval = tcp->u_error = 0;
                if(tcp->u_arg[0] == 0)