From: Jim Meyering Date: Sat, 7 Jun 2003 16:30:02 +0000 (+0000) Subject: New file. Used by strftime.m4. X-Git-Tag: v5.0.1~302 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a9dbd3e338322a22045500bd4885b8247e3bfbe;p=thirdparty%2Fcoreutils.git New file. Used by strftime.m4. --- diff --git a/m4/tzset.m4 b/m4/tzset.m4 new file mode 100644 index 0000000000..dbe38c9dbe --- /dev/null +++ b/m4/tzset.m4 @@ -0,0 +1,58 @@ +#serial 1 +# See if we have a working tzset function. +# If so, arrange to compile the wrapper function. +# For at least Solaris 2.5.1 and 2.6, this is necessary +# because tzset can clobber the contents of the buffer +# used by localtime. + +# Written by Paul Eggert and Jim Meyering. + +AC_DEFUN([gl_FUNC_TZSET], +[ + AC_REQUIRE([AC_HEADER_TIME]) + AC_CACHE_CHECK([whether tzset works], + gl_cv_func_tzset_vs_localtime, + [ + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif +#include + +int +main () +{ + time_t t1 = 853958121; + struct tm *p, s; + putenv ("TZ=GMT0"); + p = localtime (&t1); + s = *p; + putenv ("TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"); + tzset (); + exit (p->tm_year != s.tm_year + || p->tm_mon != s.tm_mon + || p->tm_mday != s.tm_mday + || p->tm_hour != s.tm_hour + || p->tm_min != s.tm_min + || p->tm_sec != s.tm_sec); +} + ]])], + [gl_cv_func_tzset_vs_localtime=yes], + [gl_cv_func_tzset_vs_localtime=no], + [gl_cv_func_tzset_vs_localtime=no])]) + + AC_DEFINE(HAVE_RUN_TZSET_TEST, 1, + [Define to 1 if you have run the test for working tzset.]) + if test $gl_cv_func_tzset_vs_localtime = yes; then + AC_LIBOBJ(tzset) + AC_DEFINE(tzset, rpl_tzset, + [Define to rpl_tzset if the wrapper function should be used.]) + fi +])