Contributed by rueda on from the more-opacity,-igor dept.
In -current,
the struct underlying
stdio(3)'s
FILE type
has been
made opaque, with library versions bumps across the board:
CVSROOT: /cvs Module name: src Changes by: yasuoka@cvs.openbsd.org 2025/07/16 09:33:05 Modified files: lib/libc : Symbols.list shlib_version lib/libc/hidden: stdio.h wchar.h lib/libc/stdio : Makefile.inc fclose.3 fclose.c findfp.c lib/libcrypto : shlib_version lib/libcurses : shlib_version lib/libedit : shlib_version lib/libexpat : shlib_version lib/libfido2 : shlib_version lib/libfuse : shlib_version
lib/libkvm : shlib_version
lib/libpcap : shlib_version
lib/librthread : shlib_version
lib/libskey : shlib_version
lib/libsndio : shlib_version
lib/libutil : shlib_version
include : stdio.h wchar.h
gnu/lib/libcxx : shlib_version
gnu/lib/libcxxabi: shlib_version
gnu/lib/libexecinfo: shlib_version
gnu/lib/libiberty: shlib_version
gnu/lib/libreadline: shlib_version
gnu/lib/libstdc++: shlib_version
gnu/lib/libstdc++-v3: shlib_version
gnu/usr.bin/perl: shlib_version
Added files:
lib/libc/hidden: _stdio.h
lib/libc/stdio : fdclose.c
Log message:
Make the FILE object opaque. Move the __sFILE definition into
libc/hidden/_stdio.h. All programs that refer to the internal
structure of the FILE object can't be compiled from now on.
std{in,out,err} doesn't refer __sF[] now, but the hidden __sF along
with __srget and __swbuf symbols are kept temporarily to make our
transition easier. But those symbols will be deleted soon. The shared
library versions are bumped for libc and all the other libraries that
refer to std{in,out,err}.
diff from guenther, tweak by me, tested by many
ok sthen tb
Make no mistake, this is a major change, which touches a lot of components across the base system. The fallout can be seen in a lot of places, including libcrypto (which is itself subject to a major, sepearate cleanup), libtls, libssl, and includes touches to the profiling subsystem we mentioned earlier.
Those who normally build from source are strongly encouraged to use a snapshot upgrade to cross the bumps.
(Comments are closed)
