From a5406364ac949f91867352cb2ae867629f083c5b Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 18 Feb 2019 11:49:54 +0100 Subject: 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.) --- libio/stdio.c | 11 ----------- 1 file changed, 11 deletions(-) (limited to 'libio/stdio.c') diff --git a/libio/stdio.c b/libio/stdio.c index 1294d28..522de44 100644 --- a/libio/stdio.c +++ b/libio/stdio.c @@ -33,14 +33,3 @@ FILE *stdin = (FILE *) &_IO_2_1_stdin_; FILE *stdout = (FILE *) &_IO_2_1_stdout_; FILE *stderr = (FILE *) &_IO_2_1_stderr_; - -#undef _IO_stdin -#undef _IO_stdout -#undef _IO_stderr -#define AL(name) AL2 (name, _IO_##name) -#define AL2(name, al) \ - extern __typeof (name) al __attribute__ ((alias (#name), \ - visibility ("hidden"))) -AL(stdin); -AL(stdout); -AL(stderr); -- cgit v1.1