On 05/12/11 09:20, Paul Eggert wrote: > On 05/11/11 23:51, Markus Duft wrote: >> the fd in fdutimensat is 4, whereas in utimens, which is then called from >> somewhere in there, >> it is -1, so i can't do a fsync() > > If I understand things correctly, there's a simpler fix. fdutimensat calls > futimens (fd, ts), which invokes fdutimens (fd, NULL, ts), which invokes > fsync (fd) if HAVE_BUGGY_NFS_TIME_STAMPS is nonzero. So, please > try prepending the following to utimens.c:
this doesn't help, and doesn't even compile, as interix also doesn't have sync() (it does have fsync(fd)), which is used if fd < 0 :( > > #if __INTERIX > # define HAVE_BUGGY_NFS_TIME_STAMPS 1 > #endif > > Also, which version of Interix are you using? Is a new version available, > or are patches available, to fix this file system bug? It'd be nice to > mention any such information in a comment in the code. i'm using interix 6.1 on windows 7, which is the most current version available. microsoft has the extraordinary cool policy of not giving a .... about interix, and thus will never release any fixes for the SUA sdk, not for old versions, and not for the latest and greatest. i've had some lengthy correspondence with redmon in this regard, and, sad enough, interix users cannot expect any form of support or fixes (this is why i started the suacomp project).