-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 According to Eric Blake on 10/8/2009 7:13 AM: > Here's the current state of my utimensat series. It's now stable enough > to post for review, although I reserve the right to rebase as I find > tweaks are needed in the testsuite:
I've now implemented futimens. The tests pass on at least modern Linux, pre-utimensat Linux, cygwin 1.5, cygwin 1.7, Solaris 10, darwin, FreeBSD, OpenBSD; and cleanly compiles and skips on mingw. In the process, I found a bug in cygwin 1.7 (utimensat improperly truncates) which now has a pending patch, and in Linux (futimens(AT_FDCWD,NULL) attempts to change the times of "." instead of failing). I'm happy enough with the series that I will commit it tomorrow morning. For now, here's where it can be reviewed, with differences from round 1: git pull git://repo.or.cz/gnulib/ericb.git master Eric Blake (8): [1/8] doc: mention timestamp portability issues More docs since my first email. [2/8] utimens: add test Test is more robust in the face of various timestamp issues. [3/8] utimens: validate futimens usage Now compiles on mingw. [4/8] utimens: add lutimens interface Don't make testsuite depend on nanosleep [5/8] utimecmp: support symlink timestamps Use pathconf(_PC_TIMESTAMP_RESOLUTION), if available. [6/8] utimens: add UTIME_NOW and UTIME_OMIT support Work around older Linux bug with UTIME_NOW and non-zero tv_sec. [7/8] utimens: introduce fdutimens Not much difference. [8/8] futimens: new module New. Write futimens for systems that lack it, and wrap it for systems where it is broken. So far, only patched cygwin 1.7 passes using native futimens. > > Still to go: > implement utimensat > implement fdutimensat > work around Solaris bugs in trailing slash handling - -- Don't work too hard, make some time for fun as well! Eric Blake e...@byu.net -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkrQCoEACgkQ84KuGfSFAYDhLgCfcKIqK4xWPMlR7h3fnO3jB40b WZMAoKQwEH1WFsDI/TvRsWBWW6z6m4s2 =ziGP -----END PGP SIGNATURE-----