On Mon, May 05, 2008, John Baldwin wrote: > On Monday 05 May 2008 03:24:17 pm Peter Jeremy wrote: > > On Mon, May 05, 2008 at 02:59:28PM -0400, John Baldwin wrote: > > >On Monday 05 May 2008 02:40:03 pm Alfred Perlstein wrote: > > >> I'm _not_ objecting, just interested in why. > > >> > > >> Any references to discussions on this? Are we now safe for > > >> future compat or something? > > > > > >Having FILE be opaque broke just about every 'configure' script on the > > >planet. :( > > > > Either autoconf and friends are _intended_ as impediments to > > portability or they are completely broken by design. > > It appears that autoconf only believes a type is real if you can typedef it > to > another type, cast 0 to a valid pointer to the new typedef'd type, and do a > sizeof() of the typdef'd type. The last is where having an opaque type > breaks down for scripts that want to make sure FILE is a real type.
I believe FILE is required to be a complete type, but it need not expose any usable fields to applications. For instance, typedef struct { char __pad[__FILE_LENGTH]; } FILE; would be valid. I don't know whether that breaks lots of apps or not. Of course that still makes it possible to write bogus apps that depend on sizeof(FILE). _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "[EMAIL PROTECTED]"