openat: test for fstatat (..., 0) bug
[gnulib.git] / ChangeLog
index 2665c43..c03777b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,33 @@
+2011-09-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       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.
+
+       openat: test for fstatat (AT_FDCWD, ..., 0) bug
+       This tests for another fstatat bug on AIX 7.1:
+       fstatat (AT_FDCWD, ..., 0) does not work.  See
+       <http://lists.gnu.org/archive/html/bug-tar/2011-09/msg00015.html>.
+       * lib/fstatat.c (FSTATAT_AT_FDCWD_0_BROKEN)
+       (LSTAT_FOLLOWS_SLASHED_SYMLINK): Default to 0.
+       (rpl_fstatat): Adjust so that it works around either (or both)
+       bugs if present.
+       * m4/openat.m4 (gl_FUNC_FSTATAT): Test for this fstatat bug.
+
 2011-09-03  Karl Berry  <karl@gnu.org>
 
        * doc/regex.texi (Character Class Operators): Avoid literal ":"