815.1.1
by Monty Taylor
Add timegm which is missing on Solaris. |
1 |
dnl Reentrant time functions like localtime_r. |
2 |
||
3 |
dnl Copyright (C) 2003, 2006, 2007, 2008 Free Software Foundation, Inc. |
|
4 |
dnl This file is free software; the Free Software Foundation |
|
5 |
dnl gives unlimited permission to copy and/or distribute it, |
|
6 |
dnl with or without modifications, as long as this notice is preserved. |
|
7 |
||
8 |
dnl Written by Paul Eggert. |
|
9 |
||
10 |
AC_DEFUN([gl_TIME_R], |
|
11 |
[
|
|
12 |
dnl Persuade glibc and Solaris <time.h> to declare localtime_r.
|
|
13 |
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) |
|
14 |
||
15 |
AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) |
|
16 |
AC_REQUIRE([AC_C_RESTRICT]) |
|
17 |
||
18 |
AC_CACHE_CHECK([whether localtime_r is compatible with its POSIX signature], |
|
19 |
[gl_cv_time_r_posix], |
|
20 |
[AC_TRY_COMPILE( |
|
21 |
[#include <time.h>], |
|
22 |
[/* We don't need to append 'restrict's to the argument types, |
|
23 |
even though the POSIX signature has the 'restrict's,
|
|
24 |
since C99 says they can't affect type compatibility. */
|
|
25 |
struct tm * (*ptr) (time_t const *, struct tm *) = localtime_r;
|
|
26 |
if (ptr) return 0;
|
|
27 |
/* Check the return type is a pointer. On HP-UX 10 it is 'int'. */
|
|
28 |
*localtime_r (0, 0);], |
|
29 |
[gl_cv_time_r_posix=yes], |
|
30 |
[gl_cv_time_r_posix=no])]) |
|
31 |
if test $gl_cv_time_r_posix = yes; then |
|
32 |
REPLACE_LOCALTIME_R=0 |
|
33 |
else |
|
34 |
REPLACE_LOCALTIME_R=1 |
|
35 |
AC_LIBOBJ([time_r]) |
|
36 |
gl_PREREQ_TIME_R |
|
37 |
fi |
|
38 |
]) |
|
39 |
||
40 |
# Prerequisites of lib/time_r.c. |
|
41 |
AC_DEFUN([gl_PREREQ_TIME_R], [ |
|
42 |
:
|
|
43 |
]) |