Commit 1836781f authored by Brett Cannon's avatar Brett Cannon

Improve detection of whether tzset is broken.

parent a425dbc7
#! /bin/sh
# From configure.in Revision: 1.430 .
# From configure.in Revision: 1.431 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.57 for python 2.4.
#
......@@ -18254,20 +18254,39 @@ cat >>conftest.$ac_ext <<_ACEOF
#include <stdlib.h>
#include <time.h>
#include <string.h>
int main()
{
int gmt_hour;
int eastern_hour;
time_t now;
now = time((time_t*)NULL);
/* Note that we need to ensure that not only does tzset(3)
do 'something' with localtime, but it works as documented
in the library reference and as expected by the test suite.
Red Hat 6.2 doesn't understand the southern hemisphere
after New Year's Day; it thinks swaps on that day.
*/
time_t groundhogday = 1044144000; /* GMT-based; well, it's a colony */
time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
putenv("TZ=UTC+0");
tzset();
gmt_hour = localtime(&now)->tm_hour;
if (localtime(&groundhogday)->tm_hour != 0)
exit(1);
putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
tzset();
eastern_hour = localtime(&now)->tm_hour;
if (eastern_hour == gmt_hour)
if (localtime(&groundhogday)->tm_hour != 19)
exit(1);
putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
tzset();
if (localtime(&groundhogday)->tm_hour != 11)
exit(1);
if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
exit(1);
if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
exit(1);
exit(0);
}
......
......@@ -2810,20 +2810,39 @@ AC_CACHE_VAL(ac_cv_working_tzset, [
AC_TRY_RUN([
#include <stdlib.h>
#include <time.h>
#include <string.h>
int main()
{
int gmt_hour;
int eastern_hour;
time_t now;
now = time((time_t*)NULL);
/* Note that we need to ensure that not only does tzset(3)
do 'something' with localtime, but it works as documented
in the library reference and as expected by the test suite.
Red Hat 6.2 doesn't understand the southern hemisphere
after New Year's Day; it thinks swaps on that day.
*/
time_t groundhogday = 1044144000; /* GMT-based; well, it's a colony */
time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
putenv("TZ=UTC+0");
tzset();
gmt_hour = localtime(&now)->tm_hour;
if (localtime(&groundhogday)->tm_hour != 0)
exit(1);
putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
tzset();
eastern_hour = localtime(&now)->tm_hour;
if (eastern_hour == gmt_hour)
if (localtime(&groundhogday)->tm_hour != 19)
exit(1);
putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
tzset();
if (localtime(&groundhogday)->tm_hour != 11)
exit(1);
if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
exit(1);
if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
exit(1);
exit(0);
}
],
......
......@@ -600,6 +600,9 @@
`tzname'. */
#undef HAVE_TZNAME
/* Define this if you have tcl and TCL_UTF_MAX==6 */
#undef HAVE_UCS4_TCL
/* Define this if you have the type uintptr_t. */
#undef HAVE_UINTPTR_T
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment