annotate m4/gettimeofday.m4 @ 5868:d094f71e51d4

(AC_FUNC_GETTIMEOFDAY_CLOBBER): Don't define GETTIMEOFDAY_CLOBBERS_LOCALTIME_BUFFER, since nobody uses it.
author Paul Eggert <eggert@cs.ucla.edu>
date Wed, 18 May 2005 19:47:30 +0000
parents 87c42e194f4a
children 99d5ec1dbe15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5868
d094f71e51d4 (AC_FUNC_GETTIMEOFDAY_CLOBBER): Don't define
Paul Eggert <eggert@cs.ucla.edu>
parents: 5611
diff changeset
1 #serial 7
5611
87c42e194f4a Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4694
diff changeset
2
5868
d094f71e51d4 (AC_FUNC_GETTIMEOFDAY_CLOBBER): Don't define
Paul Eggert <eggert@cs.ucla.edu>
parents: 5611
diff changeset
3 # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
5611
87c42e194f4a Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4694
diff changeset
4 # This file is free software; the Free Software Foundation
87c42e194f4a Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4694
diff changeset
5 # gives unlimited permission to copy and/or distribute it,
87c42e194f4a Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4694
diff changeset
6 # with or without modifications, as long as this notice is preserved.
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
7
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
8 dnl From Jim Meyering.
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
9 dnl
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
10 dnl See if gettimeofday clobbers the static buffer that localtime uses
5611
87c42e194f4a Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4694
diff changeset
11 dnl for its return value. The gettimeofday function from Mac OS X 10.0.4
87c42e194f4a Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4694
diff changeset
12 dnl (i.e., Darwin 1.3.7) has this problem.
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
13 dnl
3856
16a28d7390aa (AC_FUNC_GETTIMEOFDAY_CLOBBER): Also replace localtime.
Jim Meyering <jim@meyering.net>
parents: 3486
diff changeset
14 dnl If it does, then arrange to use gettimeofday and localtime only via
16a28d7390aa (AC_FUNC_GETTIMEOFDAY_CLOBBER): Also replace localtime.
Jim Meyering <jim@meyering.net>
parents: 3486
diff changeset
15 dnl the wrapper functions that work around the problem.
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
16
3332
cbebc0dc4704 yes/no were reversed
Jim Meyering <jim@meyering.net>
parents: 3295
diff changeset
17 AC_DEFUN([AC_FUNC_GETTIMEOFDAY_CLOBBER],
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
18 [
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
19 AC_REQUIRE([AC_HEADER_TIME])
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
20 AC_CACHE_CHECK([whether gettimeofday clobbers localtime buffer],
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
21 jm_cv_func_gettimeofday_clobber,
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
22 [AC_TRY_RUN([
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
23 #include <stdio.h>
4694
f411b1e0c5bd Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4540
diff changeset
24 #include <string.h>
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
25
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
26 #if TIME_WITH_SYS_TIME
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
27 # include <sys/time.h>
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
28 # include <time.h>
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
29 #else
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
30 # if HAVE_SYS_TIME_H
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
31 # include <sys/time.h>
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
32 # else
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
33 # include <time.h>
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
34 # endif
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
35 #endif
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
36
4694
f411b1e0c5bd Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4540
diff changeset
37 #include <stdlib.h>
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
38
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
39 int
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
40 main ()
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
41 {
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
42 time_t t = 0;
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
43 struct tm *lt;
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
44 struct tm saved_lt;
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
45 struct timeval tv;
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
46 lt = localtime (&t);
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
47 saved_lt = *lt;
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
48 gettimeofday (&tv, NULL);
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
49 if (memcmp (lt, &saved_lt, sizeof (struct tm)) != 0)
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
50 exit (1);
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
51
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
52 exit (0);
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
53 }
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
54 ],
3332
cbebc0dc4704 yes/no were reversed
Jim Meyering <jim@meyering.net>
parents: 3295
diff changeset
55 jm_cv_func_gettimeofday_clobber=no,
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
56 jm_cv_func_gettimeofday_clobber=yes,
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
57 dnl When crosscompiling, assume it is broken.
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
58 jm_cv_func_gettimeofday_clobber=yes)
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
59 ])
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
60 if test $jm_cv_func_gettimeofday_clobber = yes; then
4540
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
61 gl_GETTIMEOFDAY_REPLACE_LOCALTIME
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
62
3486
c5e203e2e4d4 Use AC_DEFINE rather than AC_DEFINE_UNQUOTED, whenever the right hand side need not be expanded by the shell.
Jim Meyering <jim@meyering.net>
parents: 3333
diff changeset
63 AC_DEFINE(gettimeofday, rpl_gettimeofday,
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
64 [Define to rpl_gettimeofday if the replacement function should be used.])
4108
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3856
diff changeset
65 gl_PREREQ_GETTIMEOFDAY
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
66 fi
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
67 ])
4108
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3856
diff changeset
68
4540
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
69 AC_DEFUN([gl_GETTIMEOFDAY_REPLACE_LOCALTIME], [
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
70 AC_LIBOBJ(gettimeofday)
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
71 AC_DEFINE(gmtime, rpl_gmtime,
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
72 [Define to rpl_gmtime if the replacement function should be used.])
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
73 AC_DEFINE(localtime, rpl_localtime,
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
74 [Define to rpl_localtime if the replacement function should be used.])
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
75 ])
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
76
4108
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3856
diff changeset
77 # Prerequisites of lib/gettimeofday.c.
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3856
diff changeset
78 AC_DEFUN([gl_PREREQ_GETTIMEOFDAY], [
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3856
diff changeset
79 AC_REQUIRE([AC_HEADER_TIME])
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3856
diff changeset
80 ])