cvs commit: src/include stdio.h src/lib/libc Versions.def
src/lib/libc/stdio Symbol.map stdio.c
jhb at freebsd.org
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 Symbol.map 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.
More information about the cvs-src