[PATCH] libio: Eliminate _IO_stdin, _IO_stdout, _IO_stderr
Dmitry V. Levin
ldv@altlinux.org
Mon Feb 18 12:54:00 GMT 2019
On Mon, Feb 18, 2019 at 12:43:32PM +0100, Florian Weimer wrote:
[...]
> These variables are only used to determine if a stdio stream is
> a pre-allocated stream, but it is possible to do so by comparing
> a FILE * to all pre-allocated stream objects. As a result, it is
> not necessary to keep those pointers in separate variables.
>
> Behavior with symbol interposition is unchanged because _IO_stdin_,
> _IO_stdout_, _IO_stderr_ are exported, and refer to objects outside of
> libc if symbol interposition or copy relocations are involved. (The
> removed variables _IO_stdin, _IO_stdout, _IO_stderr were not exported,
> of course.)
>
> 2019-02-18 Florian Weimer <fweimer@redhat.com>
>
> * libio/libio.h (_IO_stdin, _IO_stdout, _IO_stderr): Remove
> declaration.
> * libio/stdio.c (AL, AL2, _IO_stdin, _IO_stdout, _IO_stderr):
> Remove definitions.
> * libio/stdfiles.c: Update comment.
> * libio/oldstdfiles.c (_IO_check_libio): Update comment. Do not
> set _IO_stdin, _IO_stdout, _IO_stderr.
> * libio/libioP.h (_IO_fake_stdiobuf): Remove unused declaration.
> [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)] (_IO_legacy_file): New
> inline function.
> (_IO_deallocate_file): New inline function.
> * libio/iolibio.h (_IO_vprintf): Remove definition.
> * libio/iofclose.c (_IO_new_fclose): Use _IO_deallocate_file.
> * libio/oldiofclose.c (_IO_old_fclose): Likewise.
> * libio/iofwide.c (_IO_fwide): Use __glibc_unlikely and
> _IO_legacy_file.
> * libio/oldfileops.c (_IO_old_file_init_internal): Remove
> __builtin_expect. Use _IO_legacy_file.
Looks good, thanks.
--
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20190218/10e511bd/attachment.sig>
More information about the Libc-alpha
mailing list