Zeugswetter Andreas SB SD writes:
> > AIX is too stupid to wrap unistd.h in an "#ifndef" to protect against
> > double inclusion? I suppose we could do that for them...
>
> I guess that is exactly not wanted, since that would hide the actual
> problem, namely that _LARGE_FILE_API gets defined (off_t --> 32bit).
> Thus I think IBM did not protect unistd.h on purpose.
I think the problem is more accurately described thus: Flex generated
files include <stdio.h> before "postgres.h" due to the way it lays out the
code in the output. stdio.h does something which prevents switching to
the large file model later on in postgres.h. (This manifests itself in
unistd.h, but unistd.h itself is not the problem per se.)
The proposed fix was to include the flex output in some other file (such
as the corresponding grammar file) rather than to compile it separately.
The patch just needs to be tried out.
--
Peter Eisentraut peter_e@gmx.net