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

Alfred Perlstein alfred at freebsd.org
Wed May 7 23:14:44 UTC 2008


* John Baldwin <jhb at freebsd.org> [080507 10:28] wrote:
> 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.

I don't think that's really fair, stdio has had adequate accessors
for a long time, if AN(*) application does the wrong thing for long enough
it does not make it right.

(*) Important note: when considering autoconf scripts, most of the
scripts test's come from a repository of scripts or are carbon
copied from each other.  Saying that "all ports are broken" is not
true, it is a single suite of configuration scripts that are broken
and need fixing, then we will be OK.

We have precident here of hacked autoconf and ports build logic
that automatically "seds" various things in scripts.  I think
a few knobs can fix this for us.

-Alfred


More information about the cvs-all mailing list