diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/bits/select.h | 2 | ||||
-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 |
10 files changed, 27 insertions, 2 deletions
diff --git a/sysdeps/generic/bits/select.h b/sysdeps/generic/bits/select.h index 1025532..4513135 100644 --- a/sysdeps/generic/bits/select.h +++ b/sysdeps/generic/bits/select.h @@ -28,7 +28,7 @@ unsigned int __i; \ __fd_set *__arr = (s); \ for (__i = 0; __i < sizeof (__fd_set) / sizeof (__fd_mask); ++__i) \ - __FDS_BITS (__arr)[__i] = '\0'; \ + __FDS_BITS (__arr)[__i] = 0; \ } while (0) #define __FD_SET(d, s) (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d)) #define __FD_CLR(d, s) (__FDS_BITS (s)[__FDELT(d)] &= ~__FDMASK(d)) diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c index 8d1d5cf..0500b3f 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 ab19246..142eac6 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 b370626..1d7e0d6 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 62c5f77..2028ed5 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 fa31119..c3e05e1 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 b9aeffe..5dd0a9e 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 09c04cf..4bb7396 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 718d179..ae51275 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 e18ffa8..20cde2d 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 |