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

Improve detection of whether tzset is broken.

parent a425dbc7
#! /bin/sh #! /bin/sh
# From configure.in Revision: 1.430 . # From configure.in Revision: 1.431 .
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.57 for python 2.4. # Generated by GNU Autoconf 2.57 for python 2.4.
# #
...@@ -18254,20 +18254,39 @@ cat >>conftest.$ac_ext <<_ACEOF ...@@ -18254,20 +18254,39 @@ cat >>conftest.$ac_ext <<_ACEOF
#include <stdlib.h> #include <stdlib.h>
#include <time.h> #include <time.h>
#include <string.h>
int main() int main()
{ {
int gmt_hour; /* Note that we need to ensure that not only does tzset(3)
int eastern_hour; do 'something' with localtime, but it works as documented
time_t now; in the library reference and as expected by the test suite.
now = time((time_t*)NULL);
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"); putenv("TZ=UTC+0");
tzset(); 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"); putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
tzset(); tzset();
eastern_hour = localtime(&now)->tm_hour; if (localtime(&groundhogday)->tm_hour != 19)
if (eastern_hour == gmt_hour)
exit(1); 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); exit(0);
} }
......
...@@ -2810,20 +2810,39 @@ AC_CACHE_VAL(ac_cv_working_tzset, [ ...@@ -2810,20 +2810,39 @@ AC_CACHE_VAL(ac_cv_working_tzset, [
AC_TRY_RUN([ AC_TRY_RUN([
#include <stdlib.h> #include <stdlib.h>
#include <time.h> #include <time.h>
#include <string.h>
int main() int main()
{ {
int gmt_hour; /* Note that we need to ensure that not only does tzset(3)
int eastern_hour; do 'something' with localtime, but it works as documented
time_t now; in the library reference and as expected by the test suite.
now = time((time_t*)NULL);
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"); putenv("TZ=UTC+0");
tzset(); 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"); putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
tzset(); tzset();
eastern_hour = localtime(&now)->tm_hour; if (localtime(&groundhogday)->tm_hour != 19)
if (eastern_hour == gmt_hour)
exit(1); 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); exit(0);
} }
], ],
......
...@@ -600,6 +600,9 @@ ...@@ -600,6 +600,9 @@
`tzname'. */ `tzname'. */
#undef HAVE_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. */ /* Define this if you have the type uintptr_t. */
#undef HAVE_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