diff options
author | Jim Meyering <jim@meyering.net> | 2001-07-15 14:30:55 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2001-07-15 14:30:55 +0000 |
commit | 876fe14529495cfc127b683f7c3ce4a09a72f4f8 (patch) | |
tree | 6ba89d1258883f1d1ddd024caaa24183160bf913 /m4 | |
parent | 9a8b88f974eca2e13f6ee055179750516fb9aa60 (diff) | |
download | coreutils-876fe14529495cfc127b683f7c3ce4a09a72f4f8.tar.xz |
*** empty log message ***
Diffstat (limited to 'm4')
-rw-r--r-- | m4/ChangeLog | 10 | ||||
-rw-r--r-- | m4/gettimeofday.m4 | 65 |
2 files changed, 75 insertions, 0 deletions
diff --git a/m4/ChangeLog b/m4/ChangeLog index e941b604d..777422094 100644 --- a/m4/ChangeLog +++ b/m4/ChangeLog @@ -1,3 +1,13 @@ +2001-07-15 Jim Meyering <meyering@lucent.com> + + * gettimeofday.m4: New file. + +2001-07-04 Jim Meyering <meyering@lucent.com> + + * Makefile.am.in (glibc-io.struct): New target. Rework the code + that generates jm-glibc-io.m4 so that it doesn't trigger any make + distcheck failure. + 2001-07-02 Jim Meyering <meyering@lucent.com> The following changes were prompted by suggestions from Bruno Haible. diff --git a/m4/gettimeofday.m4 b/m4/gettimeofday.m4 new file mode 100644 index 000000000..2d893b7da --- /dev/null +++ b/m4/gettimeofday.m4 @@ -0,0 +1,65 @@ +#serial 1 + +dnl From Jim Meyering. +dnl +dnl See if gettimeofday clobbers the static buffer that localtime uses +dnl for it's return value. The gettimeofday function from Mac OS X 10.0.4, +dnl i.e. Darwin 1.3.7 has this problem. +dnl +dnl If it does, then arrange to use gettimeofday only via the wrapper +dnl function that works around the problem. + +AC_DEFUN(AC_FUNC_GETTIMEOFDAY_CLOBBER, +[ + AC_REQUIRE([AC_HEADER_TIME]) + AC_CHECK_HEADERS(string.h stdlib.h) + AC_CACHE_CHECK([whether gettimeofday clobbers localtime buffer], + jm_cv_func_gettimeofday_clobber, + [AC_TRY_RUN([ +#include <stdio.h> +#if HAVE_STRING_H +# include <string.h> +#endif + +#if TIME_WITH_SYS_TIME +# include <sys/time.h> +# include <time.h> +#else +# if HAVE_SYS_TIME_H +# include <sys/time.h> +# else +# include <time.h> +# endif +#endif + +#if HAVE_STDLIB_H +# include <stdlib.h> +#endif + +int +main () +{ + time_t t = 0; + struct tm *lt; + struct tm saved_lt; + struct timeval tv; + lt = localtime (&t); + saved_lt = *lt; + gettimeofday (&tv, NULL); + if (memcmp (lt, &saved_lt, sizeof (struct tm)) != 0) + exit (1); + + exit (0); +} + ], + jm_cv_func_gettimeofday_clobber=yes, + jm_cv_func_gettimeofday_clobber=no, + dnl When crosscompiling, assume it is broken. + jm_cv_func_gettimeofday_clobber=yes) + ]) + if test $jm_cv_func_gettimeofday_clobber = yes; then + AC_LIBOBJ(gettimeofday) + AC_DEFINE_UNQUOTED(gettimeofday, rpl_gettimeofday, + [Define to rpl_gettimeofday if the replacement function should be used.]) + fi +]) |