[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;
}


Reply via email to