cvs commit: src/include stdio.h src/lib/libc/stdio clrerr.c feof.c ferror.c fileno.c getc.c getchar.c local.h putc.c putchar.c xprintf.c

John Baldwin jhb at freebsd.org
Wed May 7 17:28:50 UTC 2008


On Wednesday 07 May 2008 02:40:13 am Alfred Perlstein wrote:
> * John Baldwin <jhb at freebsd.org> [080505 13:47] 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.
> 
> 
> Oh c'mon!  we're going to revert this needed fix just because of
> autoconf?

Pretty much.  It appears that FILE has been public for so long that there is a 
lot of code that assumes it can use it.

-- 
John Baldwin


More information about the cvs-src mailing list