Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 22 Sep 2003 19:51:38 +0000 (19:51 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 22 Sep 2003 19:51:38 +0000 (19:51 +0000)
2003-09-22  Ulrich Drepper  <drepper@redhat.com>

* timezone/zdump.c: Update from tzcode2003c.
* timezone/zic.c: Likewise.
* timezone/leapseconds: Update from tzdata2003c.

ChangeLog
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
timezone/leapseconds
timezone/zdump.c
timezone/zic.c

index 753cd4162f28e60dc179ff90c255dc40f1e7709a..31bc91cdd501b79ad7df6f20cdd0638c64415edc 100644 (file)
--- 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
index cda72ea2bdd228c0c4a00a880627cc4b8444986a..e74dec5c3677d2779f9307023517167e6965fa6d 100644 (file)
@@ -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.
 
index c73970d45f2937e8f973bdb38b25da44788e5ba1..c5ec154af27ac75462070aebc42378e1e93b4ec3 100644 (file)
        .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
 
index c5306a68ae6635cbdab9224e187dd443b11260f1..0e7d8c84541f56cbe271d19a99218444bbee5f7b 100644 (file)
@@ -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
index cc27d758fbd2140137f8695b5de827ad9b616728..9faeaf21b2800da7de4576ce6c577eb81b6a646e 100644 (file)
@@ -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);
        }
index 26d004129621b3b20431a2aed163adbbf6890bd1..b164b36738b3559300b64472c3a629501baf4a9c 100644 (file)
@@ -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"));