openat: test for fstatat (..., 0) bug
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 4 Sep 2011 03:17:33 +0000 (20:17 -0700)
committerIan Beckwith <ianb@erislabs.net>
Thu, 8 Sep 2011 02:04:32 +0000 (03:04 +0100)
commit9f60473985e5f20c3efabadf2c1756b5ff560458
treeb65c127d1acc7afeadcba0d0294465105a9aaf6f
parent4fa70345f71a149ef8755cc7a41ed12ec8387285
openat: test for fstatat (..., 0) bug

Further testing with tar suggests that fstatat (..., 0)
does not work in general, on AIX 7.1; see
<http://lists.gnu.org/archive/html/bug-tar/2011-09/msg00023.html>.
So, give up entirely on AIX 7.1's fstatat, and fall back on our
replacement fstatat (which is what older AIX releases were using
anyway).
* lib/fstatat.c (fstatat) [HAVE_FSTATAT]: Do not undef.  The only
use is now changed to orig_fstatat.  This was probably the right
thing to do anyway.
(FSTATAT_AT_FDCWD_0_BROKEN): Remove; no longer used.
(rpl_fstatat) [FSTATAT_ZERO_FLAG_BROKEN]: Remove.
(rpl_fstatat): Simplify, assuming !FSTATAT_ZERO_FLAG_BROKEN.
(AT_FUNC_NAME) [FSTATAT_ZERO_FLAG_BROKEN]: Now rpl_fstatat.
* m4/openat.m4 (gl_FUNC_FSTATAT): Test for the more-general bug
and define FSTATAT_ZERO_FLAG_BROKEN, not FSTATAT_AT_FDCWD_0_BROKEN,
if the bug is found.
(cherry picked from commit 204072b3f5a110d1225d81ca6a929c9f7b76029f)
ChangeLog
lib/fstatat.c
m4/openat.m4