On Thu, Aug 18, 2011 at 10:28, Paul Eggert <[email protected]> wrote:

> On 08/18/2011 09:46 AM, Kevin Brott wrote:
> > Looks like tar isn't putting anything but zero-byte files into the
> archives
>
> Thanks for the truss output.  I expect that it's this line
> in src/create.c:1639
>
>  else if (fstatat (parentfd, name, &st->stat, fstatat_flags) != 0)
>
> Could you please run a debugger like GDB and step through that line
> with an offending test case?  My suspicion is that fstatat is incorrectly
> reporting that the file size is zero.  If so, can you explain how fstatat
> is implemented on your system?  Is the code using the gnulib replacement,
> or is fstatat implemented via system's C library, or what?
>
> If you can't run a debugger, simply insert some printf statements
> and print st->stat.st_size right after the successful fstatat.
>

Working on that debugging (using the system native tools because there's no
working gcc for AIX 7.1 yet, and I'm not real familiar with adb or dbx) ...
but doing some quick reading I suspect the issue stems from this:

"IBM AIX Version 7.1 Differences Guide" p7
*
*
*Table 1-2 Short list of new library functions and system calls
*
*System calls System calls*
*acessxat mknodat*
*chownxat openat*
*faccessat openxat*
*fchmodat readlinkat*
*fchownat renameat*
*fexecve stat64at*
*fstatat statx64at*
*futimens statxat*
*kopenat symlinkat*
*linkat ulinkat*
*mkdirat utimensat*
*mkfifoat*

Which implies that fstatat wasn't available in earlier versions of AIX - but
is now in 7.1 - which might end up just being a ./configure issue.  The
official reference for it seems to be here:
http://publib.boulder.ibm.com/infocenter/aix/v7r1/index.jsp?topic=/com.ibm.aix.basetechref/doc/basetrf2/statx.htm


-- 
# include <stddisclaimer.h>
/* Kevin  Brott <[email protected]> */

Reply via email to