about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-04-30 22:00:59 +0000
committerRoland McGrath <roland@gnu.org>2002-04-30 22:00:59 +0000
commita8c017767721fec8fd4ee53c1937e31e35dfac08 (patch)
tree11c43b6158f98ebcce0ab0b5555faa3a35d43187
parent8543f93de2a52f1e314051aa20f7394a7c13366f (diff)
downloadglibc-a8c017767721fec8fd4ee53c1937e31e35dfac08.tar.gz
glibc-a8c017767721fec8fd4ee53c1937e31e35dfac08.tar.xz
glibc-a8c017767721fec8fd4ee53c1937e31e35dfac08.zip
2002-04-30 Roland McGrath <roland@frob.com>
	Removed old GNU stdio implementation; GNU libio is now the only option.
	* configure.in: Removed --enable-libio option and @stdio@ subst var.
	Define USE_IN_LIBIO unconditionally.
	* configure: Regenerated.
	* Makeconfig (stdio): Set to libio by default.
	* config.make.in (stdio): Variable removed.
	* sysdeps/unix/sysv/linux/configure.in: Don't set $stdio.
	* sysdeps/unix/sysv/linux/configure: Regenerated.
	* sysdeps/mach/hurd/configure.in: Don't test $stdio.
	* sysdeps/mach/hurd/configure: Regenerated.
	* stdio/.cvsignore: File removed.
	* stdio/Makefile: File removed.
	* stdio/Versions: File removed.
	* stdio/__fbufsize.c: File removed.
	* stdio/__flbf.c: File removed.
	* stdio/__fpending.c: File removed.
	* stdio/__fpurge.c: File removed.
	* stdio/__freadable.c: File removed.
	* stdio/__freading.c: File removed.
	* stdio/__fsetlocking.c: File removed.
	* stdio/__fwritable.c: File removed.
	* stdio/__fwriting.c: File removed.
	* stdio/clearerr.c: File removed.
	* stdio/fclose.c: File removed.
	* stdio/fcloseall.c: File removed.
	* stdio/feof.c: File removed.
	* stdio/ferror.c: File removed.
	* stdio/fflush.c: File removed.
	* stdio/fgetc.c: File removed.
	* stdio/fgetpos.c: File removed.
	* stdio/fgets.c: File removed.
	* stdio/fileno.c: File removed.
	* stdio/fmemopen.c: File removed.
	* stdio/fopen.c: File removed.
	* stdio/fopncook.c: File removed.
	* stdio/fputc.c: File removed.
	* stdio/fputs.c: File removed.
	* stdio/fread.c: File removed.
	* stdio/freopen.c: File removed.
	* stdio/fseek.c: File removed.
	* stdio/fsetpos.c: File removed.
	* stdio/ftell.c: File removed.
	* stdio/fwrite.c: File removed.
	* stdio/getc.c: File removed.
	* stdio/getchar.c: File removed.
	* stdio/getdelim.c: File removed.
	* stdio/gets.c: File removed.
	* stdio/glue.c: File removed.
	* stdio/internals.c: File removed.
	* stdio/linewrap.c: File removed.
	* stdio/linewrap.h: File removed.
	* stdio/memstream.c: File removed.
	* stdio/newstream.c: File removed.
	* stdio/obstream.c: File removed.
	* stdio/putc.c: File removed.
	* stdio/putchar.c: File removed.
	* stdio/puts.c: File removed.
	* stdio/rewind.c: File removed.
	* stdio/setbuf.c: File removed.
	* stdio/setbuffer.c: File removed.
	* stdio/setlinebuf.c: File removed.
	* stdio/setvbuf.c: File removed.
	* stdio/stdio.h: File removed.
	* stdio/ungetc.c: File removed.
	* stdio/vasprintf.c: File removed.
	* stdio/vscanf.c: File removed.
	* stdio/vsnprintf.c: File removed.
	* stdio/vsprintf.c: File removed.
	* stdio/vsscanf.c: File removed.
	* sysdeps/generic/defs.c: File removed.
	* sysdeps/generic/fdopen.c: File removed.
	* sysdeps/generic/pipestream.c: File removed.
	* sysdeps/generic/stdio_init.c: File removed.
	* sysdeps/generic/sysd-stdio.c: File removed.
	* sysdeps/generic/vdprintf.c: File removed.
	* sysdeps/mach/hurd/defs.c: File removed.
	* sysdeps/mach/hurd/fdopen.c: File removed.
	* sysdeps/mach/hurd/pipestream.c: File removed.
	* sysdeps/mach/hurd/stdio_init.c: File removed.
	* sysdeps/mach/hurd/sysd-stdio.c: File removed.
	* sysdeps/mach/hurd/vdprintf.c: File removed.
	* sysdeps/posix/defs.c: File removed.
	* sysdeps/posix/fdopen.c: File removed.
	* sysdeps/posix/pipestream.c: File removed.
	* sysdeps/posix/stdio_init.c: File removed.
	* sysdeps/posix/vdprintf.c: File removed.
	* sysdeps/unix/pipestream.c: File removed.
	* sysdeps/unix/sysv/sysd-stdio.c: File removed.
	* sysdeps/unix/sysv/sco3.2.4/pipestream.c: File removed.
	* sysdeps/unix/sysv/sysv4/pipestream.c: File removed.
-rw-r--r--Makeconfig8
-rw-r--r--config.make.in1
-rwxr-xr-xconfigure281
-rw-r--r--configure.in18
-rw-r--r--stdio/.cvsignore8
-rw-r--r--stdio/Makefile46
-rw-r--r--stdio/Versions70
-rw-r--r--stdio/__fbufsize.c25
-rw-r--r--stdio/__flbf.c25
-rw-r--r--stdio/__fpending.c25
-rw-r--r--stdio/__fpurge.c25
-rw-r--r--stdio/__freadable.c25
-rw-r--r--stdio/__freading.c26
-rw-r--r--stdio/__fsetlocking.c41
-rw-r--r--stdio/__fwritable.c25
-rw-r--r--stdio/__fwriting.c26
-rw-r--r--stdio/clearerr.c32
-rw-r--r--stdio/fclose.c60
-rw-r--r--stdio/fcloseall.c37
-rw-r--r--stdio/feof.c39
-rw-r--r--stdio/ferror.c40
-rw-r--r--stdio/fflush.c47
-rw-r--r--stdio/fgetc.c35
-rw-r--r--stdio/fgetpos.c41
-rw-r--r--stdio/fgets.c125
-rw-r--r--stdio/fileno.c50
-rw-r--r--stdio/fmemopen.c109
-rw-r--r--stdio/fopen.c112
-rw-r--r--stdio/fopncook.c49
-rw-r--r--stdio/fputc.c40
-rw-r--r--stdio/fputs.c35
-rw-r--r--stdio/fread.c135
-rw-r--r--stdio/freopen.c75
-rw-r--r--stdio/fseek.c179
-rw-r--r--stdio/fsetpos.c38
-rw-r--r--stdio/ftell.c54
-rw-r--r--stdio/fwrite.c222
-rw-r--r--stdio/getc.c6
-rw-r--r--stdio/getchar.c31
-rw-r--r--stdio/getdelim.c177
-rw-r--r--stdio/gets.c59
-rw-r--r--stdio/glue.c112
-rw-r--r--stdio/internals.c688
-rw-r--r--stdio/linewrap.c521
-rw-r--r--stdio/linewrap.h200
-rw-r--r--stdio/memstream.c176
-rw-r--r--stdio/newstream.c53
-rw-r--r--stdio/obstream.c185
-rw-r--r--stdio/putc.c6
-rw-r--r--stdio/putchar.c31
-rw-r--r--stdio/puts.c31
-rw-r--r--stdio/rewind.c32
-rw-r--r--stdio/setbuf.c29
-rw-r--r--stdio/setbuffer.c29
-rw-r--r--stdio/setlinebuf.c28
-rw-r--r--stdio/setvbuf.c88
-rw-r--r--stdio/stdio.h832
-rw-r--r--stdio/ungetc.c59
-rw-r--r--stdio/vasprintf.c85
-rw-r--r--stdio/vscanf.c32
-rw-r--r--stdio/vsnprintf.c59
-rw-r--r--stdio/vsprintf.c51
-rw-r--r--stdio/vsscanf.c59
-rw-r--r--sysdeps/generic/defs.c47
-rw-r--r--sysdeps/generic/fdopen.c34
-rw-r--r--sysdeps/generic/pipestream.c60
-rw-r--r--sysdeps/generic/stdio_init.c30
-rw-r--r--sysdeps/generic/sysd-stdio.c191
-rw-r--r--sysdeps/generic/vdprintf.c33
-rwxr-xr-xsysdeps/mach/hurd/configure13
-rw-r--r--sysdeps/mach/hurd/configure.in9
-rw-r--r--sysdeps/mach/hurd/defs.c87
-rw-r--r--sysdeps/mach/hurd/fdopen.c72
-rw-r--r--sysdeps/mach/hurd/pipestream.c2
-rw-r--r--sysdeps/mach/hurd/stdio_init.c62
-rw-r--r--sysdeps/mach/hurd/sysd-stdio.c257
-rw-r--r--sysdeps/mach/hurd/vdprintf.c57
-rw-r--r--sysdeps/posix/defs.c74
-rw-r--r--sysdeps/posix/fdopen.c75
-rw-r--r--sysdeps/posix/pipestream.c221
-rw-r--r--sysdeps/posix/stdio_init.c69
-rw-r--r--sysdeps/posix/vdprintf.c49
-rw-r--r--sysdeps/unix/pipestream.c2
-rw-r--r--sysdeps/unix/sysv/linux/configure.in3
-rw-r--r--sysdeps/unix/sysv/sco3.2.4/pipestream.c3
-rw-r--r--sysdeps/unix/sysv/sysd-stdio.c2
-rw-r--r--sysdeps/unix/sysv/sysv4/pipestream.c2
87 files changed, 142 insertions, 7200 deletions
diff --git a/Makeconfig b/Makeconfig
index 2d2f727d85..ce2d16dcc5 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -139,10 +139,10 @@ endif
 ####
 
 
-# Set this to either `stdio' or `libio', to compile in either GNU stdio
-# or GNU libio.
+# Set this to the name of the subdirectory that implements stdio.
+# The only option right now is `libio'.
 ifndef stdio
-stdio = stdio
+stdio = libio
 endif
 
 # Common prefix for machine-independent installation directories.
@@ -762,6 +762,7 @@ $(common-objpfx)shlib-versions.v.i: \
 						     $(add-ons) \
 						     $(subdirs)))
 $(common-objpfx)soversions.i: $(common-objpfx)shlib-versions.v
+	default_setname='$(filter-out %_default,$(oldest-abi:%=GLIBC_%))'; \
 	while read conf version setname; do \
 	  test -n "$$version" && \
 	  test `expr '$(config-machine)-$(config-vendor)-$(config-os)' \
@@ -769,6 +770,7 @@ $(common-objpfx)soversions.i: $(common-objpfx)shlib-versions.v
 	  if test "x$$version" = xDEFAULT; then \
 	    default_setname="$$setname"; \
 	  else \
+	    $(abi-default_setname) \
 	    lib=`echo $$version | sed 's/=.*$$//'`; \
 	    if eval test -z "\$${versioned_$${lib}}"; then \
 	      eval versioned_$${lib}=yes; \
diff --git a/config.make.in b/config.make.in
index edd47a51bc..ae756afd58 100644
--- a/config.make.in
+++ b/config.make.in
@@ -75,7 +75,6 @@ build-profile = @profile@
 build-omitfp = @omitfp@
 build-bounded = @bounded@
 build-static-nss = @static_nss@
-stdio = @stdio@
 add-ons = @subdirs@
 cross-compiling = @cross_compiling@
 force-install = @force_install@
diff --git a/configure b/configure
index 7388206f06..bb663a7983 100755
--- a/configure
+++ b/configure
@@ -45,8 +45,6 @@ ac_help="$ac_help
                           [e.g. /usr/src/linux/include]
                           [default=compiler default]"
 ac_help="$ac_help
-  --enable-libio          build in GNU libio instead of GNU stdio"
-ac_help="$ac_help
   --disable-sanity-checks really do not use threads (should not be used
 			  except in special situations) [default=yes]"
 ac_help="$ac_help
@@ -734,19 +732,6 @@ else
 fi
 
 
-# Check whether --enable-libio or --disable-libio was given.
-if test "${enable_libio+set}" = set; then
-  enableval="$enable_libio"
-  if test $enableval = yes; then
-	         stdio=libio
-	       else
-	         stdio=stdio
-	       fi
-else
-  stdio=default
-fi
-
-
 # Check whether --enable-sanity-checks or --disable-sanity-checks was given.
 if test "${enable_sanity_checks+set}" = set; then
   enableval="$enable_sanity_checks"
@@ -922,7 +907,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:926: checking host system type" >&5
+echo "configure:911: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -1070,7 +1055,7 @@ fi
 # This can take a while to compute.
 sysdep_dir=$srcdir/sysdeps
 echo $ac_n "checking sysdep dirs""... $ac_c" 1>&6
-echo "configure:1074: checking sysdep dirs" >&5
+echo "configure:1059: checking sysdep dirs" >&5
 # Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
 os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
 
@@ -1293,7 +1278,7 @@ echo "$ac_t""$default_sysnames" 1>&6
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:1297: checking for a BSD compatible install" >&5
+echo "configure:1282: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1350,7 +1335,7 @@ if test "$INSTALL" = "${srcdir}/scripts/install-sh -c"; then
   INSTALL='\$(..)./scripts/install-sh -c'
 fi
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1354: checking whether ln -s works" >&5
+echo "configure:1339: checking whether ln -s works" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1379,7 +1364,7 @@ fi
 # Extract the first word of "pwd", so it can be a program name with args.
 set dummy pwd; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1383: checking for $ac_word" >&5
+echo "configure:1368: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PWD_P'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1418,7 +1403,7 @@ fi
 
 # These programs are version sensitive.
 echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1422: checking build system type" >&5
+echo "configure:1407: checking build system type" >&5
 
 build_alias=$build
 case "$build_alias" in
@@ -1446,7 +1431,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1450: checking for $ac_word" >&5
+echo "configure:1435: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1480,7 +1465,7 @@ if test -z "$CC"; then
 else
   # Found it, now check the version.
   echo $ac_n "checking version of $CC""... $ac_c" 1>&6
-echo "configure:1484: checking version of $CC" >&5
+echo "configure:1469: checking version of $CC" >&5
   ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
   case $ac_prog_version in
     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
@@ -1500,7 +1485,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1504: checking for $ac_word" >&5
+echo "configure:1489: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1534,7 +1519,7 @@ if test -z "$MAKE"; then
 else
   # Found it, now check the version.
   echo $ac_n "checking version of $MAKE""... $ac_c" 1>&6
-echo "configure:1538: checking version of $MAKE" >&5
+echo "configure:1523: checking version of $MAKE" >&5
   ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
   case $ac_prog_version in
     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
@@ -1563,7 +1548,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1567: checking for $ac_word" >&5
+echo "configure:1552: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1597,7 +1582,7 @@ if test -z "$MSGFMT"; then
 else
   # Found it, now check the version.
   echo $ac_n "checking version of $MSGFMT""... $ac_c" 1>&6
-echo "configure:1601: checking version of $MSGFMT" >&5
+echo "configure:1586: checking version of $MSGFMT" >&5
   ac_prog_version=`$MSGFMT --version 2>&1 | sed -n 's/^.*GNU gettext.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
   case $ac_prog_version in
     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
@@ -1617,7 +1602,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1621: checking for $ac_word" >&5
+echo "configure:1606: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1651,7 +1636,7 @@ if test -z "$MAKEINFO"; then
 else
   # Found it, now check the version.
   echo $ac_n "checking version of $MAKEINFO""... $ac_c" 1>&6
-echo "configure:1655: checking version of $MAKEINFO" >&5
+echo "configure:1640: checking version of $MAKEINFO" >&5
   ac_prog_version=`$MAKEINFO --version 2>&1 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
   case $ac_prog_version in
     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
@@ -1671,7 +1656,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1675: checking for $ac_word" >&5
+echo "configure:1660: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_SED'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1705,7 +1690,7 @@ if test -z "$SED"; then
 else
   # Found it, now check the version.
   echo $ac_n "checking version of $SED""... $ac_c" 1>&6
-echo "configure:1709: checking version of $SED" >&5
+echo "configure:1694: checking version of $SED" >&5
   ac_prog_version=`$SED --version 2>&1 | sed -n 's/^.*GNU sed version \([0-9]*\.[0-9.]*\).*$/\1/p'`
   case $ac_prog_version in
     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
@@ -1723,7 +1708,7 @@ fi
 
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1727: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1712: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1737,12 +1722,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 1741 "configure"
+#line 1726 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:1746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1731: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1773,7 +1758,7 @@ else
  cross_linkable=yes
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1777: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1762: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_cross'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1785,7 +1770,7 @@ echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1789: checking whether we are using GNU C" >&5
+echo "configure:1774: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1794,7 +1779,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1798: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1783: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1807,7 +1792,7 @@ if test $ac_cv_prog_gcc != yes; then
 fi
 
 echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1811: checking build system type" >&5
+echo "configure:1796: checking build system type" >&5
 
 build_alias=$build
 case "$build_alias" in
@@ -1830,7 +1815,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1834: checking for $ac_word" >&5
+echo "configure:1819: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_BUILD_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1862,7 +1847,7 @@ done
 fi
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1866: checking how to run the C preprocessor" >&5
+echo "configure:1851: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1877,13 +1862,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1881 "configure"
+#line 1866 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1887: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1872: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1894,13 +1879,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1898 "configure"
+#line 1883 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1904: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1889: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1911,13 +1896,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1915 "configure"
+#line 1900 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1921: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1906: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1960,7 +1945,7 @@ if test $RANLIB = ranlib; then
 # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1964: checking for $ac_word" >&5
+echo "configure:1949: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1992,7 +1977,7 @@ if test -n "$ac_tool_prefix"; then
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1996: checking for $ac_word" >&5
+echo "configure:1981: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2029,7 +2014,7 @@ fi
 
 # Determine whether we are using GNU binutils.
 echo $ac_n "checking whether $AS is GNU as""... $ac_c" 1>&6
-echo "configure:2033: checking whether $AS is GNU as" >&5
+echo "configure:2018: checking whether $AS is GNU as" >&5
 if eval "test \"`echo '$''{'libc_cv_prog_as_gnu'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2048,7 +2033,7 @@ rm -f a.out
 gnu_as=$libc_cv_prog_as_gnu
 
 echo $ac_n "checking whether $LD is GNU ld""... $ac_c" 1>&6
-echo "configure:2052: checking whether $LD is GNU ld" >&5
+echo "configure:2037: checking whether $LD is GNU ld" >&5
 if eval "test \"`echo '$''{'libc_cv_prog_ld_gnu'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2068,7 +2053,7 @@ gnu_ld=$libc_cv_prog_ld_gnu
 # Extract the first word of "${ac_tool_prefix}mig", so it can be a program name with args.
 set dummy ${ac_tool_prefix}mig; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2072: checking for $ac_word" >&5
+echo "configure:2057: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MIG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2125,7 +2110,7 @@ fi
 
 # check if ranlib is necessary
 echo $ac_n "checking whether ranlib is necessary""... $ac_c" 1>&6
-echo "configure:2129: checking whether ranlib is necessary" >&5
+echo "configure:2114: checking whether ranlib is necessary" >&5
 if eval "test \"`echo '$''{'libc_cv_ranlib_necessary'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2159,7 +2144,7 @@ fi
 # - two terminals occur directly after each other
 # - the path contains an element with a dot in it
 echo $ac_n "checking LD_LIBRARY_PATH variable""... $ac_c" 1>&6
-echo "configure:2163: checking LD_LIBRARY_PATH variable" >&5
+echo "configure:2148: checking LD_LIBRARY_PATH variable" >&5
 case ${LD_LIBRARY_PATH} in
   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
     ld_library_path_setting="contains current directory"
@@ -2177,7 +2162,7 @@ if test "$ld_library_path_setting" != "ok"; then
 fi
 
 echo $ac_n "checking whether GCC supports -static-libgcc""... $ac_c" 1>&6
-echo "configure:2181: checking whether GCC supports -static-libgcc" >&5
+echo "configure:2166: checking whether GCC supports -static-libgcc" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_static_libgcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2194,7 +2179,7 @@ echo "$ac_t""$libc_cv_gcc_static_libgcc" 1>&6
 # Extract the first word of "bash", so it can be a program name with args.
 set dummy bash; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2198: checking for $ac_word" >&5
+echo "configure:2183: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2240,7 +2225,7 @@ if test "$BASH" = no; then
   # Extract the first word of "ksh", so it can be a program name with args.
 set dummy ksh; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2244: checking for $ac_word" >&5
+echo "configure:2229: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_KSH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2285,12 +2270,12 @@ else
 fi
 
 
-for ac_prog in mawk gawk nawk awk
+for ac_prog in gawk mawk nawk awk
 do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2294: checking for $ac_word" >&5
+echo "configure:2279: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2322,7 +2307,7 @@ done
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2326: checking for $ac_word" >&5
+echo "configure:2311: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2362,7 +2347,7 @@ fi
 # Extract the first word of "install-info", so it can be a program name with args.
 set dummy install-info; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2366: checking for $ac_word" >&5
+echo "configure:2351: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_INSTALL_INFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2397,7 +2382,7 @@ fi
 
 if test "$INSTALL_INFO" != "no"; then
 echo $ac_n "checking for old Debian install-info""... $ac_c" 1>&6
-echo "configure:2401: checking for old Debian install-info" >&5
+echo "configure:2386: checking for old Debian install-info" >&5
 if eval "test \"`echo '$''{'libc_cv_old_debian_install_info'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2432,7 +2417,7 @@ fi
 # Extract the first word of "bison", so it can be a program name with args.
 set dummy bison; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2436: checking for $ac_word" >&5
+echo "configure:2421: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_BISON'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2467,7 +2452,7 @@ fi
 
 
 echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6
-echo "configure:2471: checking for signed size_t type" >&5
+echo "configure:2456: checking for signed size_t type" >&5
 if eval "test \"`echo '$''{'libc_cv_signed_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2491,12 +2476,12 @@ EOF
 fi
 
 echo $ac_n "checking for libc-friendly stddef.h""... $ac_c" 1>&6
-echo "configure:2495: checking for libc-friendly stddef.h" >&5
+echo "configure:2480: checking for libc-friendly stddef.h" >&5
 if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2500 "configure"
+#line 2485 "configure"
 #include "confdefs.h"
 #define __need_size_t
 #define __need_wchar_t
@@ -2511,7 +2496,7 @@ size_t size; wchar_t wchar;
 if (&size == NULL || &wchar == NULL) abort ();
 ; return 0; }
 EOF
