aboutsummaryrefslogtreecommitdiff
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 5455bd2..e6a5ccc 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 1025532..4513135 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 6208710..b4b7f4b 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 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
diff --git a/time/strptime.c b/time/strptime.c
index 4876107..d126b14 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 \