X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fmktime.m4;h=01167a1ec0ec0ffef9c4cd8deb61455bcf364ab4;hb=c604bb86746f7f16471a598df94845e42d0e1b5f;hp=7836b76acb15809c8da863de37a491d4f9f3ee35;hpb=3682048da43f32682c4846de46b955638fcc5a52;p=gnulib.git diff --git a/m4/mktime.m4 b/m4/mktime.m4 index 7836b76ac..01167a1ec 100644 --- a/m4/mktime.m4 +++ b/m4/mktime.m4 @@ -1,4 +1,4 @@ -# serial 18 +# serial 20 dnl Copyright (C) 2002-2003, 2005-2007, 2009-2011 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation @@ -175,12 +175,13 @@ main () time_t_max = (! time_t_signed ? (time_t) -1 - : ~ (~ (time_t) 0 << (sizeof (time_t) * CHAR_BIT - 1))); + : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1) + * 2 + 1)); time_t_min = (! time_t_signed ? (time_t) 0 : time_t_signed_magnitude ? ~ (time_t) 0 - : ~ (time_t) 0 << (sizeof (time_t) * CHAR_BIT - 1)); + : ~ time_t_max); delta = time_t_max / 997; /* a suitable prime number */ for (i = 0; i < N_STRINGS; i++) @@ -233,6 +234,23 @@ AC_DEFUN([gl_FUNC_MKTIME], fi ]) +AC_DEFUN([gl_FUNC_MKTIME_INTERNAL], [ + AC_REQUIRE([gl_FUNC_MKTIME]) + if test $REPLACE_MKTIME = 0; then + dnl BeOS has __mktime_internal in libc, but other platforms don't. + AC_CHECK_FUNC([__mktime_internal], + [AC_DEFINE([mktime_internal], [__mktime_internal], + [Define to the real name of the mktime_internal function.]) + ], + [dnl mktime works but it doesn't export __mktime_internal, + dnl so we need to substitute our own mktime implementation. + REPLACE_MKTIME=1 + AC_LIBOBJ([mktime]) + gl_PREREQ_MKTIME + ]) + fi +]) + # Prerequisites of lib/mktime.c. AC_DEFUN([gl_PREREQ_MKTIME], [