aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-10-31 11:42:52 +0000
committerUlrich Drepper <drepper@redhat.com>1998-10-31 11:42:52 +0000
commit655b26bb758d9acb15e4870c1c541bb25c36cdd1 (patch)
tree85cafcebf42594d68234063c314b4023778c2027 /sysdeps
parent646fffb9818a445a13e517561b61cfb8ee1d1664 (diff)
downloadglibc-655b26bb758d9acb15e4870c1c541bb25c36cdd1.zip
glibc-655b26bb758d9acb15e4870c1c541bb25c36cdd1.tar.gz
glibc-655b26bb758d9acb15e4870c1c541bb25c36cdd1.tar.bz2
Update.
1998-10-29 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * manual/locale.texi (Formatting Numbers): Fix strfmon examples. 1998-10-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * sysdeps/generic/bits/select.h (__FD_ZERO): Change '\0' to plain 0, __fd_mask is usually not a char. 1998-10-30 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/unix/sysv/linux/sigpending.c (sigpending): Allow compilation on systems without rt_* syscalls (e.g. on Linux 2.0). * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise. * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. * sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise * sysdeps/unix/sysv/linux/sigqueue.c: Likewise. * sysdeps/unix/sysv/linux/aio_sigqueue.c: Likewise. * sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Allow compiling on systems without rt_sigaction syscall. * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction): Likewise. 1998-10-30 Andreas Jaeger <aj@arthur.rhein-neckar.de> * time/strptime.c (HERE_D_FMT): Fix typo. Reported by Claus Heine <heine@math1.rwth-aachen.de>, PR libc/842. * catgets/test1.msg: New file.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/bits/select.h2
-rw-r--r--sysdeps/unix/sysv/linux/aio_sigqueue.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/sigaction.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigpending.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigprocmask.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigqueue.c5
-rw-r--r--sysdeps/unix/sysv/linux/sigsuspend.c2
-rw-r--r--sysdeps/unix/sysv/linux/sigtimedwait.c4
-rw-r--r--sysdeps/unix/sysv/linux/sigwaitinfo.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c2
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