diff options
Diffstat (limited to 'sysdeps/unix')
-rw-r--r-- | sysdeps/unix/sysv/linux/aio_sigqueue.c | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/sigaction.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sigpending.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sigprocmask.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sigqueue.c | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sigsuspend.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sigtimedwait.c | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sigwaitinfo.c | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c | 2 |
9 files changed, 26 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c index 8d1d5cf321..0500b3fbfa 100644 --- a/sysdeps/unix/sysv/linux/aio_sigqueue.c +++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c @@ -26,6 +26,7 @@ #include "aio_misc.h" +#ifdef __NR_rt_sigqueueinfo extern int __syscall_rt_sigqueueinfo (int, int, siginfo_t *); @@ -47,3 +48,6 @@ __aio_sigqueue (sig, val) return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info); } +#else +# include <sysdeps/generic/aio_sigqueue.c> +#endif diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c index ab19246c9c..142eac6a75 100644 --- a/sysdeps/unix/sysv/linux/i386/sigaction.c +++ b/sysdeps/unix/sysv/linux/i386/sigaction.c @@ -47,6 +47,7 @@ __sigaction (int sig, const struct sigaction *act, struct sigaction *oact) struct old_kernel_sigaction k_newact, k_oldact; int result; +#ifdef __NR_rt_sigaction /* First try the RT signals. */ if (!__libc_missing_rt_sigs) { @@ -83,6 +84,7 @@ __sigaction (int sig, const struct sigaction *act, struct sigaction *oact) __set_errno (saved_errno); __libc_missing_rt_sigs = 1; } +#endif if (act) { diff --git a/sysdeps/unix/sysv/linux/sigpending.c b/sysdeps/unix/sysv/linux/sigpending.c index b3706263a6..1d7e0d6597 100644 --- a/sysdeps/unix/sysv/linux/sigpending.c +++ b/sysdeps/unix/sysv/linux/sigpending.c @@ -38,6 +38,7 @@ int sigpending (set) sigset_t *set; { +#ifdef __NR_rt_pending /* First try the RT signals. */ if (!__libc_missing_rt_sigs) { @@ -52,6 +53,7 @@ sigpending (set) __set_errno (saved_errno); __libc_missing_rt_sigs = 1; } +#endif return INLINE_SYSCALL (sigpending, 1, set); } diff --git a/sysdeps/unix/sysv/linux/sigprocmask.c b/sysdeps/unix/sysv/linux/sigprocmask.c index 62c5f772f6..2028ed5e11 100644 --- a/sysdeps/unix/sysv/linux/sigprocmask.c +++ b/sysdeps/unix/sysv/linux/sigprocmask.c @@ -39,6 +39,7 @@ __sigprocmask (how, set, oset) const sigset_t *set; sigset_t *oset; { +#ifdef __NR_rt_sigprocmask /* First try the RT signals. */ if (!__libc_missing_rt_sigs) { @@ -54,6 +55,7 @@ __sigprocmask (how, set, oset) __set_errno (saved_errno); __libc_missing_rt_sigs = 1; } +#endif return INLINE_SYSCALL (sigprocmask, 3, how, set, oset); } diff --git a/sysdeps/unix/sysv/linux/sigqueue.c b/sysdeps/unix/sysv/linux/sigqueue.c index fa31119cfd..c3e05e159f 100644 --- a/sysdeps/unix/sysv/linux/sigqueue.c +++ b/sysdeps/unix/sysv/linux/sigqueue.c @@ -25,7 +25,7 @@ extern int __syscall_rt_sigqueueinfo (int, int, siginfo_t *); - +#ifdef __NR_rt_sigqueueinfo /* Return any pending signal or wait for one for the given time. */ int __sigqueue (pid, sig, val) @@ -46,3 +46,6 @@ __sigqueue (pid, sig, val) return INLINE_SYSCALL (rt_sigqueueinfo, 3, pid, sig, &info); } weak_alias (__sigqueue, sigqueue) +#else +# include <sysdeps/generic/sigqueue.c> +#endif diff --git a/sysdeps/unix/sysv/linux/sigsuspend.c b/sysdeps/unix/sysv/linux/sigsuspend.c index b9aeffe9ff..5dd0a9e782 100644 --- a/sysdeps/unix/sysv/linux/sigsuspend.c +++ b/sysdeps/unix/sysv/linux/sigsuspend.c @@ -38,6 +38,7 @@ int __sigsuspend (set) const sigset_t *set; { +#ifdef __NR_rt_sigsuspend /* First try the RT signals. */ if (!__libc_missing_rt_sigs) { @@ -52,6 +53,7 @@ __sigsuspend (set) __set_errno (saved_errno); __libc_missing_rt_sigs = 1; } +#endif return INLINE_SYSCALL (sigsuspend, 3, 0, 0, set->__val[0]); } diff --git a/sysdeps/unix/sysv/linux/sigtimedwait.c b/sysdeps/unix/sysv/linux/sigtimedwait.c index 09c04cf81b..4bb7396a42 100644 --- a/sysdeps/unix/sysv/linux/sigtimedwait.c +++ b/sysdeps/unix/sysv/linux/sigtimedwait.c @@ -22,6 +22,7 @@ #include <sysdep.h> #include <sys/syscall.h> +#ifdef __NR_rt_sigtimedwait extern int __syscall_rt_sigtimedwait (const sigset_t *, siginfo_t *, const struct timespec *, size_t); @@ -38,3 +39,6 @@ __sigtimedwait (set, info, timeout) return INLINE_SYSCALL (rt_sigtimedwait, 4, set, info, timeout, _NSIG / 8); } weak_alias (__sigtimedwait, sigtimedwait) +#else +# include <sysdeps/generic/sigtimedwait.c> +#endif diff --git a/sysdeps/unix/sysv/linux/sigwaitinfo.c b/sysdeps/unix/sysv/linux/sigwaitinfo.c index 718d179fc1..ae51275711 100644 --- a/sysdeps/unix/sysv/linux/sigwaitinfo.c +++ b/sysdeps/unix/sysv/linux/sigwaitinfo.c @@ -24,6 +24,7 @@ #include <sysdep.h> #include <sys/syscall.h> +#ifdef __NR_rt_sigtimedwait extern int __syscall_rt_sigtimedwait (const sigset_t *, siginfo_t *, const struct timespec *, size_t); @@ -39,3 +40,6 @@ __sigwaitinfo (set, info) return INLINE_SYSCALL (rt_sigtimedwait, 4, set, info, NULL, _NSIG / 8); } weak_alias (__sigwaitinfo, sigwaitinfo) +#else +# include <sysdeps/generic/sigwaitinfo.c> +#endif diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c b/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c index e18ffa818d..20cde2da2c 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c @@ -41,6 +41,7 @@ __sigaction (int sig, __const struct sigaction *act, struct sigaction *oact) struct old_kernel_sigaction k_sigact, k_osigact; int ret; +#ifdef __NR_rt_sigaction /* First try the RT signals. */ if (!__libc_missing_rt_sigs) { @@ -81,6 +82,7 @@ __sigaction (int sig, __const struct sigaction *act, struct sigaction *oact) __set_errno (saved_errno); __libc_missing_rt_sigs = 1; } +#endif /* Magic to tell the kernel we are using "new-style" signals, in that the signal table is not kept in userspace. Not the same as the |