diff options
author | Florian Weimer <fweimer@redhat.com> | 2017-08-31 14:07:23 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2017-08-31 14:48:25 +0200 |
commit | 5f0704b66cea73cf2ab148ec4cff645cc301fd8c (patch) | |
tree | 13817263f75cf2e72b3bc0ce9abafa4b9b7398e8 | |
parent | 5129873a8e913e207e5f7b4b521c72f41a1bbf6d (diff) | |
download | glibc-5f0704b66cea73cf2ab148ec4cff645cc301fd8c.tar.gz glibc-5f0704b66cea73cf2ab148ec4cff645cc301fd8c.tar.xz glibc-5f0704b66cea73cf2ab148ec4cff645cc301fd8c.zip |
libio: Assume _LIBC, weak_alias, errno, (__set_)errno &c are defined
Do not define _POSIX_SOURCE.
48 files changed, 166 insertions, 751 deletions
diff --git a/ChangeLog b/ChangeLog index c94f4c1639..f9625dec80 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,98 @@ 2017-08-31 Florian Weimer <fweimer@redhat.com> + * libio/fcloseall.c: Assume weak_alias is defined. + * libio/feof.c: Likewise. + * libio/fileno.c: Likewise. + * libio/fileops.c: Assume _LIBC, errno, __set_errno are defined. + (_POSIX_SOURCE, open, lseek, read, write): Remove macro + definitions. + (_IO_file_open): Call __open directly. + (_IO_new_file_sync): Assume ESPIPE is defined. + (_IO_file_seekoff_maybe_mmap): Call __read directly. + (_IO_new_file_write): Call __write directly. + * libio/ftello.c (__ftello): Assume EIO, EOVERFLOW are defined. + * libio/ftello64.c (__ftello64): Assume EIO is defined. + * libio/genops.c: Assume _LIBC is defined. + (save_for_backup): Remove internal_function. + * libio/getc.c: Assume weak_alias is defined. + * libio/getwc.c: Likewise. + * libio/iofclose.c: Assume _LIBC is defined. + * libio/iofdopen.c: Likewise. + (_IO_fcntl): Remove macro definition. + (_IO_new_fdopen): Assume F_GETFL, F_SETFL, O_ACCMODE are defined. + Call __fcntl directly. + * libio/iofflush.c: Assume weak_alias is defined. + * libio/iofgetpos.c (_IO_new_fgetpos): Assume EIO, EOVERFLOW are + defined. + * libio/iofgetpos64.c (_IO_new_fgetpos64): Assume EIO is defined. + * libio/iofgets.c: Likewise. + * libio/iofopen.c: Assume _LIBC is defined. + * libio/iofopen64.c: Assume _LIBC, weak_alias are defined. + * libio/iofputs.c: Assume weak_alias is defined. + * libio/iofread.c: Likewise. + * libio/iofsetpos.c (_IO_new_fsetpos): Assume EIO is defined. + * libio/iofsetpos64.c (_IO_new_fsetpos64): Likewise. + * libio/ioftell.c: Assume weak_alias is defined. + (_IO_ftell): Assume EIO, EOVERFLOW are defined. + * libio/iofwide.c: Assume _LIBC is defined. + (_IO_fwide): Drop SHARED conditional because it is implied by + SHLIB_COMPAT. + * libio/iofwrite.c: Assume weak_alias is defined. + * libio/iogetdelim.c: Likewise. + * libio/iogets.c: Assume _LIBC, weak_alias are defined. + * libio/iogetwline.c (wmemcpy): Remove macro definition. + (_IO_getwline): Call __wmemcpy directly. + * libio/iopopen.c: Assume _LIBC is defined. + (_POSIX_SOURCE, _IO_fork, _IO_dup2, _IO_waitpid, _IO_execl) + (_IO_close): Remove macro definitions. + (_IO_new_proc_open): Call __fork, __dup2, __close_nocancel, execl, + _exit directly. + (_IO_new_proc_close): Call __close_nocancel, __waitpid_nocancel + directly. + * libio/ioputs.c: Assume weak_alias is defined. + * libio/ioseekoff.c: Assume errno, __set_errno are defined. + * libio/iosetbuffer.c: Assume weak_alias is defined. + * libio/iosetvbuf.c: Likewise. + * libio/ioungetc.c: Likewise. + * libio/libioP.h: Assume _LIBC, __GLIBC__, libc_hidden_proto, + libc_hidden_def, libc_hidden_weak, NULL are defined. + (mmap, munmap, ftruncate, OS_FSTAT): Remove macro definitions. + * libio/oldfilepos.c: Assume _LIBC, errno, __set_errno are + defined. + (_POSIX_SOURCE, open, lseek, read, write): Remove macro + definitions. + (_IO_old_file_init_internal): Drop SHARED conditional because it + is implied by SHLIB_COMPAT. + (_IO_old_file_fopen): Call __open directly. + (_IO_old_file_sync): Assume ESPIPE is defined. + (_IO_old_file_write): Call __write directly. + * libio/oldfdopen.c (_IO_fcntl): Remove macro definition. + (_IO_old_fdopen): Assume F_GETFL, O_ACCMODE, F_SETFL are defined. + Call __fcntl directly. + * libio/oldiofgetpos.c: Assume weak_alias is defined. + (_IO_old_fgetpos): Assume EIO is defined. + * libio/oldiofgetpos64.c: Assume weak_alias is defined. + (_IO_old_fgetpos64): Assume EIO is defined. + * libio/oldiofsetpos.c: Assume weak_alias is defined. + (_IO_old_fsetpos): Assume EIO is defined. + * libio/oldiofsetpos64.c: Assume weak_alias is defined. + (_IO_old_fsetpos64): Assume EIO is defined. + * libio/oldiopopen.c: Assume _LIBC is defined. + (_POSIX_SOURCE, _IO_fork, _IO_dup2, _IO_waitpid, _IO_execl) + (_IO_close): Remove macro definitions. + (_IO_old_proc_open): Call __pipe, __close, __dup2, execl, _exit + directly. + (_IO_old_proc_close): Call __close, __waitpid directly. + * libio/put.c: Assume weak_alias is defined. + * libio/stdfiles.c: Assume _LIBC is defined. + * libio/stdio.c: Likewise. + * libio/wfileops.c: Likewise. + (_IO_wfile_sync): Assume ESPIPE is defined. + * libio/wgenops.c: Assume _LIBC is defined. + (save_for_wbackup): Remove internal_function. + +2017-08-31 Florian Weimer <fweimer@redhat.com> + * malloc/malloc.c (top_check): Change return type to void. Remove internal_function. * malloc/hooks.c (top_check): Likewise. diff --git a/libio/fcloseall.c b/libio/fcloseall.c index 59c33ccf48..80e1ae01d7 100644 --- a/libio/fcloseall.c +++ b/libio/fcloseall.c @@ -34,6 +34,4 @@ __fcloseall (void) return _IO_cleanup (); } -#ifdef weak_alias weak_alias (__fcloseall, fcloseall) -#endif diff --git a/libio/feof.c b/libio/feof.c index 8890a5f51f..72dde1f82d 100644 --- a/libio/feof.c +++ b/libio/feof.c @@ -40,11 +40,9 @@ _IO_feof (_IO_FILE *fp) return result; } -#ifdef weak_alias weak_alias (_IO_feof, feof) #ifndef _IO_MTSAFE_IO #undef feof_unlocked weak_alias (_IO_feof, feof_unlocked) #endif -#endif diff --git a/libio/ferror.c b/libio/ferror.c index d10fcd9fff..ab6185bade 100644 --- a/libio/ferror.c +++ b/libio/ferror.c @@ -40,11 +40,9 @@ _IO_ferror (_IO_FILE *fp) return result; } -#ifdef weak_alias weak_alias (_IO_ferror, ferror) #ifndef _IO_MTSAFE_IO #undef ferror_unlocked weak_alias (_IO_ferror, ferror_unlocked) #endif -#endif diff --git a/libio/fileno.c b/libio/fileno.c index b78d4a1461..d4d749d4d0 100644 --- a/libio/fileno.c +++ b/libio/fileno.c @@ -44,10 +44,8 @@ libc_hidden_def (__fileno) weak_alias (__fileno, fileno) libc_hidden_weak (fileno) -#ifdef weak_alias /* The fileno implementation for libio does not require locking because it only accesses once a single variable and this is already atomic (at least at thread level). Therefore we don't test _IO_MTSAFE_IO here. */ weak_alias (__fileno, fileno_unlocked) -#endif diff --git a/libio/fileops.c b/libio/fileops.c index b8b02ba261..a9e948f31e 100644 --- a/libio/fileops.c +++ b/libio/fileops.c @@ -26,9 +26,6 @@ in files containing the exception. */ -#ifndef _POSIX_SOURCE -# define _POSIX_SOURCE -#endif #include "libioP.h" #include <assert.h> #include <fcntl.h> @@ -40,48 +37,14 @@ #include <errno.h> #include <unistd.h> #include <stdlib.h> -#if _LIBC -# include "../wcsmbs/wcsmbsload.h" -# include "../iconv/gconv_charset.h" -# include "../iconv/gconv_int.h" -# include <shlib-compat.h> -# include <not-cancel.h> -# include <kernel-features.h> -#endif -#ifndef errno -extern int errno; -#endif -#ifndef __set_errno -# define __set_errno(Val) errno = (Val) -#endif - - -#ifdef _LIBC -# define open(Name, Flags, Prot) __open (Name, Flags, Prot) -# define lseek(FD, Offset, Whence) __lseek (FD, Offset, Whence) -# define read(FD, Buf, NBytes) __read (FD, Buf, NBytes) -# define write(FD, Buf, NBytes) __write (FD, Buf, NBytes) -#else -# define _IO_new_do_write _IO_do_write -# define _IO_new_file_attach _IO_file_attach -# define _IO_new_file_close_it _IO_file_close_it -# define _IO_new_file_finish _IO_file_finish -# define _IO_new_file_fopen _IO_file_fopen -# define _IO_new_file_init _IO_file_init -# define _IO_new_file_setbuf _IO_file_setbuf -# define _IO_new_file_sync _IO_file_sync -# define _IO_new_file_overflow _IO_file_overflow -# define _IO_new_file_seekoff _IO_file_seekoff -# define _IO_new_file_underflow _IO_file_underflow -# define _IO_new_file_write _IO_file_write -# define _IO_new_file_xsputn _IO_file_xsputn -#endif +#include "../wcsmbs/wcsmbsload.h" +#include "../iconv/gconv_charset.h" +#include "../iconv/gconv_int.h" +#include <shlib-compat.h> +#include <not-cancel.h> +#include <kernel-features.h> - -#ifdef _LIBC extern struct __gconv_trans_data __libio_translit attribute_hidden; -#endif - /* An fstream can be in at most one of put mode, get mode, or putback mode. Putback mode is a variant of get mode. @@ -180,7 +143,6 @@ _IO_new_file_close_it (_IO_FILE *fp) ? _IO_SYSCLOSE (fp) : 0); /* Free buffer. */ -#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T if (fp->_mode > 0) { if (_IO_have_wbackup (fp)) @@ -189,7 +151,6 @@ _IO_new_file_close_it (_IO_FILE *fp) _IO_wsetg (fp, NULL, NULL, NULL); _IO_wsetp (fp, NULL, NULL); } -#endif _IO_setb (fp, NULL, NULL, 0); _IO_setg (fp, NULL, NULL, NULL); _IO_setp (fp, NULL, NULL); @@ -221,15 +182,11 @@ _IO_file_open (_IO_FILE *fp, const char *filename, int posix_mode, int prot, int read_write, int is32not64) { int fdesc; -#ifdef _LIBC if (__glibc_unlikely (fp->_flags2 & _IO_FLAGS2_NOTCANCEL)) fdesc = __open_nocancel (filename, posix_mode | (is32not64 ? 0 : O_LARGEFILE), prot); else - fdesc = open (filename, posix_mode | (is32not64 ? 0 : O_LARGEFILE), prot); -#else - fdesc = open (filename, posix_mode, prot); -#endif + fdesc = __open (filename, posix_mode | (is32not64 ? 0 : O_LARGEFILE), prot); if (fdesc < 0) return NULL; fp->_fileno = fdesc; @@ -260,10 +217,8 @@ _IO_new_file_fopen (_IO_FILE *fp, const char *filename, const char *mode, int oprot = 0666; int i; _IO_FILE *result; -#ifdef _LIBC const char *cs; const char *last_recognized; -#endif if (_IO_file_is_open (fp)) return 0; @@ -287,9 +242,7 @@ _IO_new_file_fopen (_IO_FILE *fp, const char *filename, const char *mode, __set_errno (EINVAL); return NULL; } -#ifdef _LIBC last_recognized = mode; -#endif for (i = 1; i < 7; ++i) { switch (*++mode) @@ -299,20 +252,14 @@ _IO_new_file_fopen (_IO_FILE *fp, const char *filename, const char *mode, case '+': omode = O_RDWR; read_write &= _IO_IS_APPENDING; -#ifdef _LIBC last_recognized = mode; -#endif continue; case 'x': oflags |= O_EXCL; -#ifdef _LIBC last_recognized = mode; -#endif continue; case 'b': -#ifdef _LIBC last_recognized = mode; -#endif continue; case 'm': fp->_flags2 |= _IO_FLAGS2_MMAP; @@ -874,10 +821,8 @@ _IO_new_file_sync (_IO_FILE *fp) _IO_off64_t new_pos = _IO_SYSSEEK (fp, delta, 1); if (new_pos != (_IO_off64_t) EOF) fp->_IO_read_end = fp->_IO_read_ptr; -#ifdef ESPIPE else if (errno == ESPIPE) ; /* Ignore error from unseekable devices. */ -#endif else retval = EOF; } @@ -1205,7 +1150,7 @@ _IO_file_read (_IO_FILE *fp, void *buf, _IO_ssize_t size) { return (__builtin_expect (fp->_flags2 & _IO_FLAGS2_NOTCANCEL, 0) ? __read_nocancel (fp->_fileno, buf, size) - : read (fp->_fileno, buf, size)); + : __read (fp->_fileno, buf, size)); } libc_hidden_def (_IO_file_read) @@ -1252,7 +1197,7 @@ _IO_new_file_write (_IO_FILE *f, const void *data, _IO_ssize_t n) _IO_ssize_t count = (__builtin_expect (f->_flags2 & _IO_FLAGS2_NOTCANCEL, 0) ? __write_nocancel (f->_fileno, data, to_do) - : write (f->_fileno, data, to_do)); + : __write (f->_fileno, data, to_do)); if (count < 0) { f->_flags |= _IO_ERR_SEEN; @@ -1307,12 +1252,7 @@ _IO_new_file_xsputn (_IO_FILE *f, const void *data, _IO_size_t n) { if (count > to_do) count = to_do; -#ifdef _LIBC f->_IO_write_ptr = __mempcpy (f->_IO_write_ptr, s, count); -#else - memcpy (f->_IO_write_ptr, s, count); - f->_IO_write_ptr += count; -#endif s += count; to_do -= count; } @@ -1380,12 +1320,7 @@ _IO_file_xsgetn (_IO_FILE *fp, void *data, _IO_size_t n) { if (have > 0) { -#ifdef _LIBC s = __mempcpy (s, fp->_IO_read_ptr, have); -#else - memcpy (s, fp->_IO_read_ptr, have); - s += have; -#endif want -= have; fp->_IO_read_ptr += have; } @@ -1458,12 +1393,7 @@ _IO_file_xsgetn_mmap (_IO_FILE *fp, void *data, _IO_size_t n) { if (__glibc_unlikely (_IO_in_backup (fp))) { -#ifdef _LIBC s = __mempcpy (s, read_ptr, have); -#else - memcpy (s, read_ptr, have); - s += have; -#endif n -= have; _IO_switch_to_main_get_area (fp); read_ptr = fp->_IO_read_ptr; @@ -1488,12 +1418,7 @@ _IO_file_xsgetn_mmap (_IO_FILE *fp, void *data, _IO_size_t n) if (have != 0) { have = MIN (have, n); -#ifdef _LIBC s = __mempcpy (s, read_ptr, have); -#else - memcpy (s, read_ptr, have); - s += have; -#endif fp->_IO_read_ptr = read_ptr + have; } @@ -1510,7 +1435,6 @@ _IO_file_xsgetn_maybe_mmap (_IO_FILE *fp, void *data, _IO_size_t n) return _IO_XSGETN (fp, data, n); } -#ifdef _LIBC versioned_symbol (libc, _IO_new_do_write, _IO_do_write, GLIBC_2_1); versioned_symbol (libc, _IO_new_file_attach, _IO_file_attach, GLIBC_2_1); versioned_symbol (libc, _IO_new_file_close_it, _IO_file_close_it, GLIBC_2_1); @@ -1524,7 +1448,6 @@ versioned_symbol (libc, _IO_new_file_seekoff, _IO_file_seekoff, GLIBC_2_1); versioned_symbol (libc, _IO_new_file_underflow, _IO_file_underflow, GLIBC_2_1); versioned_symbol (libc, _IO_new_file_write, _IO_file_write, GLIBC_2_1); versioned_symbol (libc, _IO_new_file_xsputn, _IO_file_xsputn, GLIBC_2_1); -#endif const struct _IO_jump_t _IO_file_jumps libio_vtable = { diff --git a/libio/ftello.c b/libio/ftello.c index 38863e16c3..9791e835c6 100644 --- a/libio/ftello.c +++ b/libio/ftello.c @@ -45,17 +45,13 @@ __ftello (_IO_FILE *fp) _IO_release_lock (fp); if (pos == _IO_pos_BAD) { -#ifdef EIO if (errno == 0) __set_errno (EIO); -#endif return -1L; } if ((_IO_off64_t) (off_t) pos != pos) { -#ifdef EOVERFLOW __set_errno (EOVERFLOW); -#endif return -1L; } return pos; diff --git a/libio/ftello64.c b/libio/ftello64.c index edb10e0880..15518af7a6 100644 --- a/libio/ftello64.c +++ b/libio/ftello64.c @@ -46,10 +46,8 @@ ftello64 (_IO_FILE *fp) _IO_release_lock (fp); if (pos == _IO_pos_BAD) { -#ifdef EIO if (errno == 0) __set_errno (EIO); -#endif return -1L; } return pos; diff --git a/libio/genops.c b/libio/genops.c index 6ad7346cae..e3f372520a 100644 --- a/libio/genops.c +++ b/libio/genops.c @@ -30,9 +30,7 @@ #include <stdlib.h> #include <string.h> #include <stdbool.h> -#ifdef _LIBC #include <sched.h> -#endif #ifdef _IO_MTSAFE_IO static _IO_lock_t list_all_lock = _IO_lock_initializer; @@ -233,16 +231,7 @@ __overflow (_IO_FILE *f, int ch) } libc_hidden_def (__overflow) -static int save_for_backup (_IO_FILE *fp, char *end_p) -#ifdef _LIBC - internal_function -#endif - ; - static int -#ifdef _LIBC -internal_function -#endif save_for_backup (_IO_FILE *fp, char *end_p) { /* Append [_IO_read_base..end_p] to backup area. */ @@ -263,20 +252,11 @@ save_for_backup (_IO_FILE *fp, char *end_p) return EOF; /* FIXME */ if (least_mark < 0) { -#ifdef _LIBC __mempcpy (__mempcpy (new_buffer + avail, fp->_IO_save_end + least_mark, -least_mark), fp->_IO_read_base, end_p - fp->_IO_read_base); -#else - memcpy (new_buffer + avail, - fp->_IO_save_end + least_mark, - -least_mark); - memcpy (new_buffer + avail - least_mark, - fp->_IO_read_base, - end_p - fp->_IO_read_base); -#endif } else memcpy (new_buffer + avail, @@ -314,10 +294,8 @@ save_for_backup (_IO_FILE *fp, char *end_p) int __underflow (_IO_FILE *fp) { -#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T if (_IO_vtable_offset (fp) == 0 && _IO_fwide (fp, -1) != -1) return EOF; -#endif if (fp->_mode == 0) _IO_fwide (fp, -1); @@ -346,10 +324,8 @@ libc_hidden_def (__underflow) int __uflow (_IO_FILE *fp) { -#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T if (_IO_vtable_offset (fp) == 0 && _IO_fwide (fp, -1) != -1) return EOF; -#endif if (fp->_mode == 0) _IO_fwide (fp, -1); @@ -434,12 +410,7 @@ _IO_default_xsputn (_IO_FILE *f, const void *data, _IO_size_t n) count = more; if (count > 20) { -#ifdef _LIBC f->_IO_write_ptr = __mempcpy (f->_IO_write_ptr, s, count); -#else - memcpy (f->_IO_write_ptr, s, count); - f->_IO_write_ptr += count; -#endif s += count; } else if (count) @@ -483,12 +454,7 @@ _IO_default_xsgetn (_IO_FILE *fp, void *data, _IO_size_t n) count = more; if (count > 20) { -#ifdef _LIBC s = __mempcpy (s, fp->_IO_read_ptr, count); -#else - memcpy (s, fp->_IO_read_ptr, count); - s += count; -#endif fp->_IO_read_ptr += count; } else if (count) @@ -633,7 +599,6 @@ _IO_no_init (_IO_FILE *fp, int flags, int orientation, { _IO_old_init (fp, flags); fp->_mode = orientation; -#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T if (orientation >= 0) { fp->_wide_data = wd; @@ -655,7 +620,6 @@ _IO_no_init (_IO_FILE *fp, int flags, int orientation, /* Cause predictable crash when a wide function is called on a byte stream. */ fp->_wide_data = (struct _IO_wide_data *) -1L; -#endif fp->_freeres_list = NULL; } @@ -811,11 +775,9 @@ _IO_flush_all_lockp (int do_lock) _IO_flockfile (fp); if (((fp->_mode <= 0 && fp->_IO_write_ptr > fp->_IO_write_base) -#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T || (_IO_vtable_offset (fp) == 0 && fp->_mode > 0 && (fp->_wide_data->_IO_write_ptr > fp->_wide_data->_IO_write_base)) -#endif ) && _IO_OVERFLOW (fp, EOF) == EOF) result = EOF; @@ -892,9 +854,7 @@ _IO_flush_all_linebuffered (void) #endif } libc_hidden_def (_IO_flush_all_linebuffered) -#ifdef _LIBC weak_alias (_IO_flush_all_linebuffered, _flushlbf) -#endif /* The following is a bit tricky. In general, we want to unbuffer the diff --git a/libio/getc.c b/libio/getc.c index fd66ef93cf..2df0fcc983 100644 --- a/libio/getc.c +++ b/libio/getc.c @@ -44,7 +44,6 @@ _IO_getc (FILE *fp) #undef getc -#ifdef weak_alias weak_alias (_IO_getc, getc) weak_alias (_IO_getc, fgetc) @@ -53,4 +52,3 @@ weak_alias (_IO_getc, fgetc) weak_alias (_IO_getc, getc_unlocked) weak_alias (_IO_getc, fgetc_unlocked) #endif -#endif diff --git a/libio/getwc.c b/libio/getwc.c index 9959aab2f0..fbc2bb1ab7 100644 --- a/libio/getwc.c +++ b/libio/getwc.c @@ -43,7 +43,5 @@ _IO_getwc (FILE *fp) #undef getwc -#ifdef weak_alias weak_alias (_IO_getwc, getwc) weak_alias (_IO_getwc, fgetwc) -#endif diff --git a/libio/iofclose.c b/libio/iofclose.c index 9c51c4efd2..f5dc3db2a3 100644 --- a/libio/iofclose.c +++ b/libio/iofclose.c @@ -26,13 +26,8 @@ #include "libioP.h" #include <stdlib.h> -#if _LIBC -# include "../iconv/gconv_int.h" -# include <shlib-compat.h> -#else -# define SHLIB_COMPAT(a, b, c) 0 -# define _IO_new_fclose fclose -#endif +#include "../iconv/gconv_int.h" +#include <shlib-compat.h> int _IO_new_fclose (_IO_FILE *fp) @@ -62,7 +57,6 @@ _IO_new_fclose (_IO_FILE *fp) _IO_FINISH (fp); if (fp->_mode > 0) { -#if _LIBC /* This stream has a wide orientation. This means we have to free the conversion functions. */ struct _IO_codecvt *cc = fp->_codecvt; @@ -71,7 +65,6 @@ _IO_new_fclose (_IO_FILE *fp) __gconv_release_step (cc->__cd_in.__cd.__steps); __gconv_release_step (cc->__cd_out.__cd.__steps); __libc_lock_unlock (__gconv_lock); -#endif } else { @@ -87,8 +80,6 @@ _IO_new_fclose (_IO_FILE *fp) return status; } -#ifdef _LIBC versioned_symbol (libc, _IO_new_fclose, _IO_fclose, GLIBC_2_1); strong_alias (_IO_new_fclose, __new_fclose) versioned_symbol (libc, __new_fclose, fclose, GLIBC_2_1); -#endif diff --git a/libio/iofdopen.c b/libio/iofdopen.c index 2a1df4680a..90346a4ece 100644 --- a/libio/iofdopen.c +++ b/libio/iofdopen.c @@ -28,17 +28,7 @@ #include "libioP.h" #include <fcntl.h> -#ifdef _LIBC -# include <shlib-compat.h> -#endif - -#ifndef _IO_fcntl -#ifdef _LIBC -#define _IO_fcntl __fcntl -#else -#define _IO_fcntl fcntl -#endif -#endif +#include <shlib-compat.h> _IO_FILE * _IO_new_fdopen (int fd, const char *mode) @@ -95,11 +85,7 @@ _IO_new_fdopen (int fd, const char *mode) } break; } -#ifdef F_GETFL - int fd_flags = _IO_fcntl (fd, F_GETFL); -#ifndef O_ACCMODE -#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) -#endif + int fd_flags = __fcntl (fd, F_GETFL); if (fd_flags == -1) return NULL; @@ -129,12 +115,9 @@ _IO_new_fdopen (int fd, const char *mode) if ((read_write & _IO_IS_APPENDING) && !(fd_flags & O_APPEND)) { do_seek = true; -#ifdef F_SETFL - if (_IO_fcntl (fd, F_SETFL, fd_flags | O_APPEND) == -1) -#endif + if (__fcntl (fd, F_SETFL, fd_flags | O_APPEND) == -1) return NULL; } -#endif new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE)); if (new_f == NULL) diff --git a/libio/iofflush.c b/libio/iofflush.c index c6b1f15946..b312fd23ab 100644 --- a/libio/iofflush.c +++ b/libio/iofflush.c @@ -44,7 +44,6 @@ _IO_fflush (_IO_FILE *fp) } libc_hidden_def (_IO_fflush) -#ifdef weak_alias weak_alias (_IO_fflush, fflush) libc_hidden_weak (fflush) @@ -54,4 +53,3 @@ libc_hidden_def (__fflush_unlocked) weak_alias (_IO_fflush, fflush_unlocked) libc_hidden_weak (fflush_unlocked) #endif -#endif diff --git a/libio/iofgetpos.c b/libio/iofgetpos.c index c1330dee29..f3034528f1 100644 --- a/libio/iofgetpos.c +++ b/libio/iofgetpos.c @@ -56,17 +56,13 @@ _IO_new_fgetpos (_IO_FILE *fp, _IO_fpos_t *posp) { /* ANSI explicitly requires setting errno to a positive value on failure. */ -#ifdef EIO if (errno == 0) __set_errno (EIO); -#endif result = EOF; } else if ((_IO_off64_t) (__typeof (posp->__pos)) pos != pos) { -#ifdef EOVERFLOW __set_errno (EOVERFLOW); -#endif result = EOF; } else diff --git a/libio/iofgetpos64.c b/libio/iofgetpos64.c index 340dded802..e9c464d108 100644 --- a/libio/iofgetpos64.c +++ b/libio/iofgetpos64.c @@ -47,10 +47,8 @@ _IO_new_fgetpos64 (_IO_FILE *fp, _IO_fpos64_t *posp) { /* ANSI explicitly requires setting errno to a positive value on failure. */ -# ifdef EIO if (errno == 0) __set_errno (EIO); -# endif result = EOF; } else diff --git a/libio/iofgets.c b/libio/iofgets.c index 8643e7c6cc..232d28ef81 100644 --- a/libio/iofgets.c +++ b/libio/iofgets.c @@ -66,7 +66,6 @@ _IO_fgets (char *buf, int n, _IO_FILE *fp) return result; } -#ifdef weak_alias weak_alias (_IO_fgets, fgets) # ifndef _IO_MTSAFE_IO @@ -75,4 +74,3 @@ libc_hidden_def (__fgets_unlocked) weak_alias (_IO_fgets, fgets_unlocked) libc_hidden_weak (fgets_unlocked) # endif -#endif diff --git a/libio/iofopen.c b/libio/iofopen.c index 3d30dfd94a..62d0332994 100644 --- a/libio/iofopen.c +++ b/libio/iofopen.c @@ -28,11 +28,7 @@ #include <fcntl.h> #include <stdlib.h> #include <stddef.h> -#ifdef _LIBC -# include <shlib-compat.h> -#else -# define _IO_new_fopen fopen -#endif +#include <shlib-compat.h> _IO_FILE * __fopen_maybe_mmap (_IO_FILE *fp) @@ -73,11 +69,7 @@ __fopen_internal (const char *filename, const char *mode, int is32) #ifdef _IO_MTSAFE_IO new_f->fp.file._lock = &new_f->lock; #endif -#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T _IO_no_init (&new_f->fp.file, 0, 0, &new_f->wd, &_IO_wfile_jumps); -#else - _IO_no_init (&new_f->fp.file, 1, 0, NULL, NULL); -#endif _IO_JUMPS (&new_f->fp) = &_IO_file_jumps; _IO_new_file_init_internal (&new_f->fp); #if !_IO_UNIFIED_JUMPTABLES @@ -97,7 +89,6 @@ _IO_new_fopen (const char *filename, const char *mode) return __fopen_internal (filename, mode, 1); } -#ifdef _LIBC strong_alias (_IO_new_fopen, __new_fopen) versioned_symbol (libc, _IO_new_fopen, _IO_fopen, GLIBC_2_1); versioned_symbol (libc, __new_fopen, fopen, GLIBC_2_1); @@ -106,4 +97,3 @@ versioned_symbol (libc, __new_fopen, fopen, GLIBC_2_1); weak_alias (_IO_new_fopen, _IO_fopen64) weak_alias (_IO_new_fopen, fopen64) # endif -#endif diff --git a/libio/iofopen64.c b/libio/iofopen64.c index 1ec2375990..9230fc173f 100644 --- a/libio/iofopen64.c +++ b/libio/iofopen64.c @@ -29,7 +29,7 @@ #include <stdlib.h> /* iofopen.c defines _IO_fopen64/fopen64 as aliases if O_LARGEFILE==0. */ -#if !defined _LIBC || (defined O_LARGEFILE && O_LARGEFILE != 0) +#if defined O_LARGEFILE && O_LARGEFILE != 0 _IO_FILE * _IO_fopen64 (const char *filename, const char *mode) @@ -37,8 +37,6 @@ _IO_fopen64 (const char *filename, const char *mode) return __fopen_internal (filename, mode, 0); } -#ifdef weak_alias weak_alias (_IO_fopen64, fopen64) -#endif #endif diff --git a/libio/iofputs.c b/libio/iofputs.c index 379f9b0695..c40efc0644 100644 --- a/libio/iofputs.c +++ b/libio/iofputs.c @@ -42,7 +42,6 @@ _IO_fputs (const char *str, _IO_FILE *fp) } libc_hidden_def (_IO_fputs) -#ifdef weak_alias weak_alias (_IO_fputs, fputs) # ifndef _IO_MTSAFE_IO @@ -51,4 +50,3 @@ libc_hidden_def (__fputs_unlocked) weak_alias (_IO_fputs, fputs_unlocked) libc_hidden_ver (_IO_fputs, fputs_unlocked) # endif -#endif diff --git a/libio/iofread.c b/libio/iofread.c index c6922d3dbf..8bb948ef4a 100644 --- a/libio/iofread.c +++ b/libio/iofread.c @@ -41,7 +41,6 @@ _IO_fread (void *buf, _IO_size_t size, _IO_size_t count, _IO_FILE *fp) } libc_hidden_def (_IO_fread) -#ifdef weak_alias weak_alias (_IO_fread, fread) # ifndef _IO_MTSAFE_IO @@ -49,4 +48,3 @@ strong_alias (_IO_fread, __fread_unlocked) libc_hidden_def (__fread_unlocked) weak_alias (_IO_fread, fread_unlocked) # endif -#endif diff --git a/libio/iofsetpos.c b/libio/iofsetpos.c index 3809b6a0b0..1a71867e59 100644 --- a/libio/iofsetpos.c +++ b/libio/iofsetpos.c @@ -49,10 +49,8 @@ _IO_new_fsetpos (_IO_FILE *fp, const _IO_fpos_t *posp) { /* ANSI explicitly requires setting errno to a positive value on failure. */ -#ifdef EIO if (errno == 0) __set_errno (EIO); -#endif result = EOF; } else diff --git a/libio/iofsetpos64.c b/libio/iofsetpos64.c index 04b4ddf29f..d3166ea20b 100644 --- a/libio/iofsetpos64.c +++ b/libio/iofsetpos64.c @@ -41,10 +41,8 @@ _IO_new_fsetpos64 (_IO_FILE *fp, const _IO_fpos64_t *posp) { /* ANSI explicitly requires setting errno to a positive value on failure. */ -#ifdef EIO if (errno == 0) __set_errno (EIO); -#endif result = EOF; } else diff --git a/libio/ioftell.c b/libio/ioftell.c index 21ba5fc6e3..09d2a1147d 100644 --- a/libio/ioftell.c +++ b/libio/ioftell.c @@ -44,23 +44,17 @@ _IO_ftell (_IO_FILE *fp) _IO_release_lock (fp); if (pos == _IO_pos_BAD) { -#ifdef EIO if (errno == 0) __set_errno (EIO); -#endif return -1L; } if ((_IO_off64_t) (long int) pos != pos) { -#ifdef EOVERFLOW __set_errno (EOVERFLOW); -#endif return -1L; } return pos; } libc_hidden_def (_IO_ftell) -#ifdef weak_alias weak_alias (_IO_ftell, ftell) -#endif diff --git a/libio/iofwide.c b/libio/iofwide.c index 76efb32f5d..9b718c0ccd 100644 --- a/libio/iofwide.c +++ b/libio/iofwide.c @@ -25,22 +25,18 @@ in files containing the exception. */ #include <libioP.h> -#ifdef _LIBC -# include <dlfcn.h> -# include <wchar.h> -#endif +#include <dlfcn.h> +#include <wchar.h> #include <assert.h> #include <stdlib.h> #include <string.h> -#ifdef _LIBC -# include <langinfo.h> -# include <locale/localeinfo.h> -# include <wcsmbs/wcsmbsload.h> -# include <iconv/gconv_int.h> -# include <shlib-compat.h> -# include <sysdep.h> -#endif +#include <langinfo.h> +#include <locale/localeinfo.h> +#include <wcsmbs/wcsmbsload.h> +#include <iconv/gconv_int.h> +#include <shlib-compat.h> +#include <sysdep.h> /* Prototypes of libio's codecvt functions. */ @@ -90,8 +86,7 @@ _IO_fwide (_IO_FILE *fp, int mode) /* Normalize the value. */ mode = mode < 0 ? -1 : (mode == 0 ? 0 : 1); -#if defined SHARED && defined _LIBC \ - && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) if (__builtin_expect (&_IO_stdin_used == NULL, 0) && (fp == _IO_stdin || fp == _IO_stdout || fp == _IO_stderr)) /* This is for a stream in the glibc 2.0 format. */ @@ -114,7 +109,6 @@ _IO_fwide (_IO_FILE *fp, int mode) /* Get the character conversion functions based on the currently selected locale for LC_CTYPE. */ -#ifdef _LIBC { /* Clear the state. We start all over again. */ memset (&fp->_wide_data->_IO_state, '\0', sizeof (__mbstate_t)); @@ -145,41 +139,6 @@ _IO_fwide (_IO_FILE *fp, int mode) = __GCONV_IS_LAST | __GCONV_TRANSLIT; cc->__cd_out.__cd.__data[0].__statep = &fp->_wide_data->_IO_state; } -#else -# ifdef _GLIBCPP_USE_WCHAR_T - { - /* Determine internal and external character sets. - - XXX For now we make our life easy: we assume a fixed internal - encoding (as most sane systems have; hi HP/UX!). If somebody - cares about systems which changing internal charsets they - should come up with a solution for the determination of the - currently used internal character set. */ - const char *internal_ccs = _G_INTERNAL_CCS; - const char *external_ccs = NULL; - -# ifdef HAVE_NL_LANGINFO - external_ccs = nl_langinfo (CODESET); -# endif - if (external_ccs == NULL) - external_ccs = "ISO-8859-1"; - - cc->__cd_in = iconv_open (internal_ccs, external_ccs); - if (cc->__cd_in != (iconv_t) -1) - cc->__cd_out = iconv_open (external_ccs, internal_ccs); - - if (cc->__cd_in == (iconv_t) -1 || cc->__cd_out == (iconv_t) -1) - { - if (cc->__cd_in != (iconv_t) -1) - iconv_close (cc->__cd_in); - /* XXX */ - abort (); - } - } -# else -# error "somehow determine this from LC_CTYPE" -# endif -#endif /* From now on use the wide character callback functions. */ _IO_JUMPS_FILE_plus (fp) = fp->_wide_data->_wide_vtable; @@ -200,7 +159,6 @@ do_out (struct _IO_codecvt *codecvt, __mbstate_t *statep, { enum __codecvt_result result; -#ifdef _LIBC struct __gconv_step *gs = codecvt->__cd_out.__cd.__steps; int status; size_t dummy; @@ -240,28 +198,6 @@ do_out (struct _IO_codecvt *codecvt, __mbstate_t *statep, result = __codecvt_error; break; } -#else -# ifdef _GLIBCPP_USE_WCHAR_T - size_t res; - const char *from_start_copy = (const char *) from_start; - size_t from_len = from_end - from_start; - char *to_start_copy = to_start; - size_t to_len = to_end - to_start; - res = iconv (codecvt->__cd_out, &from_start_copy, &from_len, - &to_start_copy, &to_len); - - if (res == 0 || from_len == 0) - result = __codecvt_ok; - else if (to_len < codecvt->__codecvt_do_max_length (codecvt)) - result = __codecvt_partial; - else - result = __codecvt_error; - -# else - /* Decide what to do. */ - result = __codecvt_error; -# endif -#endif return result; } @@ -273,7 +209,6 @@ do_unshift (struct _IO_codecvt *codecvt, __mbstate_t *statep, { enum __codecvt_result result; -#ifdef _LIBC struct __gconv_step *gs = codecvt->__cd_out.__cd.__steps; int status; size_t dummy; @@ -310,25 +245,6 @@ do_unshift (struct _IO_codecvt *codecvt, __mbstate_t *statep, result = __codecvt_error; break; } -#else -# ifdef _GLIBCPP_USE_WCHAR_T - size_t res; - char *to_start_copy = (char *) to_start; - size_t to_len = to_end - to_start; - - res = iconv (codecvt->__cd_out, NULL, NULL, &to_start_copy, &to_len); - - if (res == 0) - result = __codecvt_ok; - else if (to_len < codecvt->__codecvt_do_max_length (codecvt)) - result = __codecvt_partial; - else - result = __codecvt_error; -# else - /* Decide what to do. */ - result = __codecvt_error; -# endif -#endif return result; } @@ -341,7 +257,6 @@ do_in (struct _IO_codecvt *codecvt, __mbstate_t *statep, { enum __codecvt_result result; -#ifdef _LIBC struct __gconv_step *gs = codecvt->__cd_in.__cd.__steps; int status; size_t dummy; @@ -381,30 +296,6 @@ do_in (struct _IO_codecvt *codecvt, __mbstate_t *statep, result = __codecvt_error; break; } -#else -# ifdef _GLIBCPP_USE_WCHAR_T - size_t res; - const char *from_start_copy = (const char *) from_start; - size_t from_len = from_end - from_start; - char *to_start_copy = (char *) from_start; - size_t to_len = to_end - to_start; - - res = iconv (codecvt->__cd_in, &from_start_copy, &from_len, - &to_start_copy, &to_len); - - if (res == 0) - result = __codecvt_ok; - else if (to_len == 0) - result = __codecvt_partial; - else if (from_len < codecvt->__codecvt_do_max_length (codecvt)) - result = __codecvt_partial; - else - result = __codecvt_error; -# else - /* Decide what to do. */ - result = __codecvt_error; -# endif -#endif return result; } @@ -413,7 +304,6 @@ do_in (struct _IO_codecvt *codecvt, __mbstate_t *statep, static int do_encoding (struct _IO_codecvt *codecvt) { -#ifdef _LIBC /* See whether the encoding is stateful. */ if (codecvt->__cd_in.__cd.__steps[0].__stateful) return -1; @@ -425,10 +315,6 @@ do_encoding (struct _IO_codecvt *codecvt) return 0; return codecvt->__cd_in.__cd.__steps[0].__min_needed_from; -#else - /* Worst case scenario. */ - return -1; -#endif } @@ -444,7 +330,6 @@ do_length (struct _IO_codecvt *codecvt, __mbstate_t *statep, const char *from_start, const char *from_end, _IO_size_t max) { int result; -#ifdef _LIBC const unsigned char *cp = (const unsigned char *) from_start; wchar_t to_buf[max]; struct __gconv_step *gs = codecvt->__cd_in.__cd.__steps; @@ -466,23 +351,6 @@ do_length (struct _IO_codecvt *codecvt, __mbstate_t *statep, &dummy, 0, 0)); result = cp - (const unsigned char *) from_start; -#else -# ifdef _GLIBCPP_USE_WCHAR_T - const char *from_start_copy = (const char *) from_start; - size_t from_len = from_end - from_start; - wchar_t to_buf[max]; - size_t res; - char *to_start = (char *) to_buf; - - res = iconv (codecvt->__cd_in, &from_start_copy, &from_len, - &to_start, &max); - - result = from_start_copy - (char *) from_start; -# else - /* Decide what to do. */ - result = 0; -# endif -#endif return result; } @@ -491,9 +359,5 @@ do_length (struct _IO_codecvt *codecvt, __mbstate_t *statep, static int do_max_length (struct _IO_codecvt *codecvt) { -#ifdef _LIBC return codecvt->__cd_in.__cd.__steps[0].__max_needed_from; -#else - return MB_CUR_MAX; -#endif } diff --git a/libio/iofwrite.c b/libio/iofwrite.c index c89dd9091f..72f703af62 100644 --- a/libio/iofwrite.c +++ b/libio/iofwrite.c @@ -49,7 +49,6 @@ _IO_fwrite (const void *buf, _IO_size_t size, _IO_size_t count, _IO_FILE *fp) } libc_hidden_def (_IO_fwrite) -#ifdef weak_alias # include <stdio.h> weak_alias (_IO_fwrite, fwrite) libc_hidden_weak (fwrite) @@ -57,4 +56,3 @@ libc_hidden_weak (fwrite) weak_alias (_IO_fwrite, fwrite_unlocked) libc_hidden_weak (fwrite_unlocked) # endif -#endif diff --git a/libio/iogetdelim.c b/libio/iogetdelim.c index 59138881b8..0fce4af768 100644 --- a/libio/iogetdelim.c +++ b/libio/iogetdelim.c @@ -123,7 +123,5 @@ unlock_return: return result; } -#ifdef weak_alias weak_alias (_IO_getdelim, __getdelim) weak_alias (_IO_getdelim, getdelim) -#endif diff --git a/libio/iogets.c b/libio/iogets.c index 432cecb75c..166a88a4a9 100644 --- a/libio/iogets.c +++ b/libio/iogets.c @@ -67,10 +67,6 @@ unlock_return: return retval; } -#ifdef weak_alias weak_alias (_IO_gets, gets) -#endif -#ifdef _LIBC link_warning (gets, "the `gets' function is dangerous and should not be used.") -#endif diff --git a/libio/iogetwline.c b/libio/iogetwline.c index e60a590cc4..535f90339e 100644 --- a/libio/iogetwline.c +++ b/libio/iogetwline.c @@ -28,10 +28,6 @@ #include <string.h> #include <wchar.h> -#ifdef _LIBC -# define wmemcpy __wmemcpy -#endif - _IO_size_t _IO_getwline (_IO_FILE *fp, wchar_t *buf, _IO_size_t n, wint_t delim, int extract_delim) @@ -98,12 +94,12 @@ _IO_getwline_info (_IO_FILE *fp, wchar_t *buf, _IO_size_t n, wint_t delim, if (extract_delim > 0) ++len; } - wmemcpy ((void *) ptr, (void *) fp->_wide_data->_IO_read_ptr, - len); + __wmemcpy ((void *) ptr, (void *) fp->_wide_data->_IO_read_ptr, + len); fp->_wide_data->_IO_read_ptr = t; return old_len + len; } - wmemcpy ((void *) ptr, (void *) fp->_wide_data->_IO_read_ptr, len); + __wmemcpy ((void *) ptr, (void *) fp->_wide_data->_IO_read_ptr, len); fp->_wide_data->_IO_read_ptr += len; ptr += len; n -= len; diff --git a/libio/iopopen.c b/libio/iopopen.c index a2ddebb32b..466260ea55 100644 --- a/libio/iopopen.c +++ b/libio/iopopen.c @@ -25,63 +25,17 @@ This exception applies to code released by its copyright holders in files containing the exception. */ -#ifndef _POSIX_SOURCE -# define _POSIX_SOURCE -#endif #include "libioP.h" #include <fcntl.h> #include <signal.h> #include <unistd.h> #include <stdlib.h> -#ifdef _LIBC -# include <shlib-compat.h> -# include <not-cancel.h> -#endif +#include <shlib-compat.h> +#include <not-cancel.h> #include <sys/types.h> #include <sys/wait.h> #include <kernel-features.h> -#ifndef _IO_fork -#ifdef _LIBC -#define _IO_fork __fork -#else -#define _IO_fork fork /* defined in libiberty, if needed */ -#endif -extern _IO_pid_t _IO_fork (void) __THROW; -#endif - -#ifndef _IO_dup2 -#ifdef _LIBC -#define _IO_dup2 __dup2 -#else -#define _IO_dup2 dup2 -#endif -extern int _IO_dup2 (int fd, int fd2) __THROW; -#endif - -#ifndef _IO_waitpid -#ifdef _LIBC -#define _IO_waitpid __waitpid_nocancel -#else -#define _IO_waitpid waitpid -#endif -#endif - -#ifndef _IO_execl -#define _IO_execl execl -#endif -#ifndef _IO__exit -#define _IO__exit _exit -#endif - -#ifndef _IO_close -#ifdef _LIBC -#define _IO_close __close_nocancel -#else -#define _IO_close close -#endif -#endif - struct _IO_proc_file { struct _IO_FILE_plus file; @@ -165,14 +119,14 @@ _IO_new_proc_open (_IO_FILE *fp, const char *command, const char *mode) read_or_write = _IO_NO_READS; } - ((_IO_proc_file *) fp)->pid = child_pid = _IO_fork (); + ((_IO_proc_file *) fp)->pid = child_pid = __fork (); if (child_pid == 0) { int child_std_end = do_read ? 1 : 0; struct _IO_proc_file *p; if (child_end != child_std_end) - _IO_dup2 (child_end, child_std_end); + __dup2 (child_end, child_std_end); else /* The descriptor is already the one we will use. But it must not be marked close-on-exec. Undo the effects. */ @@ -188,16 +142,16 @@ _IO_new_proc_open (_IO_FILE *fp, const char *command, const char *mode) child_std_end, it has been already closed by the dup2 syscall above. */ if (fd != child_std_end) - _IO_close (fd); + __close_nocancel (fd); } - _IO_execl ("/bin/sh", "sh", "-c", command, (char *) 0); - _IO__exit (127); + execl ("/bin/sh", "sh", "-c", command, (char *) 0); + _exit (127); } - _IO_close (child_end); + __close_nocancel (child_end); if (child_pid < 0) { - _IO_close (parent_end); + __close_nocancel (parent_end); return NULL; } @@ -284,7 +238,7 @@ _IO_new_proc_close (_IO_FILE *fp) _IO_cleanup_region_end (0); #endif - if (status < 0 || _IO_close (_IO_fileno(fp)) < 0) + if (status < 0 || __close_nocancel (_IO_fileno(fp)) < 0) return -1; /* POSIX.2 Rationale: "Some historical implementations either block or ignore the signals SIGINT, SIGQUIT, and SIGHUP while waiting @@ -292,7 +246,7 @@ _IO_new_proc_close (_IO_FILE *fp) described in POSIX.2, such implementations are not conforming." */ do { - wait_pid = _IO_waitpid (((_IO_proc_file *) fp)->pid, &wstatus, 0); + wait_pid = __waitpid_nocancel (((_IO_proc_file *) fp)->pid, &wstatus, 0); } while (wait_pid == -1 && errno == EINTR); if (wait_pid == -1) diff --git a/libio/ioputs.c b/libio/ioputs.c index bf3224e9ab..2529c7bbd1 100644 --- a/libio/ioputs.c +++ b/libio/ioputs.c @@ -45,6 +45,4 @@ _IO_puts (const char *str) return result; } -#ifdef weak_alias weak_alias (_IO_puts, puts) -#endif diff --git a/libio/ioseekoff.c b/libio/ioseekoff.c index 425c020c51..e06b066a6f 100644 --- a/libio/ioseekoff.c +++ b/libio/ioseekoff.c @@ -27,12 +27,6 @@ #include <stdlib.h> #include <libioP.h> #include <errno.h> -#ifndef errno -extern int errno; -#endif -#ifndef __set_errno -# define __set_errno(Val) errno = (Val) -#endif _IO_off64_t _IO_seekoff_unlocked (_IO_FILE *fp, _IO_off64_t offset, int dir, int mode) diff --git a/libio/iosetbuffer.c b/libio/iosetbuffer.c index c5df900fd9..25a6032979 100644 --- a/libio/iosetbuffer.c +++ b/libio/iosetbuffer.c @@ -42,6 +42,4 @@ _IO_setbuffer (_IO_FILE *fp, char *buf, _IO_size_t size) } libc_hidden_def (_IO_setbuffer) -#ifdef weak_alias weak_alias (_IO_setbuffer, setbuffer) -#endif diff --git a/libio/iosetvbuf.c b/libio/iosetvbuf.c index b242018c0b..eda49ab3aa 100644 --- a/libio/iosetvbuf.c +++ b/libio/iosetvbuf.c @@ -95,6 +95,4 @@ unlock_return: } libc_hidden_def (_IO_setvbuf) -#ifdef weak_alias weak_alias (_IO_setvbuf, setvbuf) -#endif diff --git a/libio/ioungetc.c b/libio/ioungetc.c index 917cad8abb..cb59e0eb98 100644 --- a/libio/ioungetc.c +++ b/libio/ioungetc.c @@ -41,6 +41,4 @@ _IO_ungetc (int c, _IO_FILE *fp) return result; } -#ifdef weak_alias weak_alias (_IO_ungetc, ungetc) -#endif diff --git a/libio/libioP.h b/libio/libioP.h index 1832b44cc7..0613439ad4 100644 --- a/libio/libioP.h +++ b/libio/libioP.h @@ -35,31 +35,12 @@ #include <stddef.h> #include <errno.h> -#ifndef __set_errno -# define __set_errno(Val) errno = (Val) -#endif -#if defined __GLIBC__ && __GLIBC__ >= 2 -# include <libc-lock.h> -#else -/*# include <comthread.h>*/ -#endif +#include <libc-lock.h> #include <math_ldbl_opt.h> #include "iolibio.h" -/* Control of exported symbols. Used in glibc. By default we don't - do anything. */ -#ifndef libc_hidden_proto -# define libc_hidden_proto(name) -#endif -#ifndef libc_hidden_def -# define libc_hidden_def(name) -#endif -#ifndef libc_hidden_weak -# define libc_hidden_weak(name) -#endif - #ifdef __cplusplus extern "C" { #endif @@ -89,14 +70,12 @@ extern "C" { * object being acted on (i.e. the 'this' parameter). */ -#ifdef _LIBC -# include <shlib-compat.h> -# if !SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) - /* Setting this macro disables the use of the _vtable_offset - bias in _IO_JUMPS_FUNCS, below. That is only needed if we - want to support old binaries (see oldfileops.c). */ -# define _G_IO_NO_BACKWARD_COMPAT 1 -# endif +#include <shlib-compat.h> +#if !SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) + /* Setting this macro disables the use of the _vtable_offset bias in + _IO_JUMPS_FUNCS, below. That is only needed if we want to + support old binaries (see oldfileops.c). */ +# define _G_IO_NO_BACKWARD_COMPAT 1 #endif #if (!defined _IO_USE_OLD_IO_FILE \ @@ -524,19 +503,13 @@ extern int _IO_old_fsetpos64 (_IO_FILE *, const _IO_fpos64_t *); extern void _IO_old_init (_IO_FILE *fp, int flags) __THROW; -#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T -# define _IO_do_flush(_f) \ +#define _IO_do_flush(_f) \ ((_f)->_mode <= 0 \ ? _IO_do_write(_f, (_f)->_IO_write_base, \ (_f)->_IO_write_ptr-(_f)->_IO_write_base) \ : _IO_wdo_write(_f, (_f)->_wide_data->_IO_write_base, \ ((_f)->_wide_data->_IO_write_ptr \ - (_f)->_wide_data->_IO_write_base))) -#else -# define _IO_do_flush(_f) \ - _IO_do_write(_f, (_f)->_IO_write_base, \ - (_f)->_IO_write_ptr-(_f)->_IO_write_base) -#endif #define _IO_old_do_flush(_f) \ _IO_old_do_write(_f, (_f)->_IO_write_base, \ (_f)->_IO_write_ptr-(_f)->_IO_write_base) @@ -719,18 +692,6 @@ extern _IO_off64_t _IO_seekpos_unlocked (_IO_FILE *, _IO_off64_t, int) #ifndef EOF # define EOF (-1) #endif -#ifndef NULL -# if defined __GNUG__ && \ - (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)) -# define NULL (__null) -# else -# if !defined(__cplusplus) -# define NULL ((void*)0) -# else -# define NULL (0) -# endif -# endif -#endif #if _G_HAVE_MMAP @@ -750,19 +711,6 @@ extern _IO_off64_t _IO_seekpos_unlocked (_IO_FILE *, _IO_off64_t, int) #endif /* _G_HAVE_MMAP */ -#if _G_HAVE_MMAP - -# ifdef _LIBC -/* When using this code in the GNU libc we must not pollute the name space. */ -# define mmap __mmap -# define munmap __munmap -# define ftruncate __ftruncate -# endif -#endif /* _G_HAVE_MMAP */ - -#ifndef OS_FSTAT -# define OS_FSTAT fstat -#endif extern int _IO_vscanf (const char *, _IO_va_list) __THROW; /* _IO_pos_BAD is an _IO_off64_t value indicating error, unknown, or EOF. */ @@ -790,19 +738,11 @@ extern int _IO_vscanf (const char *, _IO_va_list) __THROW; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (_IO_FILE *) CHAIN, FD, \ 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock } # else -# if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T -# define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ +# define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (_IO_FILE *) CHAIN, FD, \ 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock, _IO_pos_BAD,\ NULL, WDP, 0 } -# else -# define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ - { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (_IO_FILE *) CHAIN, FD, \ - 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock, _IO_pos_BAD,\ - 0 } -# endif # endif #else # ifdef _IO_USE_OLD_IO_FILE @@ -811,19 +751,11 @@ extern int _IO_vscanf (const char *, _IO_va_list) __THROW; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (_IO_FILE *) CHAIN, FD, \ 0, _IO_pos_BAD } # else -# if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T -# define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ +# define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (_IO_FILE *) CHAIN, FD, \ 0, _IO_pos_BAD, 0, 0, { 0 }, 0, _IO_pos_BAD, \ NULL, WDP, 0 } -# else -# define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ - { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (_IO_FILE *) CHAIN, FD, \ - 0, _IO_pos_BAD, 0, 0, { 0 }, 0, _IO_pos_BAD, \ - 0 } -# endif # endif #endif diff --git a/libio/oldfileops.c b/libio/oldfileops.c index 2eceefa68a..671b9822f0 100644 --- a/libio/oldfileops.c +++ b/libio/oldfileops.c @@ -30,9 +30,6 @@ #include <shlib-compat.h> #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) -#ifndef _POSIX_SOURCE -# define _POSIX_SOURCE -#endif #define _IO_USE_OLD_IO_FILE #include "libioP.h" #include <fcntl.h> @@ -42,21 +39,6 @@ #include <errno.h> #include <stdlib.h> #include <unistd.h> -#ifndef errno -extern int errno; -#endif -#ifndef __set_errno -# define __set_errno(Val) errno = (Val) -#endif - - -#ifdef _LIBC -# define open(Name, Flags, Prot) __open (Name, Flags, Prot) -# define close(FD) __close (FD) -# define lseek(FD, Offset, Whence) __lseek (FD, Offset, Whence) -# define read(FD, Buf, NBytes) __read (FD, Buf, NBytes) -# define write(FD, Buf, NBytes) __write (FD, Buf, NBytes) -#endif /* An fstream can be in at most one of put mode, get mode, or putback mode. Putback mode is a variant of get mode. @@ -127,7 +109,6 @@ _IO_old_file_init_internal (struct _IO_FILE_plus *fp) - (int) sizeof (struct _IO_FILE_complete)); fp->file._fileno = -1; -#if defined SHARED && defined _LIBC if (__builtin_expect (&_IO_stdin_used != NULL, 1) || (fp != (struct _IO_FILE_plus *) _IO_stdin && fp != (struct _IO_FILE_plus *) _IO_stdout @@ -135,7 +116,6 @@ _IO_old_file_init_internal (struct _IO_FILE_plus *fp) /* The object is dynamically allocated and large enough. Initialize the _mode element as well. */ ((struct _IO_FILE_complete *) fp)->_mode = -1; -#endif } void @@ -221,7 +201,7 @@ _IO_old_file_fopen (_IO_FILE *fp, const char *filename, const char *mode) omode = O_RDWR; read_write &= _IO_IS_APPENDING; } - fdesc = open (filename, omode|oflags, oprot); + fdesc = __open (filename, omode|oflags, oprot); if (fdesc < 0) return NULL; fp->_fileno = fdesc; @@ -443,10 +423,8 @@ _IO_old_file_sync (_IO_FILE *fp) _IO_off_t new_pos = _IO_SYSSEEK (fp, delta, 1); if (new_pos != (_IO_off_t) EOF) fp->_IO_read_end = fp->_IO_read_ptr; -#ifdef ESPIPE else if (errno == ESPIPE) ; /* Ignore error from unseekable devices. */ -#endif else retval = EOF; } @@ -647,7 +625,7 @@ _IO_old_file_write (_IO_FILE *f, const void *data, _IO_ssize_t n) _IO_ssize_t to_do = n; while (to_do > 0) { - _IO_ssize_t count = write (f->_fileno, data, to_do); + _IO_ssize_t count = __write (f->_fileno, data, to_do); if (count == EOF) { f->_flags |= _IO_ERR_SEEN; @@ -705,12 +683,7 @@ _IO_old_file_xsputn (_IO_FILE *f, const void *data, _IO_size_t n) count = to_do; if (count > 20) { -#ifdef _LIBC f->_IO_write_ptr = __mempcpy (f->_IO_write_ptr, s, count); -#else - memcpy (f->_IO_write_ptr, s, count); - f->_IO_write_ptr += count; -#endif s += count; } else diff --git a/libio/oldiofdopen.c b/libio/oldiofdopen.c index 7f6180767e..42284263ba 100644 --- a/libio/oldiofdopen.c +++ b/libio/oldiofdopen.c @@ -32,10 +32,6 @@ #include "libioP.h" #include <fcntl.h> -#ifndef _IO_fcntl -# define _IO_fcntl __fcntl -#endif - _IO_FILE * attribute_compat_text_section _IO_old_fdopen (int fd, const char *mode) @@ -69,11 +65,7 @@ _IO_old_fdopen (int fd, const char *mode) } if (mode[0] == '+' || (mode[0] == 'b' && mode[1] == '+')) read_write &= _IO_IS_APPENDING; -#ifdef F_GETFL - fd_flags = _IO_fcntl (fd, F_GETFL); -#ifndef O_ACCMODE -#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) -#endif + fd_flags = __fcntl (fd, F_GETFL); if (fd_flags == -1 || ((fd_flags & O_ACCMODE) == O_RDONLY && !(read_write & _IO_NO_WRITES)) || ((fd_flags & O_ACCMODE) == O_WRONLY && !(read_write & _IO_NO_READS))) @@ -97,12 +89,9 @@ _IO_old_fdopen (int fd, const char *mode) */ if ((posix_mode & O_APPEND) && !(fd_flags & O_APPEND)) { -#ifdef F_SETFL - if (_IO_fcntl (fd, F_SETFL, fd_flags | O_APPEND) == -1) -#endif + if (__fcntl (fd, F_SETFL, fd_flags | O_APPEND) == -1) return NULL; } -#endif new_f = (struct locked_FILE *) malloc (sizeof (struct locked_FILE)); if (new_f == NULL) diff --git a/libio/oldiofgetpos.c b/libio/oldiofgetpos.c index 9781b46d73..4d5d4f8ceb 100644 --- a/libio/oldiofgetpos.c +++ b/libio/oldiofgetpos.c @@ -45,20 +45,16 @@ _IO_old_fgetpos (_IO_FILE *fp, _IO_fpos_t *posp) { /* ANSI explicitly requires setting errno to a positive value on failure. */ -#ifdef EIO if (errno == 0) __set_errno (EIO); -#endif return EOF; } posp->__pos = pos; return 0; } -#ifdef weak_alias compat_symbol (libc, _IO_old_fgetpos, _IO_fgetpos, GLIBC_2_0); strong_alias (_IO_old_fgetpos, __old_fgetpos) compat_symbol (libc, __old_fgetpos, fgetpos, GLIBC_2_0); -#endif #endif diff --git a/libio/oldiofgetpos64.c b/libio/oldiofgetpos64.c index 2221f9140b..3ba8941e90 100644 --- a/libio/oldiofgetpos64.c +++ b/libio/oldiofgetpos64.c @@ -45,20 +45,16 @@ _IO_old_fgetpos64 (_IO_FILE *fp, _IO_fpos64_t *posp) { /* ANSI explicitly requires setting errno to a positive value on failure. */ -#ifdef EIO if (errno == 0) __set_errno (EIO); -#endif return EOF; } posp->__pos = pos; return 0; } -#ifdef weak_alias compat_symbol (libc, _IO_old_fgetpos64, _IO_fgetpos64, GLIBC_2_1); strong_alias (_IO_old_fgetpos64, __old_fgetpos64) compat_symbol (libc, __old_fgetpos64, fgetpos64, GLIBC_2_1); -#endif #endif diff --git a/libio/oldiofsetpos.c b/libio/oldiofsetpos.c index d711937263..4f93bf3578 100644 --- a/libio/oldiofsetpos.c +++ b/libio/oldiofsetpos.c @@ -41,10 +41,8 @@ _IO_old_fsetpos (_IO_FILE *fp, const _IO_fpos_t *posp) { /* ANSI explicitly requires setting errno to a positive value on failure. */ -#ifdef EIO if (errno == 0) __set_errno (EIO); -#endif result = EOF; } else @@ -53,10 +51,8 @@ _IO_old_fsetpos (_IO_FILE *fp, const _IO_fpos_t *posp) return result; } -#ifdef weak_alias compat_symbol (libc, _IO_old_fsetpos, _IO_fsetpos, GLIBC_2_0); strong_alias (_IO_old_fsetpos, __old_fsetpos) compat_symbol (libc, __old_fsetpos, fsetpos, GLIBC_2_0); -#endif #endif diff --git a/libio/oldiofsetpos64.c b/libio/oldiofsetpos64.c index 7fad4081a1..391cf5cf2a 100644 --- a/libio/oldiofsetpos64.c +++ b/libio/oldiofsetpos64.c @@ -42,10 +42,8 @@ _IO_old_fsetpos64 (_IO_FILE *fp, const _IO_fpos64_t *posp) { /* ANSI explicitly requires setting errno to a positive value on failure. */ -#ifdef EIO if (errno == 0) __set_errno (EIO); -#endif result = EOF; } else @@ -54,10 +52,8 @@ _IO_old_fsetpos64 (_IO_FILE *fp, const _IO_fpos64_t *posp) return result; } -#ifdef weak_alias compat_symbol (libc, _IO_old_fsetpos64, _IO_fsetpos64, GLIBC_2_1); strong_alias (_IO_old_fsetpos64, __old_fsetpos64) compat_symbol (libc, __old_fsetpos64, fsetpos64, GLIBC_2_1); -#endif #endif diff --git a/libio/oldiopopen.c b/libio/oldiopopen.c index af7774ae90..2cb67879c3 100644 --- a/libio/oldiopopen.c +++ b/libio/oldiopopen.c @@ -26,72 +26,17 @@ in files containing the exception. */ #define _IO_USE_OLD_IO_FILE -#ifndef _POSIX_SOURCE -# define _POSIX_SOURCE -#endif #include "libioP.h" #include <signal.h> #include <unistd.h> #include <stdlib.h> -#ifdef _LIBC -# include <unistd.h> -#endif +#include <unistd.h> #include <sys/types.h> #include <sys/wait.h> -#ifndef _IO_fork -#ifdef _LIBC -#define _IO_fork __fork -#else -#define _IO_fork fork /* defined in libiberty, if needed */ -#endif -extern _IO_pid_t _IO_fork (void) __THROW; -#endif - #include <shlib-compat.h> #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1) -#ifndef _IO_pipe -#ifdef _LIBC -#define _IO_pipe __pipe -#else -#define _IO_pipe pipe -#endif -extern int _IO_pipe (int des[2]) __THROW; -#endif - -#ifndef _IO_dup2 -#ifdef _LIBC -#define _IO_dup2 __dup2 -#else -#define _IO_dup2 dup2 -#endif -extern int _IO_dup2 (int fd, int fd2) __THROW; -#endif - -#ifndef _IO_waitpid -#ifdef _LIBC -#define _IO_waitpid __waitpid -#else -#define _IO_waitpid waitpid -#endif -#endif - -#ifndef _IO_execl -#define _IO_execl execl -#endif -#ifndef _IO__exit -#define _IO__exit _exit -#endif - -#ifndef _IO_close -#ifdef _LIBC -#define _IO_close __close -#else -#define _IO_close close -#endif -#endif - struct _IO_proc_file { struct _IO_FILE_complete_plus file; @@ -123,7 +68,7 @@ _IO_old_proc_open (_IO_FILE *fp, const char *command, const char *mode) _IO_pid_t child_pid; if (_IO_file_is_open (fp)) return NULL; - if (_IO_pipe (pipe_fds) < 0) + if (__pipe (pipe_fds) < 0) return NULL; if (mode[0] == 'r' && mode[1] == '\0') { @@ -139,36 +84,36 @@ _IO_old_proc_open (_IO_FILE *fp, const char *command, const char *mode) } else { - _IO_close (pipe_fds[0]); - _IO_close (pipe_fds[1]); + __close (pipe_fds[0]); + __close (pipe_fds[1]); __set_errno (EINVAL); return NULL; } - ((_IO_proc_file *) fp)->pid = child_pid = _IO_fork (); + ((_IO_proc_file *) fp)->pid = child_pid = __fork (); if (child_pid == 0) { int child_std_end = mode[0] == 'r' ? 1 : 0; struct _IO_proc_file *p; - _IO_close (parent_end); + __close (parent_end); if (child_end != child_std_end) { - _IO_dup2 (child_end, child_std_end); - _IO_close (child_end); + __dup2 (child_end, child_std_end); + __close (child_end); } /* POSIX.2: "popen() shall ensure that any streams from previous popen() calls that remain open in the parent process are closed in the new child process." */ for (p = old_proc_file_chain; p; p = p->next) - _IO_close (_IO_fileno ((_IO_FILE *) p)); + __close (_IO_fileno ((_IO_FILE *) p)); - _IO_execl ("/bin/sh", "sh", "-c", command, (char *) 0); - _IO__exit (127); + execl ("/bin/sh", "sh", "-c", command, (char *) 0); + _exit (127); } - _IO_close (child_end); + __close (child_end); if (child_pid < 0) { - _IO_close (parent_end); + __close (parent_end); return NULL; } _IO_fileno (fp) = parent_end; @@ -251,7 +196,7 @@ _IO_old_proc_close (_IO_FILE *fp) _IO_cleanup_region_end (0); #endif - if (status < 0 || _IO_close (_IO_fileno(fp)) < 0) + if (status < 0 || __close (_IO_fileno(fp)) < 0) return -1; /* POSIX.2 Rationale: "Some historical implementations either block or ignore the signals SIGINT, SIGQUIT, and SIGHUP while waiting @@ -259,7 +204,7 @@ _IO_old_proc_close (_IO_FILE *fp) described in POSIX.2, such implementations are not conforming." */ do { - wait_pid = _IO_waitpid (((_IO_proc_file *) fp)->pid, &wstatus, 0); + wait_pid = __waitpid (((_IO_proc_file *) fp)->pid, &wstatus, 0); } while (wait_pid == -1 && errno == EINTR); if (wait_pid == -1) diff --git a/libio/putc.c b/libio/putc.c index 6e1fdeef3a..2f48cd15e5 100644 --- a/libio/putc.c +++ b/libio/putc.c @@ -36,11 +36,9 @@ libc_hidden_def (_IO_putc) #undef putc -#ifdef weak_alias weak_alias (_IO_putc, putc) #ifndef _IO_MTSAFE_IO #undef putc_unlocked weak_alias (_IO_putc, putc_unlocked) #endif -#endif diff --git a/libio/stdfiles.c b/libio/stdfiles.c index 218be40e60..24725f0671 100644 --- a/libio/stdfiles.c +++ b/libio/stdfiles.c @@ -34,35 +34,20 @@ #include "libioP.h" #ifdef _IO_MTSAFE_IO -# if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T -# define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \ +# define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \ static _IO_lock_t _IO_stdfile_##FD##_lock = _IO_lock_initializer; \ static struct _IO_wide_data _IO_wide_data_##FD \ = { ._wide_vtable = &_IO_wfile_jumps }; \ struct _IO_FILE_plus NAME \ = {FILEBUF_LITERAL(CHAIN, FLAGS, FD, &_IO_wide_data_##FD), \ &_IO_file_jumps}; -# else -# define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \ - static _IO_lock_t _IO_stdfile_##FD##_lock = _IO_lock_initializer; \ - struct _IO_FILE_plus NAME \ - = {FILEBUF_LITERAL(CHAIN, FLAGS, FD, NULL), \ - &_IO_file_jumps}; -# endif #else -# if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T -# define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \ +# define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \ static struct _IO_wide_data _IO_wide_data_##FD \ = { ._wide_vtable = &_IO_wfile_jumps }; \ struct _IO_FILE_plus NAME \ = {FILEBUF_LITERAL(CHAIN, FLAGS, FD, &_IO_wide_data_##FD), \ &_IO_file_jumps}; -# else -# define DEF_STDFILE(NAME, FD, CHAIN, FLAGS) \ - struct _IO_FILE_plus NAME \ - = {FILEBUF_LITERAL(CHAIN, FLAGS, FD, NULL), \ - &_IO_file_jumps}; -# endif #endif DEF_STDFILE(_IO_2_1_stdin_, 0, 0, _IO_NO_WRITES); diff --git a/libio/stdio.c b/libio/stdio.c index 3ff825241b..33292f0429 100644 --- a/libio/stdio.c +++ b/libio/stdio.c @@ -37,12 +37,10 @@ _IO_FILE *stderr = (FILE *) &_IO_2_1_stderr_; #undef _IO_stdin #undef _IO_stdout #undef _IO_stderr -#ifdef _LIBC -# define AL(name) AL2 (name, _IO_##name) -# define AL2(name, al) \ +#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); -#endif diff --git a/libio/wfileops.c b/libio/wfileops.c index fb94f45040..8756b6fe1a 100644 --- a/libio/wfileops.c +++ b/libio/wfileops.c @@ -33,24 +33,6 @@ #include <stdlib.h> #include <string.h> - -#ifndef _LIBC -# define _IO_new_do_write _IO_do_write -# define _IO_new_file_attach _IO_file_attach -# define _IO_new_file_close_it _IO_file_close_it -# define _IO_new_file_finish _IO_file_finish -# define _IO_new_file_fopen _IO_file_fopen -# define _IO_new_file_init _IO_file_init -# define _IO_new_file_setbuf _IO_file_setbuf -# define _IO_new_file_sync _IO_file_sync -# define _IO_new_file_overflow _IO_file_overflow -# define _IO_new_file_seekoff _IO_file_seekoff -# define _IO_new_file_underflow _IO_file_underflow -# define _IO_new_file_write _IO_file_write -# define _IO_new_file_xsputn _IO_file_xsputn -#endif - - /* Convert TO_DO wide character from DATA to FP. Then mark FP as having empty buffers. */ int @@ -541,10 +523,8 @@ _IO_wfile_sync (_IO_FILE *fp) fp->_wide_data->_IO_read_end = fp->_wide_data->_IO_read_ptr; fp->_IO_read_end = fp->_IO_read_ptr; } -#ifdef ESPIPE else if (errno == ESPIPE) ; /* Ignore error from unseekable devices. */ -#endif else retval = WEOF; } @@ -1010,13 +990,8 @@ _IO_wfile_xsputn (_IO_FILE *f, const void *data, _IO_size_t n) count = to_do; if (count > 20) { -#ifdef _LIBC f->_wide_data->_IO_write_ptr = __wmempcpy (f->_wide_data->_IO_write_ptr, s, count); -#else - wmemcpy (f->_wide_data->_IO_write_ptr, s, count); - f->_wide_data->_IO_write_ptr += count; -#endif s += count; } else diff --git a/libio/wgenops.c b/libio/wgenops.c index d8072abea0..a309de47b4 100644 --- a/libio/wgenops.c +++ b/libio/wgenops.c @@ -34,16 +34,7 @@ #include <wchar.h> -#ifndef _LIBC -# define __wmemcpy(dst, src, n) wmemcpy (dst, src, n) -#endif - - -static int save_for_wbackup (_IO_FILE *fp, wchar_t *end_p) __THROW -#ifdef _LIBC - internal_function -#endif - ; +static int save_for_wbackup (_IO_FILE *fp, wchar_t *end_p) __THROW; /* Return minimum _pos markers Assumes the current get area is the main get area. */ @@ -307,13 +298,8 @@ _IO_wdefault_xsputn (_IO_FILE *f, const void *data, _IO_size_t n) count = more; if (count > 20) { -#ifdef _LIBC f->_wide_data->_IO_write_ptr = __wmempcpy (f->_wide_data->_IO_write_ptr, s, count); -#else - memcpy (f->_wide_data->_IO_write_ptr, s, count); - f->_wide_data->_IO_write_ptr += count; -#endif s += count; } else if (count <= 0) @@ -353,12 +339,7 @@ _IO_wdefault_xsgetn (_IO_FILE *fp, void *data, _IO_size_t n) count = more; if (count > 20) { -#ifdef _LIBC s = __wmempcpy (s, fp->_wide_data->_IO_read_ptr, count); -#else - memcpy (s, fp->_wide_data->_IO_read_ptr, count); - s += count; -#endif fp->_wide_data->_IO_read_ptr += count; } else if (count <= 0) @@ -466,9 +447,6 @@ _IO_switch_to_wput_mode (_IO_FILE *fp) static int -#ifdef _LIBC -internal_function -#endif save_for_wbackup (_IO_FILE *fp, wchar_t *end_p) { /* Append [_IO_read_base..end_p] to backup area. */ @@ -492,32 +470,17 @@ save_for_wbackup (_IO_FILE *fp, wchar_t *end_p) return EOF; /* FIXME */ if (least_mark < 0) { -#ifdef _LIBC __wmempcpy (__wmempcpy (new_buffer + avail, fp->_wide_data->_IO_save_end + least_mark, -least_mark), fp->_wide_data->_IO_read_base, end_p - fp->_wide_data->_IO_read_base); -#else - memcpy (new_buffer + avail, - fp->_wide_data->_IO_save_end + least_mark, - -least_mark * sizeof (wchar_t)); - memcpy (new_buffer + avail - least_mark, - fp->_wide_data->_IO_read_base, - (end_p - fp->_wide_data->_IO_read_base) * sizeof (wchar_t)); -#endif } else { -#ifdef _LIBC __wmemcpy (new_buffer + avail, fp->_wide_data->_IO_read_base + least_mark, needed_size); -#else - memcpy (new_buffer + avail, - fp->_wide_data->_IO_read_base + least_mark, - needed_size * sizeof (wchar_t)); -#endif } free (fp->_wide_data->_IO_save_base); fp->_wide_data->_IO_save_base = new_buffer; @@ -528,32 +491,17 @@ save_for_wbackup (_IO_FILE *fp, wchar_t *end_p) avail = current_Bsize - needed_size; if (least_mark < 0) { -#ifdef _LIBC __wmemmove (fp->_wide_data->_IO_save_base + avail, fp->_wide_data->_IO_save_end + least_mark, -least_mark); __wmemcpy (fp->_wide_data->_IO_save_base + avail - least_mark, fp->_wide_data->_IO_read_base, end_p - fp->_wide_data->_IO_read_base); -#else - memmove (fp->_wide_data->_IO_save_base + avail, - fp->_wide_data->_IO_save_end + least_mark, - -least_mark * sizeof (wchar_t)); - memcpy (fp->_wide_data->_IO_save_base + avail - least_mark, - fp->_wide_data->_IO_read_base, - (end_p - fp->_wide_data->_IO_read_base) * sizeof (wchar_t)); -#endif } else if (needed_size > 0) -#ifdef _LIBC __wmemcpy (fp->_wide_data->_IO_save_base + avail, fp->_wide_data->_IO_read_base + least_mark, needed_size); -#else - memcpy (fp->_wide_data->_IO_save_base + avail, - fp->_wide_data->_IO_read_base + least_mark, - needed_size * sizeof (wchar_t)); -#endif } fp->_wide_data->_IO_backup_base = fp->_wide_data->_IO_save_base + avail; /* Adjust all the streammarkers. */ |