bug-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-tar] GNU tar 1.23 build broke in Unixware 7.1.4


From: Paul Eggert
Subject: Re: [Bug-tar] GNU tar 1.23 build broke in Unixware 7.1.4
Date: Thu, 3 Dec 2015 15:25:11 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0

On 12/03/2015 05:30 AM, Jarkko Hietaniemi wrote:
Looks like rpl_lstat() thinks it's working with 'struct stat64'

5469:extern int rpl_lstat (const char *name, struct stat64 *buf)

but then e.g. fstatat() is trying to use 'struct stat'.

Using -E on lstat.c shows that e.g.

static int
orig_lstat (const char *filename, struct stat64  *buf)
{
  return lstat64  (filename, buf);
}


Tar wants struct stat64 uniformly. Plain 'struct stat' is for brain-damaged old progams that fall over and die if off_t is wider than 32 bits, and tar's not like that.

How is the off_t width determined on your system? On 32-bit GNU/Linux, config.h should contain a line "#define _FILE_OFFSET_BITS 64". Some other systems require "#define _LARGE_FILES 1" instead. What does Unixware require for "struct stat" to expand to "struct stat64"? You can look in /usr/include to find out.


Trying -E on just

#include <sys/stat.h>
struct stat st;

shows just struct stat, not stat64, so something in tar config causes the stat64 to jump in.



Yes, that's expected since you didn't include config.h there.

I'm puzzled as to why the problem occurs for rpl_lstat but not for fstatat. tar-1.28/gnu/fstatat.c includes config.h first thing, so why don't the config.h settings cause it to use struct stat64 instead of struct stat? After all, the config.h settings work elsewhere.

Also, looking at your log, there's one other problem that keeps popping up:

  CC       exclude.o
In file included from exclude.c:36:
wctype.h:634: warning: `iswblank' redefined
/usr/local/lib/gcc-lib/i686-UnixWare7.0.1-sysv5/2.95.2/include/wctype.h:137: warning: this is the location of the previous definition

What's up with that? It should get fixed too. What's the preprocessor output for this one?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]