summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog52
-rw-r--r--bits/select.h13
-rwxr-xr-xconfigure2754
-rw-r--r--inet/getnameinfo.c402
-rw-r--r--login/programs/utmpd.c51
-rw-r--r--manual/texinfo.tex6
-rw-r--r--nis/nss_nisplus/nisplus-hosts.c2
-rw-r--r--nis/nss_nisplus/nisplus-network.c2
-rw-r--r--nis/nss_nisplus/nisplus-proto.c2
-rw-r--r--nis/nss_nisplus/nisplus-rpc.c2
-rw-r--r--nis/nss_nisplus/nisplus-service.c2
-rw-r--r--sysdeps/alpha/fpu/bits/mathinline.h4
-rw-r--r--sysdeps/generic/bits/select.h13
-rw-r--r--sysdeps/i386/bits/select.h8
-rw-r--r--sysdeps/i386/fpu/bits/mathinline.h112
-rw-r--r--sysdeps/m68k/fpu/bits/mathinline.h113
-rw-r--r--sysdeps/mips/mips64/Implies2
-rw-r--r--sysdeps/powerpc/bits/mathinline.h13
-rw-r--r--sysdeps/standalone/bits/stdio_lim.h26
-rw-r--r--sysdeps/stub/bits/mathinline.h6
-rw-r--r--sysdeps/stub/bits/stdio_lim.h35
-rw-r--r--sysdeps/unix/sysv/linux/Makefile9
-rw-r--r--sysdeps/unix/sysv/linux/sys/syscall.h4
-rw-r--r--time/strftime.c12
-rw-r--r--time/tzfile.c15
-rw-r--r--time/tzset.c134
26 files changed, 3372 insertions, 422 deletions
diff --git a/ChangeLog b/ChangeLog
index 696a336389..13e181e7e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,55 @@
+1997-07-14 23:37  Ulrich Drepper  <drepper@cygnus.com>
+
+	* inet/getnameinfo.c: Pretty print.
+	Correctly enlarge buffers.
+
+	* login/programs/utmpd.c: Use _() instead of gettext().
+
+	* nis/nss_nisplus/nisplus-hosts.c: Optimize some uses of stpcpy away.
+	* nis/nss_nisplus/nisplus-network.c: Likewise.
+	* nis/nss_nisplus/nisplus-proto.c: Likewise.
+	* nis/nss_nisplus/nisplus-rpc.c: Likewise.
+	* nis/nss_nisplus/nisplus-service.c: Likewise.
+
+	* sysdeps/alpha/fpu/bits/mathinline.h: Only define functions if
+	__OPTIMIZE__.
+	* sysdeps/powerpc/bits/mathinline.h: Likewise.
+	* sysdeps/i386/fpu/bits/mathinline.h: Define ISO C9x comparison
+	function always.
+	* sysdeps/m68k/fpu/bits/mathinline.h: Likewise.
+	* sysdeps/stub/bits/mathinline.h: Add conditionals to show how
+	it should look like in real files.
+
+	* sysdeps/generic/bits/select.h (__FD_ZERO): Don't use memset to
+	prevent prototype trouble, use simple loop.
+	* sysdeps/i386/bits/select.h [!__GNUC__] (__FD_ZERO): Likewise.
+
+	* sysdeps/mips/mips64/Implies: Imply ieee754.
+
+	* sysdeps/unix/sysv/linux/Makefile: Make sure bits/syscall.h is
+	installed.
+	* sysdeps/unix/sysv/linux/sys/syscal.h: Pretty print.
+
+1997-07-14 00:25  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/stub/bits/stdio_lim.h: Unify with standalone version.
+	* sysdeps/standalone/bits/stdio_lim.h: Removed.
+	Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
+
+1997-06-22  Paul Eggert  <eggert@twinsun.com>
+
+	* time/strftime.c (strftime): Use tm_zone if available, even if _LIBC.
+
+	* time/tzfile.c (__tzstring): New decl.
+	(__tzfile_read, __tzfile_default): Set __tzname to permanent strings.
+	(__tzfile_default): First two args are now const char *.
+
+	* time/tzset.c (__tzstring): New function.
+	(tz_rule): Name is now const char *.
+	(struct tzstring_head): New type.
+	(tzstring_list, tzstring_last_buffer_size): New static vars.
+	(__tzset_internal): Time zone names are now permanent, not temporary.
+
 1997-07-13 01:18  Ulrich Drepper  <drepper@cygnus.com>
 
 	* setjmp/setjmp.h: Define _setjmp and _longjmp also if __USE_XOPEN.
diff --git a/bits/select.h b/bits/select.h
index 613919577c..7803335499 100644
--- a/bits/select.h
+++ b/bits/select.h
@@ -21,9 +21,16 @@
 #endif
 
 
-/* This line MUST be split!  Otherwise m4 will not change it.  */
-#define __FD_ZERO(set)  \
-  ((void) memset ((__ptr_t) (set), 0, sizeof (fd_set)))
+/* This line MUST be split!  Otherwise m4 will not change it.
+
+   We don't use `memset' because this would require a prototype and
+   the array isn't too big.  */
+#define __FD_ZERO(set) \
+  do {									      \
+    unsigned int __i;							      \
+    for (__i = 0; __i < sizeof (__fd_set) / sizeof (__fd_mask); ++__i)	      \
+      ((__fd_mask *) set)[__i] = '\0';					      \
+  } while (0)
 #define __FD_SET(d, set)	((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
 #define __FD_CLR(d, set)	((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
 #define __FD_ISSET(d, set)	((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
