Mercurial > hg > octave-lojdl > gnulib-hg
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 |
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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 ]) |