From owner-cvs-all@FreeBSD.ORG Wed May 7 23:14:44 2008 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5AF9E1065670; Wed, 7 May 2008 23:14:44 +0000 (UTC) (envelope-from bright@elvis.mu.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id 44F258FC1B; Wed, 7 May 2008 23:14:44 +0000 (UTC) (envelope-from bright@elvis.mu.org) Received: by elvis.mu.org (Postfix, from userid 1192) id 2F90B1A4D84; Wed, 7 May 2008 16:14:44 -0700 (PDT) Date: Wed, 7 May 2008 16:14:44 -0700 From: Alfred Perlstein To: John Baldwin Message-ID: <20080507231444.GF32532@elvis.mu.org> References: <200805051603.m45G3rrN089219@repoman.freebsd.org> <200805051637.43073.jhb@freebsd.org> <20080507064013.GU32532@elvis.mu.org> <200805071111.39938.jhb@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200805071111.39938.jhb@freebsd.org> User-Agent: Mutt/1.4.2.3i 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 X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 May 2008 23:14:44 -0000 * John Baldwin [080507 10:28] wrote: > On Wednesday 07 May 2008 02:40:13 am Alfred Perlstein wrote: > > * John Baldwin [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