aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-09-22 19:51:38 +0000
committerUlrich Drepper <drepper@redhat.com>2003-09-22 19:51:38 +0000
commitc0df57e1ce270466be342d9998f72633764b22dc (patch)
treeca78fbaf7ff455cda82f9764da9cbba54e258479
parent9d08fbbb29a4a0866b4ff642893c7dd97575b56e (diff)
downloadglibc-c0df57e1ce270466be342d9998f72633764b22dc.zip
glibc-c0df57e1ce270466be342d9998f72633764b22dc.tar.gz
glibc-c0df57e1ce270466be342d9998f72633764b22dc.tar.bz2
Update.
2003-09-22 Ulrich Drepper <drepper@redhat.com> * timezone/zdump.c: Update from tzcode2003c. * timezone/zic.c: Likewise. * timezone/leapseconds: Update from tzdata2003c.
-rw-r--r--ChangeLog6
-rw-r--r--nptl/ChangeLog4
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S16
-rw-r--r--timezone/leapseconds33
-rw-r--r--timezone/zdump.c13
-rw-r--r--timezone/zic.c30
6 files changed, 58 insertions, 44 deletions
diff --git a/ChangeLog b/ChangeLog
index 753cd41..31bc91c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-09-22 Ulrich Drepper <drepper@redhat.com>
+
+ * timezone/zdump.c: Update from tzcode2003c.
+ * timezone/zic.c: Likewise.
+ * timezone/leapseconds: Update from tzdata2003c.
+
2003-09-19 Ulrich Drepper <drepper@redhat.com>
* elf/Makefile ($(objpfx)librtld.os): Create link map also for
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index cda72ea..e74dec5 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,5 +1,9 @@
2003-09-22 Ulrich Drepper <drepper@redhat.com>
+ * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
+ (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
+ operation if possible.
+
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
like jumping over the lock prefix.
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
index c73970d..c5ec154 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
@@ -41,16 +41,18 @@
.hidden __lll_mutex_lock_wait
.align 16
__lll_mutex_lock_wait:
- pushl %esi
- pushl %ebx
pushl %edx
+ pushl %ebx
+ pushl %esi
+ movl $2, %edx
movl %ecx, %ebx
xorl %esi, %esi /* No timeout. */
xorl %ecx, %ecx /* movl $FUTEX_WAIT, %ecx */
- movl $2, %edx
-1:
+1: cmpl %edx, %eax /* NB: %edx == 2 */
+ je 3f
+
movl $1, %eax
LOCK
cmpxchgl %edx, (%ebx)
@@ -58,7 +60,7 @@ __lll_mutex_lock_wait:
testl %eax, %eax
je 2f
- movl $SYS_futex, %eax
+3: movl $SYS_futex, %eax
ENTER_KERNEL
xorl %eax, %eax
@@ -67,9 +69,9 @@ __lll_mutex_lock_wait:
jnz,pn 1b
- popl %edx
- popl %ebx
popl %esi
+ popl %ebx
+ popl %edx
ret
.size __lll_mutex_lock_wait,.-__lll_mutex_lock_wait
diff --git a/timezone/leapseconds b/timezone/leapseconds
index c5306a6..0e7d8c8 100644
--- a/timezone/leapseconds
+++ b/timezone/leapseconds
@@ -1,4 +1,4 @@
-# @(#)leapseconds 7.15
+# @(#)leapseconds 7.16
# Allowance for leapseconds added to each timezone file.
@@ -44,8 +44,8 @@ Leap 1995 Dec 31 23:59:60 + S
Leap 1997 Jun 30 23:59:60 + S
Leap 1998 Dec 31 23:59:60 + S
-# INTERNATIONAL EARTH ROTATION SERVICE (IERS)
-# SERVICE INTERNATIONAL DE LA ROTATION TERRESTRE
+# INTERNATIONAL EARTH ROTATION SERVICE (IERS)
+# SERVICE INTERNATIONAL DE LA ROTATION TERRESTRE
#
# SERVICE DE LA ROTATION TERRESTRE
# OBSERVATOIRE DE PARIS
@@ -54,27 +54,26 @@ Leap 1998 Dec 31 23:59:60 + S
# FAX : 33 (0) 1 40 51 22 91
# Internet : iers@obspm.fr
#
-# Paris, 14 January 2002
+# Paris, 1 July 2003
#
-# Bulletin C 23
+# Bulletin C 26
#
-# To authorities responsible
-# for the measurement and
-# distribution of time
+# To authorities responsible
+# for the measurement and
+# distribution of time
#
-# INFORMATION ON UTC - TAI
+# INFORMATION ON UTC - TAI
#
-# NO positive leap second will be introduced at the end of June 2002.
-# The difference between UTC and the International Atomic Time TAI is :
+# NO positive leap second will be introduced at the end of December 2003.
+# The difference between UTC and the International Atomic Time TAI is:
#
-# from 1999 January 1, 0h UTC, until further notice : UTC-TAI = -32 s
+# from 1999 January 1, 0h UTC, until further notice: UTC-TAI = -32 s
#
# Leap seconds can be introduced in UTC at the end of the months of December
-# or June, depending on the evolution of UT1-TAI. Bulletin C is mailed every
+# or June, depending on the evolution of UT1-TAI. Bulletin C is mailed every
# six months, either to announce a time step in UTC, or to confirm that there
# will be no time step at the next possible date.
#
-# Daniel GAMBIS
-# Director
-# Earth Orientation Center of IERS
-# Observatoire de Paris, France
+# Daniel GAMBIS
+# Director
+# Earth Orientation Center of IERS
diff --git a/timezone/zdump.c b/timezone/zdump.c
index cc27d75..9faeaf2 100644
--- a/timezone/zdump.c
+++ b/timezone/zdump.c
@@ -1,8 +1,4 @@
-#ifndef lint
-#ifndef NOID
-static char elsieid[] = "@(#)zdump.c 7.29";
-#endif /* !defined NOID */
-#endif /* !defined lint */
+static char elsieid[] = "@(#)zdump.c 7.31";
/*
** This code has been made independent of the rest of the time
@@ -163,6 +159,11 @@ char * argv[];
(void) textdomain(TZ_DOMAIN);
#endif /* HAVE_GETTEXT - 0 */
progname = argv[0];
+ for (i = 1; i < argc; ++i)
+ if (strcmp(argv[i], "--version") == 0) {
+ (void) printf("%s\n", elsieid);
+ (void) exit(EXIT_SUCCESS);
+ }
vflag = 0;
cutoff = NULL;
while ((c = getopt(argc, argv, "c:v")) == 'c' || c == 'v')
@@ -172,7 +173,7 @@ char * argv[];
if ((c != EOF && c != -1) ||
(optind == argc - 1 && strcmp(argv[optind], "=") == 0)) {
(void) fprintf(stderr,
-_("%s: usage is %s [ -v ] [ -c cutoff ] zonename ...\n"),
+_("%s: usage is %s [ --version ] [ -v ] [ -c cutoff ] zonename ...\n"),
argv[0], argv[0]);
(void) exit(EXIT_FAILURE);
}
diff --git a/timezone/zic.c b/timezone/zic.c
index 26d0041..b164b36 100644
--- a/timezone/zic.c
+++ b/timezone/zic.c
@@ -1,8 +1,4 @@
-#ifndef lint
-#ifndef NOID
-static char elsieid[] = "@(#)zic.c 7.107";
-#endif /* !defined NOID */
-#endif /* !defined lint */
+static char elsieid[] = "@(#)zic.c 7.113";
#include "private.h"
#include "locale.h"
@@ -446,7 +442,7 @@ const char * const string;
static void
usage P((void))
{
- (void) fprintf(stderr, _("%s: usage is %s [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"),
+ (void) fprintf(stderr, _("%s: usage is %s [ --version ] [ -s ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"),
progname, progname);
(void) exit(EXIT_FAILURE);
}
@@ -479,6 +475,11 @@ char * argv[];
(void) textdomain(TZ_DOMAIN);
#endif /* HAVE_GETTEXT - 0 */
progname = argv[0];
+ for (i = 1; i < argc; ++i)
+ if (strcmp(argv[i], "--version") == 0) {
+ (void) printf("%s\n", elsieid);
+ (void) exit(EXIT_SUCCESS);
+ }
while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1)
switch (c) {
default:
@@ -1165,14 +1166,15 @@ const int nfields;
error(_("time before zero"));
return;
}
- t = (time_t) dayoff * SECSPERDAY;
- /*
- ** Cheap overflow check.
- */
- if (t / SECSPERDAY != dayoff) {
- error(_("time overflow"));
+ if (dayoff < min_time / SECSPERDAY) {
+ error(_("time too small"));
return;
}
+ if (dayoff > max_time / SECSPERDAY) {
+ error(_("time too large"));
+ return;
+ }
+ t = (time_t) dayoff * SECSPERDAY;
tod = gethms(fields[LP_TIME], _("invalid time of day"), FALSE);
cp = fields[LP_CORR];
{
@@ -1325,9 +1327,9 @@ const char * const timep;
return;
} else if (noise) {
if (rp->r_loyear < min_year_representable)
- warning(_("starting year too low to be represented"));
+ warning(_("ending year too low to be represented"));
else if (rp->r_loyear > max_year_representable)
- warning(_("starting year too high to be represented"));
+ warning(_("ending year too high to be represented"));
}
if (rp->r_loyear > rp->r_hiyear) {
error(_("starting year greater than ending year"));