libio: Eliminate _IO_stdin, _IO_stdout, _IO_stderr
authorFlorian Weimer <fweimer@redhat.com>
Mon, 18 Feb 2019 10:49:54 +0000 (11:49 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 18 Feb 2019 15:37:00 +0000 (16:37 +0100)
commita5406364ac949f91867352cb2ae867629f083c5b
tree0aeeedc3748d3b21cf8e8ea2e670670df1e441db
parent6c29942cbf059aca47fd4bbd852ea42c9d46b71f
libio: Eliminate _IO_stdin, _IO_stdout, _IO_stderr

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.)
ChangeLog
libio/iofclose.c
libio/iofwide.c
libio/iolibio.h
libio/libio.h
libio/libioP.h
libio/oldfileops.c
libio/oldiofclose.c
libio/oldstdfiles.c
libio/stdfiles.c
libio/stdio.c