about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog31
-rw-r--r--bits/select.h2
-rw-r--r--manual/locale.texi6
-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
-rw-r--r--time/strptime.c2
14 files changed, 63 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 5455bd20cb..e6a5ccc3d2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,39 @@
+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. 
+ 
 1998-10-30  Ulrich Drepper  <drepper@cygnus.com>
 
 	* catgets/Makefile (tests): Add rules to run gencat on test1.msg.
 	(generate): Add test1.cat and test1.h.
 	(distribute): Add test1.msg.
+	* catgets/test1.msg: New file.
 
 	* catgets/gencat.c: Do a better job in initializing dynamic
 	memory [PR libc/844].
diff --git a/bits/select.h b/bits/select.h
index 1025532afe..4513135af9 100644
--- a/bits/select.h
+++ b/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/manual/locale.texi b/manual/locale.texi
index 6208710121..b4b7f4b24f 100644
--- a/manual/locale.texi
+++ b/manual/locale.texi
@@ -1052,7 +1052,7 @@ strfmon (buf, 100, "@@%n@@%n@@%n@@", 123.45, -567.89, 12345.678);
 @noindent
 The output produced is
 @smallexample
-"@@$123.45@@-$123.45@@$12,345.68@@"
+"@@$123.45@@-$567.89@@$12,345.68@@"
 @end smallexample
 
 We can notice several things here.  First, the width for all formats is
@@ -1073,7 +1073,7 @@ strfmon (buf, 100, "@@%=*11n@@%=*11n@@%=*11n@@", 123.45, -567.89, 12345.678);
 The output this time is:
 
 @smallexample
-"@@    $123.45@@   -$123.45@@ $12,345.68@@"
+"@@    $123.45@@   -$567.89@@ $12,345.68@@"
 @end smallexample
 
 Two things stand out.  First, all fields have the same width (eleven
@@ -1119,7 +1119,7 @@ This rather complex format string produces the following output:
 
 The most noticeable change is the use of the alternative style to
 represent negative numbers.  In financial circles it is often done using
-braces and this is what the @samp{(} flag selected.  The fill character
+parentheses and this is what the @samp{(} flag selected.  The fill character
 is now @samp{0}.  Please note that this @samp{0} character is not
 regarded as a numeric zero and therefore the first and second number are
 not printed using a thousands separator.  Since we use in the format the
diff --git a/sysdeps/generic/bits/select.h b/sysdeps/generic/bits/select.h
index 1025532afe..4513135af9 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 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
diff --git a/time/strptime.c b/time/strptime.c
index 48761075e2..d126b14616 100644
--- a/time/strptime.c
+++ b/time/strptime.c
@@ -142,7 +142,7 @@ extern const struct locale_data _nl_C_LC_TIME;
 # define month_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (MON_1)].string)
 # define ab_month_name (&_nl_C_LC_TIME.values[_NL_ITEM_INDEX (ABMON_1)].string)
 # define HERE_D_T_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (D_T_FMT)].string)
-# define HERE_D_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (D_T_FMT)].string)
+# define HERE_D_FMT (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (D_FMT)].string)
 # define HERE_AM_STR (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (AM_STR)].string)
 # define HERE_PM_STR (_nl_C_LC_TIME.values[_NL_ITEM_INDEX (PM_STR)].string)
 # define HERE_T_FMT_AMPM \