-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 According to Ondřej Vašík on 11/24/2009 4:58 AM: > utimensat(AT_FDCWD, "file", NULL, AT_SYMLINK_NOFOLLOW) = -1 ENOSYS (Function > not implemented) > > Those two failing tests (touch/no-dereference and touch/trailing-slash) seems > to be new in coreutils test-suite (added in 8.1), so the issue was likely > there even before 8.1 and now shows in koji...
It looks like those are cases of an old kernel that can't set timestamps on symlinks. Does the kernel support lutimes? The way the coreutils tests are written is that they assume that if utimensat exists, then touching symlink timestamps should be supported. But obviously this is not the case, when compiling against newer headers (utimensat exists) but older kernel (AT_SYMLINK_NOFOLLOW not implemented). touch/no-dereference tries to skip the test if utimensat fails, but it is only skipping based on the presence of utimensat; help in detecting ENOSYS to skip the test would be appreciated. touch/trailing-slash, on the other hand, should work regardless of whether AT_SYMLINK_NOFOLLOW is implemented, since it does not affect symlink timestamps. So that seems to point to a bug in gnulib's utimens.c. Can you also run 'make -C gnulib-tests check' and see which gnulib unit tests fail? If test-utimens at also fails, the tail of the strace would be nice; if it passes, then the test is not adequately exercising the lutimens workaround for missing kernel support in AT_SYMLINK_NOFOLLOW. - -- Don't work too hard, make some time for fun as well! Eric Blake [email protected] -----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/ iEYEARECAAYFAksL2ckACgkQ84KuGfSFAYAjRwCeMFnuBm6vyQmoRNY0qVEkrLAn bR4AoMKY0/lyxEFQgwkQLOt4GI/8vS2Q =nQDA -----END PGP SIGNATURE-----
