[Adding bug-gnulib@gnu.org and retitling Subject: for these threads: http://lists.gnu.org/archive/html/bug-tar/2011-08/msg00003.html http://lists.gnu.org/archive/html/bug-tar/2011-08/msg00005.html ]
On 08/18/2011 05:06 PM, Kevin Brott wrote: > So it looks like you're probably on the right track. Thanks. It appears that fstatat is broken on AIX 7.1. Could you please try the test program at the end of this email, and tell me what its exit status is on your system? If it exits with nonzero status, I can modify the gnulib fstatat module to automatically reject AIX 7.1 fstatat, which should fix the problem that GNU tar has on AIX 7.1. Also, can you report the bug to the AIX maintainers? You can send them a copy of this test program, assuming it exits with nonzero status. Finally, I worry that the other new functions are broken in AIX too. Can you please try configuring tar 1.26 with fstatat turned off, and seeing whether it passes "make check"? You should be able to do that by taking a fresh copy of the tar 1.26 tarball and doing the following: ac_cv_func_fstatat=no ./configure (cd gnu && make sys/stat.h && (echo '#undef fstatat' && echo '#define fstatat rpl_fstatat' && echo 'int fstatat (int, char const *, struct stat *, int);') >>sys/stat.h) make make check Thanks. #include <fcntl.h> #include <sys/stat.h> int main (void) { struct stat a; struct stat b; if (fstatat (AT_FDCWD, "fstat-test.c", &a, AT_SYMLINK_NOFOLLOW) != 0) return 1; if (lstat ("fstat-test.c", &b) != 0) return 2; if (a.st_size != b.st_size) return 3; if (a.st_dev != b.st_dev) return 4; if (a.st_ino != b.st_ino) return 5; if (a.st_mode != b.st_mode) return 6; if (a.st_nlink != b.st_nlink) return 7; if (a.st_uid != b.st_uid) return 8; if (a.st_gid != b.st_gid) return 9; if (a.st_atime != b.st_atime) return 10; if (a.st_mtime != b.st_mtime) return 11; if (a.st_ctime != b.st_ctime) return 12; return 0; }