From 177aad3ff637b32550aec8080314d76a189f7a03 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Wed, 7 Feb 2018 19:21:54 -0500 Subject: [PATCH] Remove legacy configuration knobs from libio. This patch eliminates the "compatibility defines" _IO_UNIFIED_JUMPTABLES (always defined to 1, used in a number of #ifs which are therefore always false), _STDIO_USES_IOSTREAM (unused), __HAVE_COLUMN (unused), _IO_BE (replaced with __glibc_unlikely), and yet another redundant definition of EOF. Installed stripped libraries are unchanged by this patch. * libio/libio.h (_IO_UNIFIED_JUMPTABLES, _STDIO_USES_IOSTREAM) (__HAVE_COLUMN, _IO_BE): Don't define. (_IO_peekc_unlocked, _IO_getwc_unlocked, _IO_putwc_unlocked) (_IO_fwide_maybe_incompatible): Use __glibc_unlikely. * libio/libioP.h (EOF): Don't define. * libio/iofdopen.c, libio/iofopen.c, libio/iopopen.c * libio/iovdprintf.c, libio/oldiofdopen.c, libio/oldiofopen.c * libio/oldiopopen.c, debug/vdprintf_chk.c: Remove #if block testing _IO_UNIFIED_JUMPTABLES. --- ChangeLog | 10 ++++++++++ debug/vdprintf_chk.c | 3 --- libio/iofdopen.c | 3 --- libio/iofopen.c | 3 --- libio/iopopen.c | 3 --- libio/iovdprintf.c | 3 --- libio/libio.h | 36 ++++++++++++++---------------------- libio/libioP.h | 4 ---- libio/oldiofdopen.c | 3 --- libio/oldiofopen.c | 3 --- libio/oldiopopen.c | 3 --- 11 files changed, 24 insertions(+), 50 deletions(-) diff --git a/ChangeLog b/ChangeLog index 916a6fdc0e..f35b6e4a3b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2018-02-21 Zack Weinberg + * libio/libio.h (_IO_UNIFIED_JUMPTABLES, _STDIO_USES_IOSTREAM) + (__HAVE_COLUMN, _IO_BE): Don't define. + (_IO_peekc_unlocked, _IO_getwc_unlocked, _IO_putwc_unlocked) + (_IO_fwide_maybe_incompatible): Use __glibc_unlikely. + * libio/libioP.h (EOF): Don't define. + * libio/iofdopen.c, libio/iofopen.c, libio/iopopen.c + * libio/iovdprintf.c, libio/oldiofdopen.c, libio/oldiofopen.c + * libio/oldiopopen.c, debug/vdprintf_chk.c: Remove #if block + testing _IO_UNIFIED_JUMPTABLES. + * libio/libio.h (_IO_FILE): Delete; all uses changed to FILE. (_IO_fpos_t): Delete; all uses changed to __fpos_t. (_IO_fpos64_t): Delete; all uses changed to __fpos64_t. diff --git a/debug/vdprintf_chk.c b/debug/vdprintf_chk.c index c195a7951e..bc713b4962 100644 --- a/debug/vdprintf_chk.c +++ b/debug/vdprintf_chk.c @@ -40,9 +40,6 @@ __vdprintf_chk (int d, int flags, const char *format, va_list arg) _IO_no_init (&tmpfil.file, _IO_USER_LOCK, 0, &wd, &_IO_wfile_jumps); _IO_JUMPS (&tmpfil) = &_IO_file_jumps; _IO_new_file_init_internal (&tmpfil); -#if !_IO_UNIFIED_JUMPTABLES - tmpfil.vtable = NULL; -#endif if (_IO_file_attach (&tmpfil.file, d) == NULL) { _IO_un_link (&tmpfil); diff --git a/libio/iofdopen.c b/libio/iofdopen.c index 39617365f5..21a53e30f6 100644 --- a/libio/iofdopen.c +++ b/libio/iofdopen.c @@ -137,9 +137,6 @@ _IO_new_fdopen (int fd, const char *mode) #endif &_IO_file_jumps; _IO_new_file_init_internal (&new_f->fp); -#if !_IO_UNIFIED_JUMPTABLES - new_f->fp.vtable = NULL; -#endif /* We only need to record the fd because _IO_file_init_internal will have unset the offset. It is important to unset the cached offset because the real offset in the file could change between diff --git a/libio/iofopen.c b/libio/iofopen.c index f17ec91457..ed3e8b853c 100644 --- a/libio/iofopen.c +++ b/libio/iofopen.c @@ -72,9 +72,6 @@ __fopen_internal (const char *filename, const char *mode, int is32) _IO_no_init (&new_f->fp.file, 0, 0, &new_f->wd, &_IO_wfile_jumps); _IO_JUMPS (&new_f->fp) = &_IO_file_jumps; _IO_new_file_init_internal (&new_f->fp); -#if !_IO_UNIFIED_JUMPTABLES - new_f->fp.vtable = NULL; -#endif if (_IO_file_fopen ((FILE *) new_f, filename, mode, is32) != NULL) return __fopen_maybe_mmap (&new_f->fp.file); diff --git a/libio/iopopen.c b/libio/iopopen.c index efdd0a6f58..2eff45b4c8 100644 --- a/libio/iopopen.c +++ b/libio/iopopen.c @@ -200,9 +200,6 @@ _IO_new_popen (const char *command, const char *mode) _IO_init_internal (fp, 0); _IO_JUMPS (&new_f->fpx.file) = &_IO_proc_jumps; _IO_new_file_init_internal (&new_f->fpx.file); -#if !_IO_UNIFIED_JUMPTABLES - new_f->fpx.file.vtable = NULL; -#endif if (_IO_new_proc_open (fp, command, mode) != NULL) return (FILE *) &new_f->fpx.file; _IO_un_link (&new_f->fpx.file); diff --git a/libio/iovdprintf.c b/libio/iovdprintf.c index 78df2fe559..78a3a2bd15 100644 --- a/libio/iovdprintf.c +++ b/libio/iovdprintf.c @@ -40,9 +40,6 @@ _IO_vdprintf (int d, const char *format, va_list arg) _IO_no_init (&tmpfil.file, _IO_USER_LOCK, 0, &wd, &_IO_wfile_jumps); _IO_JUMPS (&tmpfil) = &_IO_file_jumps; _IO_new_file_init_internal (&tmpfil); -#if !_IO_UNIFIED_JUMPTABLES - tmpfil.vtable = NULL; -#endif if (_IO_file_attach (&tmpfil.file, d) == NULL) { _IO_un_link (&tmpfil); diff --git a/libio/libio.h b/libio/libio.h index 890b825ed8..a3c679ca66 100644 --- a/libio/libio.h +++ b/libio/libio.h @@ -61,9 +61,6 @@ typedef union #include /* compatibility defines */ -#define _STDIO_USES_IOSTREAM -#define _IO_UNIFIED_JUMPTABLES 1 -#define __HAVE_COLUMN #define _IO_file_flags _flags /* open modes */ @@ -228,28 +225,23 @@ extern wint_t __wunderflow (FILE *); extern wint_t __wuflow (FILE *); extern wint_t __woverflow (FILE *, wint_t); -#if __GNUC__ >= 3 -# define _IO_BE(expr, res) __builtin_expect ((expr), res) -#else -# define _IO_BE(expr, res) (expr) -#endif - #define _IO_getc_unlocked(_fp) __getc_unlocked_body (_fp) -#define _IO_peekc_unlocked(_fp) \ - (_IO_BE ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end, 0) \ - && __underflow (_fp) == EOF ? EOF \ - : *(unsigned char *) (_fp)->_IO_read_ptr) +#define _IO_peekc_unlocked(_fp) \ + (__glibc_unlikely ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end) \ + && __underflow (_fp) == EOF \ + ? EOF \ + : *(unsigned char *) (_fp)->_IO_read_ptr) #define _IO_putc_unlocked(_ch, _fp) __putc_unlocked_body (_ch, _fp) -# define _IO_getwc_unlocked(_fp) \ - (_IO_BE ((_fp)->_wide_data == NULL \ - || ((_fp)->_wide_data->_IO_read_ptr \ - >= (_fp)->_wide_data->_IO_read_end), 0) \ +# define _IO_getwc_unlocked(_fp) \ + (__glibc_unlikely ((_fp)->_wide_data == NULL \ + || ((_fp)->_wide_data->_IO_read_ptr \ + >= (_fp)->_wide_data->_IO_read_end)) \ ? __wuflow (_fp) : (wint_t) *(_fp)->_wide_data->_IO_read_ptr++) -# define _IO_putwc_unlocked(_wch, _fp) \ - (_IO_BE ((_fp)->_wide_data == NULL \ - || ((_fp)->_wide_data->_IO_write_ptr \ - >= (_fp)->_wide_data->_IO_write_end), 0) \ +# define _IO_putwc_unlocked(_wch, _fp) \ + (__glibc_unlikely ((_fp)->_wide_data == NULL \ + || ((_fp)->_wide_data->_IO_write_ptr \ + >= (_fp)->_wide_data->_IO_write_end)) \ ? __woverflow (_fp, _wch) \ : (wint_t) (*(_fp)->_wide_data->_IO_write_ptr++ = (_wch))) @@ -304,7 +296,7 @@ extern int _IO_fwide (FILE *__fp, int __mode) __THROW; #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) # define _IO_fwide_maybe_incompatible \ - (__builtin_expect (&_IO_stdin_used == NULL, 0)) + (__glibc_unlikely (&_IO_stdin_used == NULL)) extern const int _IO_stdin_used; weak_extern (_IO_stdin_used); #else diff --git a/libio/libioP.h b/libio/libioP.h index 57fd60567c..5064bdf69d 100644 --- a/libio/libioP.h +++ b/libio/libioP.h @@ -690,10 +690,6 @@ extern off64_t _IO_seekoff_unlocked (FILE *, off64_t, int, int) extern off64_t _IO_seekpos_unlocked (FILE *, off64_t, int) attribute_hidden; -#ifndef EOF -# define EOF (-1) -#endif - #if _G_HAVE_MMAP # include diff --git a/libio/oldiofdopen.c b/libio/oldiofdopen.c index be670e8da4..17930c2786 100644 --- a/libio/oldiofdopen.c +++ b/libio/oldiofdopen.c @@ -102,9 +102,6 @@ _IO_old_fdopen (int fd, const char *mode) _IO_old_init (&new_f->fp.file._file, 0); _IO_JUMPS_FILE_plus (&new_f->fp) = &_IO_old_file_jumps; _IO_old_file_init_internal ((struct _IO_FILE_plus *) &new_f->fp); -#if !_IO_UNIFIED_JUMPTABLES - new_f->fp.vtable = NULL; -#endif if (_IO_old_file_attach (&new_f->fp.file._file, fd) == NULL) { _IO_un_link ((struct _IO_FILE_plus *) &new_f->fp); diff --git a/libio/oldiofopen.c b/libio/oldiofopen.c index f4ead0c129..f0a67104fb 100644 --- a/libio/oldiofopen.c +++ b/libio/oldiofopen.c @@ -52,9 +52,6 @@ _IO_old_fopen (const char *filename, const char *mode) _IO_old_init (&new_f->fp.file._file, 0); _IO_JUMPS_FILE_plus (&new_f->fp) = &_IO_old_file_jumps; _IO_old_file_init_internal ((struct _IO_FILE_plus *) &new_f->fp); -#if !_IO_UNIFIED_JUMPTABLES - new_f->fp.vtable = NULL; -#endif if (_IO_old_file_fopen ((FILE *) &new_f->fp, filename, mode) != NULL) return (FILE *) &new_f->fp; _IO_un_link ((struct _IO_FILE_plus *) &new_f->fp); diff --git a/libio/oldiopopen.c b/libio/oldiopopen.c index 42cab4e8f7..e47965db0a 100644 --- a/libio/oldiopopen.c +++ b/libio/oldiopopen.c @@ -157,9 +157,6 @@ _IO_old_popen (const char *command, const char *mode) _IO_old_init (fp, 0); _IO_JUMPS_FILE_plus (&new_f->fpx.file) = &_IO_old_proc_jumps; _IO_old_file_init_internal ((struct _IO_FILE_plus *) &new_f->fpx.file); -#if !_IO_UNIFIED_JUMPTABLES - new_f->fpx.file.vtable = NULL; -#endif if (_IO_old_proc_open (fp, command, mode) != NULL) return fp; _IO_un_link ((struct _IO_FILE_plus *) &new_f->fpx.file);