This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Proposal: Deprecate direct access stdio internals (for future hard removal)
- From: Florian Weimer <fweimer at redhat dot com>
- To: GNU C Library <libc-alpha at sourceware dot org>
- Date: Wed, 3 Jan 2018 16:54:40 +0100
- Subject: Re: Proposal: Deprecate direct access stdio internals (for future hard removal)
- Authentication-results: sourceware.org; auth=none
- References: <be630d66-177e-66ee-7588-2f15b3f27753@redhat.com>
On 12/22/2017 02:01 PM, Florian Weimer wrote:
I would like to remove quite a few libio internals in a future glibc
version.
Note that the symbol list does not include _IO_stdin &c, __uflow,
__underflow, and other bits which were used by old inline
implementations of the C interface (for things like getc_unlocked). We
can preserve support for those by keeping the layout of the start of
_IO_FILE unchanged, always signaling empty read/write buffers, thus
redirecting the old inline implementations into the slow path.
The immediate goal is to remove the vtables, marker support, streamline
save area support (for an implementation of fgetln), and no longer
depend on the _IO_stdin_used mechanism to detect that the
stdin/stdout/stderr variables are in use. Old library versions had
macros for them, not variables, and did not support reassignment. This
still causes problems when linking new DSOs because you have to be
careful to include _IO_stdin_used in the linker script, otherwise
strange things will happen.
Any further comments on this?
Thanks,
Florian