diff options
| -rw-r--r-- | include/signal.h | 18 | ||||
| -rw-r--r-- | libc/sysdeps/linux/alpha/bits/kernel_sigaction.h | 8 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/__syscall_rt_sigaction.c | 7 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/__syscall_sigaction.c | 3 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/bits/kernel_sigaction.h | 12 | ||||
| -rw-r--r-- | libc/sysdeps/linux/hppa/bits/kernel_sigaction.h | 8 | ||||
| -rw-r--r-- | libc/sysdeps/linux/mips/bits/kernel_sigaction.h | 8 | 
7 files changed, 21 insertions, 43 deletions
| diff --git a/include/signal.h b/include/signal.h index a0b3edc1a..8674b1a3b 100644 --- a/include/signal.h +++ b/include/signal.h @@ -291,6 +291,24 @@ libc_hidden_proto(sigsuspend)  extern int sigaction (int __sig, __const struct sigaction *__restrict __act,  		      struct sigaction *__restrict __oact) __THROW;  #ifdef _LIBC +# if 0 /* this is in headers */ +/* In uclibc, userspace struct sigaction is identical to + * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel). + * See sigaction.h + */ +struct old_kernel_sigaction; +extern int __syscall_sigaction(int, __const struct old_kernel_sigaction *, +	struct old_kernel_sigaction *) attribute_hidden; +# else /* this is how the function is built */ +extern __typeof(sigaction) __syscall_sigaction attribute_hidden; +# endif +/* candidate for attribute_hidden, if NPTL would behave */ +extern int __syscall_rt_sigaction(int, __const struct sigaction *, +	struct sigaction *, size_t) +# ifndef __UCLIBC_HAS_THREADS_NATIVE__ +		attribute_hidden +# endif +	;  extern __typeof(sigaction) __libc_sigaction;  libc_hidden_proto(sigaction)  #endif diff --git a/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h b/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h index cd6b2133d..7746e3078 100644 --- a/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h +++ b/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h @@ -9,12 +9,4 @@ struct old_kernel_sigaction {  	unsigned int sa_flags;  }; -/* In uclibc, userspace struct sigaction is identical to - * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel). - * See sigaction.h - */ - -extern int __syscall_rt_sigaction (int, const struct sigaction *, -	struct sigaction *, size_t) attribute_hidden; -  #endif diff --git a/libc/sysdeps/linux/common/__syscall_rt_sigaction.c b/libc/sysdeps/linux/common/__syscall_rt_sigaction.c index 006b38a2a..723bf2e12 100644 --- a/libc/sysdeps/linux/common/__syscall_rt_sigaction.c +++ b/libc/sysdeps/linux/common/__syscall_rt_sigaction.c @@ -12,11 +12,8 @@  #ifdef __NR_rt_sigaction  #include <signal.h> -int __syscall_rt_sigaction (int __signum, const struct sigaction *__act, -							struct sigaction *__oldact, size_t __size); -  #define __NR___syscall_rt_sigaction __NR_rt_sigaction  _syscall4(int, __syscall_rt_sigaction, int, signum, -		  const struct sigaction *, act, struct sigaction *, oldact, -		  size_t, size) +	  const struct sigaction *, act, struct sigaction *, oldact, +	  size_t, size)  #endif diff --git a/libc/sysdeps/linux/common/__syscall_sigaction.c b/libc/sysdeps/linux/common/__syscall_sigaction.c index ae0f01e9e..98e6637ea 100644 --- a/libc/sysdeps/linux/common/__syscall_sigaction.c +++ b/libc/sysdeps/linux/common/__syscall_sigaction.c @@ -12,8 +12,7 @@  #ifndef __NR_rt_sigaction  #define __NR___syscall_sigaction __NR_sigaction  #include <signal.h> -int __syscall_sigaction (int __signum, const struct sigaction *__act, struct sigaction *__oldact) attribute_hidden;  _syscall3(int, __syscall_sigaction, int, signum, const struct sigaction *, -		  act, struct sigaction *, oldact) +	  act, struct sigaction *, oldact)  #endif diff --git a/libc/sysdeps/linux/common/bits/kernel_sigaction.h b/libc/sysdeps/linux/common/bits/kernel_sigaction.h index 0a35ac8cb..5c8726058 100644 --- a/libc/sysdeps/linux/common/bits/kernel_sigaction.h +++ b/libc/sysdeps/linux/common/bits/kernel_sigaction.h @@ -19,18 +19,6 @@ struct old_kernel_sigaction {  	unsigned long sa_flags;  	void (*sa_restorer)(void);  }; -/* In uclibc, userspace struct sigaction is identical to - * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel). - * See sigaction.h - */ - -extern int __syscall_sigaction(int, const struct old_kernel_sigaction *, -	struct old_kernel_sigaction *); -  #endif - -extern int __syscall_rt_sigaction(int, const struct sigaction *, -	struct sigaction *, size_t); -  #endif /* _BITS_SIGACTION_STRUCT_H */ diff --git a/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h b/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h index 1c093a522..5834bf37a 100644 --- a/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h +++ b/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h @@ -12,12 +12,4 @@ struct old_kernel_sigaction {  	unsigned long sa_flags;  }; -/* In uclibc, userspace struct sigaction is identical to - * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel). - * See sigaction.h - */ - -extern int __syscall_rt_sigaction (int, const struct sigaction *, -	struct sigaction *, size_t) attribute_hidden; -  #endif diff --git a/libc/sysdeps/linux/mips/bits/kernel_sigaction.h b/libc/sysdeps/linux/mips/bits/kernel_sigaction.h index 2048095c8..65eff7c92 100644 --- a/libc/sysdeps/linux/mips/bits/kernel_sigaction.h +++ b/libc/sysdeps/linux/mips/bits/kernel_sigaction.h @@ -24,12 +24,4 @@ struct old_kernel_sigaction {  #endif  }; -/* In uclibc, userspace struct sigaction is identical to - * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel). - * See sigaction.h - */ - -extern int __syscall_rt_sigaction (int, const struct sigaction *, -	struct sigaction *, size_t) attribute_hidden; -  #endif | 
