From 7b19af689144b165a6c9ddc8445e2762c979c04b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 2 Aug 1999 20:04:56 +0000 Subject: Update. 1999-08-02 Jakub Jelinek * sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction): Only allow rt signal frames. No SA_SIGINFO signals will have the siginfo_t just not filled out with SI_NOINFO code. * sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h (register_dump): Take the above change into account. * sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h (rt_signal_frame): Likewise. * sysdeps/unix/sysv/linux/sparc/getsysstats.c: New file. --- sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) (limited to 'sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c') diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c index cd86f48602..cbfc248c8e 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c @@ -32,24 +32,18 @@ extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *, size_t); static void __rt_sigreturn_stub (void); -static void __sigreturn_stub (void); int __sigaction (int sig, __const struct sigaction *act, struct sigaction *oact) { int ret; struct kernel_sigaction kact, koact; - unsigned long stub = 0; + unsigned long stub = ((unsigned long) &__rt_sigreturn_stub) - 8; if (act) { kact.k_sa_handler = act->sa_handler; memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t)); - if (((kact.sa_flags = act->sa_flags) & SA_SIGINFO) != 0) - stub = (unsigned long) &__rt_sigreturn_stub; - else - stub = (unsigned long) &__sigreturn_stub; - stub -= 8; kact.sa_restorer = NULL; } @@ -79,12 +73,3 @@ __rt_sigreturn_stub (void) : /* no outputs */ : "i" (__NR_rt_sigreturn)); } - -static void -__sigreturn_stub (void) -{ - __asm__ ("mov %0, %%g1\n\t" - "ta 0x6d\n\t" - : /* no outputs */ - : "i" (__NR_sigreturn)); -} -- cgit 1.4.1