annotate m4/gettimeofday.m4 @ 7901:1b1117096a35

Undo the last change; it caused a compilation error when cross-compiling to Cygwin.
author Bruno Haible <bruno@clisp.org>
date Fri, 19 Jan 2007 01:50:55 +0000
parents 9a1885fa7afb
children 5fa14d8c0b45
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7898
9a1885fa7afb * m4/gettimeofday.m4 (gl_GETTIMEOFDAY_REPLACE_LOCALTIME): Also
Eric Blake <ebb9@byu.net>
parents: 7897
diff changeset
1 #serial 10
5611
87c42e194f4a Use an all-permissive copyright notice, recommended by RMS.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4694
diff changeset
2
7891
83934c71372e Various fixes to Martin Lambers' gettimeofday patch.
Bruno Haible <bruno@clisp.org>
parents: 7890
diff changeset
3 # Copyright (C) 2001, 2002, 2003, 2005, 2007 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
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
8 dnl From Jim Meyering.
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
9
7890
99d5ec1dbe15 Patch from Martin Lambers <marlam@marlam.de>, from 2005-10-08
Bruno Haible <bruno@clisp.org>
parents: 5868
diff changeset
10 AC_DEFUN([gl_FUNC_GETTIMEOFDAY],
99d5ec1dbe15 Patch from Martin Lambers <marlam@marlam.de>, from 2005-10-08
Bruno Haible <bruno@clisp.org>
parents: 5868
diff changeset
11 [
7891
83934c71372e Various fixes to Martin Lambers' gettimeofday patch.
Bruno Haible <bruno@clisp.org>
parents: 7890
diff changeset
12 AC_REQUIRE([AC_C_RESTRICT])
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
13 AC_REQUIRE([gl_HEADER_SYS_TIME_H])
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
14 AC_CHECK_FUNCS_ONCE([gettimeofday])
7890
99d5ec1dbe15 Patch from Martin Lambers <marlam@marlam.de>, from 2005-10-08
Bruno Haible <bruno@clisp.org>
parents: 5868
diff changeset
15
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
16 AC_CACHE_CHECK([for gettimeofday with POSIX signature],
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
17 [gl_cv_func_gettimeofday_posix_signature],
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
18 [AC_COMPILE_IFELSE(
7891
83934c71372e Various fixes to Martin Lambers' gettimeofday patch.
Bruno Haible <bruno@clisp.org>
parents: 7890
diff changeset
19 [AC_LANG_PROGRAM(
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
20 [[#include <sys/time.h>
7891
83934c71372e Various fixes to Martin Lambers' gettimeofday patch.
Bruno Haible <bruno@clisp.org>
parents: 7890
diff changeset
21 struct timeval c;
83934c71372e Various fixes to Martin Lambers' gettimeofday patch.
Bruno Haible <bruno@clisp.org>
parents: 7890
diff changeset
22 ]],
83934c71372e Various fixes to Martin Lambers' gettimeofday patch.
Bruno Haible <bruno@clisp.org>
parents: 7890
diff changeset
23 [[
83934c71372e Various fixes to Martin Lambers' gettimeofday patch.
Bruno Haible <bruno@clisp.org>
parents: 7890
diff changeset
24 int (*f) (struct timeval *restrict, void *restrict) = gettimeofday;
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
25 int x = f (&c, 0);
7891
83934c71372e Various fixes to Martin Lambers' gettimeofday patch.
Bruno Haible <bruno@clisp.org>
parents: 7890
diff changeset
26 return !(x | c.tv_sec | c.tv_usec);
83934c71372e Various fixes to Martin Lambers' gettimeofday patch.
Bruno Haible <bruno@clisp.org>
parents: 7890
diff changeset
27 ]])],
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
28 [gl_cv_func_gettimeofday_posix_signature=yes],
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
29 [gl_cv_func_gettimeofday_posix_signature=no])])
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
30
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
31 gl_FUNC_GETTIMEOFDAY_CLOBBER
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
32
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
33 if test $gl_cv_func_gettimeofday_posix_signature != yes; then
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
34 HAVE_GETTIMEOFDAY_POSIX_SIGNATURE=0
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
35 if test $gl_cv_func_gettimeofday_clobber != yes; then
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
36 AC_LIBOBJ(gettimeofday)
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
37 gl_PREREQ_GETTIMEOFDAY
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
38 fi
7890
99d5ec1dbe15 Patch from Martin Lambers <marlam@marlam.de>, from 2005-10-08
Bruno Haible <bruno@clisp.org>
parents: 5868
diff changeset
39 fi
99d5ec1dbe15 Patch from Martin Lambers <marlam@marlam.de>, from 2005-10-08
Bruno Haible <bruno@clisp.org>
parents: 5868
diff changeset
40 ])
99d5ec1dbe15 Patch from Martin Lambers <marlam@marlam.de>, from 2005-10-08
Bruno Haible <bruno@clisp.org>
parents: 5868
diff changeset
41
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
42
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
43 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
44 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
45 dnl (i.e., Darwin 1.3.7) has this problem.
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
46 dnl
3856
16a28d7390aa (AC_FUNC_GETTIMEOFDAY_CLOBBER): Also replace localtime.
Jim Meyering <jim@meyering.net>
parents: 3486
diff changeset
47 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
48 dnl the wrapper functions that work around the problem.
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
49
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
50 AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER],
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
51 [
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
52 AC_REQUIRE([gl_HEADER_SYS_TIME_H])
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
53
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
54 AC_CACHE_CHECK([whether gettimeofday clobbers localtime buffer],
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
55 [gl_cv_func_gettimeofday_clobber],
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
56 [AC_RUN_IFELSE(
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
57 [AC_LANG_PROGRAM(
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
58 [[#include <string.h>
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
59 #include <sys/time.h>
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
60 #include <time.h>
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
61 #include <stdlib.h>
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
62 ]],
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
63 [[
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
64 time_t t = 0;
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
65 struct tm *lt;
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
66 struct tm saved_lt;
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
67 struct timeval tv;
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
68 lt = localtime (&t);
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
69 saved_lt = *lt;
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
70 gettimeofday (&tv, NULL);
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
71 return memcmp (lt, &saved_lt, sizeof (struct tm)) != 0;
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
72 ]])],
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
73 [gl_cv_func_gettimeofday_clobber=no],
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
74 [gl_cv_func_gettimeofday_clobber=yes],
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
75 dnl When crosscompiling, assume it is broken.
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
76 [gl_cv_func_gettimeofday_clobber=yes])])
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
77
7897
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
78 if test $gl_cv_func_gettimeofday_clobber = yes; then
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
79 gl_GETTIMEOFDAY_REPLACE_LOCALTIME
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
80 GETTIMEOFDAY_CLOBBERS_LOCALTIME=1
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
81 AC_DEFINE([GETTIMEOFDAY_CLOBBERS_LOCALTIME], 1,
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
82 [Define if gettimeofday clobbers the localtime buffer.])
b7a83a69ac23 * MODULES.html.sh (Support for systems lacking POSIX:2001): New
Paul Eggert <eggert@cs.ucla.edu>
parents: 7891
diff changeset
83 fi
3295
5425e8255877 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
84 ])
4108
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3856
diff changeset
85
4540
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
86 AC_DEFUN([gl_GETTIMEOFDAY_REPLACE_LOCALTIME], [
7891
83934c71372e Various fixes to Martin Lambers' gettimeofday patch.
Bruno Haible <bruno@clisp.org>
parents: 7890
diff changeset
87 AC_LIBOBJ(gettimeofday)
7890
99d5ec1dbe15 Patch from Martin Lambers <marlam@marlam.de>, from 2005-10-08
Bruno Haible <bruno@clisp.org>
parents: 5868
diff changeset
88 gl_PREREQ_GETTIMEOFDAY
7891
83934c71372e Various fixes to Martin Lambers' gettimeofday patch.
Bruno Haible <bruno@clisp.org>
parents: 7890
diff changeset
89 AC_DEFINE([gmtime], [rpl_gmtime],
4540
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
90 [Define to rpl_gmtime if the replacement function should be used.])
7891
83934c71372e Various fixes to Martin Lambers' gettimeofday patch.
Bruno Haible <bruno@clisp.org>
parents: 7890
diff changeset
91 AC_DEFINE([localtime], [rpl_localtime],
4540
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
92 [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
93 ])
fa39e8b4a0c2 Add wrappers for gmtime and tzset, too.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4108
diff changeset
94
4108
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3856
diff changeset
95 # Prerequisites of lib/gettimeofday.c.
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3856
diff changeset
96 AC_DEFUN([gl_PREREQ_GETTIMEOFDAY], [
7890
99d5ec1dbe15 Patch from Martin Lambers <marlam@marlam.de>, from 2005-10-08
Bruno Haible <bruno@clisp.org>
parents: 5868
diff changeset
97 AC_CHECK_HEADERS([sys/timeb.h])
99d5ec1dbe15 Patch from Martin Lambers <marlam@marlam.de>, from 2005-10-08
Bruno Haible <bruno@clisp.org>
parents: 5868
diff changeset
98 AC_CHECK_FUNCS([_ftime])
4108
c1d472db5c30 An independent .m4 file for each module.
Bruno Haible <bruno@clisp.org>
parents: 3856
diff changeset
99 ])