diff options
author | "Steven J. Hill" <sjhill@realitydiluted.com> | 2005-12-08 04:57:34 +0000 |
---|---|---|
committer | "Steven J. Hill" <sjhill@realitydiluted.com> | 2005-12-08 04:57:34 +0000 |
commit | a25d5bd4971bb460bd87c684d066fd58359faf32 (patch) | |
tree | b3a4b5ef6799bd0c3924fc9ba00d65023577f101 /libc/sysdeps/linux/mips/sigaction.c | |
parent | 2efb2ef4f916151b8abe51fc87ed7b5411d1d91e (diff) | |
download | uClibc-alpine-a25d5bd4971bb460bd87c684d066fd58359faf32.tar.bz2 uClibc-alpine-a25d5bd4971bb460bd87c684d066fd58359faf32.tar.xz |
Fix 'sigaction' for NPTL and other thread models.
Diffstat (limited to 'libc/sysdeps/linux/mips/sigaction.c')
-rw-r--r-- | libc/sysdeps/linux/mips/sigaction.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/libc/sysdeps/linux/mips/sigaction.c b/libc/sysdeps/linux/mips/sigaction.c index 4cbdc7023..e35f11806 100644 --- a/libc/sysdeps/linux/mips/sigaction.c +++ b/libc/sysdeps/linux/mips/sigaction.c @@ -25,14 +25,14 @@ #include <sys/syscall.h> #include <bits/kernel_sigaction.h> +#define SA_RESTORER 0x04000000 + #if defined __NR_rt_sigaction -#warning "Yes there is a warning here. Don't worry about it." -static void restore_rt (void) asm ("__restore_rt"); /* If ACT is not NULL, change the action for SIG to *ACT. If OACT is not NULL, put the old action for SIG in *OACT. */ -int __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) +int attribute_hidden __sigaction_internal (int sig, const struct sigaction *act, struct sigaction *oact) { int result; struct kernel_sigaction kact, koact; @@ -68,12 +68,11 @@ int __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oa #else -#warning "Yes there is a warning here. Don't worry about it." -static void restore (void) asm ("__restore"); +extern void restore (void) asm ("__restore") attribute_hidden; /* If ACT is not NULL, change the action for SIG to *ACT. If OACT is not NULL, put the old action for SIG in *OACT. */ -int __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) +int attribute_hidden __sigaction_internal (int sig, const struct sigaction *act, struct sigaction *oact) { int result; struct old_kernel_sigaction kact, koact; @@ -113,5 +112,5 @@ int __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oa #endif #ifndef LIBC_SIGACTION -weak_alias (__libc_sigaction, sigaction) +weak_alias(__sigaction_internal,sigaction) #endif |