-if { (eval echo configure:2515: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2500: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   libc_cv_friendly_stddef=yes
 else
@@ -2530,7 +2515,7 @@ override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
 fi
 
 echo $ac_n "checking whether we need to use -P to assemble .S files""... $ac_c" 1>&6
-echo "configure:2534: checking whether we need to use -P to assemble .S files" >&5
+echo "configure:2519: checking whether we need to use -P to assemble .S files" >&5
 if eval "test \"`echo '$''{'libc_cv_need_minus_P'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2553,7 +2538,7 @@ asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
 fi
 
 echo $ac_n "checking whether .text pseudo-op must be used""... $ac_c" 1>&6
-echo "configure:2557: checking whether .text pseudo-op must be used" >&5
+echo "configure:2542: checking whether .text pseudo-op must be used" >&5
 if eval "test \"`echo '$''{'libc_cv_dot_text'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2574,7 +2559,7 @@ else
 fi
 
 echo $ac_n "checking for assembler global-symbol directive""... $ac_c" 1>&6
-echo "configure:2578: checking for assembler global-symbol directive" >&5
+echo "configure:2563: checking for assembler global-symbol directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_global_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2604,7 +2589,7 @@ EOF
 fi
 
 echo $ac_n "checking for .set assembler directive""... $ac_c" 1>&6
-echo "configure:2608: checking for .set assembler directive" >&5
+echo "configure:2593: checking for .set assembler directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_set_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2647,7 +2632,7 @@ EOF
 esac
 
 echo $ac_n "checking for .symver assembler directive""... $ac_c" 1>&6
-echo "configure:2651: checking for .symver assembler directive" >&5
+echo "configure:2636: checking for .symver assembler directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_symver_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2666,7 +2651,7 @@ fi
 
 echo "$ac_t""$libc_cv_asm_symver_directive" 1>&6
 echo $ac_n "checking for ld --version-script""... $ac_c" 1>&6
-echo "configure:2670: checking for ld --version-script" >&5
+echo "configure:2655: checking for ld --version-script" >&5
 if eval "test \"`echo '$''{'libc_cv_ld_version_script_option'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2689,7 +2674,7 @@ EOF
     if { ac_try='${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
 					-nostartfiles -nostdlib
 					-Wl,--version-script,conftest.map
-		       1>&5'; { (eval echo configure:2693: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
+		       1>&5'; { (eval echo configure:2678: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
     then
       libc_cv_ld_version_script_option=yes
     else
@@ -2728,7 +2713,7 @@ if test $elf = yes && test $shared != no && test $VERSIONING = no; then
 fi
 if test $elf = yes; then
   echo $ac_n "checking for .previous assembler directive""... $ac_c" 1>&6
-echo "configure:2732: checking for .previous assembler directive" >&5
+echo "configure:2717: checking for .previous assembler directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_previous_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2736,7 +2721,7 @@ else
 .section foo_section
 .previous
 EOF
-  if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2740: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+  if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2725: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
     libc_cv_asm_previous_directive=yes
   else
     libc_cv_asm_previous_directive=no
@@ -2752,7 +2737,7 @@ EOF
 
   else
     echo $ac_n "checking for .popsection assembler directive""... $ac_c" 1>&6
-echo "configure:2756: checking for .popsection assembler directive" >&5
+echo "configure:2741: checking for .popsection assembler directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_popsection_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2760,7 +2745,7 @@ else
 .pushsection foo_section
 .popsection
 EOF
-    if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2764: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+    if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
       libc_cv_asm_popsection_directive=yes
     else
       libc_cv_asm_popsection_directive=no
@@ -2777,7 +2762,7 @@ EOF
     fi
   fi
   echo $ac_n "checking for .protected and .hidden assembler directive""... $ac_c" 1>&6
-echo "configure:2781: checking for .protected and .hidden assembler directive" >&5
+echo "configure:2766: checking for .protected and .hidden assembler directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_protected_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2787,7 +2772,7 @@ foo:
 .hidden bar
 bar:
 EOF
-  if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2791: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+  if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2776: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
     libc_cv_asm_protected_directive=yes
   else
     libc_cv_asm_protected_directive=no
@@ -2804,7 +2789,7 @@ EOF
 
   if test $libc_cv_asm_protected_directive = yes; then
     echo $ac_n "checking whether __attribute__((visibility())) is supported""... $ac_c" 1>&6
-echo "configure:2808: checking whether __attribute__((visibility())) is supported" >&5
+echo "configure:2793: checking whether __attribute__((visibility())) is supported" >&5
 if eval "test \"`echo '$''{'libc_cv_visibility_attribute'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2835,7 +2820,7 @@ EOF
 
   if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then
     echo $ac_n "checking whether to put _rtld_local into .sdata section""... $ac_c" 1>&6
-echo "configure:2839: checking whether to put _rtld_local into .sdata section" >&5
+echo "configure:2824: checking whether to put _rtld_local into .sdata section" >&5
 if eval "test \"`echo '$''{'libc_cv_have_sdata_section'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2859,7 +2844,7 @@ EOF
   fi
 
   echo $ac_n "checking for .preinit_array/.init_array/.fini_array support""... $ac_c" 1>&6
-echo "configure:2863: checking for .preinit_array/.init_array/.fini_array support" >&5
+echo "configure:2848: checking for .preinit_array/.init_array/.fini_array support" >&5
 if eval "test \"`echo '$''{'libc_cv_initfinit_array'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2870,7 +2855,7 @@ int foo (void) { return 1; }
 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
 EOF
   if { ac_try='${CC-cc} -o conftest conftest.c
-		     -static -nostartfiles -nostdlib 1>&5'; { (eval echo configure:2874: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+		     -static -nostartfiles -nostdlib 1>&5'; { (eval echo configure:2859: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
   then
     if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
       libc_cv_initfinit_array=yes
@@ -2893,7 +2878,7 @@ EOF
   fi
 
   echo $ac_n "checking for -z nodelete option""... $ac_c" 1>&6
-echo "configure:2897: checking for -z nodelete option" >&5
+echo "configure:2882: checking for -z nodelete option" >&5
 if eval "test \"`echo '$''{'libc_cv_z_nodelete'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2902,7 +2887,7 @@ int _start (void) { return 42; }
 EOF
   if { ac_try='${CC-cc} -shared -o conftest.so conftest.c
 		     -nostartfiles -nostdlib
-		     -Wl,--enable-new-dtags,-z,nodelete 1>&5'; { (eval echo configure:2906: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+		     -Wl,--enable-new-dtags,-z,nodelete 1>&5'; { (eval echo configure:2891: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
   then
     libc_cv_z_nodelete=yes
   else
@@ -2915,7 +2900,7 @@ echo "$ac_t""$libc_cv_z_nodelete" 1>&6
   
 
   echo $ac_n "checking for -z nodlopen option""... $ac_c" 1>&6
-echo "configure:2919: checking for -z nodlopen option" >&5
+echo "configure:2904: checking for -z nodlopen option" >&5
 if eval "test \"`echo '$''{'libc_cv_z_nodlopen'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2924,7 +2909,7 @@ int _start (void) { return 42; }
 EOF
   if { ac_try='${CC-cc} -shared -o conftest.so conftest.c
 			-nostartfiles -nostdlib
-			-Wl,--enable-new-dtags,-z,nodlopen 1>&5'; { (eval echo configure:2928: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+			-Wl,--enable-new-dtags,-z,nodlopen 1>&5'; { (eval echo configure:2913: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
   then
     libc_cv_z_nodlopen=yes
   else
@@ -2937,7 +2922,7 @@ echo "$ac_t""$libc_cv_z_nodlopen" 1>&6
   
 
   echo $ac_n "checking for -z initfirst option""... $ac_c" 1>&6
-echo "configure:2941: checking for -z initfirst option" >&5
+echo "configure:2926: checking for -z initfirst option" >&5
 if eval "test \"`echo '$''{'libc_cv_z_initfirst'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2946,7 +2931,7 @@ int _start (void) { return 42; }
 EOF
   if { ac_try='${CC-cc} -shared -o conftest.so conftest.c
 			-nostartfiles -nostdlib
-			-Wl,--enable-new-dtags,-z,initfirst 1>&5'; { (eval echo configure:2950: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+			-Wl,--enable-new-dtags,-z,initfirst 1>&5'; { (eval echo configure:2935: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
   then
     libc_cv_z_initfirst=yes
   else
@@ -2959,14 +2944,14 @@ echo "$ac_t""$libc_cv_z_initfirst" 1>&6
   
 
   echo $ac_n "checking for -Bgroup option""... $ac_c" 1>&6
-echo "configure:2963: checking for -Bgroup option" >&5
+echo "configure:2948: checking for -Bgroup option" >&5
 if eval "test \"`echo '$''{'libc_cv_Bgroup'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     cat > conftest.c <<EOF
 int _start (void) { return 42; }
 EOF
-  if { ac_try='${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&5'; { (eval echo configure:2970: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+  if { ac_try='${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&5'; { (eval echo configure:2955: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
   then
     libc_cv_Bgroup=yes
   else
@@ -2979,7 +2964,7 @@ echo "$ac_t""$libc_cv_Bgroup" 1>&6
   
 
   echo $ac_n "checking for -z combreloc""... $ac_c" 1>&6
-echo "configure:2983: checking for -z combreloc" >&5
+echo "configure:2968: checking for -z combreloc" >&5
 if eval "test \"`echo '$''{'libc_cv_z_combreloc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2990,7 +2975,7 @@ int foo (void) { return bar (mumble); }
 EOF
   if { ac_try='${CC-cc} -shared -o conftest.so conftest.c
 			-nostdlib -nostartfiles
-			-Wl,-z,combreloc 1>&5'; { (eval echo configure:2994: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+			-Wl,-z,combreloc 1>&5'; { (eval echo configure:2979: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
   then
     if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
       libc_cv_z_combreloc=yes
@@ -3015,12 +3000,12 @@ fi
 
 if test $elf != yes; then
   echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6
-echo "configure:3019: checking for .init and .fini sections" >&5
+echo "configure:3004: checking for .init and .fini sections" >&5
 if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3024 "configure"
+#line 3009 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -3029,7 +3014,7 @@ asm (".section .init");
 				    asm ("${libc_cv_dot_text}");
 ; return 0; }
 EOF
-if { (eval echo configure:3033: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3018: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   libc_cv_have_initfini=yes
 else
@@ -3052,7 +3037,7 @@ fi
 
 if test $elf = yes -a $gnu_ld = yes; then
   echo $ac_n "checking whether cc puts quotes around section names""... $ac_c" 1>&6
-echo "configure:3056: checking whether cc puts quotes around section names" >&5
+echo "configure:3041: checking whether cc puts quotes around section names" >&5
 if eval "test \"`echo '$''{'libc_cv_have_section_quotes'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3089,19 +3074,19 @@ if test $elf = yes; then
 else
   if test $ac_cv_prog_cc_works = yes; then
     echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
-echo "configure:3093: checking for _ prefix on C symbol names" >&5
+echo "configure:3078: checking for _ prefix on C symbol names" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3098 "configure"
+#line 3083 "configure"
 #include "confdefs.h"
 asm ("_glibc_foobar:");
 int main() {
 glibc_foobar ();
 ; return 0; }
 EOF
-if { (eval echo configure:3105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   libc_cv_asm_underscores=yes
 else
@@ -3116,17 +3101,17 @@ fi
 echo "$ac_t""$libc_cv_asm_underscores" 1>&6
   else
     echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
-echo "configure:3120: checking for _ prefix on C symbol names" >&5
+echo "configure:3105: checking for _ prefix on C symbol names" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3125 "configure"
+#line 3110 "configure"
 #include "confdefs.h"
 void underscore_test(void) {
 return; }
 EOF
-if { (eval echo configure:3130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3115: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   if grep _underscore_test conftest* >/dev/null; then
     rm -f conftest*
     libc_cv_asm_underscores=yes
@@ -3158,7 +3143,7 @@ if test $elf = yes; then
 fi
 
 echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6
-echo "configure:3162: checking for assembler .weak directive" >&5
+echo "configure:3147: checking for assembler .weak directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_weak_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3181,7 +3166,7 @@ echo "$ac_t""$libc_cv_asm_weak_directive" 1>&6
 
 if test $libc_cv_asm_weak_directive = no; then
   echo $ac_n "checking for assembler .weakext directive""... $ac_c" 1>&6
-echo "configure:3185: checking for assembler .weakext directive" >&5
+echo "configure:3170: checking for assembler .weakext directive" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_weakext_directive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3228,14 +3213,14 @@ EOF
     ;;
   hppa*linux*)
   echo $ac_n "checking for assembler line separator""... $ac_c" 1>&6
-echo "configure:3232: checking for assembler line separator" >&5
+echo "configure:3217: checking for assembler line separator" >&5
 if eval "test \"`echo '$''{'libc_cv_asm_line_sep'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     cat > conftest.s <<EOF
  nop ; is_old_puffin
 EOF
-  if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:3239: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+  if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:3224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
     libc_cv_asm_line_sep='!'
   else
     if test -z "$enable_hacker_mode"; then
@@ -3257,7 +3242,7 @@ EOF
 esac
 
 echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6
-echo "configure:3261: checking for ld --no-whole-archive" >&5
+echo "configure:3246: checking for ld --no-whole-archive" >&5
 if eval "test \"`echo '$''{'libc_cv_ld_no_whole_archive'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3268,7 +3253,7 @@ __throw () {}
 EOF
 if { ac_try='${CC-cc} $CFLAGS
 			    -nostdlib -nostartfiles -Wl,--no-whole-archive
-			    -o conftest conftest.c 1>&5'; { (eval echo configure:3272: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			    -o conftest conftest.c 1>&5'; { (eval echo configure:3257: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_ld_no_whole_archive=yes
 else
   libc_cv_ld_no_whole_archive=no
@@ -3282,7 +3267,7 @@ if test $libc_cv_ld_no_whole_archive = yes; then
 fi
 
 echo $ac_n "checking for gcc -fexceptions""... $ac_c" 1>&6
-echo "configure:3286: checking for gcc -fexceptions" >&5
+echo "configure:3271: checking for gcc -fexceptions" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_exceptions'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3293,7 +3278,7 @@ __throw () {}
 EOF
 if { ac_try='${CC-cc} $CFLAGS
 			    -nostdlib -nostartfiles -fexceptions
-			    -o conftest conftest.c 1>&5'; { (eval echo configure:3297: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			    -o conftest conftest.c 1>&5'; { (eval echo configure:3282: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_gcc_exceptions=yes
 else
   libc_cv_gcc_exceptions=no
@@ -3308,14 +3293,14 @@ fi
 
 if test "$base_machine" = alpha ; then
 echo $ac_n "checking for function ..ng prefix""... $ac_c" 1>&6
-echo "configure:3312: checking for function ..ng prefix" >&5
+echo "configure:3297: checking for function ..ng prefix" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_alpha_ng_prefix'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.c <<\EOF
 foo () { }
 EOF
-if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:3319: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
+if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:3304: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
 then
   libc_cv_gcc_alpha_ng_prefix=yes
 else
@@ -3342,19 +3327,19 @@ if test "$host_cpu" = powerpc ; then
 # Check for a bug present in at least versions 2.8.x of GCC
 # and versions 1.0.x of EGCS.
 echo $ac_n "checking whether clobbering cr0 causes problems""... $ac_c" 1>&6
-echo "configure:3346: checking whether clobbering cr0 causes problems" >&5
+echo "configure:3331: checking whether clobbering cr0 causes problems" >&5
 if eval "test \"`echo '$''{'libc_cv_c_asmcr0_bug'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3351 "configure"
+#line 3336 "configure"
 #include "confdefs.h"
 int tester(int x) { asm ("" : : : "cc"); return x & 123; }
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:3358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   libc_cv_c_asmcr0_bug='no'
 else
@@ -3376,12 +3361,12 @@ fi
 fi
 
 echo $ac_n "checking for DWARF2 unwind info support""... $ac_c" 1>&6
-echo "configure:3380: checking for DWARF2 unwind info support" >&5
+echo "configure:3365: checking for DWARF2 unwind info support" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_dwarf2_unwind_info'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.c <<EOF
-#line 3385 "configure"
+#line 3370 "configure"
 static char *__EH_FRAME_BEGIN__;
 _start ()
 {
@@ -3408,14 +3393,14 @@ __bzero () {}
 EOF
 if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame_info
 			    -nostdlib -nostartfiles
-			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3412: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3397: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_gcc_dwarf2_unwind_info=static
 else
   libc_cv_gcc_dwarf2_unwind_info=no
 fi
 if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame_info
                             -nostdlib -nostartfiles
-                            -o conftest conftest.c -lgcc -lgcc_eh >&5'; { (eval echo configure:3419: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+                            -o conftest conftest.c -lgcc -lgcc_eh >&5'; { (eval echo configure:3404: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   if ${CC-cc} $CFLAGS -DCHECK__register_frame_info -nostdlib -nostartfiles \
      -o conftest conftest.c -lgcc -lgcc_eh -v 2>&1 >/dev/null \
      | grep -q -- --eh-frame-hdr; then
@@ -3429,7 +3414,7 @@ fi
 if test $libc_cv_gcc_dwarf2_unwind_info = no; then
   if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame
 			      -nostdlib -nostartfiles
-			      -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3433: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			      -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3418: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
     libc_cv_gcc_dwarf2_unwind_info=yes
   else
     libc_cv_gcc_dwarf2_unwind_info=no
@@ -3459,12 +3444,12 @@ EOF
 esac
 
 echo $ac_n "checking for __builtin_expect""... $ac_c" 1>&6
-echo "configure:3463: checking for __builtin_expect" >&5
+echo "configure:3448: checking for __builtin_expect" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_builtin_expect'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.c <<EOF
-#line 3468 "configure"
+#line 3453 "configure"
 int foo (int a)
 {
   a = __builtin_expect (a, 10);
@@ -3472,7 +3457,7 @@ int foo (int a)
 }
 EOF
 if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles
-			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3476: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3461: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_gcc_builtin_expect=yes
 else
   libc_cv_gcc_builtin_expect=no
@@ -3489,7 +3474,7 @@ EOF
 fi
 
 echo $ac_n "checking for __builtin_memset""... $ac_c" 1>&6
-echo "configure:3493: checking for __builtin_memset" >&5
+echo "configure:3478: checking for __builtin_memset" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_builtin_memset'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3499,7 +3484,7 @@ void zero (void *x)
   __builtin_memset (x, 0, 1000);
 }
 EOF
-if { ac_try='${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null'; { (eval echo configure:3503: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
+if { ac_try='${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null'; { (eval echo configure:3488: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
 then
   libc_cv_gcc_builtin_memset=no
 else
@@ -3517,12 +3502,12 @@ EOF
 fi
 
 echo $ac_n "checking for local label subtraction""... $ac_c" 1>&6
-echo "configure:3521: checking for local label subtraction" >&5
+echo "configure:3506: checking for local label subtraction" >&5
 if eval "test \"`echo '$''{'libc_cv_gcc_subtract_local_labels'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.c <<EOF
-#line 3526 "configure"
+#line 3511 "configure"
 int foo (int a)
 {
   static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
@@ -3535,7 +3520,7 @@ int foo (int a)
 }
 EOF
 if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles
-			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+			    -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3524: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   libc_cv_gcc_subtract_local_labels=yes
 else
   libc_cv_gcc_subtract_local_labels=no
@@ -3552,7 +3537,7 @@ EOF
 fi
 
 echo $ac_n "checking for libgd""... $ac_c" 1>&6
-echo "configure:3556: checking for libgd" >&5
+echo "configure:3541: checking for libgd" >&5
 if test "$with_gd" != "no"; then
   old_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS $libgd_include"
@@ -3561,14 +3546,14 @@ if test "$with_gd" != "no"; then
   old_LIBS="$LIBS"
   LIBS="$LIBS -lgd -lpng -lz -lm"
   cat > conftest.$ac_ext <<EOF
-#line 3565 "configure"
+#line 3550 "configure"
 #include "confdefs.h"
 #include <gd.h>
 int main() {
 gdImagePng (0, 0)
 ; return 0; }
 EOF
-if { (eval echo configure:3572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   LIBGD=yes
 else
@@ -3588,7 +3573,7 @@ echo "$ac_t""$LIBGD" 1>&6
 
 
 echo $ac_n "checking size of long double""... $ac_c" 1>&6
-echo "configure:3592: checking size of long double" >&5
+echo "configure:3577: checking size of long double" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long_double'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3596,18 +3581,18 @@ else
   ac_cv_sizeof_long_double=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 3600 "configure"
+#line 3585 "configure"
 #include "confdefs.h"
 #include <stdio.h>
-main()
+int main()
 {
   FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
+  if (!f) return(1);
   fprintf(f, "%d\n", sizeof(long double));
-  exit(0);
+  return(0);
 }
 EOF
-if { (eval echo configure:3611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3596: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long_double=`cat conftestval`
 else
@@ -3685,7 +3670,7 @@ if test "$uname" = "sysdeps/generic"; then
   fi
 
   echo $ac_n "checking OS release for uname""... $ac_c" 1>&6
-echo "configure:3689: checking OS release for uname" >&5
+echo "configure:3674: checking OS release for uname" >&5
 if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3707,7 +3692,7 @@ echo "$ac_t""$libc_cv_uname_release" 1>&6
   uname_release="$libc_cv_uname_release"
 
   echo $ac_n "checking OS version for uname""... $ac_c" 1>&6
-echo "configure:3711: checking OS version for uname" >&5
+echo "configure:3696: checking OS version for uname" >&5
 if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3728,22 +3713,15 @@ else
   config_uname=
 fi
 
-echo $ac_n "checking stdio selection""... $ac_c" 1>&6
-echo "configure:3733: checking stdio selection" >&5
-
-case $stdio in
-libio) cat >> confdefs.h <<\EOF
+cat >> confdefs.h <<\EOF
 #define USE_IN_LIBIO 1
 EOF
- ;;
-default) stdio=stdio ;;
-esac
-echo "$ac_t""$stdio" 1>&6
+
 
 # Test for old glibc 2.0.x headers so that they can be removed properly
 # Search only in includedir.
 echo $ac_n "checking for old glibc 2.0.x headers""... $ac_c" 1>&6
-echo "configure:3747: checking for old glibc 2.0.x headers" >&5
+echo "configure:3725: checking for old glibc 2.0.x headers" >&5
 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
 then
   old_glibc_headers=yes
@@ -3804,7 +3782,7 @@ if test $shared = default; then
 fi
 
 echo $ac_n "checking whether -fPIC is default""... $ac_c" 1>&6
-echo "configure:3808: checking whether -fPIC is default" >&5
+echo "configure:3786: checking whether -fPIC is default" >&5
 if eval "test \"`echo '$''{'pic_default'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4047,7 +4025,6 @@ s%@libc_cv_gcc_unwind_find_fde@%$libc_cv_gcc_unwind_find_fde%g
 s%@uname_sysname@%$uname_sysname%g
 s%@uname_release@%$uname_release%g
 s%@uname_version@%$uname_version%g
-s%@stdio@%$stdio%g
 s%@old_glibc_headers@%$old_glibc_headers%g
 s%@libc_cv_slibdir@%$libc_cv_slibdir%g
 s%@libc_cv_localedir@%$libc_cv_localedir%g
diff --git a/configure.in b/configure.in
index 4b5deb54a4..3501f858c0 100644
--- a/configure.in
+++ b/configure.in
@@ -86,15 +86,6 @@ AC_ARG_WITH(headers, dnl
                           [default=compiler default]],
 	    sysheaders=$withval, sysheaders='')
 
-AC_ARG_ENABLE(libio, dnl
-[  --enable-libio          build in GNU libio instead of GNU stdio],
- 	      [if test $enableval = yes; then
-	         stdio=libio
-	       else
-	         stdio=stdio
-	       fi],
-	      stdio=default)
-
 AC_ARG_ENABLE(sanity-checks, dnl
 [  --disable-sanity-checks really do not use threads (should not be used
 			  except in special situations) [default=yes]],
@@ -1646,13 +1637,8 @@ else
   config_uname=
 fi
 
-AC_MSG_CHECKING(stdio selection)
-AC_SUBST(stdio)
-case $stdio in
-libio) AC_DEFINE(USE_IN_LIBIO) ;;
-default) stdio=stdio ;;
-esac
-AC_MSG_RESULT($stdio)
+dnl This is tested by existing code and it's simpler to avoid changing it.
+AC_DEFINE(USE_IN_LIBIO)
 
 # Test for old glibc 2.0.x headers so that they can be removed properly
 # Search only in includedir.
diff --git a/stdio/.cvsignore b/stdio/.cvsignore
deleted file mode 100644
index 602b74c1ae..0000000000
--- a/stdio/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-*.d *.o *.so *.po *.go stamp.* *.stamp *.ustamp *.udeps
-*.gz *.Z *.tar *.tgz
-=*
-TODO COPYING* AUTHORS copyr-* copying.*
-glibc-*
-
-mpn-copy.mk
-distinfo
diff --git a/stdio/Makefile b/stdio/Makefile
deleted file mode 100644
index 53cf73cdb4..0000000000
--- a/stdio/Makefile
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright (C) 1991,92,93,94,95,96,2001 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, write to the Free
-# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-# 02111-1307 USA.
-
-#
-#	Specific makefile for stdio.
-#
-subdir	:= stdio
-
-headers	:= stdio.h linewrap.h
-
-routines	:=							      \
-	feof ferror clearerr fileno					      \
-	newstream fopen freopen fdopen fopncook fmemopen		      \
-	setbuf setvbuf setbuffer setlinebuf				      \
-	fseek ftell rewind fgetpos fsetpos				      \
-	fread fwrite							      \
-	ungetc								      \
-	fgetc getc getchar						      \
-	fputc putc putchar						      \
-	fgets gets fputs puts						      \
-	getdelim							      \
-	fclose fcloseall fflush						      \
-	vdprintf vsnprintf vsprintf vasprintf vsscanf vscanf		      \
-	memstream obstream linewrap					      \
-	__fbufsize __freading __fwriting __freadable __fwritable __flbf	      \
-	__fpurge __fpending __fsetlocking				      \
-	internals sysd-stdio pipestream stdio_init libc_fatal
-aux	:= defs glue
-
-
-include ../Rules
diff --git a/stdio/Versions b/stdio/Versions
deleted file mode 100644
index ccfda9c268..0000000000
--- a/stdio/Versions
+++ /dev/null
@@ -1,70 +0,0 @@
-libc {
-  GLIBC_2.0 {
-    # more or less standard functions
-    __fillbf; __flshfp;
-
-    # functions used in inline functions or macros
-    __getdelim; __line_wrap_output; __line_wrap_update;
-    __vfscanf; __vsscanf;
-
-    # variables in normal name space
-    stderr; stdin; stdout;
-
-    # c*
-    clearerr;
-
-    # f*
-    fclose; fcloseall; fdopen; feof; ferror; fflush; fgetc; fgetpos; fgets;
-    fileno; fmemopen; fopen; fopencookie; fputc; fputs; fread; freopen;
-    fseek; fsetpos; ftell; fwrite;
-
-    # g*
-    getc; getchar; getdelim; gets;
-
-    # l*
-    line_wrap_stream; line_unwrap_stream; line_wrapped; line_wrap_lmargin;
-    line_wrap_set_lmargin; line_wrap_rmargin; line_wrap_set_rmargin;
-    line_wrap_wmargin; line_wrap_set_wmargin; line_wrap_point;
-
-    # o*
-    open_memstream; open_obstack_stream; obstack_printf; obstack_vprintf;
-
-    # p*
-    pclose; popen; putc; putchar; puts;
-
-    # r*
-    rewind;
-
-    # s*
-    setbuf; setbuffer; setlinebuf; setvbuf;
-
-    # u*
-    ungetc;
-
-    # v*
-    vasprintf; vdprintf; vscanf; vsnprintf; vsprintf; vsscanf;
-  }
-  GLIBC_2.1 {
-    # functions used in other libraries
-    __asprintf;
-
-    # c*
-    clearerr_unlocked;
-
-    # f*
-    feof_unlocked; ferror_unlocked; fflush_unlocked;  fgets_unlocked;
-    fileno_unlocked; fputc_unlocked; fputs_unlocked;
-    fread_unlocked; fwrite_unlocked;
-
-    # g*
-    getc_unlocked; getchar_unlocked;
-
-    # p*
-    putc_unlocked; putchar_unlocked;
-  }
-  GLIBC_2.2.4 {
-    # Functions to access FILE internals.
-    __fbufsize; __freading; __fwriting; __freadable; __fwritable; __flbf;
-    __fpurge; __fpending; __fsetlocking; _flushlbf;
-  }
-}
diff --git a/stdio/__fbufsize.c b/stdio/__fbufsize.c
deleted file mode 100644
index ad42ee2427..0000000000
--- a/stdio/__fbufsize.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio_ext.h>
-
-size_t
-__fbufsize (FILE *fp)
-{
-  return fp->__bufsize;
-}
diff --git a/stdio/__flbf.c b/stdio/__flbf.c
deleted file mode 100644
index 9eb80abdbf..0000000000
--- a/stdio/__flbf.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio_ext.h>
-
-int
-__flbf (FILE *fp)
-{
-  return fp->__linebuf;
-}
diff --git a/stdio/__fpending.c b/stdio/__fpending.c
deleted file mode 100644
index 0e7b8f02f0..0000000000
--- a/stdio/__fpending.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio_ext.h>
-
-size_t
-__fpending (FILE *fp)
-{
-  return (fp->__put_limit >= fp->__bufp ? fp->__bufp - fp->__buffer : 0);
-}
diff --git a/stdio/__fpurge.c b/stdio/__fpurge.c
deleted file mode 100644
index db882b68f5..0000000000
--- a/stdio/__fpurge.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio_ext.h>
-
-void
-__fpurge (FILE *fp)
-{
-  fp->__get_limit = fp->__put_limit = fp->__bufp = fp->__buffer;
-}
diff --git a/stdio/__freadable.c b/stdio/__freadable.c
deleted file mode 100644
index 5674d5bef5..0000000000
--- a/stdio/__freadable.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio_ext.h>
-
-int
-__freadable (FILE *fp)
-{
-  return !!fp->__mode.__read;
-}
diff --git a/stdio/__freading.c b/stdio/__freading.c
deleted file mode 100644
index 16d0fd97f8..0000000000
--- a/stdio/__freading.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio_ext.h>
-
-int
-__freading (FILE *fp)
-{
-  /* This is not really right for unbuffered streams.  */
-  return (!fp->__mode.__write || fp->__put_limit == fp->__buffer);
-}
diff --git a/stdio/__fsetlocking.c b/stdio/__fsetlocking.c
deleted file mode 100644
index a0e40d71c9..0000000000
--- a/stdio/__fsetlocking.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio_ext.h>
-#include <errno.h>
-#include <stdlib.h>
-
-int
-__fsetlocking (FILE *fp, int type)
-{
-  /* We don't really support locking.  */
-
-  switch (type)
-    {
-    case FSETLOCKING_QUERY:
-    case FSETLOCKING_BYCALLER:
-      break;
-    case FSETLOCKING_INTERNAL:
-      abort ();
-    default:
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  return FSETLOCKING_BYCALLER;
-}
diff --git a/stdio/__fwritable.c b/stdio/__fwritable.c
deleted file mode 100644
index 396629542c..0000000000
--- a/stdio/__fwritable.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio_ext.h>
-
-int
-__fwritable (FILE *fp)
-{
-  return !!fp->__mode.__write;
-}
diff --git a/stdio/__fwriting.c b/stdio/__fwriting.c
deleted file mode 100644
index 36266ef34d..0000000000
--- a/stdio/__fwriting.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio_ext.h>
-
-int
-__fwriting (FILE *fp)
-{
-  /* This is not really right for unbuffered streams.  */
-  return (!fp->__mode.__read || fp->__get_limit == fp->__buffer);
-}
diff --git a/stdio/clearerr.c b/stdio/clearerr.c
deleted file mode 100644
index 02a1d77780..0000000000
--- a/stdio/clearerr.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1991, 1997, 1998 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-
-#undef	clearerr
-
-
-/* Clear the EOF and error indicators for STREAM.  */
-void
-clearerr (FILE *stream)
-{
-  __clearerr (stream);
-}
-
-weak_alias (clearerr, clearerr_unlocked)
diff --git a/stdio/fclose.c b/stdio/fclose.c
deleted file mode 100644
index 6af0903f9b..0000000000
--- a/stdio/fclose.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright (C) 1991, 1995, 1996, 1998 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-
-/* Close a stream.  */
-int
-fclose (stream)
-     FILE *stream;
-{
-  int status;
-
-  if (!__validfp (stream))
-    {
-      __set_errno (EINVAL);
-      return EOF;
-    }
-
-  if (stream->__mode.__write &&
-      /* Flush the buffer.  */
-      __flshfp (stream, EOF) == EOF)
-    return EOF;
-
-  /* Free the buffer's storage.  */
-  if (stream->__buffer != NULL && !stream->__userbuf)
-    free (stream->__buffer);
-
-  /* Close the system file descriptor.  */
-  if (stream->__io_funcs.__close != NULL)
-    status = (*stream->__io_funcs.__close) (stream->__cookie);
-  else if (!stream->__seen && stream->__cookie != NULL)
-    status = __stdio_close (stream->__cookie);
-  else
-    status = 0;
-
-  /* Nuke the stream, making it available for re-use.  */
-  __invalidate (stream);
-
-  return status < 0 ? EOF : 0;
-}
diff --git a/stdio/fcloseall.c b/stdio/fcloseall.c
deleted file mode 100644
index b247506be1..0000000000
--- a/stdio/fcloseall.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-
-/* Close a stream.  */
-int
-__fcloseall ()
-{
-  /* Close all streams.  */
-  register FILE *f;
-  for (f = __stdio_head; f != NULL; f = f->__next)
-    if (__validfp(f))
-      (void) fclose(f);
-  return 0;
-}
-weak_alias (__fcloseall, fcloseall)
diff --git a/stdio/feof.c b/stdio/feof.c
deleted file mode 100644
index 87d0463350..0000000000
--- a/stdio/feof.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 1991, 1996, 1998 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-
-#undef	feof
-#undef	feof_unlocked
-
-/* Return non-zero if STREAM has its EOF indicator set.  */
-int
-feof (stream)
-     FILE *stream;
-{
-  if (!__validfp (stream))
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  return stream->__eof;
-}
-
-weak_alias (feof, feof_unlocked)
diff --git a/stdio/ferror.c b/stdio/ferror.c
deleted file mode 100644
index 5ccc9abb37..0000000000
--- a/stdio/ferror.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 1991, 1996, 1997, 1998 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-
-#undef	ferror
-#undef	ferror_unlocked
-
-
-/* Return non-zero if STREAM has its error indicator set.  */
-int
-ferror (stream)
-     FILE *stream;
-{
-  if (!__validfp (stream))
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  return stream->__error;
-}
-
-weak_alias (ferror, ferror_unlocked)
diff --git a/stdio/fflush.c b/stdio/fflush.c
deleted file mode 100644
index b184e187e2..0000000000
--- a/stdio/fflush.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 1991, 1996, 1998 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-/* Flush STREAM's buffer.
-   If STREAM is NULL, flush the buffers of all streams that are writing.  */
-int
-fflush (stream)
-     register FILE *stream;
-{
-  if (stream == NULL)
-    {
-      int lossage = 0;
-      for (stream = __stdio_head; stream != NULL; stream = stream->__next)
-	if (__validfp (stream) && stream->__mode.__write)
-	  lossage |= fflush (stream) == EOF;
-      return lossage ? EOF : 0;
-    }
-
-  if (!__validfp (stream) || !stream->__mode.__write)
-    {
-      __set_errno (EINVAL);
-      return EOF;
-    }
-
-  return __flshfp (stream, EOF);
-}
-
-weak_alias(fflush, fflush_unlocked)
diff --git a/stdio/fgetc.c b/stdio/fgetc.c
deleted file mode 100644
index f196c3ddda..0000000000
--- a/stdio/fgetc.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1991, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-
-
-/* Read a character from STREAM.  */
-int
-fgetc (stream)
-     FILE *stream;
-{
-  if (!__validfp (stream) || !stream->__mode.__read)
-    {
-      __set_errno (EINVAL);
-      return EOF;
-    }
-
-  return __getc (stream);
-}
diff --git a/stdio/fgetpos.c b/stdio/fgetpos.c
deleted file mode 100644
index 647d63b999..0000000000
--- a/stdio/fgetpos.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 1991, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-
-#undef	fgetpos
-
-
-/* Put the current position of STREAM in *POS.  */
-int
-fgetpos (stream, pos)
-     FILE *stream;
-     fpos_t *pos;
-{
-  if (!__validfp (stream) || pos == NULL)
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  *pos = ftell (stream);
-  if (*pos < 0L)
-    return -1;
-  return 0;
-}
diff --git a/stdio/fgets.c b/stdio/fgets.c
deleted file mode 100644
index fbf5973a71..0000000000
--- a/stdio/fgets.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 1991, 92, 95, 96, 97, 98 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-/* Reads characters from STREAM into S, until either a newline character
-   is read, N - 1 characters have been read, or EOF is seen.  Returns
-   the newline, unlike gets.  Finishes by appending a null character and
-   returning S.  If EOF is seen before any characters have been written
-   to S, the function returns NULL without appending the null character.
-   If there is a file error, always return NULL.  */
-char *
-fgets (s, n, stream)
-     char *s;
-     int n;
-     FILE *stream;
-{
-  register char *p = s;
-
-  if (!__validfp (stream) || s == NULL || n <= 0)
-    {
-      __set_errno (EINVAL);
-      return NULL;
-    }
-
-  if (ferror (stream))
-    return NULL;
-
-  if (stream->__buffer == NULL && stream->__userbuf)
-    {
-      /* Unbuffered stream.  Not much optimization to do.  */
-      register int c = 0;
-      while (--n > 0 && (c = getc (stream)) != EOF)
-	if ((*p++ = c) == '\n')
-	  break;
-      if (c == EOF && (p == s || ferror (stream)))
-	return NULL;
-      *p = '\0';
-      return s;
-    }
-
-  /* Leave space for the null.  */
-  --n;
-
-  if (n > 0 &&
-      (!stream->__seen || stream->__buffer == NULL || stream->__pushed_back))
-    {
-      /* Do one with getc to allocate a buffer.  */
-      int c = getc (stream);
-      if (c == EOF)
-	return NULL;
-      *p++ = c;
-      if (c == '\n')
-	{
-	  *p = '\0';
-	  return s;
-	}
-      else
-	--n;
-    }
-
-  while (n > 0)
-    {
-      size_t i;
-      char *found;
-
-      i = stream->__get_limit - stream->__bufp;
-      if (i == 0)
-	{
-	  /* Refill the buffer.  */
-	  int c = __fillbf (stream);
-	  if (c == EOF)
-	    break;
-	  *p++ = c;
-	  --n;
-	  if (c == '\n')
-	    {
-	      *p = '\0';
-	      return s;
-	    }
-	  i = stream->__get_limit - stream->__bufp;
-	}
-
-      if (i > (size_t) n)
-	i = n;
-
-      found = (char *) __memccpy ((void *) p, stream->__bufp, '\n', i);
-
-      if (found != NULL)
-	{
-	  stream->__bufp += found - p;
-	  p = found;
-	  break;
-	}
-
-      stream->__bufp += i;
-      n -= i;
-      p += i;
-    }
-
-  if (p == s)
-    return NULL;
-
-  *p = '\0';
-  return ferror (stream) ? NULL : s;
-}
-
-weak_alias (fgets, fgets_unlocked)
diff --git a/stdio/fileno.c b/stdio/fileno.c
deleted file mode 100644
index bfab916cb2..0000000000
--- a/stdio/fileno.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 1991, 93, 94, 96, 97, 98 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-
-/* Return the system file descriptor associated with STREAM.  */
-int
-fileno (stream)
-     FILE *stream;
-{
-  extern void __stdio_check_funcs __P ((FILE *));
-
-  if (! __validfp (stream))
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  __stdio_check_funcs (stream);
-
-  if (stream->__io_funcs.__fileno == NULL)
-    {
-#ifdef EOPNOTSUPP
-      __set_errno (EOPNOTSUPP);
-#else
-      __set_errno (ENOSYS);
-#endif
-      return -1;
-    }
-
-  return (*stream->__io_funcs.__fileno) (stream->__cookie);
-}
-
-weak_alias(fileno, fileno_unlocked)
diff --git a/stdio/fmemopen.c b/stdio/fmemopen.c
deleted file mode 100644
index 1ae0e5b7ae..0000000000
--- a/stdio/fmemopen.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright (C) 1991, 1992, 1993, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-/* Defined in fopen.c.  */
-extern int __getmode __P ((const char *mode, __io_mode *mptr));
-
-/* Open a new stream that will read and/or write from the buffer in
-   S, which is of LEN bytes.  If the mode indicates appending, the
-   buffer pointer is set to point to the first '\0' in the buffer.
-   If S is NULL, the buffer is allocated by malloc and will be freed
-   when the stream is closed.  The only purpose of this is to write
-   things and then read what's been written.  If LEN is zero, writes will
-   always return errors and reads will always return end-of-file.
-
-   The stream is set up such that seeks and tells will always fail and
-   once the buffer is full of written characters or empty of characters
-   to read, attempted writes always return an output error and attempted
-   reads always return end-of-file.  */
-FILE *
-fmemopen (s, len, mode)
-     void *s;
-     size_t len;
-     const char *mode;
-{
-  __io_mode m;
-  register FILE *stream;
-
-  if (!__getmode (mode, &m))
-    return NULL;
-
-  stream = __newstream ();
-  if (stream == NULL)
-    return NULL;
-
-  stream->__mode = m;
-
-  /* Input gets EOF.  */
-  stream->__room_funcs.__input = NULL;
-  /* Output gets error.  */
-  stream->__room_funcs.__output = NULL;
-
-  /* Do nothing for close.  */
-  stream->__io_funcs.__close = NULL;
-  /* Can't seek outside the buffer.  */
-  stream->__io_funcs.__seek = NULL;
-  /* There is no associated file descriptor to fetch.  */
-  stream->__io_funcs.__fileno = NULL;
-
-  stream->__seen = 1;
-
-  stream->__userbuf = s != NULL && len > 0;
-  if (s == NULL)
-    {
-      s = malloc (len);
-      if (s == NULL)
-	{
-	  int save = errno;
-	  (void) fclose (stream);
-	  __set_errno (save);
-	  return NULL;
-	}
-    }
-
-  stream->__buffer = (char *) s;
-  stream->__bufsize = len;
-
-  stream->__bufp = stream->__buffer;
-  stream->__get_limit = (stream->__buffer +
-			 (stream->__mode.__read ? stream->__bufsize : 0));
-  stream->__put_limit = (stream->__buffer +
-			 (stream->__mode.__write ? stream->__bufsize : 0));
-  stream->__cookie = NULL;
-
-  if (stream->__mode.__append)
-    {
-      char *p = memchr (stream->__bufp, '\0',
-			stream->__get_limit - stream->__bufp);
-      if (p == NULL)
-	stream->__bufp = stream->__get_limit;
-      else
-	stream->__bufp = p;
-    }
-  else if (stream->__mode.__truncate)
-    memset ((void *) stream->__buffer, 0, len);
-
-  return stream;
-}
diff --git a/stdio/fopen.c b/stdio/fopen.c
deleted file mode 100644
index 62e78e39bf..0000000000
--- a/stdio/fopen.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright (C) 1991, 92, 93, 96, 97, 98 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-#define	badmode()	return ((__set_errno (EINVAL)), 0)
-
-/* Dissect the given mode string into an __io_mode.  */
-int
-__getmode (const char *mode, __io_mode *mptr)
-{
-  register unsigned char i;
-
-  if (mode == NULL)
-    badmode ();
-
-  memset ((void *) mptr, 0, sizeof (*mptr));
-
-  switch (*mode)
-    {
-    case 'a':
-      mptr->__write = mptr->__create = mptr->__append = 1;
-      break;
-    case 'w':
-      mptr->__write = mptr->__create = mptr->__truncate = 1;
-      break;
-    case 'r':
-      mptr->__read = 1;
-      break;
-    default:
-      badmode ();
-    }
-
-  for (i = 1; i < 4; ++i)
-    {
-      switch (*++mode)
-	{
-	case '\0':
-	  break;
-	case '+':
-	  mptr->__read = mptr->__write = 1;
-	  continue;
-	case 'b':
-	  mptr->__binary = 1;
-	  continue;
-	case 'x':
-	  mptr->__exclusive = 1;
-	  continue;
-	}
-      break;
-    }
-
-  if (!mptr->__read && !mptr->__write)
-    badmode ();
-
-  return 1;
-}
-
-/* Open a new stream on the given file.  */
-FILE *
-fopen (filename, mode)
-     const char *filename;
-     const char *mode;
-{
-  FILE *stream;
-  __io_mode m;
-
-  if (filename == NULL)
-    {
-      __set_errno (EINVAL);
-      return NULL;
-    }
-
-  if (!__getmode (mode, &m))
-    return NULL;
-
-  stream = __newstream ();
-  if (stream == NULL)
-    return NULL;
-
-  if (__stdio_open (filename, m, &stream->__cookie))
-    {
-      int save = errno;
-      (void) fclose (stream);
-      __set_errno (save);
-      return NULL;
-    }
-
-  stream->__mode = m;
-
-  return stream;
-}
diff --git a/stdio/fopncook.c b/stdio/fopncook.c
deleted file mode 100644
index adbbc48c0e..0000000000
--- a/stdio/fopncook.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (C) 1991, 1992, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-
-
-/* Defined in fopen.c.  */
-extern int __getmode __P ((const char *mode, __io_mode *mptr));
-
-/* Open a new stream on the given magic cookie descriptor.  */
-FILE *
-fopencookie (cookie, mode, functions)
-     void *cookie;
-     const char *mode;
-     __io_functions functions;
-{
-  __io_mode m;
-  FILE *f;
-
-  if (!__getmode (mode, &m))
-    return NULL;
-
-  f = __newstream ();
-  if (f == NULL)
-    return NULL;
-
-  f->__cookie = cookie;
-  f->__mode = m;
-  f->__io_funcs = functions;
-  f->__room_funcs = __default_room_functions;
-  f->__seen = 1;
-
-  return f;
-}
diff --git a/stdio/fputc.c b/stdio/fputc.c
deleted file mode 100644
index 57d618cf07..0000000000
--- a/stdio/fputc.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 1991, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-
-
-/* Write the character C to STREAM.  */
-int
-fputc (c, stream)
-     int c;
-     FILE *stream;
-{
-  if (!__validfp (stream) || !stream->__mode.__write)
-    {
-      __set_errno (EINVAL);
-      return EOF;
-    }
-
-  return __putc (c, stream);
-}
-
-#ifndef fputc
-weak_alias (fputc, fputc_unlocked)
-#endif
diff --git a/stdio/fputs.c b/stdio/fputs.c
deleted file mode 100644
index f2457f7fbd..0000000000
--- a/stdio/fputs.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 1991, 1992, 1997, 1998 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-
-/* Write the string S to STREAM.  */
-int
-fputs (const char *s, FILE *stream)
-{
-  const size_t len = strlen (s);
-  if (len == 1)
-    return putc (*s, stream) == EOF ? EOF : 0;
-  if (fwrite ((void *) s, 1, len, stream) != len)
-    return EOF;
-  return 0;
-}
-weak_alias (fputs, fputs_unlocked)
diff --git a/stdio/fread.c b/stdio/fread.c
deleted file mode 100644
index 528c567114..0000000000
--- a/stdio/fread.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Copyright (C) 1991, 92, 95, 96, 97, 98 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-
-#define	default_func	__default_room_functions.__input
-
-/* Read NMEMB chunks of SIZE bytes each from STREAM into P.  */
-size_t
-fread (p, size, nmemb, stream)
-     void *p;
-     size_t size;
-     size_t nmemb;
-     register FILE *stream;
-{
-  register char *ptr = (char *) p;
-  register size_t to_read = size * nmemb;
-  size_t bytes = to_read;
-
-  if (!__validfp (stream) || !stream->__mode.__read)
-    {
-      __set_errno (EINVAL);
-      return 0;
-    }
-  if (feof (stream) || ferror (stream))
-    return 0;
-  if (p == NULL || to_read == 0)
-    return 0;
-
-  if (!stream->__seen || stream->__buffer == NULL || stream->__pushed_back)
-    {
-      /* This stream has never been seen before, or it has a character
-	 pushed back.  Call __fillbf to deal with those cases.  Life will
-	 be simpler after this call.  */
-      int c = __fillbf (stream);
-      if (c == EOF)
-	return 0;
-      *ptr++ = c;
-      if (--to_read == 0)
-	return 1;
-    }
-
- read_from_buffer:;
-  if (stream->__bufp < stream->__get_limit)
-    {
-      /* First off, empty out the buffer.  */
-      register size_t copy = stream->__get_limit - stream->__bufp;
-      if (copy > to_read)
-	copy = to_read;
-      to_read -= copy;
-      if (copy > 20)
-	memcpy((void *) ptr, (void *) stream->__bufp, copy);
-      else
-	{
-	  register size_t i;
-	  for (i = 0; i < copy; ++i)
-	    ptr[i] = stream->__bufp[i];
-	}
-      stream->__bufp += copy;
-      if (to_read == 0)
-	return nmemb;
-      ptr += copy;
-    }
-
-  /* Reading directly into the user's buffer doesn't help when
-     using a user-specified input buffer filling/expanding function,
-     so we don't do it in that case.  */
-  if (to_read >= stream->__bufsize &&
-      stream->__room_funcs.__input == default_func &&
-      stream->__offset == stream->__target)
-    {
-      /* Read directly into the user's buffer.  */
-      if (stream->__io_funcs.__read != NULL)
-	while (to_read > 0)
-	  {
-	    register int count;
-	    count = (*stream->__io_funcs.__read) (stream->__cookie,
-						  ptr, to_read);
-	    if (count > 0)
-	      {
-		to_read -= count;
-		if (stream->__offset != -1)
-		  {
-		    stream->__offset += count;
-		    stream->__target += count;
-		  }
-		ptr += count;
-	      }
-	    else if (count == 0)
-	      {
-		stream->__eof = 1;
-		break;
-	      }
-	    else
-	      {
-		stream->__error = 1;
-		break;
-	      }
-	  }
-      else
-	stream->__eof = 1;
-    }
-  else
-    {
-      int c = __fillbf (stream);
-      if (c == EOF)
-	return (bytes - to_read) / size;
-      *ptr++ = (char) c;
-      --to_read;
-      if (to_read > 0)
-	goto read_from_buffer;
-    }
-
-  return (bytes - to_read) / size;
-}
-
-weak_alias (fread, fread_unlocked)
diff --git a/stdio/freopen.c b/stdio/freopen.c
deleted file mode 100644
index dc4ff3feb1..0000000000
--- a/stdio/freopen.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 1991, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-
-
-/* Defined in fopen.c.  */
-extern int __getmode __P ((const char *, __io_mode *));
-
-/* Defined in sysd-stdio.c.  */
-extern int __stdio_reopen __P ((const char *filename, __io_mode mode,
-				void *cookieptr, __io_close_fn closefn));
-
-/* Replace STREAM, opening it on FILENAME.  */
-FILE *
-freopen (filename, mode, stream)
-     const char *filename;
-     const char *mode;
-     register FILE *stream;
-{
-  __io_mode m;
-  void *cookie;
-
-  if (!__getmode (mode, &m))
-    {
-      (void) fclose (stream);
-      __set_errno (EINVAL);
-      return NULL;
-    }
-
-  if (stream->__mode.__write)
-    /* Flush the stream.  */
-    (void) fflush (stream);
-
-  /* Open the file, attempting to preserve the old cookie value.  */
-  cookie = stream->__cookie;
-  if (__stdio_reopen (filename, m, &cookie,
-		      stream->__seen ?
-		      stream->__io_funcs.__close :
-		      __stdio_close))
-    {
-      int save = errno;
-      (void) fclose (stream);
-      __set_errno (save);
-      return NULL;
-    }
-
-  /* Close the stream, first disabling its cookie close function because
-     __stdio_reopen has already dealt with closing the old cookie.  */
-  stream->__seen = 1;		/* It might have no functions yet.  */
-  stream->__io_funcs.__close = NULL;
-  (void) fclose (stream);
-
-  stream->__magic = _IOMAGIC;
-  stream->__cookie = cookie;
-  stream->__mode = m;
-
-  return stream;
-}
diff --git a/stdio/fseek.c b/stdio/fseek.c
deleted file mode 100644
index fb2e580fd0..0000000000
--- a/stdio/fseek.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/* Copyright (C) 1991, 92, 93, 95, 96, 97 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-
-
-/* Move the file position of STREAM to OFFSET
-   bytes from the beginning of the file if WHENCE
-   is SEEK_SET, the end of the file is it is SEEK_END,
-   or the current position if it is SEEK_CUR.  */
-int
-fseek (stream, offset, whence)
-     register FILE *stream;
-     long int offset;
-     int whence;
-{
-  long int o;
-
-  if (!__validfp (stream))
-    {
-      __set_errno (EINVAL);
-      return EOF;
-    }
-
-  /* Write out any pending data.  */
-  if (stream->__mode.__write && __flshfp (stream, EOF) == EOF)
-    return EOF;
-
-  /* Make sure we know the current offset info.  */
-  stream->__offset = -1;
-  if (__stdio_check_offset (stream) == EOF)
-    return EOF;
-
-  /* We are moving the file position, so we are no longer at EOF.  */
-  stream->__eof = 0;
-
-  if (stream->__pushed_back)
-    {
-      /* Discard the character pushed back by ungetc.  */
-      stream->__bufp = stream->__pushback_bufp;
-      stream->__pushed_back = 0;
-    }
-
-  /* Check the WHENCE argument for validity, and process OFFSET
-     into an absolute position in O.  By the end of this switch,
-     either we have returned, or O contains an absolute position.  */
-  o = offset;
-  switch (whence)
-    {
-    default:
-      __set_errno (EINVAL);
-      return EOF;
-
-    case SEEK_END:
-      /* We don't know where the end of the file is,
-	 so seek to the position in the file the user asked
-	 for, and then look where that is.  */
-      if (stream->__io_funcs.__seek == NULL)
-	{
-	  __set_errno (ESPIPE);
-	  return EOF;
-	}
-      else
-	{
-	  fpos_t pos = (fpos_t) o;
-	  if ((*stream->__io_funcs.__seek)
-	      (stream->__cookie, &pos, SEEK_END) < 0)
-	    {
-	      if (errno == ESPIPE)
-		stream->__io_funcs.__seek = NULL;
-	      return EOF;
-	    }
-	  stream->__offset = pos;
-	  /* Make O be absolute, rather than
-	     relative to the end of the file.  */
-	  o = pos;
-	}
-
-      /* Fall through to try an absolute seek.  */
-
-    case SEEK_SET:
-      /* Make O be relative to the buffer.  */
-      o -= stream->__target;
-      /* Make O be relative to the current position in the buffer.  */
-      o -= stream->__bufp - stream->__buffer;
-
-      /* Fall through to see if we can do it by
-	 moving the pointer around in the buffer.  */
-
-    case SEEK_CUR:
-      /* If the offset is small enough, we can just
-	 move the pointer around in the buffer.  */
-
-#if 0	/* Why did I think this would ever work???  */
-      if (stream->__put_limit > stream->__buffer)
-	{
-	  /* We are writing.  */
-	  if (stream->__bufp + o >= stream->__buffer &&
-	      stream->__put_limit > stream->__bufp + o &&
-	      stream->__get_limit > stream->__bufp + o)
-	    {
-	      /* We have read all the data we will change soon.
-		 We can just move the pointer around.  */
-	      stream->__bufp += o;
-	      return 0;
-	    }
-	  else
-	    {
-	      /* Flush the buffer.  */
-	      if (__flshfp(stream, EOF) == EOF)
-		return EOF;
-	    }
-	} else
-#endif
-      if (o < 0 ?
-	  (-o <= stream->__bufp - stream->__buffer) :
-	  (o <= stream->__get_limit - stream->__bufp))
-	{
-	  stream->__bufp += o;
-	  return 0;
-	}
-
-      /* Turn it into an absolute seek.  */
-      o += stream->__bufp - stream->__buffer;
-      o += stream->__target;
-      break;
-    }
-
-  if (o < 0)
-    {
-      /* Negative file position is meaningless.  */
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  /* O is now an absolute position, the new target.  */
-  stream->__target = o;
-
-  /* Set bufp and both end pointers to the beginning of the buffer.
-     The next i/o will force a call to the input/output room function.  */
-  stream->__bufp
-    = stream->__get_limit = stream->__put_limit = stream->__buffer;
-
-  /* Make sure __flshfp doesn't think the put_limit is at the beginning
-     of the buffer because of line-buffering magic.  */
-  stream->__linebuf_active = 0;
-
-  /* If there is no seek function, seeks always fail.  */
-  if (stream->__io_funcs.__seek == NULL)
-    {
-      /* This is preemptive, since we don't actually do the seeking.
-	 But it makes more sense for fseek to to fail with ESPIPE
-	 than for the next reading or writing operation to fail
-	 that way.  */
-      __set_errno (ESPIPE);
-      return EOF;
-    }
-
-  /* Don't actually seek.  The next reading or writing operation
-     will force a call to the input or output room function,
-     which will move to the target file position before reading or writing.  */
-  return 0;
-}
diff --git a/stdio/fsetpos.c b/stdio/fsetpos.c
deleted file mode 100644
index 073644369f..0000000000
--- a/stdio/fsetpos.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 1991, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-
-#undef	fsetpos
-
-
-/* Set the file position of STREAM to *POS.  */
-int
-fsetpos (stream, pos)
-     FILE *stream;
-     const fpos_t *pos;
-{
-  if (pos == NULL)
-    {
-      __set_errno (EINVAL);
-      return EOF;
-    }
-
-  return fseek (stream, *pos, SEEK_SET);
-}
diff --git a/stdio/ftell.c b/stdio/ftell.c
deleted file mode 100644
index 03c3ebc332..0000000000
--- a/stdio/ftell.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 1991, 1992, 1994, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-
-/* Return the offset in bytes from the beginning
-   of the file of the file position of STREAM.  */
-long int
-ftell (stream)
-     FILE *stream;
-{
-  long int pos;
-
-  if (!__validfp (stream))
-    {
-      __set_errno (EINVAL);
-      return -1L;
-    }
-
-  if (__stdio_check_offset (stream) == EOF)
-    return -1L;
-
-  /* Start with the file position associated with the beginning
-     of our buffer.  */
-  pos = stream->__target;
-
-  if (stream->__pushed_back)
-    /* ungetc was just called, so our real buffer pointer is squirreled
-       away in STREAM->__pushback_bufp, not in STREAM->__bufp as normal.
-       Calling ungetc is supposed to decrement the file position.  ANSI
-       says the file position is unspecified if you ungetc when the
-       position is zero; -1 seems as good as anything to me.  */
-    pos += stream->__pushback_bufp - stream->__buffer - 1;
-  else
-    pos += stream->__bufp - stream->__buffer;
-
-  return pos;
-}
diff --git a/stdio/fwrite.c b/stdio/fwrite.c
deleted file mode 100644
index 588e40b48f..0000000000
--- a/stdio/fwrite.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/* Copyright (C) 1991, 92, 93, 94, 96, 97, 98 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-
-/* Write NMEMB chunks of SIZE bytes each from PTR onto STREAM.  */
-size_t
-fwrite (ptr, size, nmemb, stream)
-     const void *ptr;
-     size_t size;
-     size_t nmemb;
-     register FILE *stream;
-{
-  register const unsigned char *p = (const unsigned char *) ptr;
-  register size_t to_write = size * nmemb;
-  register size_t written = 0;
-  int newlinep;
-  size_t buffer_space;
-  int default_func;
-
-  if (!__validfp (stream) || !stream->__mode.__write)
-    {
-      __set_errno (EINVAL);
-      return 0;
-    }
-
-  if (ferror (stream))
-    return 0;
-  if (p == NULL || to_write == 0)
-    return 0;
-
-  if (!stream->__seen || stream->__put_limit == stream->__buffer)
-    {
-      /* This stream has never been seen before.
-	 Calling __flshfp will give it a buffer
-	 and I/O functions if it needs them.  */
-      if (__flshfp (stream, *p++) == EOF)
-	return 0;
-      if (--to_write == 0)
-	return 1;
-      else
-	++written;
-    }
-
-  default_func
-    = stream->__room_funcs.__output == __default_room_functions.__output;
-
-  {
-    int save = errno;
-
-    if (__stdio_check_offset (stream) == EOF && errno != ESPIPE)
-      {
-	stream->__error = 1;
-	goto done;
-      }
-
-    __set_errno (save);
-  }
-
-  if (stream->__buffer == NULL && default_func &&
-      stream->__offset == stream->__target)
-  write_through:
-    /* This is an unbuffered stream using the standard output
-       buffer-flushing function, so we just do a straight write.  */
-    {
-      int count = (stream->__io_funcs.__write == NULL ? to_write :
-		   (*stream->__io_funcs.__write) (stream->__cookie,
-						  (const char *) p,
-						  to_write));
-      if (count > 0)
-	{
-	  written += count;
-	  if (stream->__offset != -1)
-	    {
-	      stream->__offset += count;
-	      stream->__target = stream->__offset;
-	    }
-	  to_write -= count;
-	  p += count;
-	}
-      else
-	stream->__error = 1;
-      goto done;
-    }
-
-  /* We ignore the end pointer here since we want to find out how much space
-     is really in the buffer, even for a line-buffered stream.  */
-  buffer_space = stream->__bufsize - (stream->__bufp - stream->__buffer);
-
-  newlinep = (stream->__linebuf &&
-	      memchr ((const void *) p, '\n', to_write) != NULL);
-
-  if (newlinep && stream->__bufp == stream->__buffer &&
-      stream->__offset == stream->__target)
-    /* The buffer's empty, and we want to write our data
-       out soon anyway, so just write it straight out.  */
-    goto write_through;
-
-  if (stream->__bufsize == 0 && !default_func)
-    {
-      /* No buffer, and a special function.
-	 We can't do much better than putc.  */
-      while (to_write-- > 0)
-	{
-	  if (__flshfp (stream, *p++) == EOF)
-	    break;
-	  else
-	    ++written;
-	}
-    }
-  else if (!default_func || buffer_space >= to_write)
-    {
-      /* There is enough room in the buffer for everything we want to write
-	 or the user has specified his own output buffer-flushing/expanding
-	 function.  */
-    fill_buffer:
-      while (to_write > 0)
-	{
-	  register size_t n = to_write;
-
-	  if (n > buffer_space)
-	    n = buffer_space;
-
-	  buffer_space -= n;
-
-	  written += n;
-	  to_write -= n;
-
-	  if (n < 20)
-	    while (n-- > 0)
-	      *stream->__bufp++ = *p++;
-	  else
-	    {
-	      memcpy ((void *) stream->__bufp, (void *) p, n);
-	      stream->__bufp += n;
-	      p += n;
-	    }
-
-	  if (to_write == 0)
-	    /* Done writing.  */
-	    break;
-	  else if (buffer_space == 0)
-	    {
-	      /* We have filled the buffer, so flush it.  */
-	      if (fflush (stream) == EOF)
-		break;
-
-	      /* Reset our record of the space available in the buffer,
-		 since we have just flushed it.  */
-	    check_space:
-	      buffer_space = (stream->__bufsize -
-			      (stream->__bufp - stream->__buffer));
-	      if (buffer_space == 0)
-		{
-		  /* With a custom output-room function, flushing might
-		     not create any buffer space.  Try writing a single
-		     character to create the space.  */
-		  if (__flshfp (stream, *p++) == EOF)
-		    goto done;
-		  ++written;
-		  --to_write;
-		  goto check_space;
-		}
-	    }
-	}
-
-      /* We have written all the data into the buffer.  If we are
-	 line-buffered and just put a newline in the buffer, flush now to
-	 make sure it gets out.  */
-      if (newlinep)
-	fflush (stream);
-    }
-  else
-    {
-      /* It won't all fit in the buffer.  */
-
-      if (stream->__bufp != stream->__buffer)
-	{
-	  /* There are characters in the buffer.  Flush them.  */
-	  if (__flshfp (stream, EOF) == EOF)
-	    goto done;
-	}
-
-      /* The buffer has been flushed.
-	 Now either fill it or write directly.  */
-
-      buffer_space = stream->__bufsize - (stream->__bufp - stream->__buffer);
-
-      if (stream->__offset == stream->__target &&
-	  (buffer_space < to_write || newlinep))
-	/* What we have to write is bigger than the buffer,
-	   or it contains a newline and we're line-buffered,
-	   so write it out.  */
-	goto write_through;
-      else
-	/* It will fit in the buffer.  */
-	goto fill_buffer;
-    }
-
- done:;
-  return (size_t) written / size;
-}
-
-weak_alias (fwrite, fwrite_unlocked)
diff --git a/stdio/getc.c b/stdio/getc.c
deleted file mode 100644
index eee136a902..0000000000
--- a/stdio/getc.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdio.h>
-#undef	getc
-#define	fgetc	getc
-#include <fgetc.c>
-
-weak_alias (getc, getc_unlocked)
diff --git a/stdio/getchar.c b/stdio/getchar.c
deleted file mode 100644
index 49f47c41ac..0000000000
--- a/stdio/getchar.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1991, 1997, 1998 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-
-#undef getchar
-
-
-/* Read a character from stdin.  */
-int
-getchar (void)
-{
-  return __getc (stdin);
-}
-
-weak_alias (getchar, getchar_unlocked)
diff --git a/stdio/getdelim.c b/stdio/getdelim.c
deleted file mode 100644
index b8c9e74950..0000000000
--- a/stdio/getdelim.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-#include <errno.h>
-
-/* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR
-   (and null-terminate it). *LINEPTR is a pointer returned from malloc (or
-   NULL), pointing to *N characters of space.  It is realloc'd as
-   necessary.  Returns the number of characters read (not including the
-   null terminator), or -1 on error or EOF.  */
-
-ssize_t
-__getdelim (lineptr, n, terminator, stream)
-     char **lineptr;
-     size_t *n;
-     int terminator;
-     FILE *stream;
-{
-  char *line, *p;
-  size_t size, copy;
-
-  if (!__validfp (stream) || lineptr == NULL || n == NULL)
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  if (ferror (stream))
-    return -1;
-
-  /* Make sure we have a line buffer to start with.  */
-  if (*lineptr == NULL || *n < 2) /* !seen and no buf yet need 2 chars.  */
-    {
-#ifndef	MAX_CANON
-#define	MAX_CANON	256
-#endif
-      line = realloc (*lineptr, MAX_CANON);
-      if (line == NULL)
-	return -1;
-      *lineptr = line;
-      *n = MAX_CANON;
-    }
-
-  line = *lineptr;
-  size = *n;
-
-  copy = size;
-  p = line;
-
-  if (stream->__buffer == NULL && stream->__userbuf)
-    {
-      /* Unbuffered stream.  Not much optimization to do.  */
-
-      while (1)
-	{
-	  size_t len;
-
-	  while (--copy > 0)
-	    {
-	      register int c = getc (stream);
-	      if (c == EOF)
-		goto lose;
-	      else if ((*p++ = c) == terminator)
-		goto win;
-	    }
-
-	  /* Need to enlarge the line buffer.  */
-	  len = p - line;
-	  size *= 2;
-	  line = realloc (line, size);
-	  if (line == NULL)
-	    goto lose;
-	  *lineptr = line;
-	  *n = size;
-	  p = line + len;
-	  copy = size - len;
-	}
-    }
-  else
-    {
-      /* Leave space for the terminating null.  */
-      --copy;
-
-      if (!stream->__seen || stream->__buffer == NULL || stream->__pushed_back)
-	{
-	  /* Do one with getc to allocate a buffer.  */
-	  int c = getc (stream);
-	  if (c == EOF)
-	    goto lose;
-	  *p++ = c;
-	  if (c == terminator)
-	    goto win;
-	  --copy;
-	}
-
-      while (1)
-	{
-	  size_t i;
-	  char *found;
-
-	  i = stream->__get_limit - stream->__bufp;
-	  if (i == 0)
-	    {
-	      /* Refill the buffer.  */
-	      int c = __fillbf (stream);
-	      if (c == EOF)
-		goto lose;
-	      *p++ = c;
-	      if (c == terminator)
-		goto win;
-	      --copy;
-	      i = stream->__get_limit - stream->__bufp;
-	    }
-
-	  if (i > copy)
-	    i = copy;
-
-	  found = (char *) __memccpy ((void *) p, stream->__bufp, 
-				      terminator, i);
-	  if (found != NULL)
-	    {
-	      stream->__bufp += found - p;
-	      p = found;
-	      goto win;
-	    }
-
-	  stream->__bufp += i;
-	  p += i;
-	  copy -= i;
-	  if (copy == 0)
-	    {
-	      /* Need to enlarge the line buffer.  */
-	      size_t len = p - line;
-	      size *= 2;
-	      line = realloc (line, size);
-	      if (line == NULL)
-		goto lose;
-	      *lineptr = line;
-	      *n = size;
-	      p = line + len;
-	      copy = size - len;
-	      /* Leave space for the terminating null.  */
-	      --copy;
-	    }
-	}
-    }
-
- lose:
-  if (p == *lineptr)
-    return -1;
-  /* Return a partial line since we got an error in the middle.  */
- win:
-  *p = '\0';
-  return p - *lineptr;
-}
-
-weak_alias (__getdelim, getdelim)
diff --git a/stdio/gets.c b/stdio/gets.c
deleted file mode 100644
index 992e17f8ac..0000000000
--- a/stdio/gets.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 1991, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-
-link_warning (gets, "the `gets' function is dangerous and should not be used.")
-
-/* Read a newline-terminated string from stdin into S,
-   removing the trailing newline.  Return S or NULL.  */
-char *
-gets (s)
-     char *s;
-{
-  register char *p = s;
-  register int c;
-  FILE *stream = stdin;
-
-  if (!__validfp (stream) || p == NULL)
-    {
-      __set_errno (EINVAL);
-      return NULL;
-    }
-
-  if (feof (stream) || ferror (stream))
-    return NULL;
-
-  while ((c = getchar ()) != EOF)
-    if (c == '\n')
-      break;
-    else
-      *p++ = c;
-
-  *p = '\0';
-
-  /* Return null if we had an error, or if we got EOF
-     before writing any characters.  */
-
-  if (ferror (stream) || (feof (stream) && p == s))
-    return NULL;
-
-  return s;
-}
diff --git a/stdio/glue.c b/stdio/glue.c
deleted file mode 100644
index a320f461ea..0000000000
--- a/stdio/glue.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright (C) 1991, 1992, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/* This file provides glue between Unix stdio and GNU stdio.
-   It supports use of Unix stdio `getc' and `putc' (and, by extension,
-   `getchar' and `putchar') macros on GNU stdio streams (they are slow, but
-   they work).  It also supports all stdio operations (including Unix
-   `getc' and `putc') on Unix's stdin, stdout, and stderr (the elements of
-   `_iob').
-
-   The reasoning behind this is to allow programs (and especially
-   libraries) compiled with Unix header files to work with the GNU C
-   library.  */
-
-#include <stdio.h>
-#include <errno.h>
-
-typedef union
-  {
-    struct
-      {
-	int magic;
-	FILE **streamp;		/* Overlaps GNU stdio `bufp' member.  */
-	/* These two overlap the GNU stdio `get_limit' and `put_limit'
-	   members.  They must be <= `streamp'/`bufp' for GNU getc and putc
-	   to do the right thing.  */
-	FILE **streamp2, **streamp3;
-      } glue;
-    struct _iobuf
-      {
-	int _cnt;
-	unsigned char *_ptr;
-	unsigned char *_base;
-	int _bufsiz;
-	short int _flag;
-	char _file;
-      } unix_iobuf;
-    FILE gnu_stream;
-  } unix_FILE;
-
-/* These are the Unix stdio's stdin, stdout, and stderr.
-   In Unix stdin is (&_iob[0]), stdout is (&_iob[1]), and stderr is
-   (&_iob[2]).  The magic number marks these as glued streams.  The
-   __validfp macro in stdio.h is used by every stdio function.  It checks
-   for glued streams, and replaces them with the GNU stdio stream.  */
-unix_FILE _iob[] =
-  {
-#define	S(name)	{ { _GLUEMAGIC, &name, &name, &name } }
-    S (stdin),
-    S (stdout),
-    S (stderr),
-#undef	S
-  };
-
-/* Called by the Unix stdio `getc' macro.
-   The macro is assumed to look something like:
-       (--file->_cnt < 0 ? _filbuf (file) ...)
-   In a Unix stdio FILE `_cnt' is the first element.
-   In a GNU stdio or glued FILE, the first element is the magic number.  */
-int
-_filbuf (unix_FILE *file)
-{
-  switch (++file->glue.magic)	/* Compensate for Unix getc's decrement.  */
-    {
-    case _GLUEMAGIC:
-      /* This is a glued stream.  */
-      return getc (*file->glue.streamp);
-
-    case  _IOMAGIC:
-      /* This is a normal GNU stdio stream.  */
-      return getc ((FILE *) file);
-
-    default:
-      /* Bogus stream.  */
-      __set_errno (EINVAL);
-      return EOF;
-    }
-}
-
-/* Called by the Unix stdio `putc' macro.  Much like getc, above.  */
-int
-_flsbuf (int c, unix_FILE *file)
-{
-  /* Compensate for putc's decrement.  */
-  switch (++file->glue.magic)
-    {
-    case _GLUEMAGIC:
-      return putc (c, *file->glue.streamp);
-
-    case  _IOMAGIC:
-      return putc (c, (FILE *) file);
-
-    default:
-      __set_errno (EINVAL);
-      return EOF;
-    }
-}
diff --git a/stdio/internals.c b/stdio/internals.c
deleted file mode 100644
index 81f15deb18..0000000000
--- a/stdio/internals.c
+++ /dev/null
@@ -1,688 +0,0 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-/* Make sure that FP has its functions set.  */
-void
-__stdio_check_funcs (register FILE *fp)
-{
-  if (!fp->__seen)
-    {
-      /* Initialize the stream's info, including buffering info.
-	 This may give a buffer, change I/O functions, etc.
-	 If no buffer is set (and the stream is not made explicitly
-	 unbuffered), we allocate a buffer below, using the bufsize
-	 set by this function.  */
-      extern void __stdio_init_stream __P ((FILE *));
-      fp->__room_funcs = __default_room_functions;
-      fp->__io_funcs = __default_io_functions;
-      __stdio_init_stream (fp);
-      fp->__seen = 1;
-    }
-}
-
-
-/* Minimum size of a buffer we will allocate by default.
-   If this much memory is not available,
-   the stream in question will be made unbuffered instead.  */
-#define	MIN_BUFSIZE	128
-
-/* Figure out what kind of buffering (none, line, or full)
-   and what buffer size to give FP.  */
-static void
-init_stream (register FILE *fp)
-{
-  __stdio_check_funcs (fp);
-
-  if (fp->__buffer == NULL && !fp->__userbuf)
-    {
-      int save;
-
-      if (fp->__bufsize == 0)
-	fp->__bufsize = BUFSIZ;
-
-      /* Try to get however many bytes of buffering __stdio_pickbuf
-	 specified, but if that much memory isn't available,
-	 try half as much each time until it succeeds or the buffer
-	 size becomes too small to be useful.  */
-      save = errno;
-      while (fp->__bufsize >= MIN_BUFSIZE)
-	{
-	  fp->__buffer = (char *) malloc (fp->__bufsize);
-	  if (fp->__buffer == NULL)
-	    fp->__bufsize /= 2;
-	  else
-	    break;
-	}
-      __set_errno (save);
-
-      if (fp->__buffer == NULL)
-	{
-	  /* We can't get space for the buffer, so make it unbuffered.  */
-	  fp->__userbuf = 1;
-	  fp->__bufsize = 0;
-	}
-    }
-
-  if (fp->__bufp == NULL)
-    {
-      /* Set the buffer pointer to the beginning of the buffer.  */
-      fp->__bufp = fp->__buffer;
-      fp->__put_limit = fp->__get_limit = fp->__buffer;
-    }
-}
-
-
-/* Determine the current file position of STREAM if it is unknown.  */
-int
-__stdio_check_offset (stream)
-     FILE *stream;
-{
-  init_stream (stream);
-
-  if (stream->__offset == (fpos_t) -1)
-    {
-      /* This stream's offset is unknown or unknowable.  */
-      if (stream->__io_funcs.__seek == NULL)
-	{
-	  /* Unknowable.  */
-	  __set_errno (ESPIPE);
-	  return EOF;
-	}
-      else
-	{
-	  /* Unknown.  Find it out.  */
-	  fpos_t pos = (fpos_t) 0;
-	  if ((*stream->__io_funcs.__seek) (stream->__cookie,
-					    &pos, SEEK_CUR) < 0)
-	    {
-	      if (errno == ESPIPE)
-		/* Object is incapable of seeking.  */
-		stream->__io_funcs.__seek = NULL;
-	      return EOF;
-	    }
-	  stream->__offset = pos;
-	}
-    }
-
-  if (stream->__target == (fpos_t) -1)
-    /* This stream was opened on an existing object with
-       an unknown file position.  The position is now known.
-       Make this the target position.  */
-    stream->__target = stream->__offset;
-
-  return 0;
-}
-
-
-/* Move FP's file position to its target file position,
-   seeking as necessary and updating its `offset' field.
-   Sets ferror(FP) (and possibly errno) for errors.  */
-static void
-seek_to_target (FILE *fp)
-{
-  int save = errno;
-  if (__stdio_check_offset (fp) == EOF)
-    {
-      if (errno == ESPIPE)
-	__set_errno (save);
-      else
-	fp->__error = 1;
-    }
-  else if (fp->__target != fp->__offset)
-    {
-      /* We are not at the target file position.
-	 Seek to that position.  */
-      if (fp->__io_funcs.__seek == NULL)
-	{
-	  /* We can't seek!  */
-	  __set_errno (ESPIPE);
-	  fp->__error = 1;
-	}
-      else
-	{
-	  fpos_t pos = fp->__target;
-	  if ((*fp->__io_funcs.__seek) (fp->__cookie, &pos, SEEK_SET) < 0)
-	    /* Seek failed!  */
-	    fp->__error = 1;
-	  else
-	    {
-	      fp->__offset = pos;
-	      if (pos != fp->__target)
-		{
-		  /* Seek didn't go to the right place!
-		     This should never happen.  */
-#ifdef EGRATUITOUS
-		  /* It happens in the Hurd when the io server doesn't
-		     obey the protocol for io_seek.  */
-		  __set_errno (EGRATUITOUS);
-#else
-		  /* I don't think this can happen in Unix.  */
-		  __set_errno (ESPIPE); /* ??? */
-#endif
-		  fp->__error = 1;
-		}
-	    }
-	}
-    }
-}
-
-/* Flush the buffer for FP.
-   If C is not EOF, it is also to be written.
-   If the stream is line buffered and C is a newline, it is written
-   to the output, otherwise it is put in the buffer after it has been
-   flushed to avoid a system call for a single character.
-   This is the default `output room' function.  */
-static void
-flushbuf (register FILE *fp, int c)
-{
-  int flush_only = c == EOF;
-  size_t buffer_written;
-  size_t to_write;
-
-  /* Set if target and get_limit have already been twiddled appropriately.  */
-  int twiddled = 0;
-
-  if (fp->__put_limit == fp->__buffer)
-    {
-      /* The stream needs to be primed for writing.  */
-
-      size_t buffer_offset = 0;
-
-      if (fp->__target == -1)
-	/* For an unseekable object, data recently read bears no relation
-	   to data we will write later.  Discard the buffer.  */
-	fp->__get_limit = fp->__buffer;
-      else
-	/* If the user has read some of the buffer, the target position
-	   is incremented for each character he has read.  */
-	fp->__target += fp->__bufp - fp->__buffer;
-
-      if (fp->__mode.__read && fp->__room_funcs.__input != NULL &&
-	  !fp->__mode.__append)
-	{
-	  int save = errno;
-	  const int aligned = (fp->__buffer == NULL ||
-			       __stdio_check_offset (fp) == EOF ||
-			       fp->__target % fp->__bufsize == 0);
-	  __set_errno (save);
-
-	  if (!aligned)
-	    {
-	      /* Move to a block (buffer size) boundary and read in a block.
-		 Then the output will be written as a whole block, too.  */
-	      const size_t o = fp->__target % fp->__bufsize;
-	      fp->__target -= o;
-	      if ((*fp->__room_funcs.__input) (fp) == EOF && ferror (fp))
-		return;
-	      else
-		__clearerr (fp);
-
-	      if ((size_t) (fp->__get_limit - fp->__buffer) < o)
-		/* Oops.  We didn't read enough (probably because we got EOF).
-		   Forget we even mentioned it.  */
-		fp->__target += o;
-	      else
-		/* Start bufp as far into the buffer as we were into
-		   this block before we read it.  */
-		buffer_offset = o;
-
-	      /* The target position is now set to where the beginning of the
-		 buffer maps to; and the get_limit was set by the input-room
-		 function.  */
-	      twiddled = 1;
-	    }
-	}
-
-      if (fp->__buffer != NULL)
-	{
-	  /* Set up to write output into the buffer.  */
-	  fp->__put_limit = fp->__buffer + fp->__bufsize;
-	  fp->__bufp = fp->__buffer + buffer_offset;
-
-	  if (!flush_only)
-	    {
-	      /* Put C in the buffer to be written out.
-		 We only need to actually write it out now if
-		 it is a newline on a line-buffered stream.  */
-	      *fp->__bufp++ = (unsigned char) c;
-	      if (!fp->__linebuf || (unsigned char) c != '\n')
-		{
-		  /* There is no need to flush C from the buffer right now.
-		     Record that nothing was written from the buffer,
-		     and go do clean-up at end.  */
-		  buffer_written = 0;
-		  goto end;
-		}
-	      else
-		/* We put C in the buffer, so don't write it again later.  */
-		flush_only = 1;
-	    }
-	}
-
-      if ((size_t) (fp->__bufp - fp->__buffer) <= buffer_offset && flush_only)
-	{
-	  /* There is nothing new in the buffer, only data that
-	     was read back aligned from the file.  */
-	  buffer_written = 0;
-	  goto end;
-	}
-    }
-
-  /* If there is read data in the buffer past what was written,
-     write all of that as well.  Otherwise, just write what has been
-     written into the buffer.  */
-  buffer_written = fp->__bufp - fp->__buffer;
-  to_write = (buffer_written == 0 ? 0 :
-	      fp->__get_limit > fp->__bufp ?
-	      fp->__get_limit - fp->__buffer :
-	      buffer_written);
-
-  if (fp->__io_funcs.__write == NULL || (to_write == 0 && flush_only))
-    {
-      /* There is no writing function or we're coming from an fflush
-	 call with nothing in the buffer, so just say the buffer's
-	 been flushed, increment the file offset, and return.  */
-      fp->__bufp = fp->__buffer;
-      if (fp->__offset != -1)
-	fp->__offset += to_write;
-      goto end;
-    }
-
-  if (to_write > 0)
-    {
-      int wrote;
-
-      /* Go to the target file position.  Don't bother if appending;
-         the write will just ignore the file position anyway.  */
-      if (!fp->__mode.__append)
-	seek_to_target (fp);
-
-      if (!ferror(fp))
-	{
-	  /* Write out the buffered data.  */
-	  wrote = (*fp->__io_funcs.__write) (fp->__cookie, fp->__buffer,
-					     to_write);
-	  if (wrote > 0)
-	    {
-	      if (fp->__mode.__append)
-		/* The write has written the data to the end of the file
-		   and updated the file position to after the data.  Don't
-		   bother to find the current position; we can get it
-		   later if we need it.  */
-		fp->__offset = fp->__target = -1;
-	      else if (fp->__offset != -1)
-		/* Record that we've moved forward in the file.  */
-		fp->__offset += wrote;
-	    }
-	  if (wrote < (int) to_write)
-	    /* The writing function should always write
-	       the whole buffer unless there is an error.  */
-	    fp->__error = 1;
-	}
-    }
-
-  /* Reset the buffer pointer to the beginning of the buffer.  */
-  fp->__bufp = fp->__buffer;
-
-  /* If we're not just flushing, write the last character, C.  */
-  if (!flush_only && !ferror (fp))
-    {
-      if (fp->__buffer == NULL || (fp->__linebuf && (unsigned char) c == '\n'))
-	{
-	  /* Either we're unbuffered, or we're line-buffered and
-	     C is a newline, so really write it out immediately.  */
-	  char cc = (unsigned char) c;
-	  if ((*fp->__io_funcs.__write)(fp->__cookie, &cc, 1) < 1)
-	    fp->__error = 1;
-	  else if (fp->__offset != -1)
-	    {
-	      /* Record that we've moved forward in the file.  */
-	      ++fp->__offset;
-	      ++fp->__target;
-	    }
-	}
-      else
-	/* Just put C in the buffer.  */
-	*fp->__bufp++ = (unsigned char) c;
-    }
-
- end:
-
-  if (!twiddled)
-    {
-      if (fp->__target != -1)
-	/* The new target position moves up as
-	   much as the user wrote into the buffer.  */
-	fp->__target += buffer_written;
-
-      /* Set the reading limit to the beginning of the buffer,
-	 so the next `getc' will call __fillbf.  */
-      fp->__get_limit = fp->__buffer;
-    }
-
-  if (feof (fp) || ferror (fp))
-    fp->__bufp = fp->__put_limit;
-}
-
-
-/* Fill the buffer for FP and return the first character read (or EOF).
-   This is the default `input_room' function.  */
-static int
-fillbuf (register FILE *fp)
-{
-  /* How far into the buffer we read we want to start bufp.  */
-  size_t buffer_offset = 0;
-  register char *buffer;
-  register size_t to_read, nread = 0;
-  /* This must be unsigned to avoid sign extension in return.  */
-  unsigned char c;
-
-  if (fp->__io_funcs.__read == NULL)
-    {
-      /* There is no read function, so always return EOF.  */
-      fp->__eof = 1;
-      goto end;
-    }
-
-  if (fp->__buffer == NULL)
-    {
-      /* We're unbuffered, so we want to read only one character.  */
-      buffer = (char *) &c;
-      to_read = 1;
-    }
-  else
-    {
-      /* We're buffered, so try to fill the buffer.  */
-      buffer = fp->__buffer;
-      to_read = fp->__bufsize;
-    }
-
-  /* We're reading, so we're not at the end-of-file.  */
-  fp->__eof = 0;
-
-  /* Go to the target file position.  */
-  {
-    int save = errno;
-    if (__stdio_check_offset (fp) == 0 && fp->__target != fp->__offset)
-      {
-	/* Move to a block (buffer size) boundary.  */
-	if (fp->__bufsize != 0)
-	  {
-	    buffer_offset = fp->__target % fp->__bufsize;
-	    fp->__target -= buffer_offset;
-	  }
-	seek_to_target (fp);
-      }
-    __set_errno (save);
-  }
-
-  while (!ferror (fp) && !feof (fp) && nread <= buffer_offset)
-    {
-      /* Try to fill the buffer.  */
-      int count = (*fp->__io_funcs.__read) (fp->__cookie, buffer, to_read);
-      if (count == 0)
-	fp->__eof = 1;
-      else if (count < 0)
-	fp->__error = 1;
-      else
-	{
-	  buffer += count;
-	  nread += count;
-	  to_read -= count;
-	  if (fp->__offset != -1)
-	    /* Record that we've moved forward in the file.  */
-	    fp->__offset += count;
-	}
-    }
-
-  if (fp->__buffer == NULL)
-    /* There is no buffer, so return the character we read
-       without all the buffer pointer diddling.  */
-    return (feof (fp) || ferror (fp)) ? EOF : c;
-
-  /* Reset the buffer pointer to the beginning of the buffer
-     (plus whatever offset we may have set above).  */
-  fp->__bufp = fp->__buffer + buffer_offset;
-
- end:;
-
-  if (feof (fp) || ferror (fp))
-    {
-      /* Set both end pointers to the beginning of the buffer so
-	 the next i/o call will force a call to __fillbf/__flshfp.  */
-      fp->__put_limit = fp->__get_limit = fp->__buffer;
-      return EOF;
-    }
-
-  /* Set the end pointer to one past the last character we read.  */
-  fp->__get_limit = fp->__buffer + nread;
-
-  /* Make it so the next `putc' will call __flshfp.  */
-  fp->__put_limit = fp->__buffer;
-
-  /* Return the first character in the buffer.  */
-  return *((unsigned char *) (fp->__bufp++));
-}
-
-
-/* Default I/O and room functions.  */
-
-extern __io_read_fn __stdio_read;
-extern __io_write_fn __stdio_write;
-extern __io_seek_fn __stdio_seek;
-extern __io_close_fn __stdio_close;
-extern __io_fileno_fn __stdio_fileno;
-const __io_functions __default_io_functions =
-  {
-    __stdio_read, __stdio_write, __stdio_seek, __stdio_close, __stdio_fileno
-  };
-
-const __room_functions __default_room_functions =
-  {
-    fillbuf, flushbuf
-  };
-
-
-/* Flush the buffer for FP and also write C if FLUSH_ONLY is nonzero.
-   This is the function used by putc and fflush.  */
-int
-__flshfp (fp, c)
-     register FILE *fp;
-     int c;
-{
-  int flush_only = c == EOF;
-
-  if (!__validfp (fp) || !fp->__mode.__write)
-    {
-      __set_errno (EINVAL);
-      return EOF;
-    }
-
-  if (ferror (fp))
-    return EOF;
-
-  if (fp->__pushed_back)
-    {
-      /* Discard the char pushed back by ungetc.  */
-      fp->__bufp = fp->__pushback_bufp;
-      fp->__pushed_back = 0;
-    }
-
-  /* Make sure the stream is initialized (has functions and buffering).  */
-  init_stream (fp);
-
-  /* Do this early, so a `putc' on such a stream will never return success.  */
-  if (fp->__room_funcs.__output == NULL)
-    {
-      /* A NULL `output room' function means
-	 to always return an output error.  */
-      fp->__error = 1;
-      return EOF;
-    }
-
-  if (!flush_only &&
-      /* Will C fit into the buffer?
-	 See below about linebuf_active.  */
-      fp->__bufp < (fp->__linebuf_active ? fp->__buffer + fp->__bufsize :
-		    fp->__put_limit))
-    {
-      /* The character will fit in the buffer, so put it there.  */
-      *fp->__bufp++ = (unsigned char) c;
-      if (fp->__linebuf && (unsigned char) c == '\n')
-	flush_only = 1;
-      else
-	return (unsigned char) c;
-    }
-
-  if (fp->__linebuf_active)
-    /* This is an active line-buffered stream, so its put-limit is set
-       to the beginning of the buffer in order to force a __flshfp call
-       on each putc (see below).  We undo this hack here (by setting
-       the limit to the end of the buffer) to simplify the interface
-       with the output-room function.  */
-    fp->__put_limit = fp->__buffer + fp->__bufsize;
-
-  /* Make room in the buffer.  */
-  (*fp->__room_funcs.__output) (fp, flush_only ? EOF : (unsigned char) c);
-
-  if (fp->__linebuf)
-    {
-      /* This is a line-buffered stream, and it is now ready to do
-	 some output.  We call this an "active line-buffered stream".
-	 We set the put_limit to the beginning of the buffer,
-	 so the next `putc' call will force a call to this function.
-	 Setting the linebuf_active flag tells the code above
-	 (on the next call) to undo this hackery.  */
-      fp->__put_limit = fp->__buffer;
-      fp->__linebuf_active = 1;
-    }
-
-  if (ferror (fp))
-    return EOF;
-  if (flush_only)
-    return 0;
-  return (unsigned char) c;
-}
-
-
-/* Fill the buffer for FP and return the first character read.
-   This is the function used by getc.  */
-int
-__fillbf (fp)
-     register FILE *fp;
-{
-  register int c;
-  fpos_t new_target;
-
-  if (!__validfp (fp) || !fp->__mode.__read)
-    {
-      __set_errno (EINVAL);
-      return EOF;
-    }
-
-  if (fp->__pushed_back)
-    {
-      /* Return the char pushed back by ungetc.  */
-      fp->__bufp = fp->__pushback_bufp;
-      fp->__pushed_back = 0;
-      return fp->__pushback;
-    }
-
-  /* Make sure the stream is initialized (has functions and buffering). */
-  init_stream (fp);
-
-  /* If we're trying to read the first character of a new
-     line of input from an unbuffered or line buffered stream,
-     we must flush all line-buffered output streams. */
-  if (fp->__buffer == NULL || fp->__linebuf)
-    {
-      register FILE *f;
-      for (f = __stdio_head; f != NULL; f = f->__next)
-	if (__validfp (f) && f->__linebuf && f->__mode.__write)
-	  (void) __flshfp (f, EOF);
-    }
-
-  /* Note we must do this after flushing all line-buffered
-     streams, or else __flshfp would undo it!  */
-  if (fp->__linebuf_active)
-    {
-      /* This is an active line-buffered stream, meaning it is in the midst
-	 of writing, but has a bogus put_limit.  Restore it to normality.  */
-      fp->__put_limit = fp->__buffer + fp->__bufsize;
-      fp->__linebuf_active = 0;
-    }
-
-  /* We want the beginning of the buffer to now
-     map to just past the last data we read.  */
-  new_target = fp->__target + (fp->__get_limit - fp->__buffer);
-
-  if (fp->__put_limit > fp->__buffer)
-    {
-      /* There is written data in the buffer.
-	 Flush it out.  */
-      if (fp->__room_funcs.__output == NULL)
-	fp->__error = 1;
-      else
-	(*fp->__room_funcs.__output) (fp, EOF);
-    }
-
-  fp->__target = new_target;
-
-  if (ferror (fp))
-    c = EOF;
-  else if (fp->__room_funcs.__input != NULL)
-    {
-      c = (*fp->__room_funcs.__input) (fp);
-      if (fp->__buffer == NULL)
-	/* This is an unbuffered stream, so the target sync above
-	   won't do anything the next time around.  Instead, note that
-	   we have read one character.  The (nonexistent) buffer now
-	   maps to the position just past that character.  */
-	++fp->__target;
-    }
-  else
-    {
-      /* A NULL `input_room' function means always return EOF.  */
-      fp->__eof = 1;
-      c = EOF;
-    }
-
-  return c;
-}
-
-
-/* Nuke a stream, but don't kill its link in the chain.  */
-void
-__invalidate (stream)
-     register FILE *stream;
-{
-  /* Save its link.  */
-  register FILE *next = stream->__next;
-
-  /* Pulverize the deceased.  */
-  memset((void *) stream, 0, sizeof(FILE));
-
-  /* Restore the deceased's link.  */
-  stream->__next = next;
-}
diff --git a/stdio/linewrap.c b/stdio/linewrap.c
deleted file mode 100644
index eab8c75ff3..0000000000
--- a/stdio/linewrap.c
+++ /dev/null
@@ -1,521 +0,0 @@
-/* Word-wrapping and line-truncating streams.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <linewrap.h>
-
-void __line_wrap_output (FILE *, int);
-
-/* Install our hooks into a stream.  */
-static inline void
-wrap_stream (FILE *stream, struct line_wrap_data *d)
-{
-  static __io_close_fn lwclose;
-  static __io_fileno_fn lwfileno;
-
-  stream->__cookie = d;
-  stream->__room_funcs.__output = &__line_wrap_output;
-  stream->__io_funcs.__close = &lwclose;
-  stream->__io_funcs.__fileno = &lwfileno;
-  stream->__io_funcs.__seek = NULL; /* Cannot seek.  */
-}
-
-/* Restore a stream to its original state.  */
-static inline void
-unwrap_stream (FILE *stream, struct line_wrap_data *d)
-{
-  stream->__cookie = d->cookie;
-  stream->__room_funcs.__output = d->output;
-  stream->__io_funcs.__close = d->close;
-  stream->__io_funcs.__fileno = d->fileno;
-  stream->__io_funcs.__seek = d->seek;
-}
-
-/* If WRAPPER_COOKIE points to a 0 pointer, then STREAM is assumed to be
-   wrapped, and will be unwrapped, storing the wrapper cookie into
-   WRAPPER_COOKIE.  Otherwise, nothing is done.  */
-static inline void
-ensure_unwrapped (FILE *stream, struct line_wrap_data **wrapper_cookie)
-{
-  if (*wrapper_cookie == 0)
-    {
-      *wrapper_cookie = stream->__cookie;
-      unwrap_stream (stream, *wrapper_cookie);
-    }
-}
-
-/* If WRAPPER_COOKIE points to a non-0 pointer, then STREAM is assumed to
-   *have been unwrapped with ensure_unwrapped, will be wrapped with
-   *WRAPPER_COOKIE, and *WRAPPER_COOKIE zeroed.  Otherwise, nothing is done. */
-static inline void
-ensure_wrapped (FILE *stream, struct line_wrap_data **wrapper_cookie)
-{
-  if (*wrapper_cookie)
-    {
-      wrap_stream (stream, *wrapper_cookie);
-      *wrapper_cookie = 0;
-    }
-}
-
-/* Cookie io functions that might get called on a wrapped stream.
-   Must pass the original cookie to the original functions.  */
-
-static int
-lwclose (void *cookie)
-{
-  struct line_wrap_data *d = cookie;
-  return (*d->close) (d->cookie);
-}
-
-static int
-lwfileno (void *cookie)
-{
-  struct line_wrap_data *d = cookie;
-  return (*d->fileno) (d->cookie);
-}
-
-/* Process STREAM's buffer so that line wrapping is done from POINT_OFFS to
-   the end of its buffer.  If WRAPPER_COOKIE is 0, and it's necessary to
-   flush some data, STREAM is unwrapped, and the line wrap stdio cookie
-   stored in WRAPPER_COOKIE; otherwise, stream is assumed to already be
-   unwrapped, and WRAPPER_COOKIE to point to the line wrap data.  Returns C
-   or EOF if C was output.  */
-static inline int
-lwupdate (FILE *stream, int c, struct line_wrap_data **wrapper_cookie)
-{
-  char *buf, *nl;
-  size_t len;
-  struct line_wrap_data *d = *wrapper_cookie ?: stream->__cookie;
-
-  /* Scan the buffer for newlines.  */
-  buf = stream->__buffer + d->point_offs;
-  while ((buf < stream->__bufp || (c != EOF && c != '\n')) && !stream->__error)
-    {
-      size_t r;
-
-      if (d->point_col == 0 && d->lmargin != 0)
-	{
-	  /* We are starting a new line.  Print spaces to the left margin.  */
-	  const size_t pad = d->lmargin;
-	  if (stream->__bufp + pad < stream->__put_limit)
-	    {
-	      /* We can fit in them in the buffer by moving the
-		 buffer text up and filling in the beginning.  */
-	      memmove (buf + pad, buf, stream->__bufp - buf);
-	      stream->__bufp += pad; /* Compensate for bigger buffer. */
-	      memset (buf, ' ', pad); /* Fill in the spaces.  */
-	      buf += pad; /* Don't bother searching them.  */
-	    }
-	  else
-	    {
-	      /* No buffer space for spaces.  Must flush.  */
-	      size_t i;
-	      char *olimit;
-
-	      ensure_unwrapped (stream, wrapper_cookie);
-
-	      len = stream->__bufp - buf;
-	      olimit = stream->__put_limit;
-	      stream->__bufp = stream->__put_limit = buf;
-	      for (i = 0; i < pad; ++i)
-		(*d->output) (stream, ' ');
-	      stream->__put_limit = olimit;
-	      memmove (stream->__bufp, buf, len);
-	      stream->__bufp += len;
-	    }
-	  d->point_col = pad;
-	}
-
-      len = stream->__bufp - buf;
-      nl = memchr (buf, '\n', len);
-
-      if (d->point_col < 0)
-	d->point_col = 0;
-
-      if (!nl)
-	{
-	  /* The buffer ends in a partial line.  */
-
-	  if (d->point_col + len + (c != EOF && c != '\n') < d->rmargin)
-	    {
-	      /* The remaining buffer text is a partial line and fits
-		 within the maximum line width.  Advance point for the
-		 characters to be written and stop scanning.  */
-	      d->point_col += len;
-	      break;
-	    }
-	  else
-	    /* Set the end-of-line pointer for the code below to
-	       the end of the buffer.  */
-	    nl = stream->__bufp;
-	}
-      else if ((size_t) d->point_col + (nl - buf) < d->rmargin)
-	{
-	  /* The buffer contains a full line that fits within the maximum
-	     line width.  Reset point and scan the next line.  */
-	  d->point_col = 0;
-	  buf = nl + 1;
-	  continue;
-	}
-
-      /* This line is too long.  */
-      r = d->rmargin - 1;
-
-      if (d->wmargin < 0)
-	{
-	  /* Truncate the line by overwriting the excess with the
-	     newline and anything after it in the buffer.  */
-	  if (nl < stream->__bufp)
-	    {
-	      memmove (buf + (r - d->point_col), nl, stream->__bufp - nl);
-	      stream->__bufp -= buf + (r - d->point_col) - nl;
-	      /* Reset point for the next line and start scanning it.  */
-	      d->point_col = 0;
-	      buf += r + 1; /* Skip full line plus \n. */
-	    }
-	  else
-	    {
-	      /* The buffer ends with a partial line that is beyond the
-		 maximum line width.  Advance point for the characters
-		 written, and discard those past the max from the buffer.  */
-	      d->point_col += len;
-	      stream->__bufp -= d->point_col - r;
-	      if (c != '\n')
-		/* Swallow the extra character too.  */
-		c = EOF;
-	      break;
-	    }
-	}
-      else
-	{
-	  /* Do word wrap.  Go to the column just past the maximum line
-	     width and scan back for the beginning of the word there.
-	     Then insert a line break.  */
-
-	  char *p, *nextline;
-	  int i;
-
-	  p = buf + (r + 1 - d->point_col);
-	  while (p >= buf && !isblank (*p))
-	    --p;
-	  nextline = p + 1;	/* This will begin the next line.  */
-
-	  if (nextline > buf)
-	    {
-	      /* Swallow separating blanks.  */
-	      do
-		--p;
-	      while (isblank (*p));
-	      nl = p + 1;	/* The newline will replace the first blank. */
-	    }
-	  else
-	    {
-	      /* A single word that is greater than the maximum line width.
-		 Oh well.  Put it on an overlong line by itself.  */
-	      p = buf + (r + 1 - d->point_col);
-	      /* Find the end of the long word.  */
-	      do
-		++p;
-	      while (p < nl && !isblank (*p));
-	      if (p == nl)
-		{
-		  /* It already ends a line.  No fussing required.  */
-		  d->point_col = 0;
-		  buf = nl + 1;
-		  continue;
-		}
-	      /* We will move the newline to replace the first blank.  */
-	      nl = p;
-	      /* Swallow separating blanks.  */
-	      do
-		++p;
-	      while (isblank (*p));
-	      /* The next line will start here.  */
-	      nextline = p;
-	    }
-
-	  /* Temporarily reset bufp to include just the first line.  */
-	  stream->__bufp = nl;
-	  if (nextline - (nl + 1) < d->wmargin)
-	    /* The margin needs more blanks than we removed.
-	       Output the first line so we can use the space.  */
-	    {
-	      ensure_unwrapped (stream, wrapper_cookie);
-	      (*d->output) (stream, '\n');
-	    }
-	  else
-	    /* We can fit the newline and blanks in before
-	       the next word.  */
-	    *stream->__bufp++ = '\n';
-
-	  /* Reset the counter of what has been output this line.  If wmargin
-	     is 0, we want to avoid the lmargin getting added, so we set
-	     point_col to a magic value of -1 in that case.  */
-	  d->point_col = d->wmargin ? d->wmargin : -1;
-
-	  /* Add blanks up to the wrap margin column.  */
-	  for (i = 0; i < d->wmargin; ++i)
-	    *stream->__bufp++ = ' ';
-
-	  /* Copy the tail of the original buffer into the current buffer
-	     position.  */
-	  if (stream->__bufp != nextline)
-	    memmove (stream->__bufp, nextline, buf + len - nextline);
-	  len -= nextline - buf;
-
-	  /* Continue the scan on the remaining lines in the buffer.  */
-	  buf = stream->__bufp;
-
-	  /* Restore bufp to include all the remaining text.  */
-	  stream->__bufp += len;
-	}
-    }
-
-  /* Remember that we've scanned as far as the end of the buffer.  */
-  d->point_offs = stream->__bufp - stream->__buffer;
-
-  return c;
-}
-
-/* This function is called when STREAM must be flushed.
-   C is EOF or a character to be appended to the buffer contents.  */
-void
-__line_wrap_output (FILE *stream, int c)
-{
-  struct line_wrap_data *d = 0;
-
-  c = lwupdate (stream, c, &d);
-
-  if (!stream->__error)
-    {
-      ensure_unwrapped (stream, &d);
-      (*d->output) (stream, c);
-      d->point_offs = 0;	/* The buffer now holds nothing.  */
-      if (c == '\n')
-	d->point_col = 0;
-      else if (c != EOF)
-	++d->point_col;
-    }
-
-  ensure_wrapped (stream, &d);
-}
-
-/* Modify STREAM so that it prefixes lines written on it with LMARGIN spaces
-   and limits them to RMARGIN columns total.  If WMARGIN >= 0, words that
-   extend past RMARGIN are wrapped by replacing the whitespace before them
-   with a newline and WMARGIN spaces.  Otherwise, chars beyond RMARGIN are
-   simply dropped until a newline.  Returns STREAM after modifying it, or
-   NULL if there was an error.  */
-FILE *
-line_wrap_stream (FILE *stream, size_t lmargin, size_t rmargin, ssize_t wmargin)
-{
-  struct line_wrap_data *d = malloc (sizeof *d);
-
-  if (!d)
-    return NULL;
-
-  /* Ensure full setup before we start tweaking.  */
-  fflush (stream);
-
-  /* Initialize our wrapping state.  */
-  d->point_col = 0;
-  d->point_offs = 0;
-
-  /* Save the original cookie and output and close hooks.  */
-  d->cookie = stream->__cookie;
-  d->output = stream->__room_funcs.__output;
-  d->close = stream->__io_funcs.__close;
-  d->fileno = stream->__io_funcs.__fileno;
-  d->seek = stream->__io_funcs.__seek;
-
-  /* Take over the stream.  */
-  wrap_stream (stream, d);
-
-  /* Line-wrapping streams are normally line-buffered.  This is not
-     required, just assumed desired.  The wrapping feature should continue
-     to work if the stream is switched to full or no buffering.  */
-  stream->__linebuf = 1;
-
-  d->lmargin = lmargin;
-  d->rmargin = rmargin;
-  d->wmargin = wmargin;
-
-  return stream;
-}
-
-/* Remove the hooks placed in STREAM by `line_wrap_stream'.  */
-void
-line_unwrap_stream (FILE *stream)
-{
-  struct line_wrap_data *d = stream->__cookie;
-  unwrap_stream (stream, d);
-  free (d);
-}
-
-/* Functions on wrapped streams.  */
-
-/* Returns true if STREAM is line wrapped.  */
-inline int
-line_wrapped (FILE *stream)
-{
-  return (stream->__room_funcs.__output == &__line_wrap_output);
-}
-
-/* If STREAM is not line-wrapped, return 0.  Otherwise all pending text
-   buffered text in STREAM so that the POINT_OFFS field refers to the last
-   position in the stdio buffer, and return the line wrap state object for
-   STREAM.  Since all text has been processed, this means that (1) the
-   POINT_COL field refers to the column at which any new text would be added,
-   and (2) any changes to the margin parameters will only affect new text.  */
-struct line_wrap_data *
-__line_wrap_update (FILE *stream)
-{
-  if (line_wrapped (stream))
-    {
-      struct line_wrap_data *d = stream->__cookie, *wc = 0;
-
-      if (stream->__linebuf_active)
-	/* This is an active line-buffered stream, so its put-limit is set to
-	   the beginning of the buffer in order to force a __flshfp call on
-	   each putc (see below).  We undo this hack here (by setting the
-	   limit to the end of the buffer) to simplify the interface with the
-	   output-room function.  */
-	stream->__put_limit = stream->__buffer + stream->__bufsize;
-
-      lwupdate (stream, EOF, &wc);
-
-      if (stream->__linebuf)
-	{
-	  /* This is a line-buffered stream, and it is now ready to do some
-	     output.  We call this an "active line-buffered stream".  We set
-	     the put_limit to the beginning of the buffer, so the next `putc'
-	     call will force a call to flshfp.  Setting the linebuf_active
-	     flag tells the code above (on the next call) to undo this
-	     hackery.  */
-	  stream->__put_limit = stream->__buffer;
-	  stream->__linebuf_active = 1;
-	}
-
-      ensure_wrapped (stream, &wc);
-
-      return d;
-    }
-  else
-    return 0;
-}
-
-/* If STREAM is not line-wrapped return -1, else return its left margin.  */
-inline size_t
-line_wrap_lmargin (FILE *stream)
-{
-  if (! line_wrapped (stream))
-    return -1;
-  return ((struct line_wrap_data *)stream->__cookie)->lmargin;
-}
-
-/* If STREAM is not line-wrapped return -1, else set its left margin to
-   LMARGIN and return the old value.  */
-inline size_t
-line_wrap_set_lmargin (FILE *stream, size_t lmargin)
-{
-  struct line_wrap_data *d = __line_wrap_update (stream);
-  if (d)
-    {
-      size_t old = d->lmargin;
-      d->lmargin = lmargin;
-      return old;
-    }
-  else
-    return -1;
-}
-
-/* If STREAM is not line-wrapped return -1, else return its left margin.  */
-inline size_t
-line_wrap_rmargin (FILE *stream)
-{
-  if (! line_wrapped (stream))
-    return -1;
-  return ((struct line_wrap_data *)stream->__cookie)->rmargin;
-}
-
-/* If STREAM is not line-wrapped return -1, else set its right margin to
-   RMARGIN and return the old value.  */
-inline size_t
-line_wrap_set_rmargin (FILE *stream, size_t rmargin)
-{
-  struct line_wrap_data *d = __line_wrap_update (stream);
-  if (d)
-    {
-      size_t old = d->rmargin;
-      d->rmargin = rmargin;
-      return old;
-    }
-  else
-    return -1;
-}
-
-/* If STREAM is not line-wrapped return -1, else return its wrap margin.  */
-inline size_t
-line_wrap_wmargin (FILE *stream)
-{
-  if (! line_wrapped (stream))
-    return -1;
-  return ((struct line_wrap_data *)stream->__cookie)->wmargin;
-}
-
-/* If STREAM is not line-wrapped return -1, else set its left margin to
-   WMARGIN and return the old value.  */
-inline size_t
-line_wrap_set_wmargin (FILE *stream, size_t wmargin)
-{
-  struct line_wrap_data *d = __line_wrap_update (stream);
-  if (d)
-    {
-      size_t old = d->wmargin;
-      d->wmargin = wmargin;
-      return old;
-    }
-  else
-    return -1;
-}
-
-/* If STREAM is not line-wrapped return -1, else return the column number of
-   the current output point.  */
-inline size_t
-line_wrap_point (FILE *stream)
-{
-  struct line_wrap_data *d = __line_wrap_update (stream);
-  return d ? (d->point_col >= 0 ? d->point_col : 0) : -1;
-}
-
-#ifdef TEST
-int
-main (int argc, char **argv)
-{
-  int c;
-  puts ("stopme");
-  line_wrap_stream (stdout, atoi (argv[1]), atoi (argv[2] ?: "-1"));
-  while ((c = getchar()) != EOF) putchar (c);
-  return 0;
-}
-#endif
diff --git a/stdio/linewrap.h b/stdio/linewrap.h
deleted file mode 100644
index 5aad9f62e2..0000000000
--- a/stdio/linewrap.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/* Word-wrapping and line-truncating streams.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef __LINEWRAP_H__
-#define __LINEWRAP_H__
-
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-
-#include <features.h>
-
-#include <string.h>		/* Need size_t.  */
-
-__BEGIN_DECLS
-
-/* We keep this data for each line-wrapping stream.  */
-struct line_wrap_data
-  {
-    size_t lmargin, rmargin;	/* Left and right margins.  */
-    ssize_t wmargin;		/* Margin to wrap to, or -1 to truncate.  */
-
-    /* Point in stdio buffer to which we've processed for wrapping, but
-       not output.  */
-    size_t point_offs;
-    /* Output column at POINT_OFFS, or -1 meaning 0 but don't add lmargin.  */
-    ssize_t point_col;
-
-    /* Original cookie and hooks from the stream.  */
-    void *cookie;
-    void (*output) (FILE *, int);
-    __io_close_fn *close;
-    __io_fileno_fn *fileno;
-    __io_seek_fn *seek;
-  };
-
-/* Modify STREAM so that it prefixes lines written on it with LMARGIN spaces
-   and limits them to RMARGIN columns total.  If WMARGIN >= 0, words that
-   extend past RMARGIN are wrapped by replacing the whitespace before them
-   with a newline and WMARGIN spaces.  Otherwise, chars beyond RMARGIN are
-   simply dropped until a newline.  Returns STREAM after modifying it, or
-   NULL if there was an error.  */
-FILE *line_wrap_stream (FILE *stream,
-			size_t lmargin, size_t rmargin, ssize_t wmargin);
-
-/* Remove the hooks placed in STREAM by `line_wrap_stream'.  */
-void line_unwrap_stream (FILE *stream);
-
-/* Returns true if STREAM is line wrapped.  */
-extern inline int line_wrapped (FILE *stream);
-
-/* If STREAM is not line-wrapped return -1, else return its left margin.  */
-extern size_t line_wrap_lmargin (FILE *stream);
-
-/* If STREAM is not line-wrapped return -1, else set its left margin to
-   LMARGIN and return the old value.  */
-extern size_t line_wrap_set_lmargin (FILE *stream, size_t lmargin);
-
-/* If STREAM is not line-wrapped return -1, else return its left margin.  */
-extern size_t line_wrap_rmargin (FILE *stream);
-
-/* If STREAM is not line-wrapped return -1, else set its right margin to
-   RMARGIN and return the old value.  */
-extern size_t line_wrap_set_rmargin (FILE *stream, size_t rmargin);
-
-/* If STREAM is not line-wrapped return -1, else return its wrap margin.  */
-extern size_t line_wrap_wmargin (FILE *stream);
-
-/* If STREAM is not line-wrapped return -1, else set its left margin to
-   WMARGIN and return the old value.  */
-extern size_t line_wrap_set_wmargin (FILE *stream, size_t wmargin);
-
-/* If STREAM is not line-wrapped return -1, else return the column number of
-   the current output point.  */
-extern size_t line_wrap_point (FILE *stream);
-
-#ifdef	__OPTIMIZE__
-
-extern void __line_wrap_output (FILE *, int); /* private */
-
-/* If STREAM is not line-wrapped, return 0.  Otherwise all pending text
-   buffered text in STREAM so that the POINT_OFFS field refers to the last
-   position in the stdio buffer, and return the line wrap state object for
-   STREAM.  Since all text has been processed, this means that (1) the
-   POINT_COL field refers to the column at which any new text would be added,
-   and (2) any changes to the margin parameters will only affect new text.  */
-extern struct line_wrap_data *__line_wrap_update (FILE *stream); /* private */
-
-/* Returns true if STREAM is line wrapped.  */
-extern inline int
-line_wrapped (FILE *stream)
-{
-  return (stream->__room_funcs.__output == &__line_wrap_output);
-}
-
-/* If STREAM is not line-wrapped return -1, else return its left margin.  */
-extern inline size_t
-line_wrap_lmargin (FILE *stream)
-{
-  if (! line_wrapped (stream))
-    return -1;
-  return ((struct line_wrap_data *)stream->__cookie)->lmargin;
-}
-
-/* If STREAM is not line-wrapped return -1, else set its left margin to
-   LMARGIN and return the old value.  */
-extern inline size_t
-line_wrap_set_lmargin (FILE *stream, size_t lmargin)
-{
-  struct line_wrap_data *d = __line_wrap_update (stream);
-  if (d)
-    {
-      size_t old = d->lmargin;
-      d->lmargin = lmargin;
-      return old;
-    }
-  else
-    return -1;
-}
-
-/* If STREAM is not line-wrapped return -1, else return its left margin.  */
-extern inline size_t
-line_wrap_rmargin (FILE *stream)
-{
-  if (! line_wrapped (stream))
-    return -1;
-  return ((struct line_wrap_data *)stream->__cookie)->rmargin;
-}
-
-/* If STREAM is not line-wrapped return -1, else set its right margin to
-   RMARGIN and return the old value.  */
-extern inline size_t
-line_wrap_set_rmargin (FILE *stream, size_t rmargin)
-{
-  struct line_wrap_data *d = __line_wrap_update (stream);
-  if (d)
-    {
-      size_t old = d->rmargin;
-      d->rmargin = rmargin;
-      return old;
-    }
-  else
-    return -1;
-}
-
-/* If STREAM is not line-wrapped return -1, else return its wrap margin.  */
-extern inline size_t
-line_wrap_wmargin (FILE *stream)
-{
-  if (! line_wrapped (stream))
-    return -1;
-  return ((struct line_wrap_data *)stream->__cookie)->wmargin;
-}
-
-/* If STREAM is not line-wrapped return -1, else set its left margin to
-   WMARGIN and return the old value.  */
-extern inline size_t
-line_wrap_set_wmargin (FILE *stream, size_t wmargin)
-{
-  struct line_wrap_data *d = __line_wrap_update (stream);
-  if (d)
-    {
-      size_t old = d->wmargin;
-      d->wmargin = wmargin;
-      return old;
-    }
-  else
-    return -1;
-}
-
-/* If STREAM is not line-wrapped return -1, else return the column number of
-   the current output point.  */
-extern inline size_t
-line_wrap_point (FILE *stream)
-{
-  struct line_wrap_data *d = __line_wrap_update (stream);
-  return d ? (d->point_col >= 0 ? d->point_col : 0) : -1;
-}
-
-#endif /* Optimizing.  */
-
-__END_DECLS
-
-#endif /* __LINEWRAP_H__ */
diff --git a/stdio/memstream.c b/stdio/memstream.c
deleted file mode 100644
index b400bb7d27..0000000000
--- a/stdio/memstream.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Copyright (C) 1991, 92, 94, 95, 96, 97 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-struct memstream_info
-  {
-    char **buffer;
-    size_t *bufsize;
-  };
-
-/* Enlarge STREAM's buffer.  */
-static void
-enlarge_buffer (register FILE *stream, int c)
-{
-  struct memstream_info *info = (struct memstream_info *) stream->__cookie;
-  size_t need;
-
-  if (stream->__put_limit != stream->__buffer)
-    /* Record how much has actually been written into the buffer.  */
-    *info->bufsize = stream->__bufp - stream->__buffer;
-
-  if (stream->__target != -1
-      && (size_t) stream->__target > *info->bufsize)
-    /* Our target (where the buffer maps to) is always zero except when
-       the user just did a SEEK_END fseek.  If he sought within the
-       buffer, we need do nothing and will zero the target below.  If he
-       sought past the end of the object, grow and zero-fill the buffer
-       up to the target address.  */
-    need = stream->__target;
-  else
-    need = *info->bufsize;
-
-  /* We always need an extra character in the buffer.  Either we are
-     writing C, or we are flushing and need to write a NUL terminator.  */
-  ++need;
-
-  if (stream->__bufsize < need)
-    {
-      /* Enlarge the buffer.  */
-      char *newbuf;
-      size_t newsize;
-      if (stream->__bufsize * 2 < need)
-	newsize = need;
-      else
-	newsize = stream->__bufsize * 2;
-      newbuf = (char *) realloc ((void *) stream->__buffer, newsize);
-      if (newbuf == NULL)
-	{
-	  stream->__error = 1;
-	  return;
-	}
-      *info->buffer = stream->__buffer = newbuf;
-      stream->__bufsize = newsize;
-    }
-
-  stream->__target = stream->__offset = 0;
-  stream->__get_limit = stream->__bufp = stream->__buffer + *info->bufsize;
-  stream->__put_limit = stream->__buffer + stream->__bufsize;
-
-  need -= stream->__bufp - stream->__buffer + 1;
-  if (need > 0)
-    {
-      /* We are extending the buffer after an fseek; zero-fill new space.  */
-      memset (stream->__bufp, '\0', need);
-      stream->__bufp += need;
-    }
-
-  if (c != EOF)
-    *stream->__bufp++ = (unsigned char) c;
-  else
-    *stream->__bufp = '\0';
-}
-
-/* Seek function for memstreams.
-   There is no external state to munge.  */
-
-static int
-seek (void *cookie, fpos_t *pos, int whence)
-{
-  switch (whence)
-    {
-    case SEEK_SET:
-    case SEEK_CUR:
-      return 0;
-
-    case SEEK_END:
-      /* Return the position relative to the end of the object.
-	 fseek has just flushed us, so the info is consistent.  */
-      *pos += *((struct memstream_info *) cookie)->bufsize;
-      return 0;
-
-    default:
-      __libc_fatal ("memstream::seek called with bogus WHENCE\n");
-      return -1;
-    }
-}
-
-static int
-free_info (void *cookie)
-{
-#if 0
-  struct memstream_info *info = (struct memstream_info *) cookie;
-  char *buf;
-
-  buf = (char *) realloc ((PTR) *info->buffer, *info->bufsize);
-  if (buf != NULL)
-    *info->buffer = buf;
-#endif
-
-  free (cookie);
-
-  return 0;
-}
-
-/* Open a stream that writes into a malloc'd buffer that is expanded as
-   necessary.  *BUFLOC and *SIZELOC are updated with the buffer's location
-   and the number of characters written on fflush or fclose.  */
-FILE *
-open_memstream (bufloc, sizeloc)
-     char **bufloc;
-     size_t *sizeloc;
-{
-  FILE *stream;
-  struct memstream_info *info;
-
-  if (bufloc == NULL || sizeloc == NULL)
-    {
-      __set_errno (EINVAL);
-      return NULL;
-    }
-
-  stream = fmemopen ((char *) NULL, BUFSIZ, "w+");
-  if (stream == NULL)
-    return NULL;
-
-  info = (struct memstream_info *) malloc (sizeof (struct memstream_info));
-  if (info == NULL)
-    {
-      int save = errno;
-      (void) fclose (stream);
-      __set_errno (save);
-      return NULL;
-    }
-
-  stream->__room_funcs.__output = enlarge_buffer;
-  stream->__io_funcs.__seek = seek;
-  stream->__io_funcs.__close = free_info;
-  stream->__cookie = (void *) info;
-  stream->__userbuf = 1;
-
-  info->buffer = bufloc;
-  info->bufsize = sizeloc;
-
-  *bufloc = stream->__buffer;
-
-  return stream;
-}
diff --git a/stdio/newstream.c b/stdio/newstream.c
deleted file mode 100644
index 850baf7b35..0000000000
--- a/stdio/newstream.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 1991, 1992, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-/* Return a new, zeroed, stream.
-   You must set its cookie and io_mode.
-   The first operation will give it a buffer unless you do.
-   It will also give it the default functions unless you set the `seen' flag.
-   Returns NULL if a stream can't be created.  */
-FILE *
-__newstream (void)
-{
-  register FILE *stream;
-
-  stream = __stdio_head;
-  while (__validfp (stream))
-    stream = stream->__next;
-  if (stream == NULL)
-    {
-      /* None to reuse.  */
-      stream = (FILE *) malloc (sizeof (FILE));
-      if (stream == NULL)
-	return NULL;
-      stream->__next = __stdio_head;
-      __stdio_head = stream;
-    }
-
-  __invalidate (stream);
-  stream->__magic = _IOMAGIC;
-  stream->__offset = (fpos_t) -1;
-  stream->__target = (fpos_t) -1;
-
-  return stream;
-}
diff --git a/stdio/obstream.c b/stdio/obstream.c
deleted file mode 100644
index 06118f5416..0000000000
--- a/stdio/obstream.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/* Copyright (C) 1992, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-#include <obstack.h>
-#include <stdarg.h>
-#include <string.h>
-
-/* Output-room function for obstack streams.  */
-
-static void
-grow (FILE *stream, int c)
-{
-  struct obstack *const obstack = (struct obstack *) stream->__cookie;
-
-  /* Move the end of the object back to include only the portion
-     of the buffer which the user has already written into.  */
-  obstack_blank_fast (obstack, - (stream->__put_limit - stream->__bufp));
-
-  if ((size_t) stream->__target > obstack_object_size (obstack))
-    {
-      /* Our target (where the buffer maps to) is always zero except when
-	 the user just did a SEEK_END fseek.  If he sought within the
-	 buffer, we need do nothing and will zero the target below.  If he
-	 sought past the end of the object, grow and zero-fill the object
-	 up to the target address.  */
-
-      obstack_blank (obstack,
-		     stream->__target - obstack_object_size (obstack));
-      /* fseek has just flushed us, so the put limit points
-	 to the end of the written data.  */
-      bzero (stream->__put_limit,
-	     stream->__target - stream->__bufsize);
-    }
-
-  if (c != EOF)
-    obstack_1grow (obstack, (unsigned char) c);
-
-  /* The stream buffer always maps exactly to the object on the top
-     of the obstack.  The start of the buffer is the start of the object.
-     The put limit points just past the end of the object.  On fflush, the
-     obstack is sync'd so the end of the object points just past the last
-     character written to the stream.  */
-
-  stream->__target = stream->__offset = 0;
-  stream->__buffer = obstack_base (obstack);
-  stream->__bufsize = obstack_room (obstack);
-  stream->__bufp = obstack_next_free (obstack);
-  stream->__get_limit = stream->__bufp;
-
-  if (c == EOF)
-    /* This is fflush.  Make the stream buffer, the object,
-       and the characters actually written all match.  */
-    stream->__put_limit = stream->__get_limit;
-  else
-    {
-      /* Extend the buffer (and the object) to include
-	 the rest of the obstack chunk (which is uninitialized).
-	 Data past bufp is undefined.  */
-      stream->__put_limit = stream->__buffer + stream->__bufsize;
-      obstack_blank_fast (obstack, stream->__put_limit - stream->__bufp);
-    }
-}
-
-/* Seek function for obstack streams.
-   There is no external state to munge.  */
-
-static int
-seek (void *cookie, fpos_t *pos, int whence)
-{
-  switch (whence)
-    {
-    case SEEK_SET:
-    case SEEK_CUR:
-      return 0;
-
-    case SEEK_END:
-      /* Return the position relative to the end of the object.
-	 fseek has just flushed us, so the obstack is consistent.  */
-      *pos += obstack_object_size ((struct obstack *) cookie);
-      return 0;
-
-    default:
-      __libc_fatal ("obstream::seek called with bogus WHENCE\n");
-      return -1;
-    }
-}
-
-/* Input room function for obstack streams.
-   Only what has been written to the stream can be read back.  */
-
-static int
-input (FILE *stream)
-{
-  /* Re-sync with the obstack, growing the object if necessary.  */
-  grow (stream, EOF);
-
-  if (stream->__bufp < stream->__get_limit)
-    return (unsigned char) *stream->__bufp++;
-
-  stream->__eof = 1;
-  return EOF;
-}
-
-/* Initialize STREAM to talk to OBSTACK.  */
-
-static void
-init_obstream (FILE *stream, struct obstack *obstack)
-{
-  stream->__mode.__write = 1;
-  stream->__mode.__read = 1;
-
-  /* Input can read only what has been written.  */
-  stream->__room_funcs.__input = input;
-
-  /* Do nothing for close.  */
-  stream->__io_funcs.__close = NULL;
-
-  /* When the buffer is full, grow the obstack.  */
-  stream->__room_funcs.__output = grow;
-
-  /* Seek within the object, and extend it.  */
-  stream->__io_funcs.__seek = seek;
-  stream->__target = stream->__offset = 0;
-
-  stream->__seen = 1;
-
-  /* Don't deallocate that buffer!  */
-  stream->__userbuf = 1;
-
-  /* We don't have to initialize the buffer.
-     The first read attempt will call grow, which will do all the work.  */
-}
-
-FILE *
-open_obstack_stream (obstack)
-     struct obstack *obstack;
-{
-  register FILE *stream;
-
-  stream = __newstream ();
-  if (stream == NULL)
-    return NULL;
-
-  init_obstream (stream, obstack);
-  return stream;
-}
-
-int
-obstack_vprintf (obstack, format, args)
-      struct obstack *obstack;
-      const char *format;
-      va_list args;
-{
-  FILE f;
-  bzero (&f, sizeof (f));
-  init_obstream (&f, obstack);
-  return vfprintf (&f, format, args);
-}
-
-int
-obstack_printf (struct obstack *obstack, const char *format, ...)
-{
-  int result;
-  va_list ap;
-  va_start (ap, format);
-  result = obstack_vprintf (obstack, format, ap);
-  va_end (ap);
-  return result;
-}
diff --git a/stdio/putc.c b/stdio/putc.c
deleted file mode 100644
index f35f9775bf..0000000000
--- a/stdio/putc.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdio.h>
-#undef	putc
-#define	fputc	putc
-#define fputc_unlocked	putc_unlocked
-#include <fputc.c>
-weak_alias (putc, putc_unlocked)
diff --git a/stdio/putchar.c b/stdio/putchar.c
deleted file mode 100644
index d946d74c4c..0000000000
--- a/stdio/putchar.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1991, 1997, 1998 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-
-#undef	putchar
-
-
-/* Write the character C on stdout.  */
-int
-putchar (int c)
-{
-  return __putc (c, stdout);
-}
-
-weak_alias (putchar, putchar_unlocked)
diff --git a/stdio/puts.c b/stdio/puts.c
deleted file mode 100644
index 5dc2840475..0000000000
--- a/stdio/puts.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stddef.h>
-#include <stdio.h>
-#include <string.h>
-
-#undef	puts
-
-
-/* Write the string in S and a newline to stdout.  */
-int
-puts (const char *s)
-{
-  return fputs (s, stdout) || putchar ('\n') == EOF ? EOF : 0;
-}
diff --git a/stdio/rewind.c b/stdio/rewind.c
deleted file mode 100644
index 54f8609597..0000000000
--- a/stdio/rewind.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-
-#undef	rewind
-
-
-/* Rewind STREAM to the beginning of the
-   file and clear its error and EOF flags.  */
-void
-rewind (FILE *stream)
-{
-  clearerr (stream);
-  (void) fseek (stream, 0L, SEEK_SET);
-  clearerr (stream);
-}
diff --git a/stdio/setbuf.c b/stdio/setbuf.c
deleted file mode 100644
index 50ff7df4d6..0000000000
--- a/stdio/setbuf.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stddef.h>
-#include <stdio.h>
-
-
-/* If BUF is NULL, make STREAM unbuffered.
-   If not, make BUF, which is BUFSIZ bytes long, be its buffer.  */
-void
-setbuf (FILE *stream, char *buf)
-{
-  (void) setvbuf (stream, buf, buf != NULL ? _IOFBF : _IONBF, BUFSIZ);
-}
diff --git a/stdio/setbuffer.c b/stdio/setbuffer.c
deleted file mode 100644
index 73fa38085e..0000000000
--- a/stdio/setbuffer.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stddef.h>
-#include <stdio.h>
-
-
-/* If BUF is NULL, make stream unbuffered.
-   If not, make BUF, which is N bytes long, be its buffer.  */
-void
-setbuffer (FILE *stream, char *buf, size_t n)
-{
-  (void) setvbuf (stream, buf, buf != NULL ? _IOFBF : _IONBF, n);
-}
diff --git a/stdio/setlinebuf.c b/stdio/setlinebuf.c
deleted file mode 100644
index 03a80b6afa..0000000000
--- a/stdio/setlinebuf.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-
-
-/* Make STREAM line buffered.  */
-void
-setlinebuf (FILE *stream)
-{
-  if (stream->__buffer != NULL || !stream->__userbuf)
-    stream->__linebuf = 1;
-}
diff --git a/stdio/setvbuf.c b/stdio/setvbuf.c
deleted file mode 100644
index bfa32b53cf..0000000000
--- a/stdio/setvbuf.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 1991, 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-
-
-/* Make STREAM use the buffering method given in MODE.
-   If MODE indicates full or line buffering, use BUF,
-   a buffer of SIZE bytes; if BUF is NULL, malloc a buffer.  */
-int
-setvbuf (stream, buf, mode, size)
-     FILE *stream;
-     char *buf;
-     int mode;
-     size_t size;
-{
-  if (!__validfp (stream))
-    {
-      __set_errno (EINVAL);
-      return EOF;
-    }
-
-  /* The ANSI standard says setvbuf can only be called before any I/O is done,
-     but we allow it to replace an old buffer, flushing it first.  */
-  if (stream->__buffer != NULL)
-    {
-      (void) fflush (stream);
-      /* Free the old buffer if it was malloc'd.  */
-      if (!stream->__userbuf)
-	free(stream->__buffer);
-    }
-
-  stream->__get_limit = stream->__put_limit = NULL;
-  stream->__bufp = stream->__buffer = NULL;
-  stream->__userbuf = stream->__linebuf = stream->__linebuf_active = 0;
-
-  switch (mode)
-    {
-    default:
-      __set_errno (EINVAL);
-      return EOF;
-    case _IONBF:	/* Unbuffered.  */
-      stream->__buffer = NULL;
-      stream->__bufsize = 0;
-      stream->__userbuf = 1;
-      break;
-    case _IOLBF:	/* Line buffered.  */
-      stream->__linebuf = 1;
-    case _IOFBF:	/* Fully buffered.  */
-      if (size == 0)
-	{
-	  __set_errno (EINVAL);
-	  return EOF;
-	}
-      stream->__bufsize = size;
-      if (buf != NULL)
-	stream->__userbuf = 1;
-      else if ((buf = (char *) malloc (size)) == NULL)
-	return EOF;
-      stream->__buffer = buf;
-      break;
-    }
-
-  stream->__bufp = stream->__buffer;
-  stream->__get_limit = stream->__buffer;
-  /* The next output operation will prime the stream for writing.  */
-  stream->__put_limit = stream->__buffer;
-
-  return 0;
-}
diff --git a/stdio/stdio.h b/stdio/stdio.h
deleted file mode 100644
index 3e0a79e093..0000000000
--- a/stdio/stdio.h
+++ /dev/null
@@ -1,832 +0,0 @@
-/* Copyright (C) 1991-1999, 2000 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/*
- *	ISO C99 Standard: 7.19 Input/output	<stdio.h>
- */
-
-#ifndef	_STDIO_H
-
-#if !defined(__need_FILE) && !defined(__need___FILE)
-#define	_STDIO_H	1
-#include <features.h>
-
-__BEGIN_DECLS
-
-#define	__need_size_t
-#define	__need_NULL
-#include <stddef.h>
-
-#define	__need___va_list
-#include <stdarg.h>
-#ifndef	__GNUC_VA_LIST
-#define	__gnuc_va_list	__ptr_t
-#endif
-
-#include <bits/types.h>
-#define __need_FILE
-#define __need___FILE
-#endif /* Don't need FILE.  */
-
-
-#if !defined __FILE_defined && defined __need_FILE
-
-/* The opaque type of streams.  */
-typedef struct __stdio_file FILE;
-
-#define	__FILE_defined	1
-#endif /* FILE not defined.  */
-#undef	__need_FILE
-
-
-#if !defined ____FILE_defined && defined __need___FILE
-
-/* The opaque type of streams.  */
-typedef struct __stdio_file __FILE;
-
-#define	____FILE_defined	1
-#endif /* __FILE not defined.  */
-#undef	__need___FILE
-
-
-#ifdef	_STDIO_H
-
-/* The type of the second argument to `fgetpos' and `fsetpos'.  */
-typedef __off_t fpos_t;
-
-/* The mode of I/O, as given in the MODE argument to fopen, etc.  */
-typedef struct
-{
-  unsigned int __read:1;	/* Open for reading.  */
-  unsigned int __write:1;	/* Open for writing.  */
-  unsigned int __append:1;	/* Open for appending.  */
-  unsigned int __binary:1;	/* Opened binary.  */
-  unsigned int __create:1;	/* Create the file.  */
-  unsigned int __exclusive:1;	/* Error if it already exists.  */
-  unsigned int __truncate:1;	/* Truncate the file on opening.  */
-} __io_mode;
-
-
-/* Functions to do I/O and file management for a stream.  */
-
-/* Read NBYTES bytes from COOKIE into a buffer pointed to by BUF.
-   Return number of bytes read.  */
-typedef __ssize_t __io_read_fn (__ptr_t __cookie, char *__buf,
-				size_t __nbytes);
-
-/* Write N bytes pointed to by BUF to COOKIE.  Write all N bytes
-   unless there is an error.  Return number of bytes written, or -1 if
-   there is an error without writing anything.  If the file has been
-   opened for append (__mode.__append set), then set the file pointer
-   to the end of the file and then do the write; if not, just write at
-   the current file pointer.  */
-typedef __ssize_t __io_write_fn (__ptr_t __cookie, __const char *__buf,
-				 size_t __n);
-
-/* Move COOKIE's file position to *POS bytes from the
-   beginning of the file (if W is SEEK_SET),
-   the current position (if W is SEEK_CUR),
-   or the end of the file (if W is SEEK_END).
-   Set *POS to the new file position.
-   Returns zero if successful, nonzero if not.  */
-typedef int __io_seek_fn (__ptr_t __cookie, fpos_t *__pos, int __w);
-
-/* Close COOKIE.  */
-typedef int __io_close_fn (__ptr_t __cookie);
-
-/* Return the file descriptor associated with COOKIE,
-   or -1 on error.  There need not be any associated file descriptor.  */
-typedef int __io_fileno_fn (__ptr_t __cookie);
-
-#ifdef __USE_GNU
-/* User-visible names for the above.  */
-typedef __io_read_fn cookie_read_function_t;
-typedef __io_write_fn cookie_write_function_t;
-typedef __io_seek_fn cookie_seek_function_t;
-typedef __io_close_fn cookie_close_function_t;
-typedef __io_fileno_fn cookie_fileno_function_t;
-#endif
-
-/* Low level interface, independent of FILE representation.  */
-#if defined __USE_GNU && !defined _LIBC
-/* Define the user-visible type, with user-friendly member names.  */
-typedef struct
-{
-  __io_read_fn *read;		/* Read bytes.  */
-  __io_write_fn *write;		/* Write bytes.  */
-  __io_seek_fn *seek;		/* Seek/tell file position.  */
-  __io_close_fn *close;		/* Close file.  */
-  __io_fileno_fn *fileno;	/* Return file descriptor.  */
-} cookie_io_functions_t;
-/* This name is still used in the prototypes in this file.  */
-typedef cookie_io_functions_t __io_functions;
-#else
-/* Stick to ANSI-safe names.  */
-typedef struct
-{
-  __io_read_fn *__read;		/* Read bytes.  */
-  __io_write_fn *__write;	/* Write bytes.  */
-  __io_seek_fn *__seek;		/* Seek/tell file position.  */
-  __io_close_fn *__close;	/* Close file.  */
-  __io_fileno_fn *__fileno;	/* Return file descriptor.  */
-} __io_functions;
-#endif
-
-/* Higher level interface, dependent on FILE representation.  */
-typedef struct
-{
-  /* Make room in the input buffer.  */
-  int (*__input) (FILE *__stream);
-  /* Make room in the output buffer.  */
-  void (*__output) (FILE *__stream, int __c);
-} __room_functions;
-
-extern __const __io_functions __default_io_functions;
-extern __const __room_functions __default_room_functions;
-
-
-/* Default close function.  */
-extern __io_close_fn __stdio_close;
-/* Open FILE with mode M, store cookie in *COOKIEPTR.  */
-extern int __stdio_open (__const char *__file, __io_mode __m,
-			 void **__cookieptr) __THROW;
-/* Put out an error message for when stdio needs to die.  */
-extern void __stdio_errmsg (__const char *__msg, size_t __len) __THROW;
-
-
-
-/* For thread safe I/O functions we need a lock in each stream.  We
-   keep the type opaque here.  */
-struct __stdio_lock;
-
-/* The FILE structure.  */
-struct __stdio_file
-{
-  /* Magic number for validation.  Must be negative in open streams
-     for the glue to Unix stdio getc/putc to work.
-     NOTE: stdio/glue.c has special knowledge of these first four members.  */
-  int __magic;
-#define	_IOMAGIC ((int) 0xfedabeeb)	/* Magic number to fill `__magic'.  */
-#define	_GLUEMAGIC ((int) 0xfeedbabe)	/* Magic for glued Unix streams.  */
-
-  char *__bufp;			/* Pointer into the buffer.  */
-  char *__get_limit;		/* Reading limit.  */
-  char *__put_limit;		/* Writing limit.  */
-
-  char *__buffer;		/* Base of buffer.  */
-  size_t __bufsize;		/* Size of the buffer.  */
-  __ptr_t __cookie;		/* Magic cookie.  */
-  __io_mode __mode;		/* File access mode.  */
-  __io_functions __io_funcs;	/* I/O functions.  */
-  __room_functions __room_funcs;/* I/O buffer room functions.  */
-  fpos_t __offset;		/* Current file position.  */
-  fpos_t __target;		/* Target file position.  */
-  FILE *__next;			/* Next FILE in the linked list.  */
-  char *__pushback_bufp;	/* Old bufp if char pushed back.  */
-  unsigned char __pushback;	/* Pushed-back character.  */
-  unsigned int __pushed_back:1;	/* A char has been pushed back.  */
-  unsigned int __eof:1;		/* End of file encountered.  */
-  unsigned int __error:1;	/* Error encountered.  */
-  unsigned int __userbuf:1;	/* Buffer from user (should not be freed).  */
-  unsigned int __linebuf:1;	/* Flush on newline.  */
-  unsigned int __linebuf_active:1; /* put_limit is not really in use.  */
-  unsigned int __seen:1;	/* This stream has been seen.  */
-  unsigned int __ispipe:1;	/* Nonzero if opened by popen.  */
-  struct __stdio_lock *__lock;	/* Pointer to associated lock.  */
-};
-
-
-/* All macros used internally by other macros here and by stdio functions begin
-   with `__'.  All of these may evaluate their arguments more than once.  */
-
-
-/* Nonzero if STREAM is a valid stream.
-   STREAM must be a modifiable lvalue (wow, I got to use that term).
-   See stdio/glue.c for what the confusing bit is about.  */
-#define	__validfp(stream)						      \
-  (stream != NULL &&							      \
-   ({ if (stream->__magic == _GLUEMAGIC)				      \
-	stream = *((struct { int __magic; FILE **__p; } *) stream)->__p;      \
-      stream->__magic == _IOMAGIC; }))
-
-/* Clear the error and EOF indicators of STREAM.  */
-#define	__clearerr(stream)	((stream)->__error = (stream)->__eof = 0)
-
-/* Nuke STREAM, making it unusable but available for reuse.  */
-extern void __invalidate (FILE *__stream) __THROW;
-
-/* Make sure STREAM->__offset and STREAM->__target are initialized.
-   Returns 0 if successful, or EOF on
-   error (but doesn't set STREAM->__error).  */
-extern int __stdio_check_offset (FILE *__stream) __THROW;
-
-
-/* The possibilities for the third argument to `setvbuf'.  */
-#define _IOFBF	0x1		/* Full buffering.  */
-#define _IOLBF	0x2		/* Line buffering.  */
-#define _IONBF	0x4		/* No buffering.  */
-
-
-/* Default buffer size.  */
-#define	BUFSIZ	1024
-
-
-/* End of file character.
-   Some things throughout the library rely on this being -1.  */
-#define	EOF	(-1)
-
-
-/* The possibilities for the third argument to `fseek'.
-   These values should not be changed.  */
-#define	SEEK_SET	0	/* Seek from beginning of file.  */
-#define	SEEK_CUR	1	/* Seek from current position.  */
-#define	SEEK_END	2	/* Seek from end of file.  */
-
-
-#ifdef	__USE_SVID
-/* Default path prefix for `tempnam' and `tmpnam'.  */
-#define	P_tmpdir	"/usr/tmp"
-#endif
-
-
-/* Get the values:
-   L_tmpnam	How long an array of chars must be to be passed to `tmpnam'.
-   TMP_MAX	The minimum number of unique filenames generated by tmpnam
-   		(and tempnam when it uses tmpnam's name space),
-		or tempnam (the two are separate).
-   L_ctermid	How long an array to pass to `ctermid'.
-   L_cuserid	How long an array to pass to `cuserid'.
-   FOPEN_MAX	Minimum number of files that can be open at once.
-   FILENAME_MAX	Maximum length of a filename.  */
-#include <bits/stdio_lim.h>
-
-
-/* All the known streams are in a linked list
-   linked by the `next' field of the FILE structure.  */
-extern FILE *__stdio_head;	/* Head of the list.  */
-
-/* Standard streams.  */
-extern FILE *stdin, *stdout, *stderr;
-#ifdef __STRICT_ANSI__
-/* ANSI says these are macros; satisfy pedants.  */
-#define	stdin	stdin
-#define	stdout	stdout
-#define	stderr	stderr
-#endif
-
-
-/* Remove file FILENAME.  */
-extern int remove (__const char *__filename) __THROW;
-/* Rename file OLD to NEW.  */
-extern int rename (__const char *__old, __const char *__new) __THROW;
-
-
-/* Create a temporary file and open it read/write.  */
-extern FILE *tmpfile (void) __THROW;
-#ifdef __USE_LARGEFILE64
-extern FILE *tmpfile64 (void) __THROW;
-#endif
-/* Generate a temporary filename.  */
-extern char *tmpnam (char *__s) __THROW;
-
-#ifdef __USE_REENTRANT
-/* This is the reentrant variant of `tmpnam'.  The only difference is
-   that it does not allow S to be NULL.  */
-extern char *tmpnam_r (char *__s) __THROW;
-#endif
-
-
-#if defined __USE_SVID || defined __USE_XOPEN
-/* Generate a unique temporary filename using up to five characters of PFX
-   if it is not NULL.  The directory to put this file in is searched for
-   as follows: First the environment variable "TMPDIR" is checked.
-   If it contains the name of a writable directory, that directory is used.
-   If not and if DIR is not NULL, that value is checked.  If that fails,
-   P_tmpdir is tried and finally "/tmp".  The storage for the filename
-   is allocated by `malloc'.  */
-extern char *tempnam (__const char *__dir, __const char *__pfx) __THROW;
-#endif
-
-
-/* This performs actual output when necessary, flushing
-   STREAM's buffer and optionally writing another character.  */
-extern int __flshfp (FILE *__stream, int __c) __THROW;
-
-
-/* Close STREAM.  */
-extern int fclose (FILE *__stream) __THROW;
-/* Flush STREAM, or all streams if STREAM is NULL.  */
-extern int fflush (FILE *__stream) __THROW;
-
-#ifdef __USE_MISC
-/* Faster versions when locking is not required.  */
-extern int fflush_unlocked (FILE *__stream) __THROW;
-#endif
-
-#ifdef __USE_GNU
-/* Close all streams.  */
-extern int __fcloseall (void) __THROW;
-extern int fcloseall (void) __THROW;
-#endif
-
-
-/* Open a file and create a new stream for it.  */
-extern FILE *fopen (__const char *__filename, __const char *__modes) __THROW;
-/* Open a file, replacing an existing stream with it. */
-extern FILE *freopen (__const char *__restrict __filename,
-		      __const char *__restrict __modes,
-		      FILE *__restrict __stream) __THROW;
-
-/* Return a new, zeroed, stream.
-   You must set its cookie and io_mode.
-   The first operation will give it a buffer unless you do.
-   It will also give it the default functions unless you set the `seen' flag.
-   The offset is set to -1, meaning it will be determined by doing a
-   stationary seek.  You can set it to avoid the initial tell call.
-   The target is set to -1, meaning it will be set to the offset
-   before the target is needed.
-   Returns NULL if a stream can't be created.  */
-extern FILE *__newstream (void) __THROW;
-
-#ifdef	__USE_POSIX
-/* Create a new stream that refers to an existing system file descriptor.  */
-extern FILE *__fdopen (int __fd, __const char *__modes) __THROW;
-extern FILE *fdopen (int __fd, __const char *__modes) __THROW;
-#endif
-
-#ifdef	__USE_GNU
-/* Create a new stream that refers to the given magic cookie,
-   and uses the given functions for input and output.  */
-extern FILE *fopencookie (void *__magic_cookie, __const char *__modes,
-			  __io_functions __io_funcs) __THROW;
-
-/* Create a new stream that refers to a memory buffer.  */
-extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) __THROW;
-
-/* Open a stream that writes into a malloc'd buffer that is expanded as
-   necessary.  *BUFLOC and *SIZELOC are updated with the buffer's location
-   and the number of characters written on fflush or fclose.  */
-extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __THROW;
-#endif
-
-
-/* If BUF is NULL, make STREAM unbuffered.
-   Else make it use buffer BUF, of size BUFSIZ.  */
-extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __THROW;
-/* Make STREAM use buffering mode MODE.
-   If BUF is not NULL, use N bytes of it for buffering;
-   else allocate an internal buffer N bytes long.  */
-extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
-		    int __modes, size_t __n) __THROW;
-
-#ifdef	__USE_BSD
-/* If BUF is NULL, make STREAM unbuffered.
-   Else make it use SIZE bytes of BUF for buffering.  */
-extern void setbuffer (FILE *__stream, char *__buf, size_t __size) __THROW;
-
-/* Make STREAM line-buffered.  */
-extern void setlinebuf (FILE *__stream) __THROW;
-#endif
-
-
-/* Write formatted output to STREAM.  */
-extern int fprintf (FILE *__restrict __stream,
-		    __const char *__restrict __format, ...) __THROW;
-/* Write formatted output to stdout.  */
-extern int printf (__const char *__restrict __format, ...) __THROW;
-/* Write formatted output to S.  */
-extern int sprintf (char *__restrict __s, __const char *__restrict __format,
-		    ...) __THROW;
-
-/* Write formatted output to S from argument list ARG.  */
-extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
-		     __gnuc_va_list __arg) __THROW;
-/* Write formatted output to stdout from argument list ARG.  */
-extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg)
-     __THROW;
-/* Write formatted output to S from argument list ARG.  */
-extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
-		     __gnuc_va_list __arg) __THROW;
-
-#ifdef	__OPTIMIZE__
-extern __inline int
-vprintf (const char *__restrict __fmt, __gnuc_va_list __arg) __THROW
-{
-  return vfprintf (stdout, __fmt, __arg);
-}
-#endif /* Optimizing.  */
-
-#if defined __USE_BSD || defined __USE_ISOC99
-/* Maximum chars of output to write in MAXLEN.  */
-extern int __snprintf (char *__s, size_t __maxlen,
-		       __const char *__format, ...)
-     __THROW __attribute__ ((__format__ (__printf__, 3, 4)));
-extern int snprintf (char *__s, size_t __maxlen, __const char *__format, ...)
-     __THROW __attribute__ ((__format__ (__printf__, 3, 4)));
-
-extern int __vsnprintf (char *__s, size_t __maxlen,
-			__const char *__format, __gnuc_va_list __arg)
-     __THROW __attribute__ ((__format__ (__printf__, 3, 0)));
-extern int vsnprintf (char *__s, size_t __maxlen,
-		      __const char *__format, __gnuc_va_list __arg)
-     __THROW __attribute__ ((__format__ (__printf__, 3, 0)));
-#endif
-
-#ifdef __USE_GNU
-/* Write formatted output to a string dynamically allocated with `malloc'.
-   Store the address of the string in *PTR.  */
-extern int vasprintf (char **__restrict __ptr,
-		      __const char *__restrict __f, __gnuc_va_list __arg)
-     __THROW __attribute__ ((__format__ (__printf__, 2, 0)));
-extern int __asprintf (char **__restrict __ptr,
-		       __const char *__restrict __fmt, ...)
-     __THROW __attribute__ ((__format__ (__printf__, 2, 3)));
-extern int asprintf (char **__restrict __ptr,
-		     __const char *__restrict __fmt, ...)
-     __THROW __attribute__ ((__format__ (__printf__, 2, 3)));
-
-/* Write formatted output to a file descriptor.  */
-extern int vdprintf (int __fd, __const char *__restrict __fmt,
-		     __gnuc_va_list __arg)
-     __THROW __attribute__ ((__format__ (__printf__, 2, 0)));
-extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
-     __THROW __attribute__ ((__format__ (__printf__, 2, 3)));
-#endif
-
-
-/* Read formatted input from STREAM.  */
-extern int fscanf (FILE *__restrict __stream,
-		   __const char *__restrict __format, ...) __THROW;
-/* Read formatted input from stdin.  */
-extern int scanf (__const char *__restrict __format, ...) __THROW;
-/* Read formatted input from S.  */
-extern int sscanf (__const char *__restrict __s,
-		   __const char *__restrict __format, ...) __THROW;
-
-#ifdef	__USE_ISOC99
-/* Read formatted input from S into argument list ARG.  */
-extern int __vfscanf (FILE *__s, __const char *__format,
-		      __gnuc_va_list __arg) __THROW;
-extern int vfscanf (FILE *__s, __const char *__format,
-		    __gnuc_va_list __arg) __THROW;
-
-/* Read formatted input from stdin into argument list ARG.  */
-extern int __vscanf (__const char *__format, __gnuc_va_list __arg) __THROW;
-extern int vscanf (__const char *__format, __gnuc_va_list __arg) __THROW;
-
-/* Read formatted input from S into argument list ARG.  */
-extern int __vsscanf (__const char *__s, __const char *__format,
-		      __gnuc_va_list __arg) __THROW;
-extern int vsscanf (__const char *__s, __const char *__format,
-		    __gnuc_va_list __arg) __THROW;
-
-
-#ifdef	__OPTIMIZE__
-extern __inline int
-vfscanf (FILE *__s, const char *__fmt, __gnuc_va_list __arg) __THROW
-{
-  return __vfscanf (__s, __fmt, __arg);
-}
-extern __inline int
-vscanf (const char *__fmt, __gnuc_va_list __arg) __THROW
-{
-  return __vfscanf (stdin, __fmt, __arg);
-}
-extern __inline int
-vsscanf (const char *__s, const char *__fmt, __gnuc_va_list __arg) __THROW
-{
-  return __vsscanf (__s, __fmt, __arg);
-}
-#endif /* Optimizing.  */
-#endif /* Use ISO C9x.  */
-
-
-/* This does actual reading when necessary, filling STREAM's
-   buffer and returning the first character in it.  */
-extern int __fillbf (FILE *__stream) __THROW;
-
-
-/* Read a character from STREAM.  */
-extern int fgetc (FILE *__stream) __THROW;
-extern int getc (FILE *__stream) __THROW;
-
-/* Read a character from stdin.  */
-extern int getchar (void) __THROW;
-
-/* The C standard explicitly says this can
-   re-evaluate its argument, so it does. */
-#define	__getc(stream)							      \
-  ((stream)->__bufp < (stream)->__get_limit ?				      \
-   (int) ((unsigned char) *(stream)->__bufp++) : __fillbf(stream))
-
-/* The C standard explicitly says this is a macro,
-   so we always do the optimization for it.  */
-#define	getc(stream)	__getc(stream)
-
-#ifdef	__OPTIMIZE__
-extern __inline int
-getchar (void) __THROW
-{
-  return __getc (stdin);
-}
-#endif /* Optimizing.  */
-
-#if defined __USE_POSIX || defined __USE_MISC
-/* These are defined in POSIX.1:1996.  */
-extern int getc_unlocked (FILE *__stream) __THROW;
-extern int getchar_unlocked (void) __THROW;
-
-# ifdef __OPTIMIZE__
-extern __inline int
-getc_unlocked (FILE *__stream) __THROW
-{
-  return __getc (__stream);
-}
-
-extern __inline int
-getchar_unlocked (void) __THROW
-{
-  return __getc (stdin);
-}
-# endif /* Optimizing.  */
-#endif /* Use POSIX or MISC.  */
-
-
-/* Write a character to STREAM.  */
-extern int fputc (int __c, FILE *__stream) __THROW;
-extern int putc (int __c, FILE *__stream) __THROW;
-
-/* Write a character to stdout.  */
-extern int putchar (int __c) __THROW;
-
-
-/* The C standard explicitly says this can
-   re-evaluate its arguments, so it does.  */
-#define	__putc(c, stream)						      \
-  ((stream)->__bufp < (stream)->__put_limit ?				      \
-   (int) (unsigned char) (*(stream)->__bufp++ = (unsigned char) (c)) :	      \
-   __flshfp ((stream), (unsigned char) (c)))
-
-/* The C standard explicitly says this can be a macro,
-   so we always do the optimization for it.  */
-#define	putc(c, stream)	__putc ((c), (stream))
-
-#ifdef __OPTIMIZE__
-extern __inline int
-putchar (int __c) __THROW
-{
-  return __putc (__c, stdout);
-}
-#endif
-
-#ifdef __USE_MISC
-/* Faster version when locking is not necessary.  */
-extern int fputc_unlocked (int __c, FILE *__stream) __THROW;
-
-# ifdef __OPTIMIZE__
-extern __inline int
-fputc_unlocked (int __c, FILE *__stream) __THROW
-{
-  return __putc (__c, __stream);
-}
-# endif /* Optimizing.  */
-#endif /* Use MISC.  */
-
-#if defined __USE_POSIX || defined __USE_MISC
-/* These are defined in POSIX.1:1996.  */
-extern int putc_unlocked (int __c, FILE *__stream) __THROW;
-extern int putchar_unlocked (int __c) __THROW;
-
-# ifdef __OPTIMIZE__
-extern __inline int
-putc_unlocked (int __c, FILE *__stream) __THROW
-{
-  return __putc (__c, __stream);
-}
-
-extern __inline int
-putchar_unlocked (int __c) __THROW
-{
-  return __putc (__c, stdout);
-}
-# endif /* Optimizing.  */
-#endif /* Use POSIX or MISC.  */
-
-
-#if defined __USE_SVID || defined __USE_MISC
-/* Get a word (int) from STREAM.  */
-extern int getw (FILE *__stream) __THROW;
-
-/* Write a word (int) to STREAM.  */
-extern int putw (int __w, FILE *__stream) __THROW;
-#endif
-
-
-/* Get a newline-terminated string of finite length from STREAM.  */
-extern char *fgets (char *__restrict __s, int __n,
-		    FILE *__restrict __stream) __THROW;
-
-#ifdef __USE_GNU
-/* This function does the same as `fgets' but does not lock the stream.  */
-extern char *fgets_unlocked (char *__restrict __s, int __n,
-			     FILE *__restrict __stream) __THROW;
-#endif
-
-/* Get a newline-terminated string from stdin, removing the newline.
-   DO NOT USE THIS FUNCTION!!  There is no limit on how much it will read.  */
-extern char *gets (char *__s) __THROW;
-
-
-#ifdef	__USE_GNU
-#include <sys/types.h>
-
-/* Read up to (and including) a DELIMITER from STREAM into *LINEPTR
-   (and null-terminate it). *LINEPTR is a pointer returned from malloc (or
-   NULL), pointing to *N characters of space.  It is realloc'd as
-   necessary.  Returns the number of characters read (not including the
-   null terminator), or -1 on error or EOF.  */
-ssize_t __getdelim (char **__lineptr, size_t *__n,
-		    int __delimiter, FILE *__stream) __THROW;
-ssize_t getdelim (char **__lineptr, size_t *__n,
-		  int __delimiter, FILE *__stream) __THROW;
-
-/* Like `getdelim', but reads up to a newline.  */
-ssize_t __getline (char **__lineptr, size_t *__n, FILE *__stream) __THROW;
-ssize_t getline (char **__lineptr, size_t *__n, FILE *__stream) __THROW;
-
-#ifdef	__OPTIMIZE__
-extern __inline ssize_t
-getline (char **__lineptr, size_t *__n, FILE *__stream) __THROW
-{
-  return __getdelim (__lineptr, __n, '\n', __stream);
-}
-#endif /* Optimizing.  */
-#endif
-
-
-/* Write a string to STREAM.  */
-extern int fputs (__const char *__restrict __s, FILE *__restrict __stream)
-     __THROW;
-
-#ifdef __USE_GNU
-/* This function does the same as `fputs' but does not lock the stream.  */
-extern int fputs_unlocked (__const char *__restrict __s,
-			   FILE *__restrict __stream) __THROW;
-#endif
-
-/* Write a string, followed by a newline, to stdout.  */
-extern int puts (__const char *__s) __THROW;
-
-
-/* Push a character back onto the input buffer of STREAM.  */
-extern int ungetc (int __c, FILE *__stream) __THROW;
-
-
-/* Read chunks of generic data from STREAM.  */
-extern size_t fread (void *__restrict __ptr, size_t __size,
-		     size_t __n, FILE *__restrict __stream) __THROW;
-/* Write chunks of generic data to STREAM.  */
-extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
-		      size_t __n, FILE *__restrict __s) __THROW;
-
-#ifdef __USE_MISC
-/* Faster versions when locking is not necessary.  */
-extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
-			      size_t __n, FILE *__restrict __stream) __THROW;
-extern size_t fwrite_unlocked (__const void *__restrict __ptr,
-			       size_t __size, size_t __n,
-			       FILE *__restrict __stream) __THROW;
-#endif
-
-
-/* Seek to a certain position on STREAM.  */
-extern int fseek (FILE *__stream, long int __off, int __whence) __THROW;
-/* Return the current position of STREAM.  */
-extern long int ftell (FILE *__stream) __THROW;
-/* Rewind to the beginning of STREAM.  */
-extern void rewind (FILE *__stream) __THROW;
-
-/* Get STREAM's position.  */
-extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos)
-     __THROW;
-/* Set STREAM's position.  */
-extern int fsetpos (FILE *__stream, __const fpos_t *__pos) __THROW;
-
-
-/* Clear the error and EOF indicators for STREAM.  */
-extern void clearerr (FILE *__stream) __THROW;
-/* Return the EOF indicator for STREAM.  */
-extern int feof (FILE *__stream) __THROW;
-/* Return the error indicator for STREAM.  */
-extern int ferror (FILE *__stream) __THROW;
-
-#ifdef	__OPTIMIZE__
-#define	feof(stream)	((stream)->__eof != 0)
-#define	ferror(stream)	((stream)->__error != 0)
-#endif /* Optimizing.  */
-
-#ifdef __USE_MISC
-/* Faster versions when locking is not required.  */
-extern void clearerr_unlocked (FILE *__stream) __THROW;
-extern int feof_unlocked (FILE *__stream) __THROW;
-extern int ferror_unlocked (FILE *__stream) __THROW;
-
-# ifdef	__OPTIMIZE__
-#  define feof_unlocked(stream)		((stream)->__eof != 0)
-#  define ferror_unlocked(stream)	((stream)->__error != 0)
-# endif /* Optimizing.  */
-#endif
-
-/* Print a message describing the meaning of the value of errno.  */
-extern void perror (__const char *__s) __THROW;
-
-
-#ifdef	__USE_POSIX
-/* Return the system file descriptor for STREAM.  */
-extern int fileno (FILE *__stream) __THROW;
-#endif /* Use POSIX.  */
-
-#ifdef __USE_MISC
-/* Faster version when locking is not required.  */
-extern int fileno_unlocked (FILE *__stream) __THROW;
-#endif
-
-
-#if (defined __USE_POSIX2 || defined __USE_SVID || defined __USE_BSD || \
-     defined __USE_MISC)
-/* Create a new stream connected to a pipe running the given command.  */
-extern FILE *popen (__const char *__command, __const char *__modes) __THROW;
-
-/* Close a stream opened by popen and return the status of its child.  */
-extern int pclose (FILE *__stream) __THROW;
-#endif
-
-
-#ifdef	__USE_POSIX
-/* Return the name of the controlling terminal.  */
-extern char *ctermid (char *__s) __THROW;
-#endif
-
-
-#ifdef __USE_XOPEN
-/* Return the name of the current user.  */
-extern char *cuserid (char *__s) __THROW;
-#endif
-
-
-#ifdef	__USE_GNU
-struct obstack;			/* See <obstack.h>.  */
-
-/* Open a stream that writes to OBSTACK.  */
-extern FILE *open_obstack_stream (struct obstack *__obstack) __THROW;
-
-/* Write formatted output to an obstack.  */
-extern int obstack_printf (struct obstack *__obstack,
-			   __const char *__format, ...) __THROW;
-extern int obstack_vprintf (struct obstack *__obstack, __const char *__format,
-			    __gnuc_va_list __args) __THROW;
-#endif
-
-
-#if defined __USE_POSIX || defined __USE_MISC
-/* These are defined in POSIX.1:1996.  */
-
-/* Acquire ownership of STREAM.  */
-extern void flockfile (FILE *__stream) __THROW;
-
-/* Try to acquire ownership of STREAM but do not block if it is not
-   possible.  */
-extern int ftrylockfile (FILE *__stream) __THROW;
-
-/* Relinquish the ownership granted for STREAM.  */
-extern void funlockfile (FILE *__stream) __THROW;
-#endif /* POSIX || misc */
-
-#if defined __USE_XOPEN && !defined __USE_GNU
-/* The X/Open standard requires some functions and variables to be
-   declared here which do not belong into this header.  But we have to
-   follow.  In GNU mode we don't do this nonsense.  */
-# define __need_getopt
-# include <getopt.h>
-#endif
-
-__END_DECLS
-
-#endif /* <stdio.h> included.  */
-
-#endif /* stdio.h  */
diff --git a/stdio/ungetc.c b/stdio/ungetc.c
deleted file mode 100644
index 34304aa3fd..0000000000
--- a/stdio/ungetc.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 1991, 1993, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-
-
-/* Push the character C back onto the input stream of STREAM.  */
-int
-ungetc (c, stream)
-     int c;
-     FILE *stream;
-{
-  if (!__validfp (stream) || !stream->__mode.__read)
-    {
-      __set_errno (EINVAL);
-      return EOF;
-    }
-
-  if (c == EOF)
-    return EOF;
-
-  if (stream->__pushed_back)
-    /* There is already a char pushed back.  */
-    return EOF;
-
-  if ((stream->__linebuf_active || stream->__put_limit > stream->__buffer) &&
-      /* This is a read-write stream with something in its buffer.
-	 Flush the stream.  */
-      __flshfp (stream, EOF) == EOF)
-    return EOF;
-
-  stream->__pushback = (unsigned char) c;
-  /* Tell __fillbf we've pushed back a char.  */
-  stream->__pushed_back = 1;
-  stream->__pushback_bufp = stream->__bufp;
-  /* Make the next getc call __fillbf.  It will return C.  */
-  stream->__bufp = stream->__get_limit;
-
-  /* We just gave it another character to read, so it's not at EOF.  */
-  stream->__eof = 0;
-
-  return stream->__pushback;
-}
diff --git a/stdio/vasprintf.c b/stdio/vasprintf.c
deleted file mode 100644
index 8da6f02cf2..0000000000
--- a/stdio/vasprintf.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (C) 1991, 1992, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stddef.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-
-/* Enlarge STREAM's buffer.  */
-static void
-enlarge_buffer (FILE *stream, int c)
-{
-  ptrdiff_t bufp_offset = stream->__bufp - stream->__buffer;
-  char *newbuf;
-
-  stream->__bufsize += 100;
-  newbuf = (char *) realloc ((void *) stream->__buffer, stream->__bufsize);
-  if (newbuf == NULL)
-    {
-      free ((void *) stream->__buffer);
-      stream->__buffer = stream->__bufp
-	= stream->__put_limit = stream->__get_limit = NULL;
-      stream->__error = 1;
-    }
-  else
-    {
-      stream->__buffer = newbuf;
-      stream->__bufp = stream->__buffer + bufp_offset;
-      stream->__get_limit = stream->__put_limit;
-      stream->__put_limit = stream->__buffer + stream->__bufsize;
-      if (c != EOF)
-	*stream->__bufp++ = (unsigned char) c;
-    }
-}
-
-/* Write formatted output from FORMAT to a string which is
-   allocated with malloc and stored in *STRING_PTR.  */
-int
-vasprintf (char **string_ptr,
-	   const char *format,
-	   va_list args)
-{
-  FILE f;
-  int done;
-
-  memset ((void *) &f, 0, sizeof (f));
-  f.__magic = _IOMAGIC;
-  f.__bufsize = 100;
-  f.__buffer = (char *) malloc (f.__bufsize);
-  if (f.__buffer == NULL)
-    return -1;
-  f.__bufp = f.__buffer;
-  f.__put_limit = f.__buffer + f.__bufsize;
-  f.__mode.__write = 1;
-  f.__room_funcs.__output = enlarge_buffer;
-  f.__seen = 1;
-
-  done = vfprintf (&f, format, args);
-  if (done < 0)
-    return done;
-
-  *string_ptr = realloc (f.__buffer, (f.__bufp - f.__buffer) + 1);
-  if (*string_ptr == NULL)
-    *string_ptr = f.__buffer;
-  (*string_ptr)[f.__bufp - f.__buffer] = '\0';
-  return done;
-}
diff --git a/stdio/vscanf.c b/stdio/vscanf.c
deleted file mode 100644
index 655f282d7c..0000000000
--- a/stdio/vscanf.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 1991, 1992, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdarg.h>
-#include <stdio.h>
-
-#undef	vscanf
-
-
-/* Read formatted input from stdin according to the format
-   string in FORMAT, using the argument list in ARG.  */
-int
-__vscanf (const char *format, va_list arg)
-{
-  return vfscanf (stdin, format, arg);
-}
-weak_alias (__vscanf, vscanf)
diff --git a/stdio/vsnprintf.c b/stdio/vsnprintf.c
deleted file mode 100644
index 83271834e2..0000000000
--- a/stdio/vsnprintf.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 1991, 1992, 1995, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-
-
-/*
- * Write formatted output to S according to the format string
- * FORMAT, using the argument list in ARG, writing no more
- * than MAXLEN characters.
- */
-int
-__vsnprintf (char *s, size_t maxlen, const char *format, va_list arg)
-{
-  int done;
-  FILE f;
-
-  /* We have to handle the case of MAXLEN == 0 special.  */
-  if (maxlen == 0)
-    return 0;
-
-  memset ((void *) &f, 0, sizeof (f));
-  f.__magic = _IOMAGIC;
-  f.__mode.__write = 1;
-  /* The buffer size is one less than MAXLEN
-     so we have space for the null terminator.  */
-  f.__bufp = f.__buffer = (char *) s;
-  f.__bufsize = maxlen - 1;
-  f.__put_limit = f.__buffer + f.__bufsize;
-  f.__get_limit = f.__buffer;
-  /* After the buffer is full (MAXLEN characters have been written),
-     any more characters written will go to the bit bucket.  */
-  f.__room_funcs = __default_room_functions;
-  f.__io_funcs.__write = NULL;
-  f.__seen = 1;
-
-  done = vfprintf (&f, format, arg);
-  *f.__bufp = '\0';
-
-  return done;
-}
-weak_alias (__vsnprintf, vsnprintf)
diff --git a/stdio/vsprintf.c b/stdio/vsprintf.c
deleted file mode 100644
index bd34ec2a4a..0000000000
--- a/stdio/vsprintf.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 1991, 1992, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <limits.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-
-
-/* Write formatted output to S according to the format string
-   FORMAT, using the argument list in ARG.  */
-int
-vsprintf (s, format, arg)
-     char *s;
-     const char *format;
-     va_list arg;
-{
-  int done;
-  FILE f;
-
-  memset ((void *) &f, 0, sizeof (f));
-  f.__magic = _IOMAGIC;
-  f.__mode.__write = 1;
-  f.__bufp = f.__buffer = (char *) s;
-  f.__put_limit = (char *) ULONG_MAX;
-  f.__bufsize = (size_t) (f.__put_limit - f.__bufp);
-  f.__get_limit = f.__buffer;
-  f.__room_funcs.__output = NULL;
-  f.__seen = 1;
-
-  done = vfprintf (&f, format, arg);
-  *f.__bufp = '\0';
-
-  return done;
-}
diff --git a/stdio/vsscanf.c b/stdio/vsscanf.c
deleted file mode 100644
index e037f8c92d..0000000000
--- a/stdio/vsscanf.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-
-#undef	vsscanf
-
-
-/* Read formatted input from S according to the format
-   string FORMAT, using the argument list in ARG.  */
-int
-__vsscanf (s, format, arg)
-     const char *s;
-     const char *format;
-     va_list arg;
-{
-  FILE f;
-
-  if (s == NULL)
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  memset ((void *) &f, 0, sizeof (f));
-  f.__magic = _IOMAGIC;
-  f.__mode.__read = 1;
-  f.__bufp = f.__buffer = (char *) s;
-  f.__bufsize = strlen(s);
-  f.__get_limit = f.__buffer + f.__bufsize;
-  f.__put_limit = f.__buffer;
-  /* After the buffer is empty (strlen(S) characters have been read),
-     any more read attempts will get EOF.  */
-  f.__room_funcs.__input = NULL;
-  f.__seen = 1;
-
-  return __vfscanf (&f, format, arg);
-}
-
-
-weak_alias (__vsscanf, vsscanf)
diff --git a/sysdeps/generic/defs.c b/sysdeps/generic/defs.c
deleted file mode 100644
index c71235dd08..0000000000
--- a/sysdeps/generic/defs.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Definitions of global stdio data structures.
-   Copyright (C) 1991, 1995, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-
-/* This file should define the following
-   variables as appropriate for the system.  */
-
-FILE *stdin, *stdout, *stderr;
-
-/* Pointer to the first stream in the list.  */
-FILE *__stdio_head;
-
-/* This function MUST be in this file!
-   This is because we want _cleanup to go into the __libc_atexit set
-   when any stdio code is used (and to use any stdio code, one must reference
-   something defined in this file), and since only local symbols can be made
-   set elements, having the set element stab entry here and _cleanup elsewhere
-   loses; and having them both elsewhere loses because there is no reference
-   to cause _cleanup to be linked in.  */
-
-void
-_cleanup ()
-{
-  __fcloseall ();
-}
-
-
-#ifdef	HAVE_GNU_LD
-text_set_element (__libc_atexit, _cleanup);
-#endif
diff --git a/sysdeps/generic/fdopen.c b/sysdeps/generic/fdopen.c
deleted file mode 100644
index d856d0403a..0000000000
--- a/sysdeps/generic/fdopen.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-
-/* Open a new stream on a given system file descriptor.  */
-FILE *
-__fdopen (fd, mode)
-     int fd;
-     const char *mode;
-{
-  __set_errno (ENOSYS);
-  return NULL;
-}
-weak_alias (__fdopen, fdopen)
-
-stub_warning (fdopen)
-#include <stub-tag.h>
diff --git a/sysdeps/generic/pipestream.c b/sysdeps/generic/pipestream.c
deleted file mode 100644
index f30dbdd36e..0000000000
--- a/sysdeps/generic/pipestream.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright (C) 1991, 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stddef.h>
-#include <signal.h>
-#include <stdio.h>
-#include <errno.h>
-
-
-/* Open a new stream that is a one-way pipe to a
-   child process running the given shell command.  */
-FILE *
-popen (command, mode)
-     const char *command;
-     const char *mode;
-{
-  if (command == NULL || mode == NULL || (*mode != 'r' && *mode != 'w'))
-    {
-      __set_errno (EINVAL);
-      return NULL;
-    }
-
-  __set_errno (ENOSYS);
-  return NULL;
-}
-
-/* Close a stream opened by popen and return its status.
-   Returns -1 if the stream was not opened by popen.  */
-int
-pclose (stream)
-     register FILE *stream;
-{
-  if (!__validfp (stream) || !stream->__ispipe)
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  __set_errno (ENOSYS);
-  return -1;
-}
-
-stub_warning (popen)
-stub_warning (pclose)
-#include <stub-tag.h>
diff --git a/sysdeps/generic/stdio_init.c b/sysdeps/generic/stdio_init.c
deleted file mode 100644
index 426934372d..0000000000
--- a/sysdeps/generic/stdio_init.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-
-/* Initialize STREAM as necessary.
-   This may change I/O functions, give a buffer, etc.
-   If no buffer is allocated, but the bufsize is set,
-   the bufsize will be used to allocate the buffer.  */
-void
-__stdio_init_stream (stream)
-     FILE *stream;
-{
-  stream->__bufsize = BUFSIZ;
-}
diff --git a/sysdeps/generic/sysd-stdio.c b/sysdeps/generic/sysd-stdio.c
deleted file mode 100644
index 032ea60819..0000000000
--- a/sysdeps/generic/sysd-stdio.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-extern __io_read_fn __stdio_read;
-extern __io_write_fn __stdio_write;
-extern __io_seek_fn __stdio_seek;
-extern __io_close_fn __stdio_close;
-extern __io_fileno_fn __stdio_fileno;
-
-/* Read N bytes into BUF from COOKIE.  */
-int
-__stdio_read (void *cookie, char *buf, size_t n)
-{
-  const int fd = (int) cookie;
-#if defined EINTR && defined EINTR_REPEAT
-  int save = errno;
-  int nread;
-
- try:;
-  __set_errno (0);
-  nread = __read (fd, buf, (int) n);
-  if (nread < 0)
-    {
-      if (errno == EINTR)
-	goto try;
-      return -1;
-    }
-  __set_errno (save);
-  return nread;
-
-#else	/* No EINTR.  */
-  return __read (fd, buf, n);
-#endif
-}
-
-
-/* Write N bytes from BUF to COOKIE.  */
-int
-__stdio_write (void *cookie, const char *buf, size_t n)
-{
-  const int fd = (int) cookie;
-  register size_t written = 0;
-
-  while (n > 0)
-    {
-      int count = __write (fd, buf, (int) n);
-      if (count > 0)
-	{
-	  buf += count;
-	  written += count;
-	  n -= count;
-	}
-      else if (count < 0
-#if defined EINTR && defined EINTR_REPEAT
-	       && errno != EINTR
-#endif
-	       )
-	/* Write error.  */
-	return -1;
-    }
-
-  return (int) written;
-}
-
-
-/* Move COOKIE's file position *POS bytes, according to WHENCE.
-   The new file position is stored in *POS.
-   Returns zero if successful, nonzero if not.  */
-int
-__stdio_seek (void *cookie, fpos_t *pos, int whence)
-{
-  off_t new;
-  new = __lseek ((int) cookie, (off_t) *pos, whence);
-  if (new < 0)
-    return 1;
-  *pos = (fpos_t) new;
-  return 0;
-}
-
-
-/* Close COOKIE.  */
-int
-__stdio_close (void *cookie)
-{
-  return __close ((int) cookie);
-}
-
-/* Return the POSIX.1 file descriptor associated with COOKIE,
-   or -1 for errors.  If COOKIE does not relate to any POSIX.1 file
-   descriptor, this should return -1 with errno set to EOPNOTSUPP.  */
-int
-__stdio_fileno (void *cookie)
-{
-  return (int) cookie;
-}
-
-
-/* Open the given file with the mode given in the __io_mode argument.  */
-int
-__stdio_open (const char *filename, __io_mode m, void **cookieptr)
-{
-  int fd;
-  int mode;
-
-  if (m.__read && m.__write)
-    mode = O_RDWR;
-  else
-    mode = m.__read ? O_RDONLY : O_WRONLY;
-
-  if (m.__append)
-    mode |= O_APPEND;
-  if (m.__exclusive)
-    mode |= O_EXCL;
-  if (m.__truncate)
-    mode |= O_TRUNC;
-
-  if (m.__create)
-    fd = __open (filename, mode | O_CREAT,
-		 S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH);
-  else
-    fd = __open (filename, mode);
-
-  if (fd < 0)
-    return -1;
-
-  *cookieptr = (void *) fd;
-  return 0;
-}
-
-
-/* Open FILENAME with the mode in M.  Use the same magic cookie
-   already in *COOKIEPTR if possible, closing the old cookie with CLOSEFN.  */
-int
-__stdio_reopen (const char *filename, __io_mode m, void **cookieptr,
-		__io_close_fn closefn)
-{
-  void *newcookie;
-
-  /* We leave the old descriptor open while we open the file.
-     That way ``freopen ("/dev/stdin", "r", stdin)'' works.  */
-
-  if (__stdio_open (filename, m, &newcookie))
-    {
-      if (errno == ENFILE || errno == EMFILE)
-	{
-	  /* We are out of file descriptors.  Try closing the old one and
-	     retrying the open.  */
-	  (void) (*closefn) (*cookieptr);
-	  if (__stdio_open (filename, m, &newcookie))
-	    return -1;
-	}
-      else
-	return -1;
-    }
-
-  if (newcookie != *cookieptr)
-    {
-      if (closefn != __stdio_close ||
-	  /* Try to move the descriptor to the desired one.  */
-	  __dup2 ((int) newcookie, (int) *cookieptr) < 0)
-	/* Didn't work.  Give the caller the new cookie.  */
-	*cookieptr = newcookie;
-    }
-
-  return 0;
-}
diff --git a/sysdeps/generic/vdprintf.c b/sysdeps/generic/vdprintf.c
deleted file mode 100644
index d8bd3bca81..0000000000
--- a/sysdeps/generic/vdprintf.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdarg.h>
-
-/* Write formatted output to file descriptor D according to the format string
-   FORMAT, using the argument list in ARG.  */
-int
-vdprintf (int d, const char *format, va_list arg)
-{
-  __set_errno (ENOSYS);
-  return 0;
-}
-
-stub_warning (vdprintf)
-#include <stub-tag.h>
diff --git a/sysdeps/mach/hurd/configure b/sysdeps/mach/hurd/configure
index 93434c0e91..7017ea4adc 100755
--- a/sysdeps/mach/hurd/configure
+++ b/sysdeps/mach/hurd/configure
@@ -12,14 +12,9 @@ fi
 
 case "$machine" in
   i386*)
-    # With --enable-libio, the default oldest ABI is 2.2.6;
-    # without --enable-libio, the default oldest ABI is 2.0.
+    # The default oldest ABI is 2.2.6.
     # We only need a "yes" here if the oldest ABI supported will be < 2.2.6.
-    if if test "$stdio" = libio; then
-         test "$oldest_abi" != default && test "$oldest_abi" \< "2.2.6"
-       else
-         test "$oldest_abi" = default || test "$oldest_abi" \< "2.2.6"
-       fi; then
+    if test "$oldest_abi" != default && test "$oldest_abi" \< "2.2.6"; then
       libc_cv_gcc_unwind_find_fde=yes
     fi
     ;;
@@ -29,7 +24,7 @@ esac
 
 # See if mig groks `retcode'.
 echo $ac_n "checking whether $MIG supports the retcode keyword""... $ac_c" 1>&6
-echo "configure:33: checking whether $MIG supports the retcode keyword" >&5
+echo "configure:28: checking whether $MIG supports the retcode keyword" >&5
 if eval "test \"`echo '$''{'hurd_cv_mig_retcode'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -43,7 +38,7 @@ simpleroutine foobar_reply (
 	reply_port: reply_port_t;
 	err: kern_return_t, RetCode);
 EOF
-if { ac_try='CC="${CC}" ${MIG-false} -n conftest.defs 1>&5'; { (eval echo configure:47: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+if { ac_try='CC="${CC}" ${MIG-false} -n conftest.defs 1>&5'; { (eval echo configure:42: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
   hurd_cv_mig_retcode=yes
 else
   hurd_cv_mig_retcode=no
diff --git a/sysdeps/mach/hurd/configure.in b/sysdeps/mach/hurd/configure.in
index 26bdaf661d..f5afe2f1d3 100644
--- a/sysdeps/mach/hurd/configure.in
+++ b/sysdeps/mach/hurd/configure.in
@@ -14,14 +14,9 @@ fi
 
 case "$machine" in
   i386*)
-    # With --enable-libio, the default oldest ABI is 2.2.6;
-    # without --enable-libio, the default oldest ABI is 2.0.
+    # The default oldest ABI is 2.2.6.
     # We only need a "yes" here if the oldest ABI supported will be < 2.2.6.
-    if if test "$stdio" = libio; then
-         test "$oldest_abi" != default && test "$oldest_abi" \< "2.2.6"
-       else
-         test "$oldest_abi" = default || test "$oldest_abi" \< "2.2.6"
-       fi; then
+    if test "$oldest_abi" != default && test "$oldest_abi" \< "2.2.6"; then
       libc_cv_gcc_unwind_find_fde=yes
     fi
     ;;
diff --git a/sysdeps/mach/hurd/defs.c b/sysdeps/mach/hurd/defs.c
deleted file mode 100644
index 3999957d41..0000000000
--- a/sysdeps/mach/hurd/defs.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Definitions of global stdio data structures.
-   Copyright (C) 1991,92,93,94,95,97,2000 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-#include <hurd/fd.h>
-#include <unistd.h>
-
-FILE *stdin, *stdout, *stderr;
-
-/* Pointer to the first stream in the list.  */
-FILE *__stdio_head = NULL;
-
-/* XXX should be __init_stdio? */
-static void
-init_stdio (void)
-{
-  inline void init (FILE **streamptr, int fd)
-    {
-      /* We want to use the existing FILE object if one has been allocated.
-	 (This will only be the case if our image came from something like
-	 Emacs's unexec, where we were called in the first run.)  */
-      FILE *s = *streamptr ?: __newstream ();
-      struct hurd_fd *d = _hurd_fd_get (fd);
-      if (d == NULL)
-	{
-	  /* There is no file descriptor allocated.  We want the standard
-	     streams to always refer to their standard file descriptors, even
-	     if those descriptors are not set up until later.  So allocate
-	     the descriptor structure with no ports and store it in the
-	     stream.  Operations will fail until ports are installed in the
-	     file descriptor.  */
-	  if (d = _hurd_alloc_fd (NULL, fd))
-	    __spin_unlock (&d->port.lock);
-	}
-      if (s)
-	s->__cookie = d;
-      *streamptr = s;
-    }
-#define S(NAME, FD, MODE) \
-  init (&NAME, FD); if (NAME) NAME->__mode.__##MODE = 1;
-
-  S (stdin, STDIN_FILENO, read);
-  S (stdout, STDOUT_FILENO, write);
-  S (stderr, STDERR_FILENO, write);
-
-#undef S
-
-  if (stderr)
-    stderr->__userbuf = 1;	/* stderr is always unbuffered.  */
-
-  (void) &init_stdio;		/* Avoid "defined but not used" warning.  */
-}
-/* This initializer will be run along with other vanilla libc initializers
-   in a normal Posixoid environment.  The earlier Hurd-speciifc initializer
-   phases cannot use normal facilities like malloc (which stdio uses).  */
-text_set_element (__libc_subinit, init_stdio);
-
-/* This function MUST be in this file!
-   This is because we want _cleanup to go into the __libc_atexit set
-   when any stdio code is used (and to use any stdio code, one must reference
-   something defined in this file), and since only local symbols can be made
-   set elements, having the set element stab entry here and _cleanup elsewhere
-   loses; and having them both elsewhere loses because there is no reference
-   to cause _cleanup to be linked in.  */
-
-void
-_cleanup (void)
-{
-  __fcloseall ();
-}
-text_set_element (__libc_atexit, _cleanup);
diff --git a/sysdeps/mach/hurd/fdopen.c b/sysdeps/mach/hurd/fdopen.c
deleted file mode 100644
index 49cf0e6938..0000000000
--- a/sysdeps/mach/hurd/fdopen.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright (C) 1991, 1994, 1995, 1997, 2000 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-#include <hurd/fd.h>
-#include <fcntl.h>
-#include <hurd/io.h>
-
-/* Defined in fopen.c.  */
-extern int __getmode (const char *mode, __io_mode *mptr);
-
-/* Open a new stream on a given system file descriptor.  */
-FILE *
-__fdopen (fd, mode)
-     int fd;
-     const char *mode;
-{
-  FILE *stream;
-  __io_mode m;
-  struct hurd_fd *d;
-  error_t err;
-  int openmodes;
-
-  if (!__getmode (mode, &m))
-    return NULL;
-
-  HURD_CRITICAL_BEGIN;
-  d = _hurd_fd_get (fd);
-  if (d == NULL)
-    err = EBADF;
-  else
-    err = HURD_FD_PORT_USE (d, __io_get_openmodes (port, &openmodes));
-  HURD_CRITICAL_END;
-
-  if (err)
-    return __hurd_dfail (fd, err), NULL;
-
-  /* Check the access mode.  */
-  if ((m.__read && !(openmodes & O_READ)) ||
-      (m.__write && !(openmodes & O_WRITE)))
-    {
-      errno = EBADF;
-      return NULL;
-    }
-
-  stream = __newstream ();
-  if (stream == NULL)
-    return NULL;
-
-  stream->__cookie = d;
-  stream->__mode = m;
-
-  return stream;
-}
-
-weak_alias (__fdopen, fdopen)
diff --git a/sysdeps/mach/hurd/pipestream.c b/sysdeps/mach/hurd/pipestream.c
deleted file mode 100644
index 548e1e77eb..0000000000
--- a/sysdeps/mach/hurd/pipestream.c
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Make sure NO_WAITPID is not set; sysdeps/unix/pipestream.c defines it. */
-#include <sysdeps/posix/pipestream.c>
diff --git a/sysdeps/mach/hurd/stdio_init.c b/sysdeps/mach/hurd/stdio_init.c
deleted file mode 100644
index 2da15ce1b5..0000000000
--- a/sysdeps/mach/hurd/stdio_init.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <hurd/fd.h>
-#include <hurd/io.h>
-#include <hurd/term.h>
-
-/* Initialize STREAM as necessary.
-   This may change I/O functions, give a buffer, etc.
-   If no buffer is allocated, but the bufsize is set,
-   the bufsize will be used to allocate the buffer.  */
-void
-__stdio_init_stream (FILE *stream)
-{
-  struct hurd_fd *const d = stream->__cookie;
-  struct stat statb;
-  error_t err;
-
-  if (stream->__buffer != NULL || stream->__userbuf)
-    /* If's unbuffered by request, we can't do anything useful.  */
-    return;
-
-  /* Find out what sort of file this is.  */
-  if (err = HURD_FD_PORT_USE (d, __io_stat (port, &statb)))
-    return;
-
-  if (S_ISCHR (statb.st_mode))
-    {
-      /* It's a character device.
-	 Make it line-buffered if it's a terminal.  */
-      mach_port_t cttyid;
-      err = HURD_FD_PORT_USE (d, __term_getctty (port, &cttyid));
-      if (! err)
-	{
-	  __mach_port_deallocate (__mach_task_self (), cttyid);
-	  stream->__linebuf = 1;
-	}
-    }
-
-  /* Use the block-size field to determine
-     the system's optimal buffering size.  */
-  stream->__bufsize = statb.st_blksize;
-}
diff --git a/sysdeps/mach/hurd/sysd-stdio.c b/sysdeps/mach/hurd/sysd-stdio.c
deleted file mode 100644
index 14a2aee232..0000000000
--- a/sysdeps/mach/hurd/sysd-stdio.c
+++ /dev/null
@@ -1,257 +0,0 @@
-/* Copyright (C) 1994,95,96,97,98,2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <hurd.h>
-#include <fcntl.h>
-#include <hurd/fd.h>
-
-extern __io_read_fn __stdio_read;
-extern __io_write_fn __stdio_write;
-extern __io_seek_fn __stdio_seek;
-extern __io_close_fn __stdio_close;
-extern __io_fileno_fn __stdio_fileno;
-
-
-/* Check ERR for wanting to generate a signal.  */
-
-static inline int
-fd_fail (struct hurd_fd *fd, error_t err)
-{
-  int signo = _hurd_fd_error_signal (err);
-  if (signo)
-    {
-      const struct hurd_signal_detail detail
-	= { code: __stdio_fileno (fd), error: err, exc: 0 };
-      _hurd_raise_signal (NULL, signo, &detail);
-    }
-  errno = err;
-  return -1;
-}
-
-
-/* Read up to N chars into BUF from COOKIE.
-   Return how many chars were read, 0 for EOF or -1 for error.  */
-ssize_t
-__stdio_read (cookie, buf, n)
-     void *cookie;
-     char *buf;
-     size_t n;
-{
-  error_t err;
-  struct hurd_fd *fd = cookie;
-
-  if (! fd)
-    return __hurd_fail (EBADF);
-
-  if (err = _hurd_fd_read (fd, buf, &n, -1))
-    return fd_fail (fd, err);
-
-  return n;
-}
-
-/* Write up to N chars from BUF to COOKIE.
-   Return how many chars were written or -1 for error.  */
-ssize_t
-__stdio_write (cookie, buf, n)
-     void *cookie;
-     const char *buf;
-     size_t n;
-{
-  error_t err;
-  size_t wrote, nleft;
-  struct hurd_fd *fd = cookie;
-
-  if (! fd)
-    return __hurd_fail (EBADF);
-
-  nleft = n;
-  do
-    {
-      wrote = nleft;
-      if (err = _hurd_fd_write (fd, buf, &wrote, -1))
-	return fd_fail (fd, err);
-      buf += wrote;
-      nleft -= wrote;
-    } while (nleft > 0);
-
-  return wrote;
-}
-
-/* Move COOKIE's file position *POS bytes, according to WHENCE.
-   The current file position is stored in *POS.
-   Returns zero if successful, nonzero if not.  */
-int
-__stdio_seek (cookie, pos, whence)
-     void *cookie;
-     fpos_t *pos;
-     int whence;
-{
-  error_t err;
-  struct hurd_fd *fd = cookie;
-  if (! fd)
-    return __hurd_fail (EBADF);
-  err = HURD_FD_PORT_USE (fd, __io_seek (port, *pos, whence, pos));
-  return err ? fd_fail (fd, err) : 0;
-}
-
-/* Close the file associated with COOKIE.
-   Return 0 for success or -1 for failure.  */
-int
-__stdio_close (cookie)
-     void *cookie;
-{
-  error_t error = cookie ? _hurd_fd_close (cookie) : EBADF;
-  return error ? fd_fail (cookie, error) : 0;
-}
-
-
-static inline int
-modeflags (__io_mode m)
-{
-  int flags = 0;
-  if (m.__read)
-    flags |= O_READ;
-  if (m.__write)
-    flags |= O_WRITE;
-  if (m.__append)
-    flags |= O_APPEND;
-  if (m.__create)
-    flags |= O_CREAT;
-  if (m.__truncate)
-    flags |= O_TRUNC;
-  if (m.__exclusive)
-    flags |= O_EXCL;
-  return flags;
-}
-
-/* Open FILENAME with the mode in M.  */
-int
-__stdio_open (filename, m, cookieptr)
-     const char *filename;
-     __io_mode m;
-     void **cookieptr;
-{
-  int flags;
-  file_t port;
-  struct hurd_fd *d;
-
-  flags = modeflags (m);
-  port = __file_name_lookup (filename, flags, 0666 & ~_hurd_umask);
-  if (port == MACH_PORT_NULL)
-    return -1;
-
-  HURD_CRITICAL_BEGIN;
-  d = _hurd_alloc_fd (NULL, 0);
-  if (d != NULL)
-    {
-      _hurd_port2fd (d, port, flags);
-      __spin_unlock (&d->port.lock);
-    }
-  HURD_CRITICAL_END;
-
-  *cookieptr = d;
-  return 0;
-}
-
-
-/* Open FILENAME with the mode in M.  Use the same magic cookie
-   already in *COOKIEPTR if possible, closing the old cookie with CLOSEFN.  */
-int
-__stdio_reopen (const char *filename,
-		__io_mode m,
-		void **cookieptr,
-		__io_close_fn closefn)
-{
-  int flags;
-  file_t port;
-  struct hurd_fd *d;
-
-  if (closefn != __stdio_close)
-    {
-      /* The old cookie is Not Of The Body.
-	 Just close it and do a normal open.  */
-      (*closefn) (*cookieptr);
-      return __stdio_open (filename, m, cookieptr);
-    }
-
-  /* Open a new port on the file.  */
-  flags = modeflags (m);
-  port = __file_name_lookup (filename, flags, 0666 & ~_hurd_umask);
-
-  /* Install the new port in the same file descriptor slot the old cookie
-     points to.  If opening the file failed, PORT will be MACH_PORT_NULL
-     and installing it in the descriptor will have the effect of closing
-     the old descriptor.  */
-
-  d = *cookieptr;
-  HURD_CRITICAL_BEGIN;
-  __spin_lock (&d->port.lock);
-  _hurd_port2fd (d, port, flags);
-  __spin_unlock (&d->port.lock);
-  HURD_CRITICAL_END;
-
-  return port == MACH_PORT_NULL ? -1 : 0;
-}
-
-
-/* Write a message to the error output.
-   Try hard to make it really get out.  */
-void
-__stdio_errmsg (msg, len)
-     const char *msg;
-     size_t len;
-{
-  io_t server;
-  mach_msg_type_number_t wrote;
-
-  server = __getdport (2);
-  __io_write (server, msg, len, -1, &wrote);
-  __mach_port_deallocate (__mach_task_self (), server);
-}
-
-
-/* Return the POSIX.1 file descriptor associated with COOKIE,
-   or -1 for errors.  If COOKIE does not relate to any POSIX.1 file
-   descriptor, this should return -1 with errno set to EOPNOTSUPP.  */
-int
-__stdio_fileno (cookie)
-     void *cookie;
-{
-  int fd;
-
-  if (! cookie)
-    return __hurd_fail (EBADF);
-
-  __mutex_lock (&_hurd_dtable_lock);
-  for (fd = 0; fd < _hurd_dtablesize; ++fd)
-    if (_hurd_dtable[fd] == cookie)
-      {
-	__mutex_unlock (&_hurd_dtable_lock);
-	return fd;
-      }
-  __mutex_unlock (&_hurd_dtable_lock);
-
-  /* This should never happen, because this function should not be
-     installed as a stream's __fileno function unless that stream's cookie
-     points to a file descriptor.  */
-  errno = EGRATUITOUS;
-  return -1;
-}
diff --git a/sysdeps/mach/hurd/vdprintf.c b/sysdeps/mach/hurd/vdprintf.c
deleted file mode 100644
index 568fb6b733..0000000000
--- a/sysdeps/mach/hurd/vdprintf.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 1991, 1992, 1993, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <limits.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-#include <hurd/fd.h>
-
-/* Write formatted output to file descriptor D according to the format string
-   FORMAT, using the argument list in ARG.  */
-int
-vdprintf (int d, const char *format, va_list arg)
-{
-  int done;
-  FILE f;
-  struct hurd_fd *fd;
-
-  HURD_CRITICAL_BEGIN;
-  fd = _hurd_fd_get (d);
-  HURD_CRITICAL_END;
-
-  if (!fd)
-    return 0;
-
-  /* Create an unbuffered stream talking to D on the stack.  */
-  memset ((void *) &f, 0, sizeof (f));
-  f.__magic = _IOMAGIC;
-  f.__mode.__write = 1;
-  f.__cookie = fd;
-  f.__room_funcs = __default_room_functions;
-  f.__io_funcs = __default_io_functions;
-  f.__seen = 1;
-  f.__userbuf = 1;
-
-  /* vfprintf will use a buffer on the stack for the life of the call,
-     and flush it when finished.  */
-  done = vfprintf (&f, format, arg);
-
-  return done;
-}
diff --git a/sysdeps/posix/defs.c b/sysdeps/posix/defs.c
deleted file mode 100644
index 7fe1908531..0000000000
--- a/sysdeps/posix/defs.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Definitions of global stdio data structures.
-   Copyright (C) 1991, 1993, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stddef.h>
-#include <stdio.h>
-#include <unistd.h>
-
-/* This file defines all the global internal variables for stdio.  */
-
-/* Standard streams.  */
-#define	READ		1, 0
-#define	WRITE		0, 1
-#define	BUFFERED	0
-#define	UNBUFFERED	1
-#define	stdstream(name, next, fd, readwrite, unbuffered)		      \
-    {									      \
-      _IOMAGIC,								      \
-      NULL, NULL, NULL, NULL, 0,					      \
-      (void *) fd,							      \
-      { readwrite, /* ... */ },						      \
-      { NULL, NULL, NULL, NULL, NULL },					      \
-      { NULL, NULL },							      \
-      -1, -1,								      \
-      (next),								      \
-      NULL, '\0', 0,							      \
-      0, 0, unbuffered, 0, 0, 0, 0					      \
-    }
-static FILE stdstreams[3] =
-  {
-    stdstream (&stdstreams[0], &stdstreams[1], STDIN_FILENO, READ, BUFFERED),
-    stdstream (&stdstreams[1], &stdstreams[2], STDOUT_FILENO, WRITE, BUFFERED),
-    stdstream (&stdstreams[2], NULL, STDERR_FILENO, WRITE, UNBUFFERED),
-  };
-FILE *stdin = &stdstreams[0];
-FILE *stdout = &stdstreams[1];
-FILE *stderr = &stdstreams[2];
-
-/* Pointer to the first stream in the list.  */
-FILE *__stdio_head = &stdstreams[0];
-
-/* This function MUST be in this file!
-   This is because we want _cleanup to go into the __libc_atexit set
-   when any stdio code is used (and to use any stdio code, one must reference
-   something defined in this file), and since only local symbols can be made
-   set elements, having the set element stab entry here and _cleanup elsewhere
-   loses; and having them both elsewhere loses because there is no reference
-   to cause _cleanup to be linked in.  */
-
-void
-_cleanup (void)
-{
-  __fcloseall ();
-}
-
-
-#ifdef	HAVE_GNU_LD
-text_set_element(__libc_atexit, _cleanup);
-#endif
diff --git a/sysdeps/posix/fdopen.c b/sysdeps/posix/fdopen.c
deleted file mode 100644
index af951db5a2..0000000000
--- a/sysdeps/posix/fdopen.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 1991, 1992, 1993, 1996 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stdio.h>
-#include <fcntl.h>
-
-/* Defined in fopen.c.  */
-extern int __getmode (const char *mode, __io_mode *mptr);
-
-/* Open a new stream on a given system file descriptor.  */
-FILE *
-__fdopen (fd, mode)
-     int fd;
-     const char *mode;
-{
-  register FILE *stream;
-  __io_mode m;
-  int dflags;
-
-  if (!__getmode (mode, &m))
-    return NULL;
-
-  /* Verify the FD is valid and allows the access MODE specifies.  */
-
-  dflags = __fcntl (fd, F_GETFL);
-  if (dflags == -1)
-    /* FD was invalid; fcntl has already set errno.  */
-    return NULL;
-
-  /* Check the access mode.  */
-  switch (dflags & O_ACCMODE)
-    {
-    case O_RDONLY:
-      if (!m.__read)
-	{
-	  __set_errno (EBADF);
-	  return NULL;
-	}
-      break;
-    case O_WRONLY:
-      if (!m.__write)
-	{
-	  __set_errno (EBADF);
-	  return NULL;
-	}
-      break;
-    }
-
-  stream = __newstream ();
-  if (stream == NULL)
-    return NULL;
-
-  stream->__cookie = (void *) fd;
-  stream->__mode = m;
-
-  return stream;
-}
-
-weak_alias (__fdopen, fdopen)
diff --git a/sysdeps/posix/pipestream.c b/sysdeps/posix/pipestream.c
deleted file mode 100644
index 94e09f1b9d..0000000000
--- a/sysdeps/posix/pipestream.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/* Copyright (C) 1991, 1992, 1993, 1996, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <stddef.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <fcntl.h>
-
-#define	SH_PATH	"/bin/sh"	/* Shell to run.  */
-#define	SH_NAME	"sh"		/* Name to give it.  */
-
-/* Structure describing a popen child.  */
-struct child
-  {
-    pid_t pid;			/* PID of the child.  */
-    __ptr_t cookie;		/* Original cookie from fdopen.  */
-    __io_functions funcs;	/* Original functions from fdopen.  */
-  };
-
-/* io_functions for pipe streams.
-   These all simply call the corresponding
-   original function with the original cookie.  */
-
-#define FUNC(type, name, proto, args)					      \
-  static type __CONCAT(child_,name) proto				      \
-  {									      \
-    struct child *c = (struct child *) cookie;				      \
-    {									      \
-      __ptr_t cookie = c->cookie;					      \
-      return (*c->funcs.__CONCAT(__,name)) args;			      \
-    }									      \
-  }
-
-FUNC (int, read, (void *cookie, char *buf, size_t n), (cookie, buf, n))
-FUNC (int, write, (void *cookie, const char *buf, size_t n), (cookie, buf, n))
-FUNC (int, seek, (void *cookie, fpos_t *pos, int whence),
-      (cookie, pos, whence))
-FUNC (int, close, (void *cookie), (cookie))
-FUNC (int, fileno, (void *cookie), (cookie))
-
-static const __io_functions child_funcs
-  = { child_read, child_write, child_seek, child_close, child_fileno };
-
-/* Open a new stream that is a one-way pipe to a
-   child process running the given shell command.  */
-FILE *
-popen (command, mode)
-     const char *command;
-     const char *mode;
-{
-  pid_t pid;
-  int pipedes[2];
-  FILE *stream;
-  struct child *child;
-
-  if (command == NULL || mode == NULL || (*mode != 'r' && *mode != 'w'))
-    {
-      __set_errno (EINVAL);
-      return NULL;
-    }
-
-  /* Create the pipe.  */
-  if (pipe (pipedes) < 0)
-    return NULL;
-
-  /* Fork off the child.  */
-  pid = __vfork ();
-  if (pid == (pid_t) -1)
-    {
-      /* The fork failed.  */
-      (void) close (pipedes[0]);
-      (void) close (pipedes[1]);
-      return NULL;
-    }
-  else if (pid == (pid_t) 0)
-    {
-      /* We are the child side.  Make the write side of
-	 the pipe be stdin or the read side be stdout.  */
-
-      const char *new_argv[4];
-
-      if ((*mode == 'w' ? dup2(pipedes[STDIN_FILENO], STDIN_FILENO) :
-	  dup2 (pipedes[STDOUT_FILENO], STDOUT_FILENO)) < 0)
-	_exit (127);
-
-      /* Close the pipe descriptors.  */
-      (void) close (pipedes[STDIN_FILENO]);
-      (void) close (pipedes[STDOUT_FILENO]);
-
-      /* Exec the shell.  */
-      new_argv[0] = SH_NAME;
-      new_argv[1] = "-c";
-      new_argv[2] = command;
-      new_argv[3] = NULL;
-      (void) execve (SH_PATH, (char *const *) new_argv, environ);
-      /* Die if it failed.  */
-      _exit (127);
-    }
-
-  /* We are the parent side.  */
-
-  /* Close the irrelevant side of the pipe and open the relevant side as a
-     new stream.  Mark our side of the pipe to close on exec, so new children
-     won't see it.  */
-  if (*mode == 'r')
-    {
-      (void) close (pipedes[STDOUT_FILENO]);
-      (void) fcntl (pipedes[STDIN_FILENO], F_SETFD, FD_CLOEXEC);
-      stream = fdopen (pipedes[STDIN_FILENO], mode);
-    }
-  else
-    {
-      (void) close (pipedes[STDIN_FILENO]);
-      (void) fcntl (pipedes[STDOUT_FILENO], F_SETFD, FD_CLOEXEC);
-      stream = fdopen (pipedes[STDOUT_FILENO], mode);
-    }
-
-  if (stream == NULL)
-    goto error;
-
-  child = (struct child *) malloc (sizeof (struct child));
-  if (child == NULL)
-    goto error;
-
-  {
-    /* Make sure STREAM has its functions set before
-       we try to squirrel them away in CHILD.  */
-    extern void __stdio_check_funcs __P ((FILE *));
-    __stdio_check_funcs (stream);
-  }
-
-  child->pid = pid;
-  child->cookie = stream->__cookie;
-  child->funcs = stream->__io_funcs;
-  stream->__cookie = (void *) child;
-  stream->__io_funcs = child_funcs;
-  stream->__ispipe = 1;
-  return stream;
-
- error:
-  {
-    /* The stream couldn't be opened or the child structure couldn't be
-       allocated.  Kill the child and close the other side of the pipe.  */
-    int save = errno;
-    (void) kill (pid, SIGKILL);
-    if (stream == NULL)
-      (void) close (pipedes[*mode == 'r' ? STDOUT_FILENO : STDIN_FILENO]);
-    else
-      (void) fclose (stream);
-#ifndef	NO_WAITPID
-    (void) waitpid (pid, (int *) NULL, 0);
-#else
-    {
-      pid_t dead;
-      do
-	dead = wait ((int *) NULL);
-      while (dead > 0 && dead != pid);
-    }
-#endif
-    __set_errno (save);
-    return NULL;
-  }
-}
-
-/* Close a stream opened by popen and return its status.
-   Returns -1 if the stream was not opened by popen.  */
-int
-pclose (stream)
-     register FILE *stream;
-{
-  struct child *c;
-  pid_t pid, dead;
-  int status;
-
-  if (!__validfp (stream) || !stream->__ispipe)
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  c = (struct child *) stream->__cookie;
-  pid = c->pid;
-  stream->__cookie = c->cookie;
-  stream->__io_funcs = c->funcs;
-  free ((void *) c);
-  stream->__ispipe = 0;
-  if (fclose (stream))
-    return -1;
-
-#ifndef	NO_WAITPID
-  dead = waitpid (pid, &status, 0);
-#else
-  do
-    dead = wait (&status);
-  while (dead > 0 && dead != pid);
-#endif
-  if (dead != pid)
-    status = -1;
-
-  return status;
-}
diff --git a/sysdeps/posix/stdio_init.c b/sysdeps/posix/stdio_init.c
deleted file mode 100644
index 99b4e807a4..0000000000
--- a/sysdeps/posix/stdio_init.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright (C) 1991, 1992, 1993, 1995, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-/* Initialize STREAM as necessary.
-   This may change I/O functions, give a buffer, etc.
-   If no buffer is allocated, but the bufsize is set,
-   the bufsize will be used to allocate the buffer.  */
-void
-__stdio_init_stream (FILE *stream)
-{
-  const int fd = (int) stream->__cookie;
-  struct stat statb;
-
-  if (stream->__buffer != NULL || stream->__userbuf)
-    /* If's unbuffered by request, we can't do anything useful.  */
-    return;
-
-  /* Find out what sort of file this is.  */
-  if (__fstat (fd, &statb) < 0)
-      return;
-
-  if (S_ISCHR (statb.st_mode))
-    {
-      /* It's a character device.
-	 Make it line-buffered if it's a terminal.  */
-      if (__isatty (fd))
-	{
-	  stream->__linebuf = 1;
-
-	  /* Unix terminal devices have the bad habit of claiming to be
-	     seekable.  On systems I have tried, seeking on a terminal
-	     device seems to set its file position as specified, such that
-	     a later tell says the same thing.  This is in no way related
-	     to actual seekability--the ability to seek back and read old
-	     data.  Unix terminal devices will let you "seek back", and
-	     then read more new data from the terminal.  I can think of
-	     nothing to do about this lossage except to preemptively disable
-	     seeking on terminal devices.  */
-
-	  stream->__io_funcs.__seek = NULL; /* Seeks get ESPIPE.  */
-	}
-    }
-
-#ifdef	_STATBUF_ST_BLKSIZE
-  /* Use the block-size field to determine
-     the system's optimal buffering size.  */
-  stream->__bufsize = statb.st_blksize;
-#endif
-}
diff --git a/sysdeps/posix/vdprintf.c b/sysdeps/posix/vdprintf.c
deleted file mode 100644
index f28bfdfd55..0000000000
--- a/sysdeps/posix/vdprintf.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (C) 1991, 1992, 1993, 1997 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <errno.h>
-#include <limits.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <string.h>
-
-
-/* Write formatted output to file descriptor D according to the format string
-   FORMAT, using the argument list in ARG.  */
-int
-vdprintf (int d, const char *format, va_list arg)
-{
-  int done;
-  FILE f;
-
-  /* Create an unbuffered stream talking to D on the stack.  */
-  memset ((void *) &f, 0, sizeof(f));
-  f.__magic = _IOMAGIC;
-  f.__mode.__write = 1;
-  f.__cookie = (void *) (long int) d; /* Casting to long quiets GCC on Alpha.*/
-  f.__room_funcs = __default_room_functions;
-  f.__io_funcs = __default_io_functions;
-  f.__seen = 1;
-  f.__userbuf = 1;
-
-  /* vfprintf will use a buffer on the stack for the life of the call,
-     and flush it when finished.  */
-  done = vfprintf (&f, format, arg);
-
-  return done;
-}
diff --git a/sysdeps/unix/pipestream.c b/sysdeps/unix/pipestream.c
deleted file mode 100644
index 1d3308fe7c..0000000000
--- a/sysdeps/unix/pipestream.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define	NO_WAITPID
-#include <sysdeps/posix/pipestream.c>
diff --git a/sysdeps/unix/sysv/linux/configure.in b/sysdeps/unix/sysv/linux/configure.in
index d1d0d32747..486b10d7cb 100644
--- a/sysdeps/unix/sysv/linux/configure.in
+++ b/sysdeps/unix/sysv/linux/configure.in
@@ -2,9 +2,6 @@ sinclude(./aclocal.m4)dnl Autoconf lossage
 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 # Local configure fragment for sysdeps/unix/sysv/linux.
 
-# On Linux, the default is to use libio instead of stdio.
-test $stdio = default && stdio=libio
-
 # Don't bother trying to generate any glue code to be compatible with the
 # existing system library, because we are the only system library.
 inhibit_glue=yes
diff --git a/sysdeps/unix/sysv/sco3.2.4/pipestream.c b/sysdeps/unix/sysv/sco3.2.4/pipestream.c
deleted file mode 100644
index b768e62043..0000000000
--- a/sysdeps/unix/sysv/sco3.2.4/pipestream.c
+++ /dev/null
@@ -1,3 +0,0 @@
-/* SCO 3.2v4 does have `waitpid'.
-   Avoid unix/pipestream.c, which says we don't.  */
-#include <sysdeps/posix/pipestream.c>
diff --git a/sysdeps/unix/sysv/sysd-stdio.c b/sysdeps/unix/sysv/sysd-stdio.c
deleted file mode 100644
index 7f82340201..0000000000
--- a/sysdeps/unix/sysv/sysd-stdio.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define	EINTR_REPEAT
-#include <sysdeps/generic/sysd-stdio.c>
diff --git a/sysdeps/unix/sysv/sysv4/pipestream.c b/sysdeps/unix/sysv/sysv4/pipestream.c
deleted file mode 100644
index 6a32f9507c..0000000000
--- a/sysdeps/unix/sysv/sysv4/pipestream.c
+++ /dev/null
@@ -1,2 +0,0 @@
-/* We deliberately avoid having NO_WAITPID set.  */
-#include <sysdeps/posix/pipestream.c>