On 07/26/2011 07:50 AM, Santiago Vila wrote:
Yes, most likely this is a kernel and/or glibc bug. POSIX requires readlinkat(dfd, "", buf, size) to fail with ENOENT, if dfd is either AT_FDCWD or open on a directory. Which does strace say about the syscall made just before the gnulib test-readlink fails?
--- SIGCHLD (Child exited) @ 0 (0) --- readlink("no_such", 0x7fff370e7340, 80) = -1 ENOENT (No such file or directory) readlink("no_such/", 0x7fff370e7340, 80) = -1 ENOENT (No such file or directory) readlink("", 0x7fff370e7340, 80) = -1 EINVAL (Invalid argument)
There's the bug. This is failing with EINVAL instead of ENOENT, which is contrary to POSIX. However, this kernel bug has already been papered over in gnulib, which means that it is merely a matter of updating m4 to use newer gnulib to make this test failure go away.
http://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=dc446909 -- Eric Blake ebl...@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org