Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 May 2008 16:14:44 -0700
From:      Alfred Perlstein <alfred@freebsd.org>
To:        John Baldwin <jhb@freebsd.org>
Cc:        src-committers@freebsd.org, cvs-all@freebsd.org, cvs-src@freebsd.org
Subject:   Re: 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
Message-ID:  <20080507231444.GF32532@elvis.mu.org>
In-Reply-To: <200805071111.39938.jhb@freebsd.org>
References:  <200805051603.m45G3rrN089219@repoman.freebsd.org> <200805051637.43073.jhb@freebsd.org> <20080507064013.GU32532@elvis.mu.org> <200805071111.39938.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
* John Baldwin <jhb@freebsd.org> [080507 10:28] wrote:
> On Wednesday 07 May 2008 02:40:13 am Alfred Perlstein wrote:
> > * John Baldwin <jhb@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080507231444.GF32532>