Paul Eggert <eggert <at> CS.UCLA.EDU> writes: > > Eric Blake <ebb9 <at> byu.net> writes: > > > I would recommend getting rid of any test for st_spare1 or st_spare4 > > in m4/stat-time.m4. > > Thanks for mentioning this; I've always thought that using those > "spare" fields was asking for trouble. I installed the following; > can you please check it?
Looks fine here. > > > you should add a check for st_birthtim.tv_nsec, > > That's also done in the patch below. (Wasn't it already done? > Anyway, it should be done now.) Nope, still not done. I'm checking in this: 2007-03-27 Eric Blake <[EMAIL PROTECTED]> Support sub-second birthtime on cygwin. * m4/stat-time.m4 (gl_STAT_BIRTHTIME): Also check for st_birthtim. * lib/stat-time.h (STAT_TIMESPEC): Adjust comments. (get_stat_birthtime): Also work with st_birthtim. Index: lib/stat-time.h =================================================================== RCS file: /sources/gnulib/gnulib/lib/stat-time.h,v retrieving revision 1.6 diff -u -r1.6 stat-time.h --- lib/stat-time.h 27 Mar 2007 18:51:18 -0000 1.6 +++ lib/stat-time.h 27 Mar 2007 20:01:28 -0000 @@ -27,8 +27,9 @@ /* STAT_TIMESPEC (ST, ST_XTIM) is the ST_XTIM member for *ST of type struct timespec, if available. If not, then STAT_TIMESPEC_NS (ST, ST_XTIM) is the nanosecond component of the ST_XTIM member for *ST, - if available. ST_XTIM can be st_atim, st_ctim, or st_mtim for - access, status change, or data modification time, respectively. + if available. ST_XTIM can be st_atim, st_ctim, st_mtim, or st_birthtim + for access, status change, data modification, or birth (creation) + time respectively. These macros are private to stat-time.h. */ #if defined HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC @@ -146,7 +147,8 @@ { struct timespec t; -#ifdef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC +#if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ + || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC t = STAT_TIMESPEC (st, st_birthtim); #elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC t.tv_sec = st->st_birthtime; Index: m4/stat-time.m4 =================================================================== RCS file: /sources/gnulib/gnulib/m4/stat-time.m4,v retrieving revision 1.6 diff -u -r1.6 stat-time.m4 --- m4/stat-time.m4 27 Mar 2007 18:51:18 -0000 1.6 +++ m4/stat-time.m4 27 Mar 2007 20:01:28 -0000 @@ -9,12 +9,13 @@ dnl From Paul Eggert. -# st_atim.tv_nsec - Linux, Solaris +# st_atim.tv_nsec - Linux, Solaris, Cygwin # st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE # st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE # st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1) # st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway) +# st_birthtim - Cygwin 1.7.0+ AC_DEFUN([gl_STAT_TIME], [ @@ -59,7 +60,8 @@ #include <sys/stat.h>]) ]) -# Check for st_birthtime, a feature from UFS2 (FreeBSD, NetBSD, OpenBSD, etc.). +# Check for st_birthtime, a feature from UFS2 (FreeBSD, NetBSD, OpenBSD, etc.) +# and NTFS (Cygwin). # There was a time when this field was named st_createtime (21 June # 2002 to 16 July 2002) But that window is very small and applied only # to development code, so systems still using that configuration are @@ -72,7 +74,10 @@ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CHECK_MEMBERS([struct stat.st_birthtimespec.tv_nsec], [], - [AC_CHECK_MEMBERS([struct stat.st_birthtimensec], [], [], + [AC_CHECK_MEMBERS([struct stat.st_birthtimensec], [], + [AC_CHECK_MEMBERS([struct stat.st_birthtim.tv_nsec], [], [], + [#include <sys/types.h> + #include <sys/stat.h>])], [#include <sys/types.h> #include <sys/stat.h>])], [#include <sys/types.h>