From: Martin Wille (mw8329_at_[hidden])
Date: 2004-09-21 01:51:29
Beman Dawes wrote:
> At 03:50 PM 9/19/2004, Beman Dawes wrote:
> >At 11:08 AM 9/19/2004, Martin Wille wrote:
> > >Aleksey Gurtovoy wrote:
> > >> Does anyone have anything to say on this one (from
> > >http://tinyurl.com/5jnv6)
> > >
> > >>
> > >indows.cpp(313): error: incomplete type is not allowed
> > >> struct stat path_stat;
> > >
> > >This one could be caused by a missing #include <sys/types.h>
> >I've checked in a change to see if that is the problem.
> That change doesn't to have cleared the Intel 7.l/Linux failures,
> although it does seem to have fixed the GCC 2.93 problem.
> I'm on my way out-of-town for a week and won't be able to do any more on
> this, but if you want to try possible fixes, feel free to experiment.
> But given that Intel 8.0 works, I don't see 7.1 failures as a high
> priority problem.
There are two problems:
1. POSIX feature flags get set *after* the first #include of
a POSIX header. This likely will confuse the POSIX feature flag
system. This probably also explains why the code later #defines
flags internally used by that system.
2. The feature flag system special-cases gcc. This makes
things rather ugly for us because the type returned by
readdir() changes with the compiler: dirent * for gcc,
dirent64 * for icc. Those types, however, have the same
layout if 64 bit support was enabled by #defining
_FILE_OFFSET_BITS to 64 before #including a POSIX header.