diff --git a/configure b/configure
index e69de29bb2..1380a4904e 100755
--- a/configure
+++ b/configure
@@ -0,0 +1,2754 @@
+#! /bin/sh
+
+# From configure.in CVSid
+
+
+
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.12 
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+  --with-gmp=DIRECTORY	  find GMP source code in DIRECTORY (not needed)"
+ac_help="$ac_help
+  --with-gettext=DIR	  find GNU gettext source code in DIR (not needed)"
+ac_help="$ac_help
+  --with-fp		  if using floating-point hardware [default=yes]"
+ac_help="$ac_help
+  --with-gnu-binutils	  if using GNU binutils (as and ld)"
+ac_help="$ac_help
+  --with-gnu-ld		  if using GNU ld (in the binutils package)"
+ac_help="$ac_help
+  --with-gnu-as		  if using GNU as (in the binutils package)"
+ac_help="$ac_help
+  --with-elf		  if using the ELF object format"
+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
+  --enable-shared         build shared library [default=yes if GNU ld & ELF]"
+ac_help="$ac_help
+  --enable-profile        build profiled library [default=yes]"
+ac_help="$ac_help
+  --enable-omitfp         build undebuggable optimized library [default=no]"
+ac_help="$ac_help
+  --enable-bounded        build with runtime bounds checking [default=no]"
+ac_help="$ac_help
+  --enable-add-ons=DIR... configure and build named extra directories"
+ac_help="$ac_help
+  --enable-static-nss     build static NSS modules [default=no]"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir="$ac_optarg" ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build="$ac_optarg" ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file="$ac_optarg" ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir="$ac_optarg" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix="$ac_optarg" ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he)
+    # Omit some internal or obsolete options to make the list less imposing.
+    # This message is too long to be a string in the A/UX 3.1 sh.
+    cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [same as prefix]
+  --bindir=DIR            user executables in DIR [EPREFIX/bin]
+  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
+  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
+  --datadir=DIR           read-only architecture-independent data in DIR
+                          [PREFIX/share]
+  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
+                          [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
+  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
+  --includedir=DIR        C header files in DIR [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
+  --infodir=DIR           info documentation in DIR [PREFIX/info]
+  --mandir=DIR            man documentation in DIR [PREFIX/man]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+  --program-transform-name=PROGRAM
+                          run sed PROGRAM on installed program names
+EOF
+    cat << EOF
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+EOF
+    if test -n "$ac_help"; then
+      echo "--enable and --with options recognized:$ac_help"
+    fi
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$ac_optarg" ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir="$ac_optarg" ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir="$ac_optarg" ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir="$ac_optarg" ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir="$ac_optarg" ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir="$ac_optarg" ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir="$ac_optarg" ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir="$ac_optarg" ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix="$ac_optarg" ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix="$ac_optarg" ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix="$ac_optarg" ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name="$ac_optarg" ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir="$ac_optarg" ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir="$ac_optarg" ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site="$ac_optarg" ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.12"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    eval "with_${ac_package}=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes="$ac_optarg" ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries="$ac_optarg" ;;
+
+  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *)
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set.  These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=include/features.h
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+    if test -r /vmunix; then
+      kernel_id=`strings /vmunix | grep UNIX`
+    elif test -r /dynix; then
+      kernel_id=`strings /dynix | grep DYNIX`
+    else
+      kernel_id=
+    fi
+
+
+
+
+# This will get text that should go into config.make.
+config_vars=
+
+# Check for a --with-gmp argument and set gmp-srcdir in config.make.
+# Check whether --with-gmp or --without-gmp was given.
+if test "${with_gmp+set}" = set; then
+  withval="$with_gmp"
+  case "$with_gmp" in
+yes) { echo "configure: error: --with-gmp requires an argument; use --with-gmp=DIRECTORY" 1>&2; exit 1; } ;;
+''|no) ;;
+*) config_vars="$config_vars
+gmp-srcdir = $withval" ;;
+esac
+
+fi
+
+# Check for a --with-gettext argument and set gettext-srcdir in config.make.
+# Check whether --with-gettext or --without-gettext was given.
+if test "${with_gettext+set}" = set; then
+  withval="$with_gettext"
+  case "$with_gettext" in
+yes)
+  { echo "configure: error: --with-gettext requires an argument; use --with-gettext=DIR" 1>&2; exit 1; } ;;
+''|no) ;;
+*)
+  config_vars="$config_vars
+gettext-srcdir = $withval" ;;
+esac
+
+fi
+
+
+# Check whether --with-fp or --without-fp was given.
+if test "${with_fp+set}" = set; then
+  withval="$with_fp"
+  with_fp=$withval
+else
+  with_fp=yes
+fi
+
+# Check whether --with-gnu-binutils or --without-gnu-binutils was given.
+if test "${with_gnu_binutils+set}" = set; then
+  withval="$with_gnu_binutils"
+  gnu_binutils=$withval
+else
+  gnu_binutils=no
+fi
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval="$with_gnu_ld"
+  gnu_ld=$withval
+else
+  gnu_ld=no
+fi
+
+# Check whether --with-gnu-as or --without-gnu-as was given.
+if test "${with_gnu_as+set}" = set; then
+  withval="$with_gnu_as"
+  gnu_as=$withval
+else
+  gnu_as=no
+fi
+
+test $gnu_binutils = yes && gnu_as=yes gnu_ld=yes
+# Check whether --with-elf or --without-elf was given.
+if test "${with_elf+set}" = set; then
+  withval="$with_elf"
+  elf=$withval
+else
+  elf=no
+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"
+  enable_sanity=$enableval
+else
+  enable_sanity=yes
+fi
+
+
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval="$enable_shared"
+  shared=$enableval
+else
+  shared=default
+fi
+
+# Check whether --enable-profile or --disable-profile was given.
+if test "${enable_profile+set}" = set; then
+  enableval="$enable_profile"
+  profile=$enableval
+else
+  profile=yes
+fi
+
+# Check whether --enable-omitfp or --disable-omitfp was given.
+if test "${enable_omitfp+set}" = set; then
+  enableval="$enable_omitfp"
+  omitfp=$enableval
+else
+  omitfp=no
+fi
+
+# Check whether --enable-bounded or --disable-bounded was given.
+if test "${enable_bounded+set}" = set; then
+  enableval="$enable_bounded"
+  bounded=$enableval
+else
+  bounded=no
+fi
+
+
+# Check whether --enable-add-ons or --disable-add-ons was given.
+if test "${enable_add_ons+set}" = set; then
+  enableval="$enable_add_ons"
+  add_ons=`echo "$enableval" | sed 's/,/ /g'`
+else
+  add_ons=
+fi
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+subdirs="$add_ons"
+
+add_ons_pfx=
+if test x"$add_ons" != x; then
+  for f in $add_ons; do
+    add_ons_pfx="$add_ons_pfx $f/"
+  done
+fi
+
+# Check whether --enable-static-nss or --disable-static-nss was given.
+if test "${enable_static_nss+set}" = set; then
+  enableval="$enable_static_nss"
+  static_nss=$enableval
+else
+  static_nss=no
+fi
+
+if test x"$static_nss" = xyes; then
+  cat >> confdefs.h <<\EOF
+#define DO_STATIC_NSS 1
+EOF
+
+fi
+
+
+# Make sure we can run config.sub.
+if $ac_config_sub sun4 >/dev/null 2>&1; then :
+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:755: checking host system type" >&5
+
+host_alias=$host
+case "$host_alias" in
+NONE)
+  case $nonopt in
+  NONE)
+    if host_alias=`$ac_config_guess`; then :
+    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+    fi ;;
+  *) host_alias=$nonopt ;;
+  esac ;;
+esac
+
+host=`$ac_config_sub $host_alias`
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$host" 1>&6
+
+
+# The way shlib-versions is used to generate soversions.mk uses a
+# fairly simplistic model for name recognition that can't distinguish
+# i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
+# of `gnu*' here to be `gnu-gnu*' just so that shlib-versions can
+# tell.  This doesn't get used much beyond that, so it's fairly safe.
+case "$host_os" in
+linux*)
+  ;;
+gnu*)
+  host_os=`echo $host_os | sed -e 's/gnu/gnu-gnu/'`
+  ;;
+esac
+
+# We keep the original values in `$config_*' and never modify them, so we
+# can write them unchanged into config.make.  Everything else uses
+# $machine, $vendor, and $os, and changes them whenever convenient.
+config_machine=$host_cpu config_vendor=$host_vendor config_os=$host_os
+
+# Some configurations imply other options.
+case "$host_os" in
+gnu* | linux* | bsd4.4* | netbsd* | freebsd*)
+  # These systems always use GNU tools.
+  gnu_ld=yes gnu_as=yes ;;
+esac
+case "$host_os" in
+# i586-linuxaout is mangled into i586-pc-linux-gnuaout
+linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*)
+  ;;
+gnu* | linux* | sysv4* | solaris2*)
+  # These systems (almost) always use the ELF format.
+  elf=yes
+  ;;
+esac
+
+machine=$config_machine
+vendor=$config_vendor
+os=$config_os
+
+# Expand the configuration machine name into a subdirectory by architecture
+# type and particular chip.
+case "$machine" in
+a29k | am29000)	base_machine=a29k machine=a29k ;;
+alpha*)		base_machine=alpha machine=alpha/$machine ;;
+arm*)		base_machine=arm machine=arm/$machine ;;
+hppa*)		base_machine=hppa machine=hppa/$machine ;;
+i[3456]86)	base_machine=i386 machine=i386/$machine ;;
+m680?0)		base_machine=m68k machine=m68k/$machine ;;
+m68k)		base_machine=m68k machine=m68k/m68020 ;;
+m88???)		base_machine=m88k machine=m88k/$machine ;;
+m88k)		base_machine=m88k machine=m88k/m88100 ;;
+mips64*)	base_machine=mips64 machine=mips/mips64/$machine ;;
+mips*)		base_machine=mips machine=mips/$machine ;;
+sparc[6789])	base_machine=sparc machine=sparc/$machine ;;
+supersparc)	base_machine=sparc machine=sparc/sparc8 ;;
+sparc64)	base_machine=sparc64 machine=sparc64/$machine ;;
+esac
+
+
+# Compute the list of sysdep directories for this configuration.
+# This can take a while to compute.
+sysdep_dir=$srcdir/sysdeps
+echo $ac_n "checking sysdep dirs""... $ac_c" 1>&6
+echo "configure:838: 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'`"
+
+case "$os" in
+gnu*)
+  base_os=mach/hurd ;;
+netbsd* | 386bsd* | freebsd* | bsdi*)
+  base_os=unix/bsd/bsd4.4 ;;
+osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*)
+  base_os=unix/bsd ;;
+sysv* | isc* | esix* | sco* | minix* | irix4* | linux*)
+  base_os=unix/sysv ;;
+solaris[2-9]*)
+  base_os=unix/sysv/sysv4 ;;
+none)
+  base_os=standalone ;;
+*)
+  base_os='' ;;
+esac
+
+# For sunos4.1.1, try sunos4.1.1, then sunos4.1, then sunos4, then sunos.
+tail=$os
+ostry=$os
+while o=`echo $tail | sed 's/\.[^.]*$//'`; test $o != $tail; do
+  ostry="$ostry /$o"
+  tail=$o
+done
+o=`echo $tail | sed 's/[0-9]*$//'`
+if test $o != $tail; then
+  ostry="$ostry /$o"
+fi
+# For linux-gnu, try linux-gnu, then linux.
+o=`echo $tail | sed 's/-.*$//'`
+if test $o != $tail; then
+  ostry="$ostry /$o"
+fi
+
+# For unix/sysv/sysv4, try unix/sysv/sysv4, then unix/sysv, then unix.
+base=
+tail=$base_os
+while b=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$b"; do
+  set $b
+  base="$base /$1"
+  tail="$2"
+done
+
+# For sparc/sparc9, try sparc/sparc9 and then sparc.
+mach=
+tail=$machine
+while m=`echo $tail | sed 's@^\(.*\)/\([^/]*\)$@& \1@'`; test -n "$m"; do
+  set $m
+  # Prepend the machine's FPU directory unless --without-fp.
+  if test "$with_fp" = yes; then
+    mach="$mach /$1/fpu"
+  fi
+  mach="$mach /$1"
+  tail="$2"
+done
+
+
+# Find what sysdep directories exist.
+sysnames=
+IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+for d in $add_ons_pfx ''; do
+  for b in $base ''; do
+    for m0 in $mach ''; do
+      for v in /$vendor ''; do
+	for o in /$ostry ''; do
+	  for m in $mach ''; do
+	    if test "$m0$b$v$o$m"; then
+	      try="${d}sysdeps$m0$b$v$o$m"
+	      test -n "$enable_debug_configure" &&
+	      echo "$0 DEBUG: try $try" >&2
+	      case $try in
+		/*) dest=$try ;;
+		*)  dest=$srcdir/$try ;;
+	      esac
+	      if test -d $dest; then
+		sysnames="$sysnames $try"
+		{ test -n "$o" || test -n "$b"; } && os_used=t
+		{ test -n "$m" || test -n "$m0"; } && machine_used=t
+	      fi
+	    fi
+	  done
+	done
+      done
+    done
+  done
+done
+IFS="$ac_save_ifs"
+
+if test -z "$os_used" && test "$os" != none; then
+  { echo "configure: error: Operating system $os is not supported." 1>&2; exit 1; }
+fi
+if test -z "$machine_used" && test "$machine" != none; then
+  { echo "configure: error: The $machine is not supported." 1>&2; exit 1; }
+fi
+
+# We have now validated the configuration.
+
+
+# If using ELF, look for an `elf' subdirectory of each machine directory.
+# We prepend these rather than inserting them whereever the machine appears
+# because things specified by the machine's ELF ABI should override
+# OS-specific things, and should always be the same for any OS on the
+# machine (otherwise what's the point of an ABI?).
+if test "$elf" = yes; then
+  elf_dirs=
+  for d in $add_ons_pfx ''; do
+    case $d in
+      /*) xsrcdir= ;;
+      *)  xsrcdir=$srcdir/ ;;
+    esac
+    for m in $mach; do
+      if test -d $xsrcdir${d}sysdeps$m/elf; then
+	elf_dirs="$elf_dirs ${d}sysdeps$m/elf"
+      fi
+    done
+  done
+  sysnames="`echo $elf_dirs | sed -e 's,//,/,g'` $sysnames"
+fi
+
+
+# Expand the list of system names into a full list of directories
+# from each element's parent name and Implies file (if present).
+set $sysnames
+names=
+while test $# -gt 0; do
+  name=$1
+  shift
+
+  case " $names " in *" $name "*)
+    # Already in the list.
+    continue
+  esac
+
+  # Report each name as we discover it, so there is no long pause in output.
+  echo $ac_n "$name $ac_c" >&6
+
+  name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'`
+
+  case $name in
+    /*) xsrcdir= ;;
+    *)  xsrcdir=$srcdir/ ;;
+  esac
+  test -n "$enable_debug_configure" &&
+  echo "DEBUG: name/Implies $xsrcdir$name/Implies" >&2
+
+  if test -f $xsrcdir$name/Implies; then
+    # Collect more names from the `Implies' file (removing comments).
+    implied_candidate="`sed 's/#.*$//' < $xsrcdir$name/Implies`"
+    implied=
+    for x in $implied_candidate; do
+      if test -d $xsrcdir$name_base/$x; then
+	implied="$implied $name_base/$x";
+      else
+        echo "configure: warning: $name/Implies specifies nonexistent $x" 1>&2
+      fi
+    done
+  else
+    implied=
+  fi
+
+  # Add NAME to the list of names.
+  names="$names $name"
+
+  # Find the parent of NAME, using the empty string if it has none.
+  parent="`echo $name | sed -n -e 's=/[^/]*$==' -e '/sysdeps$/q' -e p`"
+
+  # Add the names implied by NAME, and NAME's parent (if it has one), to
+  # the list of names to be processed (the argument list).  We prepend the
+  # implied names to the list and append the parent.  We want implied
+  # directories to come before further directories inferred from the
+  # configuration components; this ensures that for sysv4, unix/common
+  # (implied by unix/sysv/sysv4) comes before unix/sysv (in ostry (here $*)
+  # after sysv4).
+  sysnames="`echo $implied $* $parent`"
+  test -n "$sysnames" && set $sysnames
+done
+
+# Add the default directories.
+sysnames="$names sysdeps/generic sysdeps/stub"
+
+# The other names were emitted during the scan.
+echo "$ac_t""sysdeps/generic sysdeps/stub" 1>&6
+
+
+### Locate tools.
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# 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:1039: 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
+else
+    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    *)
+      # OSF1 and SCO ODT 3.0 have their own names for install.
+      for ac_prog in ginstall installbsd scoinst install; do
+        if test -f $ac_dir/$ac_prog; then
+	  if test $ac_prog = install &&
+            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    # OSF/1 installbsd also uses dspmsg, but is usable.
+	    :
+	  else
+	    ac_cv_path_install="$ac_dir/$ac_prog -c"
+	    break 2
+	  fi
+	fi
+      done
+      ;;
+    esac
+  done
+  IFS="$ac_save_IFS"
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL="$ac_cv_path_install"
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL="$ac_install_sh"
+  fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+if test "$INSTALL" = "${srcdir}/install-sh -c"; then
+  # The makefiles need to use a different form to find it in $srcdir.
+  INSTALL='$(..)./install-sh -c'
+fi
+echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
+echo "configure:1093: 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
+  rm -f conftestdata
+if ln -s X conftestdata 2>/dev/null
+then
+  rm -f conftestdata
+  ac_cv_prog_LN_S="ln -s"
+else
+  ac_cv_prog_LN_S=ln
+fi
+fi
+LN_S="$ac_cv_prog_LN_S"
+if test "$ac_cv_prog_LN_S" = "ln -s"; then
+  echo "$ac_t""yes" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+for ac_prog in msgfmt gmsgfmt
+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:1118: 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
+  if test -n "$MSGFMT"; then
+  ac_cv_prog_MSGFMT="$MSGFMT" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_MSGFMT="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+MSGFMT="$ac_cv_prog_MSGFMT"
+if test -n "$MSGFMT"; then
+  echo "$ac_t""$MSGFMT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$MSGFMT" && break
+done
+test -n "$MSGFMT" || MSGFMT=":"
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1151: 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
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1180: 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
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  ac_prog_rejected=no
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+        ac_prog_rejected=yes
+	continue
+      fi
+      ac_cv_prog_CC="cc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# -gt 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    set dummy "$ac_dir/$ac_word" "$@"
+    shift
+    ac_cv_prog_CC="$@"
+  fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:1228: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext <<EOF
+#line 1238 "configure"
+#include "confdefs.h"
+main(){return(0);}
+EOF
+if { (eval echo configure:1242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
+    ac_cv_prog_cc_cross=no
+  else
+    ac_cv_prog_cc_cross=yes
+  fi
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+ cross_linkable=no
+ ac_cv_prog_cc_cross=yes
+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:1265: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+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:1271: 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
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1280: \"$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
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+
+  cat > conftest.c <<EOF
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+  yes;
+#endif
+EOF
+  if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1297: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+    if test -z "$CFLAGS"; then
+      CFLAGS="-g -O2"
+    fi
+  else
+    { echo "configure: error: We require GNU CC version 2.7 or newer" 1>&2; exit 1; }
+  fi
+else
+  { echo "configure: error: GNU libc must be compiled using GNU CC" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking build system type""... $ac_c" 1>&6
+echo "configure:1309: checking build system type" >&5
+
+build_alias=$build
+case "$build_alias" in
+NONE)
+  case $nonopt in
+  NONE) build_alias=$host_alias ;;
+  *) build_alias=$nonopt ;;
+  esac ;;
+esac
+
+build=`$ac_config_sub $build_alias`
+build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$build" 1>&6
+
+if test $host != $build; then
+  for ac_prog in gcc cc
+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:1332: 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
+  if test -n "$BUILD_CC"; then
+  ac_cv_prog_BUILD_CC="$BUILD_CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_BUILD_CC="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+BUILD_CC="$ac_cv_prog_BUILD_CC"
+if test -n "$BUILD_CC"; then
+  echo "$ac_t""$BUILD_CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$BUILD_CC" && break
+done
+
+fi
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:1363: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -E"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 1378 "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:1384: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -E -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 1395 "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:1401: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
+else
+  ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+if test $host != $build; then
+  ac_tool_prefix=${host_alias}-
+else
+  ac_tool_prefix=
+fi
+
+# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1432: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_AR="${ac_tool_prefix}ar"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
+fi
+fi
+AR="$ac_cv_prog_AR"
+if test -n "$AR"; then
+  echo "$ac_t""$AR" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+
+# 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:1463: 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
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+if test -z "$ac_cv_prog_RANLIB"; then
+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:1494: 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
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+else
+  RANLIB=":"
+fi
+fi
+
+
+# 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:1529: 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
+  case "$BASH" in
+  /*)
+  ac_cv_path_BASH="$BASH" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_BASH="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_BASH" && ac_cv_path_BASH="no"
+  ;;
+esac
+fi
+BASH="$ac_cv_path_BASH"
+if test -n "$BASH"; then
+  echo "$ac_t""$BASH" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test "$BASH" != no &&
+   $BASH -c 'test "$BASH_VERSINFO" -ge 2 >&/dev/null'; then
+  libc_cv_have_bash2=yes
+else
+  libc_cv_have_bash2=no
+fi
+
+
+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:1570: 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
+  case "$KSH" in
+  /*)
+  ac_cv_path_KSH="$KSH" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_KSH="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_KSH" && ac_cv_path_KSH="no"
+  ;;
+esac
+fi
+KSH="$ac_cv_path_KSH"
+if test -n "$KSH"; then
+  echo "$ac_t""$KSH" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test "$KSH" = no; then
+    libc_cv_have_ksh=no
+  else
+    libc_cv_have_ksh=yes
+  fi
+else
+  KSH="$BASH"
+  
+  libc_cv_have_ksh=yes
+fi
+
+
+echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6
+echo "configure:1612: 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
+  echo '#include <stddef.h>
+FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
+if eval "$ac_cpp conftest.c 2>/dev/null" \
+| grep '^FOOBAR.*unsigned.*FOOBAR$' >/dev/null; then
+  libc_cv_signed_size_t=no
+else
+  libc_cv_signed_size_t=yes
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_signed_size_t" 1>&6
+if test $libc_cv_signed_size_t = yes; then
+    cat >> confdefs.h <<\EOF
+#undef __SIZE_TYPE__
+#define __SIZE_TYPE__ unsigned
+EOF
+fi
+
+echo $ac_n "checking for libc-friendly stddef.h""... $ac_c" 1>&6
+echo "configure:1636: 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 1641 "configure"
+#include "confdefs.h"
+#define __need_size_t
+#define __need_wchar_t
+#include <stddef.h>
+#define __need_NULL
+#include <stddef.h>
+int main() {
+size_t size; wchar_t wchar;
+#ifdef offsetof
+#error stddef.h ignored __need_*
+#endif
+if (&size == NULL || &wchar == NULL) abort ();
+; return 0; }
+EOF
+if { (eval echo configure:1656: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  libc_cv_friendly_stddef=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  libc_cv_friendly_stddef=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_friendly_stddef" 1>&6
+if test $libc_cv_friendly_stddef = yes; then
+  config_vars="$config_vars
+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:1675: 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
+  cat > conftest.S <<EOF
+#include "confdefs.h"
+/* Nothing whatsoever.  */
+EOF
+if ${CC-cc} $CFLAGS -c conftest.S 2>/dev/null; then
+  libc_cv_need_minus_P=no
+else
+  libc_cv_need_minus_P=yes
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_need_minus_P" 1>&6
+if test $libc_cv_need_minus_P = yes; then
+  config_vars="$config_vars
+asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
+fi
+
+echo $ac_n "checking for assembler global-symbol directive""... $ac_c" 1>&6
+echo "configure:1698: 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
+  libc_cv_asm_global_directive=UNKNOWN
+for ac_globl in .globl .global; do
+  cat > conftest.s <<EOF
+.text
+${ac_globl} foo
+foo:
+EOF
+  if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
+    libc_cv_asm_global_directive=${ac_globl}
+  fi
+  rm -f conftest*
+  test $libc_cv_asm_global_directive != UNKNOWN && break
+done
+fi
+
+echo "$ac_t""$libc_cv_asm_global_directive" 1>&6
+if test $libc_cv_asm_global_directive = UNKNOWN; then
+  { echo "configure: error: cannot determine asm global directive" 1>&2; exit 1; }
+else
+  cat >> confdefs.h <<EOF
+#define ASM_GLOBAL_DIRECTIVE ${libc_cv_asm_global_directive}
+EOF
+
+fi
+
+echo $ac_n "checking for .set assembler directive""... $ac_c" 1>&6
+echo "configure:1728: 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
+  cat > conftest.s <<EOF
+.text
+foo:
+.set glibc_conftest_frobozz,foo
+$libc_cv_asm_global_directive glibc_conftest_frobozz
+EOF
+# The alpha-dec-osf1 assembler gives only a warning for `.set'
+# (but it doesn't work), so we must do a linking check to be sure.
+cat > conftest1.c <<\EOF
+extern int glibc_conftest_frobozz;
+main () { printf ("%d\n", glibc_conftest_frobozz); }
+EOF
+if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
+	    -o conftest conftest.s conftest1.c 1>&5 2>&5; then
+  libc_cv_asm_set_directive=yes
+else
+  libc_cv_asm_set_directive=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_asm_set_directive" 1>&6
+if test $libc_cv_asm_set_directive = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ASM_SET_DIRECTIVE 1
+EOF
+
+fi
+
+echo $ac_n "checking for .symver assembler directive""... $ac_c" 1>&6
+echo "configure:1762: 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
+  cat > conftest.s <<EOF
+.text
+_sym:
+.symver _sym,sym@VERS
+EOF
+if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&5 2>&5; then
+  libc_cv_asm_symver_directive=yes
+else
+  libc_cv_asm_symver_directive=no
+fi
+rm -f conftest*
+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:1781: 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
+  if test $libc_cv_asm_symver_directive = yes; then
+  cat > conftest.s <<EOF
+.text
+_sym:
+.symver _sym,sym@VERS
+EOF
+  cat > conftest.map <<EOF
+VERS {
+	global: sym;
+};
+EOF
+  if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&5 2>&5; then
+    if { ac_try='${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
+					-nostartfiles -nostdlib
+					-Wl,--version-script,conftest.map
+		       1>&5'; { (eval echo configure:1800: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
+    then
+      libc_cv_ld_version_script_option=yes
+    else
+      libc_cv_ld_version_script_option=no
+    fi
+  else
+    libc_cv_ld_version_script_option=no
+  fi
+else
+  libc_cv_ld_version_script_option=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_ld_version_script_option" 1>&6
+if test $libc_cv_asm_symver_directive = yes &&
+   test $libc_cv_ld_version_script_option = yes; then
+  VERSIONING=yes
+  cat >> confdefs.h <<\EOF
+#define DO_VERSIONING 1
+EOF
+
+else
+  VERSIONING=no
+fi
+
+
+if test $elf = yes; then
+  echo $ac_n "checking for .previous assembler directive""... $ac_c" 1>&6
+echo "configure:1830: 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
+    cat > conftest.s <<EOF
+.section foo_section
+.previous
+EOF
+  if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1838: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+    libc_cv_asm_previous_directive=yes
+  else
+    libc_cv_asm_previous_directive=no
+  fi
+  rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_asm_previous_directive" 1>&6
+  if test $libc_cv_asm_previous_directive = yes; then
+    cat >> confdefs.h <<\EOF
+#define HAVE_ASM_PREVIOUS_DIRECTIVE 1
+EOF
+
+  else
+    echo $ac_n "checking for .popsection assembler directive""... $ac_c" 1>&6
+echo "configure:1854: 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
+      cat > conftest.s <<EOF
+.pushsection foo_section
+.popsection
+EOF
+    if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1862: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+      libc_cv_asm_popsection_directive=yes
+    else
+      libc_cv_asm_popsection_directive=no
+    fi
+    rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_asm_popsection_directive" 1>&6
+    if test $libc_cv_asm_popsection_directive = yes; then
+      cat >> confdefs.h <<\EOF
+#define HAVE_ASM_POPSECTION_DIRECTIVE 1
+EOF
+
+    fi
+  fi
+fi
+
+if test $elf != yes; then
+  echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6
+echo "configure:1882: 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 1887 "configure"
+#include "confdefs.h"
+
+int main() {
+asm (".section .init");
+				    asm (".section .fini");
+				    asm (".text");
+; return 0; }
+EOF
+if { (eval echo configure:1896: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  libc_cv_have_initfini=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  libc_cv_have_initfini=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_have_initfini" 1>&6
+    if test $libc_cv_have_initfini = yes; then
+    cat >> confdefs.h <<\EOF
+#define HAVE_INITFINI 1
+EOF
+
+  fi
+fi
+
+if test $elf = yes; then
+  libc_cv_asm_underscores=no
+else
+  echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
+echo "configure:1921: 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 1926 "configure"
+#include "confdefs.h"
+asm ("_glibc_foobar:");
+int main() {
+glibc_foobar ();
+; return 0; }
+EOF
+if { (eval echo configure:1933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  libc_cv_asm_underscores=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  libc_cv_asm_underscores=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_asm_underscores" 1>&6
+fi
+if test $libc_cv_asm_underscores = no; then
+  cat >> confdefs.h <<\EOF
+#define NO_UNDERSCORES 1
+EOF
+
+fi
+
+if test $elf = yes; then
+  libc_cv_weak_symbols=yes
+  libc_cv_asm_weak_directive=yes
+  libc_cv_asm_weakext_directive=no
+else
+  echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6
+echo "configure:1960: 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
+  cat > conftest.s <<EOF
+.text
+${libc_cv_asm_global_directive} foo
+foo:
+.weak foo
+.weak bar; bar = foo
+EOF
+  if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
+    libc_cv_asm_weak_directive=yes
+  else
+    libc_cv_asm_weak_directive=no
+  fi
+  rm -f conftest*
+fi
+
+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:1983: 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
+  cat > conftest.s <<EOF
+.text
+${libc_cv_asm_global_directive} foo
+foo:
+.weakext foo
+.weakext foo, bar
+EOF
+  if ${CC-cc} $CFLAGS -c conftest.s 2>/dev/null; then
+    libc_cv_asm_weakext_directive=yes
+  else
+    libc_cv_asm_weakext_directive=no
+  fi
+  rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_asm_weakext_directive" 1>&6
+
+  fi # no .weak
+fi # not ELF
+
+if test $libc_cv_asm_weak_directive = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ASM_WEAK_DIRECTIVE 1
+EOF
+
+elif test $libc_cv_asm_weakext_directive = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ASM_WEAKEXT_DIRECTIVE 1
+EOF
+
+fi
+
+echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6
+echo "configure:2020: 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
+  cat > conftest.c <<\EOF
+_start () {}
+int __eh_pc;
+__throw () {}
+EOF
+if { ac_try='${CC-cc} $CFLAGS
+			    -nostdlib -nostartfiles -Wl,--no-whole-archive
+			    -o conftest conftest.c 1>&5'; { (eval echo configure:2031: \"$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
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_ld_no_whole_archive" 1>&6
+
+echo $ac_n "checking for gcc -fno-exceptions""... $ac_c" 1>&6
+echo "configure:2042: checking for gcc -fno-exceptions" >&5
+if eval "test \"`echo '$''{'libc_cv_gcc_no_exceptions'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.c <<\EOF
+_start () {}
+int __eh_pc;
+__throw () {}
+EOF
+if { ac_try='${CC-cc} $CFLAGS
+			    -nostdlib -nostartfiles -fno-exceptions
+			    -o conftest conftest.c 1>&5'; { (eval echo configure:2053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+  libc_cv_gcc_no_exceptions=yes
+else
+  libc_cv_gcc_no_exceptions=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$libc_cv_gcc_no_exceptions" 1>&6
+
+### End of automated tests.
+### Now run sysdeps configure fragments.
+
+# sysdeps configure fragments may set these with files to be linked below.
+libc_link_dests=
+libc_link_sources=
+
+# Iterate over all the sysdep directories we will use, running their
+# configure fragments, and looking for a uname implementation.
+uname=
+for dir in $sysnames; do
+  case $dir in
+    /*) dest=$dir ;;
+    *)  dest=$srcdir/$dir ;;
+  esac
+  if test -r $dest/configure; then
+    echo "$ac_t""running configure fragment for $dest" 1>&6
+    . $dest/configure
+  fi
+
+  if test -z "$uname"; then
+    if test -r $dest/uname.c ||
+       test -r $dest/uname.S ||
+       { test -r $dest/syscalls.list &&
+	 grep '^uname[ 	]' $dest/syscalls.list >/dev/null; }; then
+      uname=$dir
+    fi
+  fi
+done
+
+
+
+# If we will use the generic uname implementation, we must figure out what
+# it will say by examining the system, and write the results in config-name.h.
+if test "$uname" = "sysdeps/generic"; then
+
+  uname_sysname=`echo $config_os | sed 's/[0-9.]*$//'`
+  if test $uname_sysname != $config_os; then
+    config_release=`echo $config_os | sed s/$uname_sysname//`
+  fi
+
+  echo $ac_n "checking OS release for uname""... $ac_c" 1>&6
+echo "configure:2105: 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
+    kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'`
+  if test x`echo "$config_release" | sed "s/^$kernel_release//"` \
+	 != x$config_release; then
+    # The configuration release is a substring of the kernel release.
+    libc_cv_uname_release=$kernel_release
+  elif test x$config_release != x; then
+    libc_cv_uname_release=$config_release
+  elif test x$kernel_release != x; then
+    libc_cv_uname_release=$kernel_release
+  else
+    libc_cv_uname_release=unknown
+  fi
+fi
+
+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:2127: 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
+    kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'`
+  if test -n "$kernel_version"; then
+    libc_cv_uname_version="$kernel_version"
+  else
+    libc_cv_uname_version=unknown
+  fi
+fi
+
+echo "$ac_t""$libc_cv_uname_version" 1>&6
+  uname_version="$libc_cv_uname_version"
+
+    config_uname=config-name.h:config-name.in
+else
+  # For non-generic uname, we don't need to create config-name.h at all.
+  config_uname=
+fi
+
+echo $ac_n "checking stdio selection""... $ac_c" 1>&6
+echo "configure:2149: checking stdio selection" >&5
+
+case $stdio in
+libio) cat >> confdefs.h <<\EOF
+#define USE_IN_LIBIO 1
+EOF
+ ;;
+default) stdio=stdio ;;
+esac
+echo "$ac_t""$stdio" 1>&6
+
+
+
+
+
+
+
+  
+if test $gnu_ld = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_GNU_LD 1
+EOF
+
+fi
+if test $gnu_as = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_GNU_AS 1
+EOF
+
+fi
+if test $elf = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ELF 1
+EOF
+
+fi
+
+
+if test $shared = default; then
+  if test $gnu_ld = yes; then
+    shared=$elf
+  else
+    # For now we do not assume shared libs are available.  In future more
+    # tests might become available.
+    shared=no
+  fi
+fi
+
+
+
+
+
+
+
+
+if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
+  config_makefile=
+else
+  config_makefile=Makefile
+fi
+
+VERSION=`sed -e 's/^#define VERSION "\([^"]*\)"/\1/p' -e d < $srcdir/version.h`
+
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+  case `(ac_space=' '; set) 2>&1` in
+  *ac_space=\ *)
+    # `set' does not quote correctly, so add quotes (double-quote substitution
+    # turns \\\\ into \\, and sed turns \\ into \).
+    sed -n \
+      -e "s/'/'\\\\''/g" \
+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+    ;;
+  *)
+    # `set' quotes correctly as required by POSIX, so do not add quotes.
+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+    ;;
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 2.12"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "config.make glibcbug ${config_makefile} ${config_uname} config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@subdirs@%$subdirs%g
+s%@host@%$host%g
+s%@host_alias@%$host_alias%g
+s%@host_cpu@%$host_cpu%g
+s%@host_vendor@%$host_vendor%g
+s%@host_os@%$host_os%g
+s%@base_machine@%$base_machine%g
+s%@sysnames@%$sysnames%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@LN_S@%$LN_S%g
+s%@MSGFMT@%$MSGFMT%g
+s%@CC@%$CC%g
+s%@cross_linkable@%$cross_linkable%g
+s%@build@%$build%g
+s%@build_alias@%$build_alias%g
+s%@build_cpu@%$build_cpu%g
+s%@build_vendor@%$build_vendor%g
+s%@build_os@%$build_os%g
+s%@BUILD_CC@%$BUILD_CC%g
+s%@cross_compiling@%$cross_compiling%g
+s%@CPP@%$CPP%g
+s%@AR@%$AR%g
+s%@RANLIB@%$RANLIB%g
+s%@BASH@%$BASH%g
+s%@libc_cv_have_bash2@%$libc_cv_have_bash2%g
+s%@KSH@%$KSH%g
+s%@libc_cv_have_ksh@%$libc_cv_have_ksh%g
+s%@VERSIONING@%$VERSIONING%g
+s%@libc_cv_have_initfini@%$libc_cv_have_initfini%g
+s%@libc_cv_ld_no_whole_archive@%$libc_cv_ld_no_whole_archive%g
+s%@libc_cv_gcc_no_exceptions@%$libc_cv_gcc_no_exceptions%g
+s%@uname_sysname@%$uname_sysname%g
+s%@uname_release@%$uname_release%g
+s%@uname_version@%$uname_version%g
+s%@stdio@%$stdio%g
+s%@libc_cv_slibdir@%$libc_cv_slibdir%g
+s%@libc_cv_sysconfdir@%$libc_cv_sysconfdir%g
+s%@libc_cv_rootsbindir@%$libc_cv_rootsbindir%g
+s%@has_ldconfig@%$has_ldconfig%g
+s%@gnu_ld@%$gnu_ld%g
+s%@gnu_as@%$gnu_as%g
+s%@elf@%$elf%g
+s%@shared@%$shared%g
+s%@profile@%$profile%g
+s%@omitfp@%$omitfp%g
+s%@bounded@%$bounded%g
+s%@static_nss@%$static_nss%g
+s%@nopic_initfini@%$nopic_initfini%g
+s%@DEFINES@%$DEFINES%g
+s%@VERSION@%$VERSION%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+  if test $ac_beg -gt 1; then
+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+  else
+    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+  fi
+  if test ! -s conftest.s$ac_file; then
+    ac_more_lines=false
+    rm -f conftest.s$ac_file
+  else
+    if test -z "$ac_sed_cmds"; then
+      ac_sed_cmds="sed -f conftest.s$ac_file"
+    else
+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+    fi
+    ac_file=`expr $ac_file + 1`
+    ac_beg=$ac_end
+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
+  fi
+done
+if test -z "$ac_sed_cmds"; then
+  ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"config.make glibcbug ${config_makefile} ${config_uname}"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  case "$ac_given_INSTALL" in
+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
+  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  esac
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='\([ 	][ 	]*\)[^ 	]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='\([ 	]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+  CONFIG_HEADERS="config.h"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  echo creating $ac_file
+
+  rm -f conftest.frag conftest.in conftest.out
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  cat $ac_file_inputs > conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h.  And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+
+rm -f conftest.tail
+while :
+do
+  ac_lines=`grep -c . conftest.vals`
+  # grep -c gives empty output for an empty file on some AIX systems.
+  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+  # Write a limited-size here document to conftest.frag.
+  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+  echo 'CEOF
+  sed -f conftest.frag conftest.in > conftest.out
+  rm -f conftest.in
+  mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+  rm -f conftest.vals
+  mv conftest.tail conftest.vals
+done
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+  rm -f conftest.frag conftest.h
+  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+  cat conftest.in >> conftest.h
+  rm -f conftest.in
+  if cmp -s $ac_file conftest.h 2>/dev/null; then
+    echo "$ac_file is unchanged"
+    rm -f conftest.h
+  else
+    # Remove last slash and all that follows it.  Not all systems have dirname.
+      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+      # The file is in a subdirectory.
+      test ! -d "$ac_dir" && mkdir "$ac_dir"
+    fi
+    rm -f $ac_file
+    mv conftest.h $ac_file
+  fi
+fi; done
+
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+ac_sources="`echo $libc_link_sources`"
+ac_dests="`echo $libc_link_dests`"
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+srcdir=$ac_given_srcdir
+while test -n "$ac_sources"; do
+  set $ac_dests; ac_dest=$1; shift; ac_dests=$*
+  set $ac_sources; ac_source=$1; shift; ac_sources=$*
+
+  echo "linking $srcdir/$ac_source to $ac_dest"
+
+  if test ! -r $srcdir/$ac_source; then
+    { echo "configure: error: $srcdir/$ac_source: File not found" 1>&2; exit 1; }
+  fi
+  rm -f $ac_dest
+
+  # Make relative symlinks.
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then
+    # The dest file is in a subdirectory.
+    test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir"
+    ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dest_dir_suffix.
+    ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dest_dir_suffix= ac_dots=
+  fi
+
+  case "$srcdir" in
+  [/$]*) ac_rel_source="$srcdir/$ac_source" ;;
+  *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;;
+  esac
+
+  # Make a symlink if possible; otherwise try a hard link.
+  if ln -s $ac_rel_source $ac_dest 2>/dev/null ||
+    ln $srcdir/$ac_source $ac_dest; then :
+  else
+    { echo "configure: error: can not link $ac_dest to $srcdir/$ac_source" 1>&2; exit 1; }
+  fi
+done
+EOF
+cat >> $CONFIG_STATUS <<EOF
+echo '$config_vars' >> config.make; test -d bits || mkdir bits
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
+if test "$no_recursion" != yes; then
+
+  # Remove --cache-file and --srcdir arguments so they do not pile up.
+  ac_sub_configure_args=
+  ac_prev=
+  for ac_arg in $ac_configure_args; do
+    if test -n "$ac_prev"; then
+      ac_prev=
+      continue
+    fi
+    case "$ac_arg" in
+    -cache-file | --cache-file | --cache-fil | --cache-fi \
+    | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+      ac_prev=cache_file ;;
+    -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+    | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+      ;;
+    -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+      ac_prev=srcdir ;;
+    -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+      ;;
+    *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
+    esac
+  done
+
+  for ac_config_dir in $add_ons; do
+
+    # Do not complain, so a configure script can configure whichever
+    # parts of a large source tree are present.
+    if test ! -d $srcdir/$ac_config_dir; then
+      continue
+    fi
+
+    echo configuring in $ac_config_dir
+
+    case "$srcdir" in
+    .) ;;
+    *)
+      if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :;
+      else
+        { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; }
+      fi
+      ;;
+    esac
+
+    ac_popdir=`pwd`
+    cd $ac_config_dir
+
+      # A "../" for each directory in /$ac_config_dir.
+      ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
+
+    case "$srcdir" in
+    .) # No --srcdir option.  We are building in place.
+      ac_sub_srcdir=$srcdir ;;
+    /*) # Absolute path.
+      ac_sub_srcdir=$srcdir/$ac_config_dir ;;
+    *) # Relative path.
+      ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;;
+    esac
+
+    # Check for guested configure; otherwise get Cygnus style configure.
+    if test -f $ac_sub_srcdir/configure; then
+      ac_sub_configure=$ac_sub_srcdir/configure
+    elif test -f $ac_sub_srcdir/configure.in; then
+      ac_sub_configure=$ac_configure
+    else
+      echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2
+      ac_sub_configure=
+    fi
+
+    # The recursion is here.
+    if test -n "$ac_sub_configure"; then
+
+      # Make the cache file name correct relative to the subdirectory.
+      case "$cache_file" in
+      /*) ac_sub_cache_file=$cache_file ;;
+      *) # Relative path.
+        ac_sub_cache_file="$ac_dots$cache_file" ;;
+      esac
+  case "$ac_given_INSTALL" in
+        [/$]*) INSTALL="$ac_given_INSTALL" ;;
+        *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+        esac
+
+      echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir"
+      # The eval makes quoting arguments work.
+      if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir
+      then :
+      else
+        { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; }
+      fi
+    fi
+
+    cd $ac_popdir
+  done
+fi
+
diff --git a/inet/getnameinfo.c b/inet/getnameinfo.c
index 030447addb..037578f277 100644
--- a/inet/getnameinfo.c
+++ b/inet/getnameinfo.c
@@ -65,255 +65,313 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include <arpa/inet.h>
 
 #ifndef AF_LOCAL
-#define AF_LOCAL AF_UNIX
+# define AF_LOCAL AF_UNIX
 #endif /* AF_LOCAL */
 
 #if HOSTTABLE
-struct hostent *_addr2hostname_hosts(const char *, int, int);
+struct hostent *_addr2hostname_hosts (const char *, int, int);
 #endif /* HOSTTABLE */
 
 #ifndef min
-#define min(x,y) (((x) > (y)) ? (y) : (x))
+# define min(x,y) (((x) > (y)) ? (y) : (x))
 #endif /* min */
 
-static const char *domain;
 
-static char *nrl_domainname(void)
+static char *
+nrl_domainname (void)
 {
+  static const char *domain = NULL;
   static int first = 1;
 
-  if (first) {
-
-    __libc_lock_define_initialized (static, lock);
-    __libc_lock_lock (lock);
-
-    if (first) {
-      char *c;
-      struct hostent *h, th;
-      int tmpbuflen = 1024;
-      char *tmpbuf = __alloca(tmpbuflen);
-      int herror;
-
-      first = 0;
-
-      while (__gethostbyname_r("localhost", &th, tmpbuf, tmpbuflen, &h,
-			       &herror)) {
-	if (herror == NETDB_INTERNAL) {
-	  if (errno == ERANGE) {
-	    tmpbuflen *= 2;
-	    tmpbuf = __alloca(tmpbuflen);
-	  }
-	} else {
-	  break;
-	}
-      }
-
-      if (h && (c = strchr(h->h_name, '.'))) {
-	domain = __strdup (++c);
-	goto ret;
-      }
-
-      while (gethostname (tmpbuf, tmpbuflen)) {
-	tmpbuflen *= 2;
-	tmpbuf = __alloca (tmpbuflen);
-      }
-      if (c = strchr(tmpbuf, '.')) {
-	domain = __strdup(++c);
-	goto ret;
-      }
-
-      while (__gethostbyname_r(tmpbuf, &th, tmpbuf, tmpbuflen, &h,
-			       &herror)) {
-	if (herror == NETDB_INTERNAL) {
-	  if (errno == ERANGE) {
-	    tmpbuflen *= 2;
-	    tmpbuf = __alloca(tmpbuflen);
-	  }
-	} else {
-	  break;
-	}
-      }
-
-      if (h && (c = strchr(h->h_name, '.'))) {
-	domain = __strdup(++c);
-	goto ret;
-      }
-
-      {
-	struct in_addr in_addr;
+  if (first)
+    {
+      __libc_lock_define_initialized (static, lock);
+      __libc_lock_lock (lock);
+
+      if (first)
+	{
+	  char *c;
+	  struct hostent *h, th;
+	  int tmpbuflen = 1024;
+	  char *tmpbuf = alloca (tmpbuflen);
+	  int herror;
+
+	  first = 0;
+
+	  while (__gethostbyname_r ("localhost", &th, tmpbuf, tmpbuflen, &h,
+				    &herror))
+	    {
+	      if (herror == NETDB_INTERNAL && errno == ERANGE)
+		{
+		  tmpbuflen *= 2;
+		  tmpbuf = alloca (tmpbuflen);
+		}
+	      else
+		break;
+	    }
 
-	in_addr.s_addr = htonl(0x7f000001);
+	  if (h && (c = strchr (h->h_name, '.')))
+	    domain = __strdup (++c);
+	  else
+	    {
+	      /* The name contains no domain information.  Use the name
+		 now to get more information.  */
+	      while (gethostname (tmpbuf, tmpbuflen))
+		{
+		  tmpbuflen *= 2;
+		  tmpbuf = alloca (tmpbuflen);
+		}
 
-	while (__gethostbyaddr_r((const char *)&in_addr,
-				 sizeof(struct in_addr), AF_INET, &th, tmpbuf,
-				 tmpbuflen, &h, &herror)) {
-	  if (herror == NETDB_INTERNAL) {
-	    if (errno == ERANGE) {
-	      tmpbuflen *= 2;
-	      tmpbuf = __alloca(tmpbuflen);
+	      if ((c = strchr (tmpbuf, '.')))
+		domain = __strdup (++c);
+	      else
+		{
+		  /* We need to preserve the hostname.  */
+		  const char *hstname = strdupa (tmpbuf);
+
+		  while (__gethostbyname_r (hstname, &th, tmpbuf, tmpbuflen,
+					    &h, &herror))
+		    {
+		      if (herror == NETDB_INTERNAL && errno == ERANGE)
+			{
+			  tmpbuflen *= 2;
+			  tmpbuf = alloca (tmpbuflen);
+			}
+		      else
+			break;
+		    }
+
+		  if (h && (c = strchr(h->h_name, '.')))
+		    domain = __strdup (++c);
+		  else
+		    {
+		      struct in_addr in_addr;
+
+		      in_addr.s_addr = htonl (0x7f000001);
+
+		      while (__gethostbyaddr_r ((const char *) &in_addr,
+						sizeof (struct in_addr),
+						AF_INET, &th, tmpbuf,
+						tmpbuflen, &h, &herror))
+			{
+			  if (herror == NETDB_INTERNAL && errno == ERANGE)
+			    {
+			      tmpbuflen *= 2;
+			      tmpbuf = alloca (tmpbuflen);
+			    }
+			  else
+			    break;
+			}
+
+		      if (h && (c = strchr (h->h_name, '.')))
+			domain = __strdup (++c);
+		    }
+		}
 	    }
-	  } else {
-	    break;
-	  }
-	}
-
-	if (h && (c = strchr(h->h_name, '.'))) {
-	  domain = __strdup(++c);
-	  goto ret;
 	}
-      }
 
+      __libc_lock_unlock (lock);
     }
 
-  ret:
-    __libc_lock_unlock (lock);
-  }
-
   return domain;
 };
 
-int getnameinfo(const struct sockaddr *sa, size_t addrlen, char *host, size_t hostlen, char *serv, size_t servlen, int flags)
+
+int
+getnameinfo (const struct sockaddr *sa, size_t addrlen, char *host,
+	     size_t hostlen, char *serv, size_t servlen, int flags)
 {
   int serrno = errno;
   int tmpbuflen = 1024;
   int herrno;
-  char *tmpbuf = __alloca(tmpbuflen);
+  char *tmpbuf = alloca (tmpbuflen);
   struct hostent th;
 
-  if (!sa)
+  if (sa == NULL)
     return -1;
 
-  if (host && (hostlen > 0))
-    switch(sa->sa_family) {
+  if (host != NULL && hostlen > 0)
+    switch(sa->sa_family)
+      {
       case AF_INET:
 #if INET6
       case AF_INET6:
 #endif /* INET6 */
-	if (!(flags & NI_NUMERICHOST)) {
-	  struct hostent *h = NULL;
+	if (!(flags & NI_NUMERICHOST))
+	  {
+	    struct hostent *h = NULL;
 #if HOSTTABLE
-#if INET6
-	  if (sa->sa_family == AF_INET6)
-	    h = _addr2hostname_hosts((void *)&(((struct sockaddr_in6 *)sa)->sin6_addr), sizeof(struct in6_addr), AF_INET6);
-	  else
-#endif /* INET6 */
-	    h = _addr2hostname_hosts((void *)&(((struct sockaddr_in *)sa)->sin_addr), sizeof(struct in_addr), AF_INET);
+# if INET6
+	    if (sa->sa_family == AF_INET6)
+	      h = _addr2hostname_hosts ((void *) &(((struct sockaddr_in6 *) sa)->sin6_addr),
+					sizeof(struct in6_addr), AF_INET6);
+	    else
+# endif /* INET6 */
+	      h = _addr2hostname_hosts ((void *)& (((struct sockaddr_in *) sa)->sin_addr),
+					sizeof(struct in_addr), AF_INET);
 #endif /* HOSTTABLE */
 
 #if RESOLVER
-	  if (!h) {
+	    if (h == NULL)
+	      {
 #if INET6
-	    if (sa->sa_family == AF_INET6) {
-	      while (__gethostbyaddr_r((void *)&(((struct sockaddr_in6 *)sa)->sin6_addr), sizeof(struct in6_addr), AF_INET6, &th, tmpbuf, tmpbuflen, &h, &herrno)) {
-		if (herrno == NETDB_INTERNAL) {
-		  if (errno == ERANGE) {
-		    tmpbuflen *= 2;
-		    tmpbuf = __alloca(tmpbuflen);
-		  } else {
-		    __set_h_errno(herrno);
-		    goto fail;
+		if (sa->sa_family == AF_INET6)
+		  {
+		    while (__gethostbyaddr_r ((void *) &(((struct sockaddr_in6 *) sa)->sin6_addr),
+					      sizeof(struct in6_addr),
+					      AF_INET6, &th, tmpbuf, tmpbuflen,
+					      &h, &herrno))
+		      {
+			if (herrno == NETDB_INTERNAL)
+			  {
+			    if (errno == ERANGE)
+			      {
+				tmpbuflen *= 2;
+				tmpbuf = alloca (tmpbuflen);
+			      }
+			    else
+			      {
+				__set_h_errno (herrno);
+				goto fail;
+			      }
+			  }
+			else
+			  {
+			    break;
+			  }
+		      }
 		  }
-		} else {
-		  break;
-		}
-	      }
-	    } else {
+		else
+		  {
 #endif /* INET6 */
-	      while (__gethostbyaddr_r((void *)&(((struct sockaddr_in *)sa)->sin_addr), sizeof(struct in_addr), AF_INET, &th, tmpbuf, tmpbuflen, &h, &herrno)) {
-		if (errno == ERANGE) {
-		  tmpbuflen *= 2;
-		  tmpbuf = __alloca(tmpbuflen);
-		} else {
-		  break;
-		}
+		    while (__gethostbyaddr_r ((void *) &(((struct sockaddr_in *)sa)->sin_addr),
+					      sizeof(struct in_addr), AF_INET,
+					      &th, tmpbuf, tmpbuflen,
+					      &h, &herrno))
+		      {
+			if (errno == ERANGE)
+			  {
+			    tmpbuflen *= 2;
+			    tmpbuf = alloca (tmpbuflen);
+			  }
+			else
+			  {
+			    break;
+			  }
+		      }
+		  }
 	      }
-	    }
-	  }
 #endif /* RESOLVER */
 
-	  if (h) {
-	    if (flags & NI_NOFQDN) {
-	      char *c;
-	      if ((c = nrl_domainname()) && (c = strstr(h->h_name, c)) && (c != h->h_name) && (*(--c) == '.')) {
-		strncpy(host, h->h_name, min(hostlen, (size_t) (c - h->h_name)));
+	    if (h)
+	      {
+		if (flags & NI_NOFQDN)
+		  {
+		    char *c;
+		    if ((c = nrl_domainname ()) && (c = strstr(h->h_name, c))
+			&& (c != h->h_name) && (*(--c) == '.'))
+		      {
+			strncpy (host, h->h_name,
+				 min(hostlen, (size_t) (c - h->h_name)));
+			break;
+		      }
+		  }
+		strncpy (host, h->h_name, hostlen);
 		break;
-	      };
-	    };
-	    strncpy(host, h->h_name, hostlen);
-	    break;
-	  };
-	};
+	      }
+	  }
 
 	if (flags & NI_NAMEREQD)
 	  goto fail;
-
-        {
-	  const char *c;
+	else
+	  {
+	    const char *c;
 #if INET6
-	  if (sa->sa_family == AF_INET6)
-	    c = inet_ntop(AF_INET6, (void *)&(((struct sockaddr_in6 *)sa)->sin6_addr), host, hostlen);
-	  else
+	    if (sa->sa_family == AF_INET6)
+	      c = inet_ntop (AF_INET6,
+			     (void *) &(((struct sockaddr_in6 *) sa)->sin6_addr),
+			     host, hostlen);
+	    else
 #endif /* INET6 */
-	    c = inet_ntop(AF_INET, (void *)&(((struct sockaddr_in *)sa)->sin_addr), host, hostlen);
+	      c = inet_ntop (AF_INET,
+			     (void *) &(((struct sockaddr_in *) sa)->sin_addr),
+			     host, hostlen);
 
-	  if (!c)
-	    goto fail;
-	};
+	    if (!c)
+	      goto fail;
+	  }
 	break;
+
 #if LOCAL
       case AF_LOCAL:
-	if (!(flags & NI_NUMERICHOST)) {
-	  struct utsname utsname;
+	if (!(flags & NI_NUMERICHOST))
+	  {
+	    struct utsname utsname;
 
-	  if (!uname(&utsname)) {
-	    strncpy(host, utsname.nodename, hostlen);
-	    break;
+	    if (!uname (&utsname))
+	      {
+		strncpy (host, utsname.nodename, hostlen);
+		break;
+	      };
 	  };
-	};
 
 	if (flags & NI_NAMEREQD)
 	  goto fail;
 
-	strncpy(host, "localhost", hostlen);
+	strncpy (host, "localhost", hostlen);
 	break;
 #endif /* LOCAL */
+
       default:
         return -1;
-    };
+    }
 
   if (serv && (servlen > 0))
-    switch(sa->sa_family) {
+    switch(sa->sa_family)
+      {
       case AF_INET:
 #if INET6
       case AF_INET6:
 #endif /* INET6 */
-	if (!(flags & NI_NUMERICSERV)) {
-	  struct servent *s, ts;
-	  while (__getservbyport_r(((struct sockaddr_in *)sa)->sin_port, ((flags & NI_DGRAM) ? "udp" : "tcp"), &ts, tmpbuf, tmpbuflen, &s)) {
-	    if (herrno == NETDB_INTERNAL) {
-	      if (errno == ERANGE) {
-		tmpbuflen *= 2;
-		tmpbuf = __alloca(tmpbuflen);
-	      } else {
-		goto fail;
+	if (!(flags & NI_NUMERICSERV))
+	  {
+	    struct servent *s, ts;
+	    while (__getservbyport_r (((struct sockaddr_in *) sa)->sin_port,
+				      ((flags & NI_DGRAM) ? "udp" : "tcp"),
+				      &ts, tmpbuf, tmpbuflen, &s))
+	      {
+		if (herrno == NETDB_INTERNAL)
+		  {
+		    if (errno == ERANGE)
+		      {
+			tmpbuflen *= 2;
+			tmpbuf = __alloca(tmpbuflen);
+		      }
+		    else
+		      goto fail;
+		  }
+		else
+		  {
+		    break;
+		  }
+	      }
+	    if (s)
+	      {
+		strncpy(serv, s->s_name, servlen);
+		break;
 	      }
-	    } else {
-	      break;
-	    }
 	  }
-	  if (s) {
-	    strncpy(serv, s->s_name, servlen);
-	    break;
-	  };
-	};
-	snprintf(serv, servlen, "%d", ntohs(((struct sockaddr_in *)sa)->sin_port));
+	snprintf (serv, servlen, "%d",
+		  ntohs (((struct sockaddr_in *) sa)->sin_port));
 	break;
+
 #if LOCAL
       case AF_LOCAL:
-	strncpy(serv, ((struct sockaddr_un *)sa)->sun_path, servlen);
+	strncpy (serv, ((struct sockaddr_un *) sa)->sun_path, servlen);
 	break;
 #endif /* LOCAL */
-    };
+    }
+
   if (host && (hostlen > 0))
     host[hostlen-1] = 0;
   if (serv && (servlen > 0))
diff --git a/login/programs/utmpd.c b/login/programs/utmpd.c
index 2fef776a69..1469d94ca7 100644
--- a/login/programs/utmpd.c
+++ b/login/programs/utmpd.c
@@ -44,7 +44,7 @@
 #endif
 
 /* Get libc version number.  */
-#include "../../version.h"
+#include <version.h>
 
 #define PACKAGE _libc_intl_domainname
 
@@ -91,12 +91,12 @@ main (int argc, char *argv[])
 
   /* Set the text message domain.  */
   textdomain (PACKAGE);
-  
+
   /* Initialize local variables.  */
   debug = 0;
   do_help = 0;
   do_version = 0;
-  
+
   while ((opt = getopt_long (argc, argv, "dhV", long_options, NULL)) != -1)
     switch (opt)
       {
@@ -119,12 +119,12 @@ main (int argc, char *argv[])
   if (do_version)
     {
       printf ("utmpd (GNU %s) %s\n", PACKAGE, VERSION);
-      printf (gettext ("\
+      printf (_("\
 Copyright (C) %s Free Software Foundation, Inc.\n\
 This is free software; see the source for copying conditions.  There is NO\n\
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
 "), "1997");
-      printf (gettext ("Written by %s.\n"), "Mark Kettenis");
+      printf (_("Written by %s.\n"), "Mark Kettenis");
 
       exit (EXIT_SUCCESS);
     }
@@ -136,7 +136,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
   signal (SIGINT, termination_handler);
   signal (SIGQUIT, termination_handler);
   signal (SIGTERM, termination_handler);
-  
+
   /* Check if we are already running.  */
   if (check_pid (_PATH_UTMPDPID))
     error (EXIT_FAILURE, 0, _("already running"));
@@ -163,7 +163,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
   if (!debug)
     {
       openlog ("utmpd", LOG_CONS | LOG_ODELAY, LOG_DAEMON);
-      
+
       if (daemon (0, 0) < 0)
 	error (EXIT_FAILURE, errno, _("cannot auto-background"));
       forked = 1;
@@ -176,10 +176,10 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
       signal (SIGTTIN, SIG_IGN);
       signal (SIGTSTP, SIG_IGN);
     }
-  
+
   /* Drop priviliges.  */
   drop_priviliges ();
-  
+
   /* Handle incoming requests.  */
   handle_requests ();
 }
@@ -190,21 +190,21 @@ static void
 usage (int status)
 {
   if (status != EXIT_SUCCESS)
-    fprintf (stderr, gettext ("Try `%s --help' for more information.\n"),
+    fprintf (stderr, _("Try `%s --help' for more information.\n"),
 	     program_invocation_name);
   else
     {
-      printf (gettext ("\
+      printf (_("\
 Usage: %s [OPTION]...\n\
   -d, --debug           do not fork and display messages on the current tty\n\
   -h, --help	        display this help and exit\n\
   -V, --version         output version information and exit\n"),
 	      program_invocation_name);
-      fputs (gettext ("\
-Report bugs to <kettenis@phys.uva.nl>.\n"),
+      fputs (_("\
+Report bugs using the `glibcbug' script to <bugs@gnu.ai.mit.edu>.\n"),
 	     stdout);
     }
-  
+
   exit (status);
 }
 
@@ -247,10 +247,10 @@ make_socket (const char *name)
      terminating null byte. */
   size = (offsetof (struct sockaddr_un, sun_path)
 	  + strlen (addr.sun_path));
-     
+
   if (bind (sock, (struct sockaddr *) &addr, size) < 0)
     error (EXIT_FAILURE, errno, "%s", name);
-     
+
   return sock;
 }
 
@@ -265,7 +265,7 @@ void handle_requests (void)
   fd_set read_fd_set;
   fd_set write_fd_set;
   int fd;
-  
+
   /* Initialize the set of active sockets.  */
   FD_ZERO (&active_read_fd_set);
   FD_ZERO (&active_write_fd_set);
@@ -329,7 +329,7 @@ void handle_requests (void)
 	      if (connection->write_ptr == connection->write_base)
 		FD_CLR (fd, &active_write_fd_set);
 	    }
-	}	
+	}
     }
 }
 
@@ -344,7 +344,7 @@ termination_handler (int signum)
 
   /* Restore user id.  */
   seteuid (getuid ());
-  
+
   /* Clean up the files created by `bind'.  */
   unlink (_PATH_UTMPD_RO);
   unlink (_PATH_UTMPD_RW);
@@ -354,7 +354,7 @@ termination_handler (int signum)
 
   /* Clean up pid file.  */
   unlink (_PATH_UTMPDPID);
-  
+
   exit (EXIT_SUCCESS);
 }
 
@@ -364,12 +364,12 @@ static int
 check_pid (const char *file)
 {
   FILE *fp;
-  
+
   fp = fopen (_PATH_UTMPDPID, "r");
   if (fp)
     {
       pid_t pid;
-      
+
       fscanf (fp, "%d", &pid);
       fclose (fp);
 
@@ -386,17 +386,16 @@ static int
 write_pid (const char *file)
 {
   FILE *fp;
-  
+
   fp = fopen (_PATH_UTMPDPID, "w");
   if (fp == NULL)
     return -1;
-  
+
   fprintf (fp, "%d\n", getpid ());
   if (ferror (fp))
     return -1;
-  
+
   fclose (fp);
 
   return 0;
 }
-
diff --git a/manual/texinfo.tex b/manual/texinfo.tex
index cef44662d0..ad5db9cac6 100644
--- a/manual/texinfo.tex
+++ b/manual/texinfo.tex
@@ -1,5 +1,5 @@
 %% TeX macros to handle Texinfo files.
-%% $Id: texinfo.tex,v 2.208 1997/07/11 01:01:45 drepper Exp $
+%% $Id: texinfo.tex,v 2.209 1997/07/13 12:07:01 drepper Exp $
 
 %  Copyright (C) 1985, 86, 88, 90, 91, 92, 93,
 %                94, 95, 96, 97 Free Software Foundation, Inc.
@@ -36,7 +36,7 @@
 
 % This automatically updates the version number based on RCS.
 \def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
-\deftexinfoversion$Revision: 2.208 $
+\deftexinfoversion$Revision: 2.209 $
 \message{Loading texinfo package [Version \texinfoversion]:}
 
 % If in a .fmt file, print the version number
@@ -1152,7 +1152,7 @@ where each line of input produces a line of output.}
 \setfont\titlesc\scbshape{10}{\magstep4}
 \font\titlei=cmmi12 scaled \magstep3
 \font\titlesy=cmsy10 scaled \magstep4
-\let\authorrm = \secrm
+\def\authorrm{\secrm}
 
 % Chapter (and unnumbered) fonts (17.28pt).
 \setfont\chaprm\rmbshape{12}{\magstep2}
diff --git a/nis/nss_nisplus/nisplus-hosts.c b/nis/nss_nisplus/nisplus-hosts.c
index 19f9161076..d4dda5964e 100644
--- a/nis/nss_nisplus/nisplus-hosts.c
+++ b/nis/nss_nisplus/nisplus-hosts.c
@@ -118,7 +118,7 @@ _nss_nisplus_parse_hostent (nis_result *result, int af, struct hostent *host,
 	      __set_errno (ERANGE);
 	      return 0;
 	    }
-	  p = stpcpy(p, " ");
+	  *p++ = ' ';
 	  p = stpncpy (p, NISENTRYVAL (i, 1, result),
 		       NISENTRYLEN (i, 1, result));
 	  *p = '\0';
diff --git a/nis/nss_nisplus/nisplus-network.c b/nis/nss_nisplus/nisplus-network.c
index 9a46397149..183722633f 100644
--- a/nis/nss_nisplus/nisplus-network.c
+++ b/nis/nss_nisplus/nisplus-network.c
@@ -89,7 +89,7 @@ _nss_nisplus_parse_netent (nis_result *result, struct netent *network,
               __set_errno (ERANGE);
               return 0;
             }
-          p = stpcpy(p, " ");
+	  *p++ = ' ';
           p = stpncpy (p, NISENTRYVAL (i, 1, result),
                        NISENTRYLEN (i, 1, result));
           *p = '\0';
diff --git a/nis/nss_nisplus/nisplus-proto.c b/nis/nss_nisplus/nisplus-proto.c
index 1ee9a8944b..d98317a8a1 100644
--- a/nis/nss_nisplus/nisplus-proto.c
+++ b/nis/nss_nisplus/nisplus-proto.c
@@ -85,7 +85,7 @@ _nss_nisplus_parse_protoent (nis_result * result, struct protoent *proto,
         {
           if (NISENTRYLEN (i, 1, result) + 2 > room_left)
             goto no_more_room;
-          p = stpcpy(p, " ");
+	  *p++ = ' ';
           p = stpncpy (p, NISENTRYVAL (i, 1, result),
                        NISENTRYLEN (i, 1, result));
           *p = '\0';
diff --git a/nis/nss_nisplus/nisplus-rpc.c b/nis/nss_nisplus/nisplus-rpc.c
index cebd5d7183..47610a4dca 100644
--- a/nis/nss_nisplus/nisplus-rpc.c
+++ b/nis/nss_nisplus/nisplus-rpc.c
@@ -82,7 +82,7 @@ _nss_nisplus_parse_rpcent (nis_result *result, struct rpcent *rpc,
         {
           if (NISENTRYLEN (i, 1, result) + 2 > room_left)
 	    goto no_more_room;
-          p = stpcpy(p, " ");
+	  *p++ = ' ';
           p = stpncpy (p, NISENTRYVAL (i, 1, result),
                        NISENTRYLEN (i, 1, result));
           *p = '\0';
diff --git a/nis/nss_nisplus/nisplus-service.c b/nis/nss_nisplus/nisplus-service.c
index 50bc7e24c1..b97034e9b8 100644
--- a/nis/nss_nisplus/nisplus-service.c
+++ b/nis/nss_nisplus/nisplus-service.c
@@ -91,7 +91,7 @@ _nss_nisplus_parse_servent (nis_result *result, struct servent *serv,
         {
           if (NISENTRYLEN (i, 1, result) + 2 > room_left)
             goto no_more_room;
-          p = stpcpy(p, " ");
+	  *p++ = ' ';
           p = stpncpy (p, NISENTRYVAL (i, 1, result),
                        NISENTRYLEN (i, 1, result));
           *p = '\0';
diff --git a/sysdeps/alpha/fpu/bits/mathinline.h b/sysdeps/alpha/fpu/bits/mathinline.h
index 0f76027317..22703120b1 100644
--- a/sysdeps/alpha/fpu/bits/mathinline.h
+++ b/sysdeps/alpha/fpu/bits/mathinline.h
@@ -18,7 +18,8 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#if defined (__GNUC__) && !defined (__NO_MATH_INLINES)
+#ifdef __GNUC__
+#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
 
 extern __inline double
 __copysign (double __x, double __y)
@@ -42,3 +43,4 @@ atan (double __x)
 }
 
 #endif
+#endif
diff --git a/sysdeps/generic/bits/select.h b/sysdeps/generic/bits/select.h
index 613919577c..7803335499 100644
--- a/sysdeps/generic/bits/select.h
+++ b/sysdeps/generic/bits/select.h
@@ -21,9 +21,16 @@
 #endif
 
 
-/* This line MUST be split!  Otherwise m4 will not change it.  */
-#define __FD_ZERO(set)  \
-  ((void) memset ((__ptr_t) (set), 0, sizeof (fd_set)))
+/* This line MUST be split!  Otherwise m4 will not change it.
+
+   We don't use `memset' because this would require a prototype and
+   the array isn't too big.  */
+#define __FD_ZERO(set) \
+  do {									      \
+    unsigned int __i;							      \
+    for (__i = 0; __i < sizeof (__fd_set) / sizeof (__fd_mask); ++__i)	      \
+      ((__fd_mask *) set)[__i] = '\0';					      \
+  } while (0)
 #define __FD_SET(d, set)	((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
 #define __FD_CLR(d, set)	((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
 #define __FD_ISSET(d, set)	((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
diff --git a/sysdeps/i386/bits/select.h b/sysdeps/i386/bits/select.h
index 3912515a7f..e72b6f0a84 100644
--- a/sysdeps/i386/bits/select.h
+++ b/sysdeps/i386/bits/select.h
@@ -48,8 +48,14 @@
 
 #else	/* ! GNU CC */
 
+/* We don't use `memset' because this would require a prototype and
+   the array isn't too big.  */
 #define __FD_ZERO(set)  \
-  ((void) memset ((__ptr_t) (set), 0, sizeof (fd_set)))
+  do {									      \
+    unsigned int __i;							      \
+    for (__i = 0; __i < sizeof (__fd_set) / sizeof (__fd_mask); ++__i)	      \
+      ((__fd_mask *) set)[__i] = '\0';					      \
+  } while (0)
 #define __FD_SET(d, set)	((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
 #define __FD_CLR(d, set)	((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
 #define __FD_ISSET(d, set)	((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
diff --git a/sysdeps/i386/fpu/bits/mathinline.h b/sysdeps/i386/fpu/bits/mathinline.h
index dab5494ac5..42dae92a2a 100644
--- a/sysdeps/i386/fpu/bits/mathinline.h
+++ b/sysdeps/i386/fpu/bits/mathinline.h
@@ -21,7 +21,56 @@
 #ifndef _BITS_MATHINLINE_H
 #define _BITS_MATHINLINE_H	1
 
-#if defined __GNUG__ && \
+
+#if defined __USE_ISOC9X && defined __GNUC__ && __GNUC__ >= 2
+/* ISO C 9X defines some macros to perform unordered comparisons.  The
+   ix87 FPU supports this with special opcodes and we should use them.
+   These must not be inline functions since we have to be able to handle
+   all floating-point types.  */
+# define isgreater(x, y) \
+     ({ int result;							      \
+	__asm__ ("fucompp; fnstsw; andb $0x45, %%ah; setz %%al;"	      \
+		 "andl $0xff, %0"					      \
+		 : "=a" (result) : "t" (x), "u" (y) : "cc");		      \
+	result; })
+
+# define isgreaterequal(x, y) \
+     ({ int result;							      \
+	__asm__ ("fucompp; fnstsw; testb $0x05, %%ah; setz %%al;"	      \
+		 "andl $0xff, %0"					      \
+		 : "=a" (result) : "t" (x), "u" (y) : "cc");		      \
+	result; })
+
+# define isless(x, y) \
+     ({ int result;							      \
+	__asm__ ("fucompp; fnstsw; xorb $0x01, %%ah; testb $0x45, %%ah;"      \
+		 "setz %%al; andl $0xff, %0"				      \
+		 : "=a" (result) : "t" (x), "u" (y) : "cc");		      \
+	result; })
+
+# define islessequal(x, y) \
+     ({ int result;							      \
+	__asm__ ("fucompp; fnstsw; xorb $0x01, %%ah; testb $0x05, %%ah;"      \
+		 "setz %%al; andl $0xff, %0"				      \
+		 : "=a" (result) : "t" (x), "u" (y) : "cc");		      \
+	result; })
+
+# define islessgreater(x, y) \
+     ({ int result;							      \
+	__asm__ ("fucompp; fnstsw; testb $0x44, %%ah; setz %%al;"	      \
+		 "andl $0xff, %0"					      \
+		 : "=a" (result) : "t" (x), "u" (y) : "cc");		      \
+	result; })
+
+# define isunordered(x, y) \
+     ({ int result;							      \
+	__asm__ ("fucompp; fnstsw; sahf; setp %%al; andl $0xff, %0"	      \
+		 : "=a" (result) : "t" (x), "u" (y) : "cc");		      \
+	result; })
+#endif
+
+
+#if defined __GNUC__ && \
     (__GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ <= 7))
 /* gcc 2.7.2 and 2.7.2.1 have problems with inlining `long double'
    functions so we disable this now.  */
@@ -29,8 +78,9 @@
 # define __NO_MATH_INLINES
 #endif
 
+
 #ifdef	__GNUC__
-#ifndef __NO_MATH_INLINES
+#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
 
 #ifdef __cplusplus
 # define __MATH_INLINE __inline
@@ -258,10 +308,8 @@ __log2 (double __x)
 {
   register double __value;
   __asm __volatile__
-    ("fld1\n\t"
-     "fxch\n\t"
-     "fyl2x"
-     : "=t" (__value) : "0" (__x));
+    ("fyl2x"
+     : "=t" (__value) : "0" (__x), "u" (1.0));
 
   return __value;
 }
@@ -441,7 +489,10 @@ logb (double __x)
 
   return __value;
 }
+#endif
+
 
+#ifdef __USE_MISC
 __MATH_INLINE double drem (double __x, double __y);
 __MATH_INLINE double
 drem (double __x, double __y)
@@ -471,55 +522,6 @@ __finite (double __x)
   return __result;
 }
 
-
-/* ISO C 9X defines some macros to perform unordered comparisons.  The
-   ix87 FPU supports this with special opcodes and we should use them.
-   These must not be inline functions since we have to be able to handle
-   all floating-point types.  */
-# define isgreater(x, y) \
-     ({ int result;							      \
-	__asm__ ("fucompp; fnstsw; andb $0x45, %%ah; setz %%al;"	      \
-		 "andl $0xff, %0"					      \
-		 : "=a" (result) : "t" (x), "u" (y) : "cc");		      \
-	result; })
-
-# define isgreaterequal(x, y) \
-     ({ int result;							      \
-	__asm__ ("fucompp; fnstsw; testb $0x05, %%ah; setz %%al;"	      \
-		 "andl $0xff, %0"					      \
-		 : "=a" (result) : "t" (x), "u" (y) : "cc");		      \
-	result; })
-
-# define isless(x, y) \
-     ({ int result;							      \
-	__asm__ ("fucompp; fnstsw; xorb $0x01, %%ah; testb $0x45, %%ah;"      \
-		 "setz %%al; andl $0xff, %0"				      \
-		 : "=a" (result) : "t" (x), "u" (y) : "cc");		      \
-	result; })
-
-# define islessequal(x, y) \
-     ({ int result;							      \
-	__asm__ ("fucompp; fnstsw; xorb $0x01, %%ah; testb $0x05, %%ah;"      \
-		 "setz %%al; andl $0xff, %0"				      \
-		 : "=a" (result) : "t" (x), "u" (y) : "cc");		      \
-	result; })
-
-# define islessgreater(x, y) \
-     ({ int result;							      \
-	__asm__ ("fucompp; fnstsw; testb $0x44, %%ah; setz %%al;"	      \
-		 "andl $0xff, %0"					      \
-		 : "=a" (result) : "t" (x), "u" (y) : "cc");		      \
-	result; })
-
-# define isunordered(x, y) \
-     ({ int result;							      \
-	__asm__ ("fucompp; fnstsw; sahf; setp %%al; andl $0xff, %0"	      \
-		 : "=a" (result) : "t" (x), "u" (y) : "cc");		      \
-	result; })
-#endif
-
-
-#ifdef __USE_MISC
 __MATH_INLINE double coshm1 (double __x);
 __MATH_INLINE double
 coshm1 (double __x)
diff --git a/sysdeps/m68k/fpu/bits/mathinline.h b/sysdeps/m68k/fpu/bits/mathinline.h
index 79245c07a1..2ab570fba5 100644
--- a/sysdeps/m68k/fpu/bits/mathinline.h
+++ b/sysdeps/m68k/fpu/bits/mathinline.h
@@ -19,18 +19,69 @@
 
 #ifdef	__GNUC__
 
-#include <sys/cdefs.h>
+#ifdef __USE_ISOC9X
+
+/* ISO C 9X defines some macros to perform unordered comparisons.  The
+   m68k FPU supports this with special opcodes and we should use them.
+   These must not be inline functions since we have to be able to handle
+   all floating-point types.  */
+# define isgreater(x, y)					\
+   __extension__					\
+   ({ char __result;					\
+      __asm__ ("fcmp%.x %2,%1; fsogt %0"		\
+	       : "=dm" (__result) : "f" (x), "f" (y));	\
+      (int) __result; })
+
+# define isgreaterequal(x, y)				\
+   __extension__					\
+   ({ char __result;					\
+      __asm__ ("fcmp%.x %2,%1; fsoge %0"		\
+	       : "=dm" (__result) : "f" (x), "f" (y));	\
+      (int) __result; })
+
+# define isless(x, y)					\
+   __extension__					\
+   ({ char __result;					\
+      __asm__ ("fcmp%.x %2,%1; fsolt %0"		\
+	       : "=dm" (__result) : "f" (x), "f" (y));	\
+      (int) __result; })
+
+# define islessequal(x, y)				\
+   __extension__					\
+   ({ char __result;					\
+      __asm__ ("fcmp%.x %2,%1; fsole %0"		\
+	       : "=dm" (__result) : "f" (x), "f" (y));	\
+      (int) __result; })
+
+# define islessgreater(x, y)				\
+   __extension__					\
+   ({ char __result;					\
+      __asm__ ("fcmp%.x %2,%1; fsogl %0"		\
+	       : "=dm" (__result) : "f" (x), "f" (y));	\
+      (int) __result; })
+
+# define isunordered(x, y)				\
+   __extension__					\
+   ({ char __result;					\
+      __asm__ ("fcmp%.x %2,%1; fsun %0"			\
+	       : "=dm" (__result) : "f" (x), "f" (y));	\
+      (int) __result; })
+#endif
+
+
+#if (!defined __NO_MATH_INLINES && defined __OPTIMIZE__) \
+    || defined __LIBC_M81_MATH_INLINES
 
 #ifdef	__LIBC_M81_MATH_INLINES
 /* This is used when defining the functions themselves.  Define them with
    __ names, and with `static inline' instead of `extern inline' so the
    bodies will always be used, never an external function call.  */
-#define	__m81_u(x)	__CONCAT(__,x)
-#define __m81_inline	static __inline
+# define __m81_u(x)		__CONCAT(__,x)
+# define __m81_inline		static __inline
 #else
-#define	__m81_u(x)	x
-#define __m81_inline	extern __inline
-#define	__M81_MATH_INLINES	1
+# define __m81_u(x)		x
+# define __m81_inline		extern __inline
+# define __M81_MATH_INLINES	1
 #endif
 
 /* Define a const math function.  */
@@ -385,55 +436,7 @@ __inline_forward(void,sincosl,
 #undef __inline_forward
 #undef __inline_forward_c
 
-#ifdef __USE_ISOC9X
-
-/* ISO C 9X defines some macros to perform unordered comparisons.  The
-   m68k FPU supports this with special opcodes and we should use them.
-   These must not be inline functions since we have to be able to handle
-   all floating-point types.  */
-# define isgreater(x, y)					\
-   __extension__					\
-   ({ char __result;					\
-      __asm__ ("fcmp%.x %2,%1; fsogt %0"		\
-	       : "=dm" (__result) : "f" (x), "f" (y));	\
-      (int) __result; })
-
-# define isgreaterequal(x, y)				\
-   __extension__					\
-   ({ char __result;					\
-      __asm__ ("fcmp%.x %2,%1; fsoge %0"		\
-	       : "=dm" (__result) : "f" (x), "f" (y));	\
-      (int) __result; })
-
-# define isless(x, y)					\
-   __extension__					\
-   ({ char __result;					\
-      __asm__ ("fcmp%.x %2,%1; fsolt %0"		\
-	       : "=dm" (__result) : "f" (x), "f" (y));	\
-      (int) __result; })
-
-# define islessequal(x, y)				\
-   __extension__					\
-   ({ char __result;					\
-      __asm__ ("fcmp%.x %2,%1; fsole %0"		\
-	       : "=dm" (__result) : "f" (x), "f" (y));	\
-      (int) __result; })
-
-# define islessgreater(x, y)				\
-   __extension__					\
-   ({ char __result;					\
-      __asm__ ("fcmp%.x %2,%1; fsogl %0"		\
-	       : "=dm" (__result) : "f" (x), "f" (y));	\
-      (int) __result; })
-
-# define isunordered(x, y)				\
-   __extension__					\
-   ({ char __result;					\
-      __asm__ ("fcmp%.x %2,%1; fsun %0"			\
-	       : "=dm" (__result) : "f" (x), "f" (y));	\
-      (int) __result; })
-#endif
-
 #endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */
 
+#endif
 #endif	/* GCC.  */
diff --git a/sysdeps/mips/mips64/Implies b/sysdeps/mips/mips64/Implies
index a8cae95f9d..06b9091f3b 100644
--- a/sysdeps/mips/mips64/Implies
+++ b/sysdeps/mips/mips64/Implies
@@ -1 +1,3 @@
 wordsize-64
+# MIPS uses IEEE 754 floating point.
+ieee754
diff --git a/sysdeps/powerpc/bits/mathinline.h b/sysdeps/powerpc/bits/mathinline.h
index db9688cfc5..d7f2a3ac0d 100644
--- a/sysdeps/powerpc/bits/mathinline.h
+++ b/sysdeps/powerpc/bits/mathinline.h
@@ -17,16 +17,13 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef __MATH_H
-#define __MATH_H
-
 #ifdef __GNUC__
-#ifndef __NO_MATH_INLINES
+#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
 
 #ifdef __cplusplus
-#define        __MATH_INLINE __inline
+# define __MATH_INLINE __inline
 #else
-#define        __MATH_INLINE extern __inline
+# define __MATH_INLINE extern __inline
 #endif
 
 __MATH_INLINE double __sgn1 (double __x);
@@ -64,7 +61,5 @@ fabs (double __x)
   return __value;
 }
 
-#endif /* __NO_MATH_INLINES  */
+#endif /* __NO_MATH_INLINES && __OPTIMZE__ */
 #endif /* __GNUC__  */
-
-#endif /* __MATH_H  */
diff --git a/sysdeps/standalone/bits/stdio_lim.h b/sysdeps/standalone/bits/stdio_lim.h
deleted file mode 100644
index f5a503471c..0000000000
--- a/sysdeps/standalone/bits/stdio_lim.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 1994, 1997 Free Software Foundation, Inc.
-   Ported to standalone by Joel Sherrill jsherril@redstone-emh2.army.mil,
-     On-Line Applications Research Corporation.
-   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 Library General Public License as
-   published by the Free Software Foundation; either version 2 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#define	L_tmpnam	1
-#define	TMPMAX		0
-#define	L_ctermid	1
-#define	L_cuserid	1
-#define	FOPEN_MAX	16
-#define	FILENAME_MAX	14
diff --git a/sysdeps/stub/bits/mathinline.h b/sysdeps/stub/bits/mathinline.h
index 8159c89b94..5498af6b63 100644
--- a/sysdeps/stub/bits/mathinline.h
+++ b/sysdeps/stub/bits/mathinline.h
@@ -4,3 +4,9 @@
 
    This file should define __MATH_INLINES if functions are actually defined as
    inlines.  */
+
+#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
+
+/* Here goes the real code.  */
+
+#endif
diff --git a/sysdeps/stub/bits/stdio_lim.h b/sysdeps/stub/bits/stdio_lim.h
index 59b6a40ebe..ef873777c9 100644
--- a/sysdeps/stub/bits/stdio_lim.h
+++ b/sysdeps/stub/bits/stdio_lim.h
@@ -1,4 +1,37 @@
+/* Copyright (C) 1994, 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 Library General Public License as
+   published by the Free Software Foundation; either version 2 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
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* <bits/stdio_lim.h>: stdio limits for non-POSIX systems.
+ * Never include this file directly; use <stdio.h> instead.
+ */
+
+#ifndef _BITS_STDIO_LIM_H
+#define _BITS_STDIO_LIM_H
+
 #define	L_tmpnam	1
-#define	TMPMAX		0
+#define	TMP_MAX		0
+
+#ifdef __USE_POSIX
+#define	L_ctermid	1
+#define	L_cuserid	1
+#endif
+
 #define	FOPEN_MAX	16
 #define	FILENAME_MAX	14
+
+#endif
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 4ab97b2e92..2004a48b42 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -13,6 +13,8 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h sys/mtio.h \
 		  sys/debugreg.h sys/kd.h sys/soundcard.h sys/vt.h \
 		  sys/quota.h
 
+install-others += $(inst_includedir)/bits/syscall.h
+
 # Generate the list of SYS_* macros for the system calls (__NR_* macros).
 $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/sys/syscall.h
 	rm -f $(@:.h=.d)
@@ -24,6 +26,13 @@ $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/sys/syscal
 	sed -n >> $(@:.d=.h).new \
 	      's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p'
 	mv -f $(@:.d=.h).new $(@:.d=.h)
+
+$(inst_includedir)/bits/syscall.h: $(objpfx)syscall-list.h
+	$(make-target-directory)
+	if test -r $@ && cmp -s $< $@; \
+        then echo 'bits/syscall.h unchanged'; \
+        else $(INSTALL_DATA) $< $@; fi
+
 ifndef no_deps
 # Get the generated list of dependencies (probably /usr/include/asm/unistd.h).
 -include $(objpfx)syscall-list.d
diff --git a/sysdeps/unix/sysv/linux/sys/syscall.h b/sysdeps/unix/sysv/linux/sys/syscall.h
index d6b14fcf0a..7eca4f086a 100644
--- a/sysdeps/unix/sysv/linux/sys/syscall.h
+++ b/sysdeps/unix/sysv/linux/sys/syscall.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+/* Copyright (C) 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
@@ -29,7 +29,7 @@
    programs expect the traditional form `SYS_<name>'.  So in building libc
    we scan the kernel's list and produce <bits/syscall.h> with macros for
    all the `SYS_' names.  */
-#include <bits/syscall.h>
+# include <bits/syscall.h>
 #endif
 
 #endif
diff --git a/time/strftime.c b/time/strftime.c
index c53f20872c..891d301f5c 100644
--- a/time/strftime.c
+++ b/time/strftime.c
@@ -424,15 +424,13 @@ strftime (s, maxsize, format, tp)
   const char *f;
 
   zone = NULL;
-#if !defined _LIBC && HAVE_TM_ZONE
-  /* XXX We have some problems here.  First, the string pointed to by
-     tm_zone is dynamically allocated while loading the zone data.  But
-     when another zone is loaded since the information in TP were
-     computed this would be a stale pointer.
-     The second problem is the POSIX test suite which assumes setting
+#if HAVE_TM_ZONE
+  /* The POSIX test suite assumes that setting
      the environment variable TZ to a new value before calling strftime()
      will influence the result (the %Z format) even if the information in
-     TP is computed with a totally different time zone.  --drepper@gnu  */
+     TP is computed with a totally different time zone.
+     This is bogus: though POSIX allows bad behavior like this,
+     POSIX does not require it.  Do the right thing instead.  */
   zone = (const char *) tp->tm_zone;
 #endif
 #if HAVE_TZNAME
diff --git a/time/tzfile.c b/time/tzfile.c
index 2d0752c147..88e86e33b1 100644
--- a/time/tzfile.c
+++ b/time/tzfile.c
@@ -43,6 +43,8 @@ struct leap
     long int change;		/* Seconds of correction to apply.  */
   };
 
+extern const char * __tzstring (const char *); /* Defined in tzset.c.  */
+
 static struct ttinfo *find_transition (time_t timer);
 static void compute_tzname_max (size_t);
 
@@ -267,9 +269,9 @@ __tzfile_read (const char *file)
   info = find_transition (0);
   for (i = 0; i < num_types && i < sizeof (__tzname) / sizeof (__tzname[0]);
        ++i)
-    __tzname[types[i].isdst] = &zone_names[types[i].idx];
+    __tzname[types[i].isdst] = __tzstring (&zone_names[types[i].idx]);
   if (info->isdst < sizeof (__tzname) / sizeof (__tzname[0]))
-    __tzname[info->isdst] = &zone_names[info->idx];
+    __tzname[info->isdst] = __tzstring (&zone_names[info->idx]);
 
   compute_tzname_max (chars);
 
@@ -285,7 +287,8 @@ __tzfile_read (const char *file)
    from the TZDEFRULES file.  */
 
 void
-__tzfile_default (char *std, char *dst, long int stdoff, long int dstoff)
+__tzfile_default (const char *std, const char *dst,
+		  long int stdoff, long int dstoff)
 {
   size_t stdlen, dstlen, i;
   long int rule_offset, rule_stdoff, rule_dstoff;
@@ -372,8 +375,8 @@ __tzfile_default (char *std, char *dst, long int stdoff, long int dstoff)
   types[1].isdst = 1;
 
   /* Reset the zone names to point to the user's names.  */
-  __tzname[0] = &zone_names[0];
-  __tzname[1] = &zone_names[stdlen];
+  __tzname[0] = (char *) std;
+  __tzname[1] = (char *) dst;
 
   compute_tzname_max (stdlen + dstlen);
 }
@@ -455,7 +458,7 @@ __tzfile_compute (time_t timer, long int *leap_correct, int *leap_hit)
 void
 compute_tzname_max (size_t chars)
 {
-  extern size_t __tzname_cur_max; /* Defined in __tzset.c. */
+  extern size_t __tzname_cur_max; /* Defined in tzset.c. */
 
   const char *p;
 
diff --git a/time/tzset.c b/time/tzset.c
index 9eceb73cf5..d1c2c091a5 100644
--- a/time/tzset.c
+++ b/time/tzset.c
@@ -31,8 +31,9 @@ extern const unsigned short int __mon_yday[2][13];
 
 extern int __use_tzfile;
 extern void __tzfile_read __P ((const char *file));
-extern void __tzfile_default __P ((char *std, char *dst,
+extern void __tzfile_default __P ((const char *std, const char *dst,
 				   long int stdoff, long int dstoff));
+extern const char * __tzstring __P ((const char *string));
 extern int __tz_compute __P ((time_t timer, const struct tm *tm));
 
 char *__tzname[2] = { (char *) "GMT", (char *) "GMT" };
@@ -53,7 +54,7 @@ weak_alias (__timezone, timezone)
    timezone given in the POSIX standard TZ envariable.  */
 typedef struct
   {
-    char *name;
+    const char *name;
 
     /* When to change.  */
     enum { J0, J1, M } type;	/* Interpretation of:  */
@@ -74,6 +75,68 @@ static tz_rule tz_rules[2];
 
 static int compute_change __P ((tz_rule *rule, int year));
 
+/* Header for a list of buffers containing time zone strings.  */
+struct tzstring_head 
+{
+  struct tzstring_head *next;
+  /* The buffer itself immediately follows the header.
+     The buffer contains zero or more (possibly overlapping) strings.
+     The last string is followed by 2 '\0's instead of the usual 1.  */
+};
+
+/* First in a list of buffers containing time zone strings.
+   All the buffers but the last are read-only.  */
+static struct
+{
+  struct tzstring_head head;
+  char data[48];
+} tzstring_list;
+
+/* Size of the last buffer in the list, not counting its header.  */
+static size_t tzstring_last_buffer_size = sizeof tzstring_list.data;
+
+/* Allocate a time zone string with given contents.
+   The string will never be moved or deallocated.
+   However, its contents may be shared with other such strings.  */
+const char *
+__tzstring (string)
+     const char *string;
+{
+  struct tzstring_head *h = &tzstring_list.head;
+  size_t needed;
+  char *p;
+
+  /* Look through time zone string list for a duplicate of this one.  */
+  for (h = &tzstring_list.head;  ;  h = h->next)
+    {
+      for (p = (char *) (h + 1);  p[0] | p[1];  p++)
+	if (strcmp (p, string) == 0)
+	  return p;
+      if (! h->next)
+	break;
+    }
+
+  /* No duplicate was found.  Copy to the end of this buffer if there's room;
+     otherwise, append a large-enough new buffer to the list and use it.  */
+  p++;
+  needed = strlen (string) + 2; /* Need 2 trailing '\0's after last string.  */
+
+  if ((size_t) ((char *) (h + 1) + tzstring_last_buffer_size - p) < needed)
+    {
+      size_t buffer_size = tzstring_last_buffer_size;
+      while ((buffer_size *= 2) < needed)
+	continue;
+      if (! (h = h->next = malloc (sizeof *h + buffer_size)))
+	return NULL;
+      h->next = NULL;
+      tzstring_last_buffer_size = buffer_size;
+      p = (char *) (h + 1);
+    }
+
+  strncpy (p, string, needed);
+  return p;
+}
+
 static char *old_tz = NULL;
 
 /* Interpret the TZ envariable.  */
@@ -85,6 +148,7 @@ __tzset_internal (always)
   static int is_initialized = 0;
   register const char *tz;
   register size_t l;
+  char *tzbuf;
   unsigned short int hh, mm, ss;
   unsigned short int whichrule;
 
@@ -112,12 +176,6 @@ __tzset_internal (always)
     /* No change, simply return.  */
     return;
 
-  /* Free old storage.  */
-  if (tz_rules[0].name != NULL && *tz_rules[0].name != '\0')
-    free ((void *) tz_rules[0].name);
-  if (tz_rules[1].name != NULL && *tz_rules[1].name != '\0' &&
-      tz_rules[1].name != tz_rules[0].name)
-    free ((void *) tz_rules[1].name);
   tz_rules[0].name = NULL;
   tz_rules[1].name = NULL;
 
@@ -135,16 +193,7 @@ __tzset_internal (always)
 
   if (tz == NULL || *tz == '\0')
     {
-      static const char UTC[] = "UTC";
-      size_t len = sizeof UTC;
-      tz_rules[0].name = (char *) malloc (len);
-      if (tz_rules[0].name == NULL)
-	return;
-      tz_rules[1].name = (char *) malloc (len);
-      if (tz_rules[1].name == NULL)
-	return;
-      memcpy ((void *) tz_rules[0].name, UTC, len);
-      memcpy ((void *) tz_rules[1].name, UTC, len);
+      tz_rules[0].name = tz_rules[1].name = "UTC";
       tz_rules[0].type = tz_rules[1].type = J0;
       tz_rules[0].m = tz_rules[0].n = tz_rules[0].d = 0;
       tz_rules[1].m = tz_rules[1].n = tz_rules[1].d = 0;
@@ -157,11 +206,11 @@ __tzset_internal (always)
 
   /* Clear out old state and reset to unnamed UTC.  */
   memset (tz_rules, 0, sizeof tz_rules);
-  tz_rules[0].name = tz_rules[1].name = (char *) "";
+  tz_rules[0].name = tz_rules[1].name = "";
 
   /* Get the standard timezone name.  */
-  tz_rules[0].name = (char *) malloc (strlen (tz) + 1);
-  if (tz_rules[0].name == NULL)
+  tzbuf = malloc (strlen (tz) + 1);
+  if (! tzbuf)
     {
       /* Clear the old tz name so we will try again.  */
       free (old_tz);
@@ -169,25 +218,23 @@ __tzset_internal (always)
       return;
     }
 
-  if (sscanf (tz, "%[^0-9,+-]", tz_rules[0].name) != 1 ||
-      (l = strlen(tz_rules[0].name)) < 3)
+  if (sscanf (tz, "%[^0-9,+-]", tzbuf) != 1 ||
+      (l = strlen (tzbuf)) < 3)
     {
-      free (tz_rules[0].name);
-      tz_rules[0].name = (char *) "";
+      free (tzbuf);
       return;
     }
 
-  {
-    char *n = realloc ((void *) tz_rules[0].name, l + 1);
-    if (n != NULL)
-      tz_rules[0].name = n;
-  }
+  tz_rules[0].name = __tzstring (tzbuf);
 
   tz += l;
 
   /* Figure out the standard offset from UTC.  */
   if (*tz == '\0' || (*tz != '+' && *tz != '-' && !isdigit (*tz)))
-    return;
+    {
+      free (tzbuf);
+      return;
+    }
 
   if (*tz == '-' || *tz == '+')
     tz_rules[0].offset = *tz++ == '-' ? 1L : -1L;
@@ -196,6 +243,7 @@ __tzset_internal (always)
   switch (sscanf (tz, "%hu:%hu:%hu", &hh, &mm, &ss))
     {
     default:
+      free (tzbuf);
       return;
     case 1:
       mm = 0;
@@ -218,23 +266,14 @@ __tzset_internal (always)
   /* Get the DST timezone name (if any).  */
   if (*tz != '\0')
     {
-      char *n = malloc (strlen (tz) + 1);
-      if (n != NULL)
-	{
-	  tz_rules[1].name = n;
-	  if (sscanf (tz, "%[^0-9,+-]", tz_rules[1].name) != 1 ||
-	      (l = strlen (tz_rules[1].name)) < 3)
-	    {
-	      free (n);
-	      tz_rules[1].name = (char *) "";
-	      goto done_names;	/* Punt on name, set up the offsets.  */
-	    }
-	  n = realloc ((void *) tz_rules[1].name, l + 1);
-	  if (n != NULL)
-	    tz_rules[1].name = n;
+      char *n = tzbuf + strlen (tzbuf) + 1;
+      if (sscanf (tz, "%[^0-9,+-]", n) != 1 ||
+	  (l = strlen (n)) < 3)
+	goto done_names;	/* Punt on name, set up the offsets.  */
 
-	  tz += l;
-	}
+      tz_rules[1].name = __tzstring (n);
+
+      tz += l;
 
       /* Figure out the DST offset from GMT.  */
       if (*tz == '-' || *tz == '+')
@@ -271,6 +310,7 @@ __tzset_internal (always)
     tz_rules[1].name = tz_rules[0].name;
 
  done_names:
+  free (tzbuf);
 
   if (*tz == '\0' || (tz[0] == ',' && tz[1] == '\0'))
     {