]> sourceware.org Git - automake.git/commitdiff
* m4/mktime.m4: Detect glibc mktime bug. From Jim Meyering.
authorTom Tromey <tromey@redhat.com>
Fri, 16 Oct 1998 10:43:43 +0000 (10:43 +0000)
committerTom Tromey <tromey@redhat.com>
Fri, 16 Oct 1998 10:43:43 +0000 (10:43 +0000)
ChangeLog
m4/mktime.m4

index 5b8268d165d18fa1f4118080eb022fe76348075f..52dce0370de11b58ca9b891c8e0765fda0d5842b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 1998-10-16  Tom Tromey  <tromey@cygnus.com>
 
+       * m4/mktime.m4: Detect glibc mktime bug.  From Jim Meyering.
+
        * Makefile.am (SUBDIRS): Added `.' again.
 
        * Makefile.am (EXTRA_DIST): Removed automake.spec.in.  From
index ad937b74fcd2fa4241291c445a962a9e6a226d55..8e54aa8e79961e7891bbc39c1ee11518bd05337b 100644 (file)
@@ -38,11 +38,36 @@ static time_t time_t_max;
 
 /* Values we'll use to set the TZ environment variable.  */
 static const char *const tz_strings[] = {
-  (const char *) 0, "GMT0", "JST-9",
-  "EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
+  (const char *) 0, "TZ=GMT0", "TZ=JST-9",
+  "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
 };
 #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
 
+/* Fail if mktime fails to convert a date in the spring-forward gap.
+   Based on a problem report from Andreas Jaeger.  */
+static void
+spring_forward_gap ()
+{
+  /* glibc (up to about 1998-10-07) failed this test) */
+  struct tm tm;
+
+  /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+     instead of "TZ=America/Vancouver" in order to detect the bug even
+     on systems that don't support the Olson extension, or don't have the
+     full zoneinfo tables installed.  */
+  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+
+  tm.tm_year = 98;
+  tm.tm_mon = 3;
+  tm.tm_mday = 5;
+  tm.tm_hour = 2;
+  tm.tm_min = 0;
+  tm.tm_sec = 0;
+  tm.tm_isdst = -1;
+  if (mktime (&tm) == (time_t)-1)
+    exit (1);
+}
+
 static void
 mktime_test (now)
      time_t now;
@@ -127,6 +152,7 @@ main ()
       bigtime_test (j - 1);
     }
   irix_6_4_bug ();
+  spring_forward_gap ();
   exit (0);
 }
              >>,
This page took 0.034591 seconds and 5 git commands to generate.