cvs commit: src/include stdio.h src/lib/libc Versions.def src/lib/libc/stdio stdio.c

John Baldwin jhb at
Mon May 5 18:27:05 UTC 2008

On Monday 05 May 2008 12:42:52 pm Marcel Moolenaar wrote:
> On May 5, 2008, at 9:14 AM, John Baldwin wrote:
> > jhb         2008-05-05 16:14:03 UTC
> >
> >  FreeBSD src repository
> >
> >  Modified files:
> >    include              stdio.h
> >    lib/libc             Versions.def
> >    lib/libc/stdio stdio.c
> >  Log:
> >  Retire the __fgetcookie(), __fgetpendout(), and __fsetfileno()  
> > accessors
> >  as we aren't hiding FILE's internals anymore.
> Thanks for cleaning this up too!

Sorry for the mess.  It would be really nice if we could make FILE opaque, but 
apparently we can't.  I was confused by glibc's headers (one of the 2 or 3 
stdio.h's just declares 'FILE' as a typedef, but another header it always 
includes earlier (libio.h IIRC) does define the backing struct always) and 
thought glibc had one that was fully opaque.  In practice I think glibc does 
inline some cases like feof_unlocked().  I think they do not inline getc() 
and putc() however.

I think I can still fix _file to be an int (make existing _file _ofile instead 
and initialize it when setting _file) w/o breaking the ABI, but I need to 
chew on it some more.

John Baldwin

More information about the cvs-src mailing list