annotate m4/stat-time.m4 @ 6471:54a70822331f

* m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC, to fix IRIX 5.3 porting problem reported by Georg Schwarz in <http://lists.gnu.org/archive/html/bug-coreutils/2005-12/msg00083.html>. * m4/stat-time.m4 (gl_STAT_TIME): Add check for TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC.
author Paul Eggert <eggert@cs.ucla.edu>
date Wed, 07 Dec 2005 18:18:33 +0000
parents d81a8251a9b0
children be9e01d008cb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6237
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
1 # Checks for stat-related time functions.
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
2
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
3 # Copyright (C) 1998, 1999, 2001, 2003, 2005 Free Software Foundation, Inc.
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
4 # This file is free software; the Free Software Foundation
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
5 # gives unlimited permission to copy and/or distribute it,
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
6 # with or without modifications, as long as this notice is preserved.
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
7
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
8 dnl From Paul Eggert.
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
9
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
10 # st_atim.tv_nsec - Linux, Solaris
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
11 # st_atimespec.tv_nsec - FreeBSD, if ! defined _POSIX_SOURCE
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
12 # st_atimensec - FreeBSD, if defined _POSIX_SOURCE
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
13 # st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1)
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
14 # st_spare1 - Cygwin?
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
15
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
16 AC_DEFUN([gl_STAT_TIME],
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
17 [
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
18 AC_LIBSOURCES([stat-time.h])
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
19
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
20 AC_REQUIRE([AC_C_INLINE])
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
21 AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
22
6471
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
23 AC_CHECK_MEMBERS([struct stat.st_atim.tv_nsec],
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
24 [AC_CACHE_CHECK([whether struct stat.st_atim is of type struct timespec],
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
25 [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec],
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
26 [AC_TRY_COMPILE(
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
27 [
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
28 #include <sys/types.h>
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
29 #if TIME_WITH_SYS_TIME
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
30 # include <sys/time.h>
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
31 # include <time.h>
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
32 #else
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
33 # if HAVE_SYS_TIME_H
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
34 # include <sys/time.h>
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
35 # else
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
36 # include <time.h>
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
37 # endif
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
38 #endif
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
39 #include <sys/stat.h>
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
40 struct timespec ts;
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
41 struct stat st;
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
42 ],
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
43 [
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
44 st.st_atim = ts;
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
45 ],
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
46 [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes],
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
47 [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no])])
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
48 if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
49 AC_DEFINE([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], 1,
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
50 [Define to 1 if the type of the st_atim member of a struct stat is
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
51 struct timespec.])
54a70822331f * m4/stat-time.m4 (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for
Paul Eggert <eggert@cs.ucla.edu>
parents: 6237
diff changeset
52 fi],
6237
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
53 [AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec], [],
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
54 [AC_CHECK_MEMBERS([struct stat.st_atimensec], [],
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
55 [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [],
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
56 [AC_CHECK_MEMBERS([struct stat.st_spare1], [],
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
57 [],
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
58 [#include <sys/types.h>
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
59 #include <sys/stat.h>])],
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
60 [#include <sys/types.h>
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
61 #include <sys/stat.h>])],
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
62 [#include <sys/types.h>
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
63 #include <sys/stat.h>])],
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
64 [#include <sys/types.h>
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
65 #include <sys/stat.h>])],
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
66 [#include <sys/types.h>
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
67 #include <sys/stat.h>])
d81a8251a9b0 * MODULES.html.sh (File system functions): Add stat-time.
Paul Eggert <eggert@cs.ucla.edu>
parents:
diff changeset
68 ])