[csw-devel] SF.net SVN: gar:[16673] csw/mgar/pkg/augeas/trunk

phipsy at users.sourceforge.net phipsy at users.sourceforge.net
Wed Jan 4 12:01:10 CET 2012


Revision: 16673
          http://gar.svn.sourceforge.net/gar/?rev=16673&view=rev
Author:   phipsy
Date:     2012-01-04 11:01:10 +0000 (Wed, 04 Jan 2012)
Log Message:
-----------
augeas:
* 0001-fix-compiling-on-solaris.patch: update patch using GAR's makepatch
* 0002-regexp-escape.patch: upstream commit 021ea39f, affects Solaris build
* 0003-Remove-Linux-isms-so-tests-can-run-on-Solaris.patch: upstream commits to
  support make check on Solaris
* 0004-pkg-config-Augeas-requires-libxml2.patch: upstream commit 11b00ad4, 
  affects dependent builds
* Makefile: include above patches, replace perl hack with 0003 above

Modified Paths:
--------------
    csw/mgar/pkg/augeas/trunk/Makefile
    csw/mgar/pkg/augeas/trunk/files/0001-fix-compiling-on-solaris.patch

Modified: csw/mgar/pkg/augeas/trunk/Makefile
===================================================================
--- csw/mgar/pkg/augeas/trunk/Makefile	2012-01-04 10:01:03 UTC (rev 16672)
+++ csw/mgar/pkg/augeas/trunk/Makefile	2012-01-04 11:01:10 UTC (rev 16673)
@@ -19,7 +19,10 @@
 RUNTIME_DEP_PKGS += CSWlibreadline6 CSWlibxml2-2
 GARCOMPILER = GCC4
 EXTRA_LDFLAGS = -lgnugetopt
-PATCHFILES += 0001-fix-compiling-on-solaris.patch
+PATCHFILES += 0001-fix-compiling-on-solaris.patch \
+  0002-regexp-escape.patch \
+  0003-Remove-Linux-isms-so-tests-can-run-on-Solaris.patch \
+  0004-pkg-config-Augeas-requires-libxml2.patch
 
 # Building on Solaris 10 doesn't work as it support C99 and the above fixes are
 # not necessary there.
@@ -41,8 +44,3 @@
 
 # Local bin/ for readlink, /opt/csw/gnu for GNU tail, diff
 PATH := $(abspath ./bin):/opt/csw/gnu:$(PATH)
-
-post-extract-modulated:
-	@# Tests are written in bash
-	-cd $(WORKSRC)/tests && perl -e 's,#! /bin/sh,#! /bin/bash,' -pi *.sh
-	@$(MAKECOOKIE)

Modified: csw/mgar/pkg/augeas/trunk/files/0001-fix-compiling-on-solaris.patch
===================================================================
--- csw/mgar/pkg/augeas/trunk/files/0001-fix-compiling-on-solaris.patch	2012-01-04 10:01:03 UTC (rev 16672)
+++ csw/mgar/pkg/augeas/trunk/files/0001-fix-compiling-on-solaris.patch	2012-01-04 11:01:10 UTC (rev 16673)
@@ -1,35 +1,45 @@
-From b0f9124974aacc33de9a86950ab148135c6bb78d Mon Sep 17 00:00:00 2001
-From: Mark Phillips <none at none>
-Date: Mon, 2 Jan 2012 18:22:44 +0100
-Subject: [PATCH] fix compiling on solaris
+From 2ba932c4eae0e0750b21f72ca1952adaf110363a Mon Sep 17 00:00:00 2001
+From: Dominic Cleal <dcleal at redhat.com>
+Date: Wed, 4 Jan 2012 00:46:33 +0100
+Subject: [PATCH] Enabled strchrnul gnulib module and rebuilt auto*
 
+(upstream commit: 0d8d8882)
 ---
- ChangeLog                              |  596 ++++++++++++----------
- Makefile.in                            |    2 +
- aclocal.m4                             |  452 +-----------------
- build/aux/config.guess                 |  858 ++++++++++++++++++--------------
- build/aux/config.sub                   |  347 ++++++++++---
- config.h.in                            |   12 +
- configure                              |  181 +++++++-
- doc/Makefile.in                        |    2 +
- doc/naturaldocs/Makefile.in            |    2 +
- examples/Makefile.in                   |    2 +
- gnulib/lib/Makefile.am                 |   20 +-
- gnulib/lib/Makefile.in                 |   27 +-
- gnulib/m4/gnulib-comp.m4               |   22 +
- gnulib/tests/Makefile.am               |   16 +
- gnulib/tests/Makefile.in               |  118 +++--
- gnulib/tests/test-readlink.h           |    2 +-
- man/Makefile.in                        |    2 +
- man/augparse.1                         |    2 +-
- src/Makefile.in                        |    2 +
- src/regexp.c                           |    2 +-
- tests/Makefile.in                      |    2 +
- tests/root/etc/crontab                 |    2 -
- tests/root/etc/squirrelmail/config.php |    2 -
- 23 files changed, 1419 insertions(+), 1254 deletions(-)
- delete mode 100644 tests/root/etc/crontab
- delete mode 100644 tests/root/etc/squirrelmail/config.php
+ ChangeLog                     |  596 ++++++++++++++++++++++-------------------
+ Makefile.in                   |    2 +
+ aclocal.m4                    |  452 +-------------------------------
+ config.h.in                   |   12 +
+ configure                     |  181 ++++++++++++-
+ doc/Makefile.in               |    2 +
+ doc/naturaldocs/Makefile.in   |    2 +
+ examples/Makefile.in          |    2 +
+ gnulib/lib/Makefile.am        |   20 ++-
+ gnulib/lib/Makefile.in        |   27 ++-
+ gnulib/lib/rawmemchr.c        |  136 ++++++++++
+ gnulib/lib/rawmemchr.valgrind |   12 +
+ gnulib/lib/strchrnul.c        |  142 ++++++++++
+ gnulib/lib/strchrnul.valgrind |   12 +
+ gnulib/m4/gnulib-comp.m4      |   22 ++
+ gnulib/m4/rawmemchr.m4        |   21 ++
+ gnulib/m4/strchrnul.m4        |   21 ++
+ gnulib/tests/Makefile.am      |   16 ++
+ gnulib/tests/Makefile.in      |  118 +++++---
+ gnulib/tests/test-rawmemchr.c |   92 +++++++
+ gnulib/tests/test-readlink.h  |    2 +-
+ gnulib/tests/test-strchrnul.c |   86 ++++++
+ man/Makefile.in               |    2 +
+ man/augparse.1                |    2 +-
+ src/Makefile.in               |    2 +
+ tests/Makefile.in             |    2 +
+ 26 files changed, 1190 insertions(+), 794 deletions(-)
+ create mode 100644 gnulib/lib/rawmemchr.c
+ create mode 100644 gnulib/lib/rawmemchr.valgrind
+ create mode 100644 gnulib/lib/strchrnul.c
+ create mode 100644 gnulib/lib/strchrnul.valgrind
+ create mode 100644 gnulib/m4/rawmemchr.m4
+ create mode 100644 gnulib/m4/strchrnul.m4
+ create mode 100644 gnulib/tests/test-rawmemchr.c
+ create mode 100644 gnulib/tests/test-strchrnul.c
 
 diff --git a/ChangeLog b/ChangeLog
 index a7764d4..e93e7a5 100644
@@ -2928,2292 +2938,6 @@
  m4_include([gnulib/m4/string_h.m4])
  m4_include([gnulib/m4/strndup.m4])
  m4_include([gnulib/m4/strnlen.m4])
-diff --git a/build/aux/config.guess b/build/aux/config.guess
-index 0e30d56..dc84c68 100755
---- a/build/aux/config.guess
-+++ b/build/aux/config.guess
-@@ -1,9 +1,10 @@
- #! /bin/sh
- # Attempt to guess a canonical system name.
- #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+#   Free Software Foundation, Inc.
- 
--timestamp='2003-07-02'
-+timestamp='2009-11-20'
- 
- # This file is free software; you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by
-@@ -17,23 +18,25 @@ timestamp='2003-07-02'
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
--# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-+# 02110-1301, USA.
- #
- # As a special exception to the GNU General Public License, if you
- # distribute this file as part of a program that contains a
- # configuration script generated by Autoconf, you may include it under
- # the same distribution terms that you use for the rest of that program.
- 
--# Originally written by Per Bothner <per at bothner.com>.
--# Please send patches to <config-patches at gnu.org>.  Submit a context
--# diff and a properly formatted ChangeLog entry.
-+
-+# Originally written by Per Bothner.  Please send patches (context
-+# diff format) to <config-patches at gnu.org> and include a ChangeLog
-+# entry.
- #
- # This script attempts to guess a canonical system name similar to
- # config.sub.  If it succeeds, it prints the system name on stdout, and
- # exits with 0.  Otherwise, it exits with 1.
- #
--# The plan is that this can be called by configure scripts if you
--# don't specify an explicit build system type.
-+# You can get the latest version of this script from:
-+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
- 
- me=`echo "$0" | sed -e 's,.*/,,'`
- 
-@@ -53,8 +56,8 @@ version="\
- GNU config.guess ($timestamp)
- 
- Originally written by Per Bothner.
--Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
--Free Software Foundation, Inc.
-+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
- 
- This is free software; see the source for copying conditions.  There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-@@ -66,11 +69,11 @@ Try \`$me --help' for more information."
- while test $# -gt 0 ; do
-   case $1 in
-     --time-stamp | --time* | -t )
--       echo "$timestamp" ; exit 0 ;;
-+       echo "$timestamp" ; exit ;;
-     --version | -v )
--       echo "$version" ; exit 0 ;;
-+       echo "$version" ; exit ;;
-     --help | --h* | -h )
--       echo "$usage"; exit 0 ;;
-+       echo "$usage"; exit ;;
-     -- )     # Stop option processing
-        shift; break ;;
-     - )	# Use stdin as input.
-@@ -104,7 +107,7 @@ set_cc_for_build='
- trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
- trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
- : ${TMPDIR=/tmp} ;
-- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
-+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
-  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
-  { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
-  { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-@@ -123,7 +126,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in
- 	;;
-  ,,*)   CC_FOR_BUILD=$CC ;;
-  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
--esac ;'
-+esac ; set_cc_for_build= ;'
- 
- # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
- # (ghazi at noc.rutgers.edu 1994-08-24)
-@@ -158,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- 	    arm*) machine=arm-unknown ;;
- 	    sh3el) machine=shl-unknown ;;
- 	    sh3eb) machine=sh-unknown ;;
-+	    sh5el) machine=sh5le-unknown ;;
- 	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
- 	esac
- 	# The Operating System including object format, if it has switched
-@@ -166,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
- 		eval $set_cc_for_build
- 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
--			| grep __ELF__ >/dev/null
-+			| grep -q __ELF__
- 		then
- 		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
- 		    # Return netbsd for either.  FIX?
-@@ -196,50 +200,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- 	# contains redundant information, the shorter form:
- 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- 	echo "${machine}-${os}${release}"
--	exit 0 ;;
--    amiga:OpenBSD:*:*)
--	echo m68k-unknown-openbsd${UNAME_RELEASE}
--	exit 0 ;;
--    arc:OpenBSD:*:*)
--	echo mipsel-unknown-openbsd${UNAME_RELEASE}
--	exit 0 ;;
--    hp300:OpenBSD:*:*)
--	echo m68k-unknown-openbsd${UNAME_RELEASE}
--	exit 0 ;;
--    mac68k:OpenBSD:*:*)
--	echo m68k-unknown-openbsd${UNAME_RELEASE}
--	exit 0 ;;
--    macppc:OpenBSD:*:*)
--	echo powerpc-unknown-openbsd${UNAME_RELEASE}
--	exit 0 ;;
--    mvme68k:OpenBSD:*:*)
--	echo m68k-unknown-openbsd${UNAME_RELEASE}
--	exit 0 ;;
--    mvme88k:OpenBSD:*:*)
--	echo m88k-unknown-openbsd${UNAME_RELEASE}
--	exit 0 ;;
--    mvmeppc:OpenBSD:*:*)
--	echo powerpc-unknown-openbsd${UNAME_RELEASE}
--	exit 0 ;;
--    pmax:OpenBSD:*:*)
--	echo mipsel-unknown-openbsd${UNAME_RELEASE}
--	exit 0 ;;
--    sgi:OpenBSD:*:*)
--	echo mipseb-unknown-openbsd${UNAME_RELEASE}
--	exit 0 ;;
--    sun3:OpenBSD:*:*)
--	echo m68k-unknown-openbsd${UNAME_RELEASE}
--	exit 0 ;;
--    wgrisc:OpenBSD:*:*)
--	echo mipsel-unknown-openbsd${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     *:OpenBSD:*:*)
--	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
--	exit 0 ;;
-+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
-+	exit ;;
-+    *:ekkoBSD:*:*)
-+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
-+	exit ;;
-+    *:SolidBSD:*:*)
-+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
-+	exit ;;
-+    macppc:MirBSD:*:*)
-+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
-+	exit ;;
-+    *:MirBSD:*:*)
-+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
-+	exit ;;
-     alpha:OSF1:*:*)
--	if test $UNAME_RELEASE = "V4.0"; then
-+	case $UNAME_RELEASE in
-+	*4.0)
- 		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
--	fi
-+		;;
-+	*5.*)
-+	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
-+		;;
-+	esac
- 	# According to Compaq, /usr/sbin/psrinfo has been available on
- 	# OSF/1 and Tru64 systems produced since 1995.  I hope that
- 	# covers most systems running today.  This code pipes the CPU
-@@ -277,42 +263,49 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- 	    "EV7.9 (21364A)")
- 		UNAME_MACHINE="alphaev79" ;;
- 	esac
-+	# A Pn.n version is a patched version.
- 	# A Vn.n version is a released version.
- 	# A Tn.n version is a released field test version.
- 	# A Xn.n version is an unreleased experimental baselevel.
- 	# 1.2 uses "1.2" for uname -r.
--	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
--	exit 0 ;;
--    Alpha*:OpenVMS:*:*)
--	echo alpha-hp-vms
--	exit 0 ;;
-+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-+	exit ;;
-     Alpha\ *:Windows_NT*:*)
- 	# How do we know it's Interix rather than the generic POSIX subsystem?
- 	# Should we change UNAME_MACHINE based on the output of uname instead
- 	# of the specific Alpha model?
- 	echo alpha-pc-interix
--	exit 0 ;;
-+	exit ;;
-     21064:Windows_NT:50:3)
- 	echo alpha-dec-winnt3.5
--	exit 0 ;;
-+	exit ;;
-     Amiga*:UNIX_System_V:4.0:*)
- 	echo m68k-unknown-sysv4
--	exit 0;;
-+	exit ;;
-     *:[Aa]miga[Oo][Ss]:*:*)
- 	echo ${UNAME_MACHINE}-unknown-amigaos
--	exit 0 ;;
-+	exit ;;
-     *:[Mm]orph[Oo][Ss]:*:*)
- 	echo ${UNAME_MACHINE}-unknown-morphos
--	exit 0 ;;
-+	exit ;;
-     *:OS/390:*:*)
- 	echo i370-ibm-openedition
--	exit 0 ;;
-+	exit ;;
-+    *:z/VM:*:*)
-+	echo s390-ibm-zvmoe
-+	exit ;;
-+    *:OS400:*:*)
-+        echo powerpc-ibm-os400
-+	exit ;;
-     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- 	echo arm-acorn-riscix${UNAME_RELEASE}
--	exit 0;;
-+	exit ;;
-+    arm:riscos:*:*|arm:RISCOS:*:*)
-+	echo arm-unknown-riscos
-+	exit ;;
-     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- 	echo hppa1.1-hitachi-hiuxmpp
--	exit 0;;
-+	exit ;;
-     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- 	# akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- 	if test "`(/bin/universe) 2>/dev/null`" = att ; then
-@@ -320,32 +313,51 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- 	else
- 		echo pyramid-pyramid-bsd
- 	fi
--	exit 0 ;;
-+	exit ;;
-     NILE*:*:*:dcosx)
- 	echo pyramid-pyramid-svr4
--	exit 0 ;;
-+	exit ;;
-     DRS?6000:unix:4.0:6*)
- 	echo sparc-icl-nx6
--	exit 0 ;;
--    DRS?6000:UNIX_SV:4.2*:7*)
-+	exit ;;
-+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
- 	case `/usr/bin/uname -p` in
--	    sparc) echo sparc-icl-nx7 && exit 0 ;;
-+	    sparc) echo sparc-icl-nx7; exit ;;
- 	esac ;;
-+    s390x:SunOS:*:*)
-+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+	exit ;;
-     sun4H:SunOS:5.*:*)
- 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
--	exit 0 ;;
-+	exit ;;
-     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
--	exit 0 ;;
--    i86pc:SunOS:5.*:*)
--	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
--	exit 0 ;;
-+	exit ;;
-+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-+	echo i386-pc-auroraux${UNAME_RELEASE}
-+	exit ;;
-+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-+	eval $set_cc_for_build
-+	SUN_ARCH="i386"
-+	# If there is a compiler, see if it is configured for 64-bit objects.
-+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
-+	# This test works for both compilers.
-+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-+		grep IS_64BIT_ARCH >/dev/null
-+	    then
-+		SUN_ARCH="x86_64"
-+	    fi
-+	fi
-+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-+	exit ;;
-     sun4*:SunOS:6*:*)
- 	# According to config.sub, this is the proper way to canonicalize
- 	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
- 	# it's likely to be more like Solaris than SunOS4.
- 	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
--	exit 0 ;;
-+	exit ;;
-     sun4*:SunOS:*:*)
- 	case "`/usr/bin/arch -k`" in
- 	    Series*|S4*)
-@@ -354,10 +366,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- 	esac
- 	# Japanese Language versions have a version number like `4.1.3-JL'.
- 	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
--	exit 0 ;;
-+	exit ;;
-     sun3*:SunOS:*:*)
- 	echo m68k-sun-sunos${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     sun*:*:4.2BSD:*)
- 	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- 	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-@@ -369,10 +381,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- 		echo sparc-sun-sunos${UNAME_RELEASE}
- 		;;
- 	esac
--	exit 0 ;;
-+	exit ;;
-     aushp:SunOS:*:*)
- 	echo sparc-auspex-sunos${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     # The situation for MiNT is a little confusing.  The machine name
-     # can be virtually everything (everything which is not
-     # "atarist" or "atariste" at least should have a processor
-@@ -383,37 +395,40 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-     # be no problem.
-     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-         echo m68k-atari-mint${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- 	echo m68k-atari-mint${UNAME_RELEASE}
--        exit 0 ;;
-+        exit ;;
-     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-         echo m68k-atari-mint${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-         echo m68k-milan-mint${UNAME_RELEASE}
--        exit 0 ;;
-+        exit ;;
-     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-         echo m68k-hades-mint${UNAME_RELEASE}
--        exit 0 ;;
-+        exit ;;
-     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-         echo m68k-unknown-mint${UNAME_RELEASE}
--        exit 0 ;;
-+        exit ;;
-+    m68k:machten:*:*)
-+	echo m68k-apple-machten${UNAME_RELEASE}
-+	exit ;;
-     powerpc:machten:*:*)
- 	echo powerpc-apple-machten${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     RISC*:Mach:*:*)
- 	echo mips-dec-mach_bsd4.3
--	exit 0 ;;
-+	exit ;;
-     RISC*:ULTRIX:*:*)
- 	echo mips-dec-ultrix${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     VAX*:ULTRIX*:*:*)
- 	echo vax-dec-ultrix${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     2020:CLIX:*:* | 2430:CLIX:*:*)
- 	echo clipper-intergraph-clix${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     mips:*:*:UMIPS | mips:*:*:RISCos)
- 	eval $set_cc_for_build
- 	sed 's/^	//' << EOF >$dummy.c
-@@ -437,32 +452,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- 	  exit (-1);
- 	}
- EOF
--	$CC_FOR_BUILD -o $dummy $dummy.c \
--	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
--	  && exit 0
-+	$CC_FOR_BUILD -o $dummy $dummy.c &&
-+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
-+	  SYSTEM_NAME=`$dummy $dummyarg` &&
-+	    { echo "$SYSTEM_NAME"; exit; }
- 	echo mips-mips-riscos${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     Motorola:PowerMAX_OS:*:*)
- 	echo powerpc-motorola-powermax
--	exit 0 ;;
-+	exit ;;
-     Motorola:*:4.3:PL8-*)
- 	echo powerpc-harris-powermax
--	exit 0 ;;
-+	exit ;;
-     Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- 	echo powerpc-harris-powermax
--	exit 0 ;;
-+	exit ;;
-     Night_Hawk:Power_UNIX:*:*)
- 	echo powerpc-harris-powerunix
--	exit 0 ;;
-+	exit ;;
-     m88k:CX/UX:7*:*)
- 	echo m88k-harris-cxux7
--	exit 0 ;;
-+	exit ;;
-     m88k:*:4*:R4*)
- 	echo m88k-motorola-sysv4
--	exit 0 ;;
-+	exit ;;
-     m88k:*:3*:R3*)
- 	echo m88k-motorola-sysv3
--	exit 0 ;;
-+	exit ;;
-     AViiON:dgux:*:*)
-         # DG/UX returns AViiON for all architectures
-         UNAME_PROCESSOR=`/usr/bin/uname -p`
-@@ -478,29 +494,29 @@ EOF
- 	else
- 	    echo i586-dg-dgux${UNAME_RELEASE}
- 	fi
-- 	exit 0 ;;
-+ 	exit ;;
-     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
- 	echo m88k-dolphin-sysv3
--	exit 0 ;;
-+	exit ;;
-     M88*:*:R3*:*)
- 	# Delta 88k system running SVR3
- 	echo m88k-motorola-sysv3
--	exit 0 ;;
-+	exit ;;
-     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- 	echo m88k-tektronix-sysv3
--	exit 0 ;;
-+	exit ;;
-     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- 	echo m68k-tektronix-bsd
--	exit 0 ;;
-+	exit ;;
-     *:IRIX*:*:*)
- 	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
--	exit 0 ;;
-+	exit ;;
-     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
--	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
--	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
-+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
-+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
-     i*86:AIX:*:*)
- 	echo i386-ibm-aix
--	exit 0 ;;
-+	exit ;;
-     ia64:AIX:*:*)
- 	if [ -x /usr/bin/oslevel ] ; then
- 		IBM_REV=`/usr/bin/oslevel`
-@@ -508,7 +524,7 @@ EOF
- 		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- 	fi
- 	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
--	exit 0 ;;
-+	exit ;;
-     *:AIX:2:3)
- 	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- 		eval $set_cc_for_build
-@@ -523,15 +539,19 @@ EOF
- 			exit(0);
- 			}
- EOF
--		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
--		echo rs6000-ibm-aix3.2.5
-+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
-+		then
-+			echo "$SYSTEM_NAME"
-+		else
-+			echo rs6000-ibm-aix3.2.5
-+		fi
- 	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- 		echo rs6000-ibm-aix3.2.4
- 	else
- 		echo rs6000-ibm-aix3.2
- 	fi
--	exit 0 ;;
--    *:AIX:*:[45])
-+	exit ;;
-+    *:AIX:*:[456])
- 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
- 		IBM_ARCH=rs6000
-@@ -544,28 +564,28 @@ EOF
- 		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- 	fi
- 	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
--	exit 0 ;;
-+	exit ;;
-     *:AIX:*:*)
- 	echo rs6000-ibm-aix
--	exit 0 ;;
-+	exit ;;
-     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- 	echo romp-ibm-bsd4.4
--	exit 0 ;;
-+	exit ;;
-     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
- 	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
--	exit 0 ;;                           # report: romp-ibm BSD 4.3
-+	exit ;;                             # report: romp-ibm BSD 4.3
-     *:BOSX:*:*)
- 	echo rs6000-bull-bosx
--	exit 0 ;;
-+	exit ;;
-     DPX/2?00:B.O.S.:*:*)
- 	echo m68k-bull-sysv3
--	exit 0 ;;
-+	exit ;;
-     9000/[34]??:4.3bsd:1.*:*)
- 	echo m68k-hp-bsd
--	exit 0 ;;
-+	exit ;;
-     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- 	echo m68k-hp-bsd4.4
--	exit 0 ;;
-+	exit ;;
-     9000/[34678]??:HP-UX:*:*)
- 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- 	case "${UNAME_MACHINE}" in
-@@ -627,9 +647,19 @@ EOF
- 	esac
- 	if [ ${HP_ARCH} = "hppa2.0w" ]
- 	then
--	    # avoid double evaluation of $set_cc_for_build
--	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
--	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
-+	    eval $set_cc_for_build
-+
-+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
-+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
-+	    # generating 64-bit code.  GNU and HP use different nomenclature:
-+	    #
-+	    # $ CC_FOR_BUILD=cc ./config.guess
-+	    # => hppa2.0w-hp-hpux11.23
-+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
-+	    # => hppa64-hp-hpux11.23
-+
-+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-+		grep -q __LP64__
- 	    then
- 		HP_ARCH="hppa2.0w"
- 	    else
-@@ -637,11 +667,11 @@ EOF
- 	    fi
- 	fi
- 	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
--	exit 0 ;;
-+	exit ;;
-     ia64:HP-UX:*:*)
- 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- 	echo ia64-hp-hpux${HPUX_REV}
--	exit 0 ;;
-+	exit ;;
-     3050*:HI-UX:*:*)
- 	eval $set_cc_for_build
- 	sed 's/^	//' << EOF >$dummy.c
-@@ -669,211 +699,248 @@ EOF
- 	  exit (0);
- 	}
- EOF
--	$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
-+		{ echo "$SYSTEM_NAME"; exit; }
- 	echo unknown-hitachi-hiuxwe2
--	exit 0 ;;
-+	exit ;;
-     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- 	echo hppa1.1-hp-bsd
--	exit 0 ;;
-+	exit ;;
-     9000/8??:4.3bsd:*:*)
- 	echo hppa1.0-hp-bsd
--	exit 0 ;;
-+	exit ;;
-     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- 	echo hppa1.0-hp-mpeix
--	exit 0 ;;
-+	exit ;;
-     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- 	echo hppa1.1-hp-osf
--	exit 0 ;;
-+	exit ;;
-     hp8??:OSF1:*:*)
- 	echo hppa1.0-hp-osf
--	exit 0 ;;
-+	exit ;;
-     i*86:OSF1:*:*)
- 	if [ -x /usr/sbin/sysversion ] ; then
- 	    echo ${UNAME_MACHINE}-unknown-osf1mk
- 	else
- 	    echo ${UNAME_MACHINE}-unknown-osf1
- 	fi
--	exit 0 ;;
-+	exit ;;
-     parisc*:Lites*:*:*)
- 	echo hppa1.1-hp-lites
--	exit 0 ;;
-+	exit ;;
-     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- 	echo c1-convex-bsd
--        exit 0 ;;
-+        exit ;;
-     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- 	if getsysinfo -f scalar_acc
- 	then echo c32-convex-bsd
- 	else echo c2-convex-bsd
- 	fi
--        exit 0 ;;
-+        exit ;;
-     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- 	echo c34-convex-bsd
--        exit 0 ;;
-+        exit ;;
-     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- 	echo c38-convex-bsd
--        exit 0 ;;
-+        exit ;;
-     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- 	echo c4-convex-bsd
--        exit 0 ;;
-+        exit ;;
-     CRAY*Y-MP:*:*:*)
- 	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
--	exit 0 ;;
-+	exit ;;
-     CRAY*[A-Z]90:*:*:*)
- 	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
- 	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
- 	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- 	      -e 's/\.[^.]*$/.X/'
--	exit 0 ;;
-+	exit ;;
-     CRAY*TS:*:*:*)
- 	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
--	exit 0 ;;
-+	exit ;;
-     CRAY*T3E:*:*:*)
- 	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
--	exit 0 ;;
-+	exit ;;
-     CRAY*SV1:*:*:*)
- 	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
--	exit 0 ;;
-+	exit ;;
-     *:UNICOS/mp:*:*)
--	echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 
--	exit 0 ;;
-+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-+	exit ;;
-     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- 	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
--        exit 0 ;;
-+        exit ;;
-+    5000:UNIX_System_V:4.*:*)
-+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-+	exit ;;
-     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- 	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     sparc*:BSD/OS:*:*)
- 	echo sparc-unknown-bsdi${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     *:BSD/OS:*:*)
- 	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
--	exit 0 ;;
--    *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
--	# Determine whether the default compiler uses glibc.
--	eval $set_cc_for_build
--	sed 's/^	//' << EOF >$dummy.c
--	#include <features.h>
--	#if __GLIBC__ >= 2
--	LIBC=gnu
--	#else
--	LIBC=
--	#endif
--EOF
--	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
--	# GNU/FreeBSD systems have a "k" prefix to indicate we are using
--	# FreeBSD's kernel, but not the complete OS.
--	case ${LIBC} in gnu) kernel_only='k' ;; esac
--	echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
--	exit 0 ;;
-+	exit ;;
-+    *:FreeBSD:*:*)
-+	case ${UNAME_MACHINE} in
-+	    pc98)
-+		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-+	    amd64)
-+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-+	    *)
-+		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-+	esac
-+	exit ;;
-     i*:CYGWIN*:*)
- 	echo ${UNAME_MACHINE}-pc-cygwin
--	exit 0 ;;
--    i*:MINGW*:*)
-+	exit ;;
-+    *:MINGW*:*)
- 	echo ${UNAME_MACHINE}-pc-mingw32
--	exit 0 ;;
-+	exit ;;
-+    i*:windows32*:*)
-+    	# uname -m includes "-pc" on this system.
-+    	echo ${UNAME_MACHINE}-mingw32
-+	exit ;;
-     i*:PW*:*)
- 	echo ${UNAME_MACHINE}-pc-pw32
--	exit 0 ;;
--    x86:Interix*:[34]*)
--	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
--	exit 0 ;;
-+	exit ;;
-+    *:Interix*:*)
-+    	case ${UNAME_MACHINE} in
-+	    x86)
-+		echo i586-pc-interix${UNAME_RELEASE}
-+		exit ;;
-+	    authenticamd | genuineintel | EM64T)
-+		echo x86_64-unknown-interix${UNAME_RELEASE}
-+		exit ;;
-+	    IA64)
-+		echo ia64-unknown-interix${UNAME_RELEASE}
-+		exit ;;
-+	esac ;;
-     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- 	echo i${UNAME_MACHINE}-pc-mks
--	exit 0 ;;
-+	exit ;;
-+    8664:Windows_NT:*)
-+	echo x86_64-pc-mks
-+	exit ;;
-     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- 	# How do we know it's Interix rather than the generic POSIX subsystem?
- 	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- 	# UNAME_MACHINE based on the output of uname instead of i386?
- 	echo i586-pc-interix
--	exit 0 ;;
-+	exit ;;
-     i*:UWIN*:*)
- 	echo ${UNAME_MACHINE}-pc-uwin
--	exit 0 ;;
-+	exit ;;
-+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
-+	echo x86_64-unknown-cygwin
-+	exit ;;
-     p*:CYGWIN*:*)
- 	echo powerpcle-unknown-cygwin
--	exit 0 ;;
-+	exit ;;
-     prep*:SunOS:5.*:*)
- 	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
--	exit 0 ;;
-+	exit ;;
-     *:GNU:*:*)
-+	# the GNU system
- 	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
--	exit 0 ;;
-+	exit ;;
-+    *:GNU/*:*:*)
-+	# other systems with GNU libc and userland
-+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
-+	exit ;;
-     i*86:Minix:*:*)
- 	echo ${UNAME_MACHINE}-pc-minix
--	exit 0 ;;
-+	exit ;;
-+    alpha:Linux:*:*)
-+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-+	  EV5)   UNAME_MACHINE=alphaev5 ;;
-+	  EV56)  UNAME_MACHINE=alphaev56 ;;
-+	  PCA56) UNAME_MACHINE=alphapca56 ;;
-+	  PCA57) UNAME_MACHINE=alphapca56 ;;
-+	  EV6)   UNAME_MACHINE=alphaev6 ;;
-+	  EV67)  UNAME_MACHINE=alphaev67 ;;
-+	  EV68*) UNAME_MACHINE=alphaev68 ;;
-+        esac
-+	objdump --private-headers /bin/sh | grep -q ld.so.1
-+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-+	exit ;;
-     arm*:Linux:*:*)
-+	eval $set_cc_for_build
-+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
-+	    | grep -q __ARM_EABI__
-+	then
-+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	else
-+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
-+	fi
-+	exit ;;
-+    avr32*:Linux:*:*)
- 	echo ${UNAME_MACHINE}-unknown-linux-gnu
--	exit 0 ;;
-+	exit ;;
-     cris:Linux:*:*)
- 	echo cris-axis-linux-gnu
--	exit 0 ;;
--    ia64:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
--	exit 0 ;;
--    m68*:Linux:*:*)
--	echo ${UNAME_MACHINE}-unknown-linux-gnu
--	exit 0 ;;
--    mips:Linux:*:*)
-+	exit ;;
-+    crisv32:Linux:*:*)
-+	echo crisv32-axis-linux-gnu
-+	exit ;;
-+    frv:Linux:*:*)
-+    	echo frv-unknown-linux-gnu
-+	exit ;;
-+    i*86:Linux:*:*)
-+	LIBC=gnu
- 	eval $set_cc_for_build
- 	sed 's/^	//' << EOF >$dummy.c
--	#undef CPU
--	#undef mips
--	#undef mipsel
--	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
--	CPU=mipsel
--	#else
--	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
--	CPU=mips
--	#else
--	CPU=
--	#endif
-+	#ifdef __dietlibc__
-+	LIBC=dietlibc
- 	#endif
- EOF
--	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
--	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
--	;;
--    mips64:Linux:*:*)
-+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-+	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-+	exit ;;
-+    ia64:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    m32r*:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    m68*:Linux:*:*)
-+	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-+    mips:Linux:*:* | mips64:Linux:*:*)
- 	eval $set_cc_for_build
- 	sed 's/^	//' << EOF >$dummy.c
- 	#undef CPU
--	#undef mips64
--	#undef mips64el
-+	#undef ${UNAME_MACHINE}
-+	#undef ${UNAME_MACHINE}el
- 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
--	CPU=mips64el
-+	CPU=${UNAME_MACHINE}el
- 	#else
- 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
--	CPU=mips64
-+	CPU=${UNAME_MACHINE}
- 	#else
- 	CPU=
- 	#endif
- 	#endif
- EOF
--	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
--	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
- 	;;
--    ppc:Linux:*:*)
--	echo powerpc-unknown-linux-gnu
--	exit 0 ;;
--    ppc64:Linux:*:*)
--	echo powerpc64-unknown-linux-gnu
--	exit 0 ;;
--    alpha:Linux:*:*)
--	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
--	  EV5)   UNAME_MACHINE=alphaev5 ;;
--	  EV56)  UNAME_MACHINE=alphaev56 ;;
--	  PCA56) UNAME_MACHINE=alphapca56 ;;
--	  PCA57) UNAME_MACHINE=alphapca56 ;;
--	  EV6)   UNAME_MACHINE=alphaev6 ;;
--	  EV67)  UNAME_MACHINE=alphaev67 ;;
--	  EV68*) UNAME_MACHINE=alphaev68 ;;
--        esac
--	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
--	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
--	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
--	exit 0 ;;
-+    or32:Linux:*:*)
-+	echo or32-unknown-linux-gnu
-+	exit ;;
-+    padre:Linux:*:*)
-+	echo sparc-unknown-linux-gnu
-+	exit ;;
-+    parisc64:Linux:*:* | hppa64:Linux:*:*)
-+	echo hppa64-unknown-linux-gnu
-+	exit ;;
-     parisc:Linux:*:* | hppa:Linux:*:*)
- 	# Look for CPU level
- 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-@@ -881,84 +948,40 @@ EOF
- 	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
- 	  *)    echo hppa-unknown-linux-gnu ;;
- 	esac
--	exit 0 ;;
--    parisc64:Linux:*:* | hppa64:Linux:*:*)
--	echo hppa64-unknown-linux-gnu
--	exit 0 ;;
-+	exit ;;
-+    ppc64:Linux:*:*)
-+	echo powerpc64-unknown-linux-gnu
-+	exit ;;
-+    ppc:Linux:*:*)
-+	echo powerpc-unknown-linux-gnu
-+	exit ;;
-     s390:Linux:*:* | s390x:Linux:*:*)
- 	echo ${UNAME_MACHINE}-ibm-linux
--	exit 0 ;;
-+	exit ;;
-     sh64*:Linux:*:*)
-     	echo ${UNAME_MACHINE}-unknown-linux-gnu
--	exit 0 ;;
-+	exit ;;
-     sh*:Linux:*:*)
- 	echo ${UNAME_MACHINE}-unknown-linux-gnu
--	exit 0 ;;
-+	exit ;;
-     sparc:Linux:*:* | sparc64:Linux:*:*)
- 	echo ${UNAME_MACHINE}-unknown-linux-gnu
--	exit 0 ;;
-+	exit ;;
-+    vax:Linux:*:*)
-+	echo ${UNAME_MACHINE}-dec-linux-gnu
-+	exit ;;
-     x86_64:Linux:*:*)
- 	echo x86_64-unknown-linux-gnu
--	exit 0 ;;
--    i*86:Linux:*:*)
--	# The BFD linker knows what the default object file format is, so
--	# first see if it will tell us. cd to the root directory to prevent
--	# problems with other programs or directories called `ld' in the path.
--	# Set LC_ALL=C to ensure ld outputs messages in English.
--	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
--			 | sed -ne '/supported targets:/!d
--				    s/[ 	][ 	]*/ /g
--				    s/.*supported targets: *//
--				    s/ .*//
--				    p'`
--        case "$ld_supported_targets" in
--	  elf32-i386)
--		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
--		;;
--	  a.out-i386-linux)
--		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
--		exit 0 ;;
--	  coff-i386)
--		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
--		exit 0 ;;
--	  "")
--		# Either a pre-BFD a.out linker (linux-gnuoldld) or
--		# one that does not give us useful --help.
--		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
--		exit 0 ;;
--	esac
--	# Determine whether the default compiler is a.out or elf
--	eval $set_cc_for_build
--	sed 's/^	//' << EOF >$dummy.c
--	#include <features.h>
--	#ifdef __ELF__
--	# ifdef __GLIBC__
--	#  if __GLIBC__ >= 2
--	LIBC=gnu
--	#  else
--	LIBC=gnulibc1
--	#  endif
--	# else
--	LIBC=gnulibc1
--	# endif
--	#else
--	#ifdef __INTEL_COMPILER
--	LIBC=gnu
--	#else
--	LIBC=gnuaout
--	#endif
--	#endif
--EOF
--	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
--	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
--	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
--	;;
-+	exit ;;
-+    xtensa*:Linux:*:*)
-+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
-+	exit ;;
-     i*86:DYNIX/ptx:4*:*)
- 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
- 	# earlier versions are messed up and put the nodename in both
- 	# sysname and nodename.
- 	echo i386-sequent-sysv4
--	exit 0 ;;
-+	exit ;;
-     i*86:UNIX_SV:4.2MP:2.*)
-         # Unixware is an offshoot of SVR4, but it has its own version
-         # number series starting with 2...
-@@ -966,24 +989,27 @@ EOF
- 	# I just have to hope.  -- rms.
-         # Use sysv4.2uw... so that sysv4* matches it.
- 	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
--	exit 0 ;;
-+	exit ;;
-     i*86:OS/2:*:*)
- 	# If we were able to find `uname', then EMX Unix compatibility
- 	# is probably installed.
- 	echo ${UNAME_MACHINE}-pc-os2-emx
--	exit 0 ;;
-+	exit ;;
-     i*86:XTS-300:*:STOP)
- 	echo ${UNAME_MACHINE}-unknown-stop
--	exit 0 ;;
-+	exit ;;
-     i*86:atheos:*:*)
- 	echo ${UNAME_MACHINE}-unknown-atheos
--	exit 0 ;;
--    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-+	exit ;;
-+    i*86:syllable:*:*)
-+	echo ${UNAME_MACHINE}-pc-syllable
-+	exit ;;
-+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- 	echo i386-unknown-lynxos${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     i*86:*DOS:*:*)
- 	echo ${UNAME_MACHINE}-pc-msdosdjgpp
--	exit 0 ;;
-+	exit ;;
-     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- 	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
- 	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-@@ -991,15 +1017,16 @@ EOF
- 	else
- 		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- 	fi
--	exit 0 ;;
--    i*86:*:5:[78]*)
-+	exit ;;
-+    i*86:*:5:[678]*)
-+    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
- 	case `/bin/uname -X | grep "^Machine"` in
- 	    *486*)	     UNAME_MACHINE=i486 ;;
- 	    *Pentium)	     UNAME_MACHINE=i586 ;;
- 	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
- 	esac
- 	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
--	exit 0 ;;
-+	exit ;;
-     i*86:*:3.2:*)
- 	if test -f /usr/options/cb.name; then
- 		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-@@ -1017,73 +1044,86 @@ EOF
- 	else
- 		echo ${UNAME_MACHINE}-pc-sysv32
- 	fi
--	exit 0 ;;
-+	exit ;;
-     pc:*:*:*)
- 	# Left here for compatibility:
-         # uname -m prints for DJGPP always 'pc', but it prints nothing about
--        # the processor, so we play safe by assuming i386.
--	echo i386-pc-msdosdjgpp
--        exit 0 ;;
-+        # the processor, so we play safe by assuming i586.
-+	# Note: whatever this is, it MUST be the same as what config.sub
-+	# prints for the "djgpp" host, or else GDB configury will decide that
-+	# this is a cross-build.
-+	echo i586-pc-msdosdjgpp
-+        exit ;;
-     Intel:Mach:3*:*)
- 	echo i386-pc-mach3
--	exit 0 ;;
-+	exit ;;
-     paragon:*:*:*)
- 	echo i860-intel-osf1
--	exit 0 ;;
-+	exit ;;
-     i860:*:4.*:*) # i860-SVR4
- 	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- 	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- 	else # Add other i860-SVR4 vendors below as they are discovered.
- 	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
- 	fi
--	exit 0 ;;
-+	exit ;;
-     mini*:CTIX:SYS*5:*)
- 	# "miniframe"
- 	echo m68010-convergent-sysv
--	exit 0 ;;
-+	exit ;;
-     mc68k:UNIX:SYSTEM5:3.51m)
- 	echo m68k-convergent-sysv
--	exit 0 ;;
-+	exit ;;
-     M680?0:D-NIX:5.3:*)
- 	echo m68k-diab-dnix
--	exit 0 ;;
--    M68*:*:R3V[567]*:*)
--	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
--    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
-+	exit ;;
-+    M68*:*:R3V[5678]*:*)
-+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
-+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
- 	OS_REL=''
- 	test -r /etc/.relid \
- 	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
--	  && echo i486-ncr-sysv4.3${OS_REL} && exit 0
-+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
- 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
--	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
-+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
--          && echo i486-ncr-sysv4 && exit 0 ;;
-+          && { echo i486-ncr-sysv4; exit; } ;;
-+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
-+	OS_REL='.3'
-+	test -r /etc/.relid \
-+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
-+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
-+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- 	echo m68k-unknown-lynxos${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     mc68030:UNIX_System_V:4.*:*)
- 	echo m68k-atari-sysv4
--	exit 0 ;;
-+	exit ;;
-     TSUNAMI:LynxOS:2.*:*)
- 	echo sparc-unknown-lynxos${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     rs6000:LynxOS:2.*:*)
- 	echo rs6000-unknown-lynxos${UNAME_RELEASE}
--	exit 0 ;;
--    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-+	exit ;;
-+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- 	echo powerpc-unknown-lynxos${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     SM[BE]S:UNIX_SV:*:*)
- 	echo mips-dde-sysv${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     RM*:ReliantUNIX-*:*:*)
- 	echo mips-sni-sysv4
--	exit 0 ;;
-+	exit ;;
-     RM*:SINIX-*:*:*)
- 	echo mips-sni-sysv4
--	exit 0 ;;
-+	exit ;;
-     *:SINIX-*:*:*)
- 	if uname -p 2>/dev/null >/dev/null ; then
- 		UNAME_MACHINE=`(uname -p) 2>/dev/null`
-@@ -1091,68 +1131,94 @@ EOF
- 	else
- 		echo ns32k-sni-sysv
- 	fi
--	exit 0 ;;
-+	exit ;;
-     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                       # says <Richard.M.Bartel at ccMail.Census.GOV>
-         echo i586-unisys-sysv4
--        exit 0 ;;
-+        exit ;;
-     *:UNIX_System_V:4*:FTX*)
- 	# From Gerald Hewes <hewes at openmarket.com>.
- 	# How about differentiating between stratus architectures? -djm
- 	echo hppa1.1-stratus-sysv4
--	exit 0 ;;
-+	exit ;;
-     *:*:*:FTX*)
- 	# From seanf at swdc.stratus.com.
- 	echo i860-stratus-sysv4
--	exit 0 ;;
-+	exit ;;
-+    i*86:VOS:*:*)
-+	# From Paul.Green at stratus.com.
-+	echo ${UNAME_MACHINE}-stratus-vos
-+	exit ;;
-     *:VOS:*:*)
- 	# From Paul.Green at stratus.com.
- 	echo hppa1.1-stratus-vos
--	exit 0 ;;
-+	exit ;;
-     mc68*:A/UX:*:*)
- 	echo m68k-apple-aux${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     news*:NEWS-OS:6*:*)
- 	echo mips-sony-newsos6
--	exit 0 ;;
-+	exit ;;
-     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- 	if [ -d /usr/nec ]; then
- 	        echo mips-nec-sysv${UNAME_RELEASE}
- 	else
- 	        echo mips-unknown-sysv${UNAME_RELEASE}
- 	fi
--        exit 0 ;;
-+        exit ;;
-     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
- 	echo powerpc-be-beos
--	exit 0 ;;
-+	exit ;;
-     BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
- 	echo powerpc-apple-beos
--	exit 0 ;;
-+	exit ;;
-     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
- 	echo i586-pc-beos
--	exit 0 ;;
-+	exit ;;
-+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
-+	echo i586-pc-haiku
-+	exit ;;
-     SX-4:SUPER-UX:*:*)
- 	echo sx4-nec-superux${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     SX-5:SUPER-UX:*:*)
- 	echo sx5-nec-superux${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     SX-6:SUPER-UX:*:*)
- 	echo sx6-nec-superux${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-+    SX-7:SUPER-UX:*:*)
-+	echo sx7-nec-superux${UNAME_RELEASE}
-+	exit ;;
-+    SX-8:SUPER-UX:*:*)
-+	echo sx8-nec-superux${UNAME_RELEASE}
-+	exit ;;
-+    SX-8R:SUPER-UX:*:*)
-+	echo sx8r-nec-superux${UNAME_RELEASE}
-+	exit ;;
-     Power*:Rhapsody:*:*)
- 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     *:Rhapsody:*:*)
- 	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     *:Darwin:*:*)
--	case `uname -p` in
--	    *86) UNAME_PROCESSOR=i686 ;;
--	    powerpc) UNAME_PROCESSOR=powerpc ;;
-+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-+	case $UNAME_PROCESSOR in
-+	    i386)
-+		eval $set_cc_for_build
-+		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-+		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-+		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-+		      grep IS_64BIT_ARCH >/dev/null
-+		  then
-+		      UNAME_PROCESSOR="x86_64"
-+		  fi
-+		fi ;;
-+	    unknown) UNAME_PROCESSOR=powerpc ;;
- 	esac
- 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     *:procnto*:*:* | *:QNX:[0123456789]*:*)
- 	UNAME_PROCESSOR=`uname -p`
- 	if test "$UNAME_PROCESSOR" = "x86"; then
-@@ -1160,22 +1226,25 @@ EOF
- 		UNAME_MACHINE=pc
- 	fi
- 	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     *:QNX:*:4*)
- 	echo i386-pc-qnx
--	exit 0 ;;
--    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
-+	exit ;;
-+    NSE-?:NONSTOP_KERNEL:*:*)
-+	echo nse-tandem-nsk${UNAME_RELEASE}
-+	exit ;;
-+    NSR-?:NONSTOP_KERNEL:*:*)
- 	echo nsr-tandem-nsk${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     *:NonStop-UX:*:*)
- 	echo mips-compaq-nonstopux
--	exit 0 ;;
-+	exit ;;
-     BS2000:POSIX*:*:*)
- 	echo bs2000-siemens-sysv
--	exit 0 ;;
-+	exit ;;
-     DS/*:UNIX_System_V:*:*)
- 	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-     *:Plan9:*:*)
- 	# "uname -m" is not consistent, so use $cputype instead. 386
- 	# is converted to i386 for consistency with other x86
-@@ -1186,28 +1255,50 @@ EOF
- 	    UNAME_MACHINE="$cputype"
- 	fi
- 	echo ${UNAME_MACHINE}-unknown-plan9
--	exit 0 ;;
-+	exit ;;
-     *:TOPS-10:*:*)
- 	echo pdp10-unknown-tops10
--	exit 0 ;;
-+	exit ;;
-     *:TENEX:*:*)
- 	echo pdp10-unknown-tenex
--	exit 0 ;;
-+	exit ;;
-     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- 	echo pdp10-dec-tops20
--	exit 0 ;;
-+	exit ;;
-     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- 	echo pdp10-xkl-tops20
--	exit 0 ;;
-+	exit ;;
-     *:TOPS-20:*:*)
- 	echo pdp10-unknown-tops20
--	exit 0 ;;
-+	exit ;;
-     *:ITS:*:*)
- 	echo pdp10-unknown-its
--	exit 0 ;;
-+	exit ;;
-     SEI:*:*:SEIUX)
-         echo mips-sei-seiux${UNAME_RELEASE}
--	exit 0 ;;
-+	exit ;;
-+    *:DragonFly:*:*)
-+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-+	exit ;;
-+    *:*VMS:*:*)
-+    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
-+	case "${UNAME_MACHINE}" in
-+	    A*) echo alpha-dec-vms ; exit ;;
-+	    I*) echo ia64-dec-vms ; exit ;;
-+	    V*) echo vax-dec-vms ; exit ;;
-+	esac ;;
-+    *:XENIX:*:SysV)
-+	echo i386-pc-xenix
-+	exit ;;
-+    i*86:skyos:*:*)
-+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
-+	exit ;;
-+    i*86:rdos:*:*)
-+	echo ${UNAME_MACHINE}-pc-rdos
-+	exit ;;
-+    i*86:AROS:*:*)
-+	echo ${UNAME_MACHINE}-pc-aros
-+	exit ;;
- esac
- 
- #echo '(No uname command or uname output not recognized.)' 1>&2
-@@ -1239,7 +1330,7 @@ main ()
- #endif
- 
- #if defined (__arm) && defined (__acorn) && defined (__unix)
--  printf ("arm-acorn-riscix"); exit (0);
-+  printf ("arm-acorn-riscix\n"); exit (0);
- #endif
- 
- #if defined (hp300) && !defined (hpux)
-@@ -1328,11 +1419,12 @@ main ()
- }
- EOF
- 
--$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
-+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-+	{ echo "$SYSTEM_NAME"; exit; }
- 
- # Apollos put the system type in the environment.
- 
--test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
- 
- # Convex versions that predate uname can use getsysinfo(1)
- 
-@@ -1341,22 +1433,22 @@ then
-     case `getsysinfo -f cpu_type` in
-     c1*)
- 	echo c1-convex-bsd
--	exit 0 ;;
-+	exit ;;
-     c2*)
- 	if getsysinfo -f scalar_acc
- 	then echo c32-convex-bsd
- 	else echo c2-convex-bsd
- 	fi
--	exit 0 ;;
-+	exit ;;
-     c34*)
- 	echo c34-convex-bsd
--	exit 0 ;;
-+	exit ;;
-     c38*)
- 	echo c38-convex-bsd
--	exit 0 ;;
-+	exit ;;
-     c4*)
- 	echo c4-convex-bsd
--	exit 0 ;;
-+	exit ;;
-     esac
- fi
- 
-@@ -1367,7 +1459,9 @@ This script, last modified $timestamp, has failed to recognize
- the operating system you are using. It is advised that you
- download the most up to date version of the config scripts from
- 
--    ftp://ftp.gnu.org/pub/gnu/config/
-+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-+and
-+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
- 
- If the version you run ($0) is already up to date, please
- send the following data and any information you think might be
-diff --git a/build/aux/config.sub b/build/aux/config.sub
-index 9d7f733..2a55a50 100755
---- a/build/aux/config.sub
-+++ b/build/aux/config.sub
-@@ -1,9 +1,10 @@
- #! /bin/sh
- # Configuration validation subroutine script.
- #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
-+#   Free Software Foundation, Inc.
- 
--timestamp='2003-07-04'
-+timestamp='2009-11-20'
- 
- # This file is (in principle) common to ALL GNU software.
- # The presence of a machine in this file suggests that SOME GNU software
-@@ -21,22 +22,26 @@ timestamp='2003-07-04'
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
--# Foundation, Inc., 59 Temple Place - Suite 330,
--# Boston, MA 02111-1307, USA.
--
-+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-+# 02110-1301, USA.
-+#
- # As a special exception to the GNU General Public License, if you
- # distribute this file as part of a program that contains a
- # configuration script generated by Autoconf, you may include it under
- # the same distribution terms that you use for the rest of that program.
- 
-+
- # Please send patches to <config-patches at gnu.org>.  Submit a context
--# diff and a properly formatted ChangeLog entry.
-+# diff and a properly formatted GNU ChangeLog entry.
- #
- # Configuration subroutine to validate and canonicalize a configuration type.
- # Supply the specified configuration type as an argument.
- # If it is invalid, we print an error message on stderr and exit with code 1.
- # Otherwise, we print the canonical config type on stdout and succeed.
- 
-+# You can get the latest version of this script from:
-+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-+
- # This file is supposed to be the same for all GNU packages
- # and recognize all the CPU types, system types and aliases
- # that are meaningful with *any* GNU software.
-@@ -70,8 +75,8 @@ Report bugs and patches to <config-patches at gnu.org>."
- version="\
- GNU config.sub ($timestamp)
- 
--Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
--Free Software Foundation, Inc.
-+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
- 
- This is free software; see the source for copying conditions.  There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-@@ -83,11 +88,11 @@ Try \`$me --help' for more information."
- while test $# -gt 0 ; do
-   case $1 in
-     --time-stamp | --time* | -t )
--       echo "$timestamp" ; exit 0 ;;
-+       echo "$timestamp" ; exit ;;
-     --version | -v )
--       echo "$version" ; exit 0 ;;
-+       echo "$version" ; exit ;;
-     --help | --h* | -h )
--       echo "$usage"; exit 0 ;;
-+       echo "$usage"; exit ;;
-     -- )     # Stop option processing
-        shift; break ;;
-     - )	# Use stdin as input.
-@@ -99,7 +104,7 @@ while test $# -gt 0 ; do
-     *local*)
-        # First pass through any local machine types.
-        echo $1
--       exit 0;;
-+       exit ;;
- 
-     * )
-        break ;;
-@@ -118,7 +123,10 @@ esac
- # Here we must recognize all the valid KERNEL-OS combinations.
- maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
- case $maybe_os in
--  nto-qnx* | linux-gnu* | kfreebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
-+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
-+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
-+  kopensolaris*-gnu* | \
-+  storm-chaos* | os2-emx* | rtmk-nova*)
-     os=-$maybe_os
-     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-     ;;
-@@ -144,10 +152,13 @@ case $os in
- 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
--	-apple | -axis)
-+	-apple | -axis | -knuth | -cray | -microblaze)
- 		os=
- 		basic_machine=$1
- 		;;
-+        -bluegene*)
-+	        os=-cnk
-+		;;
- 	-sim | -cisco | -oki | -wec | -winbond)
- 		os=
- 		basic_machine=$1
-@@ -169,6 +180,10 @@ case $os in
- 	-hiux*)
- 		os=-hiuxwe2
- 		;;
-+	-sco6)
-+		os=-sco5v6
-+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-+		;;
- 	-sco5)
- 		os=-sco3.2v5
- 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-@@ -185,6 +200,10 @@ case $os in
- 		# Don't forget version if it is 3.2v4 or newer.
- 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- 		;;
-+	-sco5v6*)
-+		# Don't forget version if it is 3.2v4 or newer.
-+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-+		;;
- 	-sco*)
- 		os=-sco3.2v2
- 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-@@ -228,53 +247,71 @@ case $basic_machine in
- 	| a29k \
- 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
--	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
-+	| am33_2.0 \
-+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
-+	| bfin \
- 	| c4x | clipper \
- 	| d10v | d30v | dlx | dsp16xx \
--	| fr30 | frv \
-+	| fido | fr30 | frv \
- 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- 	| i370 | i860 | i960 | ia64 \
--	| ip2k \
--	| m32r | m68000 | m68k | m88k | mcore \
-+	| ip2k | iq2000 \
-+	| lm32 \
-+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-+	| maxq | mb | microblaze | mcore | mep | metag \
- 	| mips | mipsbe | mipseb | mipsel | mipsle \
- 	| mips16 \
- 	| mips64 | mips64el \
--	| mips64vr | mips64vrel \
-+	| mips64octeon | mips64octeonel \
- 	| mips64orion | mips64orionel \
-+	| mips64r5900 | mips64r5900el \
-+	| mips64vr | mips64vrel \
- 	| mips64vr4100 | mips64vr4100el \
- 	| mips64vr4300 | mips64vr4300el \
- 	| mips64vr5000 | mips64vr5000el \
-+	| mips64vr5900 | mips64vr5900el \
- 	| mipsisa32 | mipsisa32el \
- 	| mipsisa32r2 | mipsisa32r2el \
- 	| mipsisa64 | mipsisa64el \
-+	| mipsisa64r2 | mipsisa64r2el \
- 	| mipsisa64sb1 | mipsisa64sb1el \
- 	| mipsisa64sr71k | mipsisa64sr71kel \
- 	| mipstx39 | mipstx39el \
- 	| mn10200 | mn10300 \
-+	| moxie \
-+	| mt \
- 	| msp430 \
-+	| nios | nios2 \
- 	| ns16k | ns32k \
--	| openrisc | or32 \
-+	| or32 \
- 	| pdp10 | pdp11 | pj | pjl \
- 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
- 	| pyramid \
--	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
-+	| rx \
-+	| score \
-+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
- 	| sh64 | sh64le \
--	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
--	| strongarm \
-+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
-+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-+	| spu | strongarm \
- 	| tahoe | thumb | tic4x | tic80 | tron \
-+	| ubicom32 \
- 	| v850 | v850e \
- 	| we32k \
--	| x86 | xscale | xstormy16 | xtensa \
--	| z8k)
-+	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
-+	| z8k | z80)
- 		basic_machine=$basic_machine-unknown
- 		;;
--	m6811 | m68hc11 | m6812 | m68hc12)
-+	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
- 		# Motorola 68HC11/12.
- 		basic_machine=$basic_machine-unknown
- 		os=-none
- 		;;
- 	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
- 		;;
-+	ms1)
-+		basic_machine=mt-unknown
-+		;;
- 
- 	# We use `pc' rather than `unknown'
- 	# because (1) that's what they normally are, and
-@@ -292,56 +329,70 @@ case $basic_machine in
- 	| a29k-* \
- 	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
--	| alphapca5[67]-* | alpha64pca5[67]-* | amd64-* | arc-* \
-+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
- 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
--	| avr-* \
--	| bs2000-* \
-+	| avr-* | avr32-* \
-+	| bfin-* | bs2000-* \
- 	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
--	| clipper-* | cydra-* \
-+	| clipper-* | craynv-* | cydra-* \
- 	| d10v-* | d30v-* | dlx-* \
- 	| elxsi-* \
--	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
-+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
- 	| h8300-* | h8500-* \
- 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- 	| i*86-* | i860-* | i960-* | ia64-* \
--	| ip2k-* \
--	| m32r-* \
-+	| ip2k-* | iq2000-* \
-+	| lm32-* \
-+	| m32c-* | m32r-* | m32rle-* \
- 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
--	| m88110-* | m88k-* | mcore-* \
-+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
- 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- 	| mips16-* \
- 	| mips64-* | mips64el-* \
--	| mips64vr-* | mips64vrel-* \
-+	| mips64octeon-* | mips64octeonel-* \
- 	| mips64orion-* | mips64orionel-* \
-+	| mips64r5900-* | mips64r5900el-* \
-+	| mips64vr-* | mips64vrel-* \
- 	| mips64vr4100-* | mips64vr4100el-* \
- 	| mips64vr4300-* | mips64vr4300el-* \
- 	| mips64vr5000-* | mips64vr5000el-* \
-+	| mips64vr5900-* | mips64vr5900el-* \
- 	| mipsisa32-* | mipsisa32el-* \
- 	| mipsisa32r2-* | mipsisa32r2el-* \
- 	| mipsisa64-* | mipsisa64el-* \
-+	| mipsisa64r2-* | mipsisa64r2el-* \
- 	| mipsisa64sb1-* | mipsisa64sb1el-* \
- 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
- 	| mipstx39-* | mipstx39el-* \
-+	| mmix-* \
-+	| mt-* \
- 	| msp430-* \
--	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
-+	| nios-* | nios2-* \
-+	| none-* | np1-* | ns16k-* | ns32k-* \
- 	| orion-* \
- 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
- 	| pyramid-* \
--	| romp-* | rs6000-* \
--	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
-+	| romp-* | rs6000-* | rx-* \
-+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
- 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
--	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
--	| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
-+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
-+	| sparclite-* \
-+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
- 	| tahoe-* | thumb-* \
--	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
- 	| tron-* \
-+	| ubicom32-* \
- 	| v850-* | v850e-* | vax-* \
- 	| we32k-* \
--	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
--	| xtensa-* \
-+	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
-+	| xstormy16-* | xtensa*-* \
- 	| ymp-* \
--	| z8k-*)
-+	| z8k-* | z80-*)
-+		;;
-+	# Recognize the basic CPU types without company name, with glob match.
-+	xtensa*)
-+		basic_machine=$basic_machine-unknown
- 		;;
- 	# Recognize the various machine names and aliases which stand
- 	# for a CPU type and a company and sometimes even an OS.
-@@ -359,6 +410,9 @@ case $basic_machine in
- 		basic_machine=a29k-amd
- 		os=-udi
- 		;;
-+    	abacus)
-+		basic_machine=abacus-unknown
-+		;;
- 	adobe68k)
- 		basic_machine=m68010-adobe
- 		os=-scout
-@@ -376,6 +430,9 @@ case $basic_machine in
- 	amd64)
- 		basic_machine=x86_64-pc
- 		;;
-+	amd64-*)
-+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
- 	amdahl)
- 		basic_machine=580-amdahl
- 		os=-sysv
-@@ -399,6 +456,10 @@ case $basic_machine in
- 		basic_machine=m68k-apollo
- 		os=-bsd
- 		;;
-+	aros)
-+		basic_machine=i386-pc
-+		os=-aros
-+		;;
- 	aux)
- 		basic_machine=m68k-apple
- 		os=-aux
-@@ -407,10 +468,26 @@ case $basic_machine in
- 		basic_machine=ns32k-sequent
- 		os=-dynix
- 		;;
-+	blackfin)
-+		basic_machine=bfin-unknown
-+		os=-linux
-+		;;
-+	blackfin-*)
-+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		os=-linux
-+		;;
-+	bluegene*)
-+		basic_machine=powerpc-ibm
-+		os=-cnk
-+		;;
- 	c90)
- 		basic_machine=c90-cray
- 		os=-unicos
- 		;;
-+        cegcc)
-+		basic_machine=arm-unknown
-+		os=-cegcc
-+		;;
- 	convex-c1)
- 		basic_machine=c1-convex
- 		os=-bsd
-@@ -435,12 +512,27 @@ case $basic_machine in
- 		basic_machine=j90-cray
- 		os=-unicos
- 		;;
-+	craynv)
-+		basic_machine=craynv-cray
-+		os=-unicosmp
-+		;;
-+	cr16)
-+		basic_machine=cr16-unknown
-+		os=-elf
-+		;;
- 	crds | unos)
- 		basic_machine=m68k-crds
- 		;;
-+	crisv32 | crisv32-* | etraxfs*)
-+		basic_machine=crisv32-axis
-+		;;
- 	cris | cris-* | etrax*)
- 		basic_machine=cris-axis
- 		;;
-+	crx)
-+		basic_machine=crx-unknown
-+		os=-elf
-+		;;
- 	da30 | da30-*)
- 		basic_machine=m68k-da30
- 		;;
-@@ -463,6 +555,14 @@ case $basic_machine in
- 		basic_machine=m88k-motorola
- 		os=-sysv3
- 		;;
-+	dicos)
-+		basic_machine=i686-pc
-+		os=-dicos
-+		;;
-+	djgpp)
-+		basic_machine=i586-pc
-+		os=-msdosdjgpp
-+		;;
- 	dpx20 | dpx20-*)
- 		basic_machine=rs6000-bull
- 		os=-bosx
-@@ -613,6 +713,14 @@ case $basic_machine in
- 		basic_machine=m68k-isi
- 		os=-sysv
- 		;;
-+	m68knommu)
-+		basic_machine=m68k-unknown
-+		os=-linux
-+		;;
-+	m68knommu-*)
-+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		os=-linux
-+		;;
- 	m88k-omron*)
- 		basic_machine=m88k-omron
- 		;;
-@@ -624,10 +732,17 @@ case $basic_machine in
- 		basic_machine=ns32k-utek
- 		os=-sysv
- 		;;
-+        microblaze)
-+		basic_machine=microblaze-xilinx
-+		;;
- 	mingw32)
- 		basic_machine=i386-pc
- 		os=-mingw32
- 		;;
-+	mingw32ce)
-+		basic_machine=arm-unknown
-+		os=-mingw32ce
-+		;;
- 	miniframe)
- 		basic_machine=m68000-convergent
- 		;;
-@@ -641,10 +756,6 @@ case $basic_machine in
- 	mips3*)
- 		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- 		;;
--	mmix*)
--		basic_machine=mmix-knuth
--		os=-mmixware
--		;;
- 	monitor)
- 		basic_machine=m68k-rom68k
- 		os=-coff
-@@ -657,6 +768,9 @@ case $basic_machine in
- 		basic_machine=i386-pc
- 		os=-msdos
- 		;;
-+	ms1-*)
-+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
-+		;;
- 	mvs)
- 		basic_machine=i370-ibm
- 		os=-mvs
-@@ -725,10 +839,6 @@ case $basic_machine in
- 	np1)
- 		basic_machine=np1-gould
- 		;;
--	nv1)
--		basic_machine=nv1-cray
--		os=-unicosmp
--		;;
- 	nsr-tandem)
- 		basic_machine=nsr-tandem
- 		;;
-@@ -736,9 +846,12 @@ case $basic_machine in
- 		basic_machine=hppa1.1-oki
- 		os=-proelf
- 		;;
--	or32 | or32-*)
-+	openrisc | openrisc-*)
- 		basic_machine=or32-unknown
--		os=-coff
-+		;;
-+	os400)
-+		basic_machine=powerpc-ibm
-+		os=-os400
- 		;;
- 	OSE68000 | ose68000)
- 		basic_machine=m68000-ericsson
-@@ -756,6 +869,14 @@ case $basic_machine in
- 		basic_machine=i860-intel
- 		os=-osf
- 		;;
-+	parisc)
-+		basic_machine=hppa-unknown
-+		os=-linux
-+		;;
-+	parisc-*)
-+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		os=-linux
-+		;;
- 	pbd)
- 		basic_machine=sparc-tti
- 		;;
-@@ -765,6 +886,12 @@ case $basic_machine in
- 	pc532 | pc532-*)
- 		basic_machine=ns32k-pc532
- 		;;
-+	pc98)
-+		basic_machine=i386-pc
-+		;;
-+	pc98-*)
-+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
-+		;;
- 	pentium | p5 | k5 | k6 | nexgen | viac3)
- 		basic_machine=i586-pc
- 		;;
-@@ -821,6 +948,10 @@ case $basic_machine in
- 		basic_machine=i586-unknown
- 		os=-pw32
- 		;;
-+	rdos)
-+		basic_machine=i386-pc
-+		os=-rdos
-+		;;
- 	rom68k)
- 		basic_machine=m68k-rom68k
- 		os=-coff
-@@ -847,6 +978,10 @@ case $basic_machine in
- 	sb1el)
- 		basic_machine=mipsisa64sb1el-unknown
- 		;;
-+	sde)
-+		basic_machine=mipsisa32-sde
-+		os=-elf
-+		;;
- 	sei)
- 		basic_machine=mips-sei
- 		os=-seiux
-@@ -858,6 +993,9 @@ case $basic_machine in
- 		basic_machine=sh-hitachi
- 		os=-hms
- 		;;
-+	sh5el)
-+		basic_machine=sh5le-unknown
-+		;;
- 	sh64)
- 		basic_machine=sh64-unknown
- 		;;
-@@ -947,6 +1085,10 @@ case $basic_machine in
- 		basic_machine=tic6x-unknown
- 		os=-coff
- 		;;
-+	tile*)
-+		basic_machine=tile-unknown
-+		os=-linux-gnu
-+		;;
- 	tx39)
- 		basic_machine=mipstx39-unknown
- 		;;
-@@ -960,6 +1102,10 @@ case $basic_machine in
- 	tower | tower-32)
- 		basic_machine=m68k-ncr
- 		;;
-+	tpf)
-+		basic_machine=s390x-ibm
-+		os=-tpf
-+		;;
- 	udi29k)
- 		basic_machine=a29k-amd
- 		os=-udi
-@@ -1003,6 +1149,10 @@ case $basic_machine in
- 		basic_machine=hppa1.1-winbond
- 		os=-proelf
- 		;;
-+	xbox)
-+		basic_machine=i686-pc
-+		os=-mingw32
-+		;;
- 	xps | xps100)
- 		basic_machine=xps100-honeywell
- 		;;
-@@ -1014,6 +1164,10 @@ case $basic_machine in
- 		basic_machine=z8k-unknown
- 		os=-sim
- 		;;
-+	z80-*-coff)
-+		basic_machine=z80-unknown
-+		os=-sim
-+		;;
- 	none)
- 		basic_machine=none-none
- 		os=-none
-@@ -1033,6 +1187,9 @@ case $basic_machine in
- 	romp)
- 		basic_machine=romp-ibm
- 		;;
-+	mmix)
-+		basic_machine=mmix-knuth
-+		;;
- 	rs6000)
- 		basic_machine=rs6000-ibm
- 		;;
-@@ -1049,13 +1206,10 @@ case $basic_machine in
- 	we32k)
- 		basic_machine=we32k-att
- 		;;
--	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
-+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
- 		basic_machine=sh-unknown
- 		;;
--	sh64)
--		basic_machine=sh64-unknown
--		;;
--	sparc | sparcv9 | sparcv9b)
-+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
- 		basic_machine=sparc-sun
- 		;;
- 	cydra)
-@@ -1102,6 +1256,9 @@ case $os in
-         # First match some system type aliases
-         # that might get confused with valid system types.
- 	# -solaris* is a basic system type, with this one exception.
-+        -auroraux)
-+	        os=-auroraux
-+		;;
- 	-solaris1 | -solaris1.*)
- 		os=`echo $os | sed -e 's|solaris1|sunos4|'`
- 		;;
-@@ -1122,25 +1279,30 @@ case $os in
- 	# Each alternative MUST END IN A *, to match a version number.
- 	# -sysv* is not here because it comes later, after sysvr4.
- 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
--	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
--	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
-+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-+	      | -sym* | -kopensolaris* \
- 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
--	      | -aos* \
-+	      | -aos* | -aros* \
- 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
--	      | -hiux* | -386bsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \
--	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-+	      | -openbsd* | -solidbsd* \
-+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
-+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
--	      | -chorusos* | -chorusrdb* \
-+	      | -chorusos* | -chorusrdb* | -cegcc* \
- 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
--	      | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
-+	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
-+	      | -uxpv* | -beos* | -mpeix* | -udk* \
- 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- 	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
--	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei*)
-+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
- 	# Remember, each alternative MUST END IN *, to match a version number.
- 		;;
- 	-qnx*)
-@@ -1158,12 +1320,15 @@ case $os in
- 		os=`echo $os | sed -e 's|nto|nto-qnx|'`
- 		;;
- 	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
--	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
-+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
- 	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- 		;;
- 	-mac*)
- 		os=`echo $os | sed -e 's|mac|macos|'`
- 		;;
-+	-linux-dietlibc)
-+		os=-linux-dietlibc
-+		;;
- 	-linux*)
- 		os=`echo $os | sed -e 's|linux|linux-gnu|'`
- 		;;
-@@ -1176,6 +1341,9 @@ case $os in
- 	-opened*)
- 		os=-openedition
- 		;;
-+        -os400*)
-+		os=-os400
-+		;;
- 	-wince*)
- 		os=-wince
- 		;;
-@@ -1197,6 +1365,9 @@ case $os in
- 	-atheos*)
- 		os=-atheos
- 		;;
-+	-syllable*)
-+		os=-syllable
-+		;;
- 	-386bsd)
- 		os=-bsd
- 		;;
-@@ -1219,6 +1390,9 @@ case $os in
- 	-sinix*)
- 		os=-sysv4
- 		;;
-+        -tpf*)
-+		os=-tpf
-+		;;
- 	-triton*)
- 		os=-sysv3
- 		;;
-@@ -1255,6 +1429,12 @@ case $os in
- 	-kaos*)
- 		os=-kaos
- 		;;
-+	-zvmoe)
-+		os=-zvmoe
-+		;;
-+	-dicos*)
-+		os=-dicos
-+		;;
- 	-none)
- 		;;
- 	*)
-@@ -1277,6 +1457,12 @@ else
- # system, and we'll never get to this point.
- 
- case $basic_machine in
-+        score-*)
-+		os=-elf
-+		;;
-+        spu-*)
-+		os=-elf
-+		;;
- 	*-acorn)
- 		os=-riscix1.2
- 		;;
-@@ -1286,9 +1472,9 @@ case $basic_machine in
- 	arm*-semi)
- 		os=-aout
- 		;;
--    c4x-* | tic4x-*)
--        os=-coff
--        ;;
-+        c4x-* | tic4x-*)
-+        	os=-coff
-+		;;
- 	# This must come before the *-dec entry.
- 	pdp10-*)
- 		os=-tops20
-@@ -1314,6 +1500,9 @@ case $basic_machine in
- 	m68*-cisco)
- 		os=-aout
- 		;;
-+        mep-*)
-+		os=-elf
-+		;;
- 	mips*-cisco)
- 		os=-elf
- 		;;
-@@ -1332,9 +1521,15 @@ case $basic_machine in
- 	*-be)
- 		os=-beos
- 		;;
-+	*-haiku)
-+		os=-haiku
-+		;;
- 	*-ibm)
- 		os=-aix
- 		;;
-+    	*-knuth)
-+		os=-mmixware
-+		;;
- 	*-wec)
- 		os=-proelf
- 		;;
-@@ -1437,7 +1632,7 @@ case $basic_machine in
- 			-sunos*)
- 				vendor=sun
- 				;;
--			-aix*)
-+			-cnk*|-aix*)
- 				vendor=ibm
- 				;;
- 			-beos*)
-@@ -1467,9 +1662,15 @@ case $basic_machine in
- 			-mvs* | -opened*)
- 				vendor=ibm
- 				;;
-+			-os400*)
-+				vendor=ibm
-+				;;
- 			-ptx*)
- 				vendor=sequent
- 				;;
-+			-tpf*)
-+				vendor=ibm
-+				;;
- 			-vxsim* | -vxworks* | -windiss*)
- 				vendor=wrs
- 				;;
-@@ -1494,7 +1695,7 @@ case $basic_machine in
- esac
- 
- echo $basic_machine$os
--exit 0
-+exit
- 
- # Local variables:
- # eval: (add-hook 'write-file-hooks 'time-stamp)
 diff --git a/config.h.in b/config.h.in
 index adddf6f..3aad469 100644
 --- a/config.h.in
@@ -5677,6 +3401,332 @@
  @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/strndup.Plo at am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/strnlen.Plo at am__quote@
  @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/strnlen1.Plo at am__quote@
+diff --git a/gnulib/lib/rawmemchr.c b/gnulib/lib/rawmemchr.c
+new file mode 100644
+index 0000000..ef81f96
+--- /dev/null
++++ b/gnulib/lib/rawmemchr.c
+@@ -0,0 +1,136 @@
++/* Searching in a string.
++   Copyright (C) 2008-2011 Free Software Foundation, Inc.
++
++   This program is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as published by
++   the Free Software Foundation; either version 2.1 of the License, or
++   (at your option) any later version.
++
++   This program is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
++
++#include <config.h>
++
++/* Specification.  */
++#include <string.h>
++
++/* Find the first occurrence of C in S.  */
++void *
++rawmemchr (const void *s, int c_in)
++{
++  /* On 32-bit hardware, choosing longword to be a 32-bit unsigned
++     long instead of a 64-bit uintmax_t tends to give better
++     performance.  On 64-bit hardware, unsigned long is generally 64
++     bits already.  Change this typedef to experiment with
++     performance.  */
++  typedef unsigned long int longword;
++
++  const unsigned char *char_ptr;
++  const longword *longword_ptr;
++  longword repeated_one;
++  longword repeated_c;
++  unsigned char c;
++
++  c = (unsigned char) c_in;
++
++  /* Handle the first few bytes by reading one byte at a time.
++     Do this until CHAR_PTR is aligned on a longword boundary.  */
++  for (char_ptr = (const unsigned char *) s;
++       (size_t) char_ptr % sizeof (longword) != 0;
++       ++char_ptr)
++    if (*char_ptr == c)
++      return (void *) char_ptr;
++
++  longword_ptr = (const longword *) char_ptr;
++
++  /* All these elucidatory comments refer to 4-byte longwords,
++     but the theory applies equally well to any size longwords.  */
++
++  /* Compute auxiliary longword values:
++     repeated_one is a value which has a 1 in every byte.
++     repeated_c has c in every byte.  */
++  repeated_one = 0x01010101;
++  repeated_c = c | (c << 8);
++  repeated_c |= repeated_c << 16;
++  if (0xffffffffU < (longword) -1)
++    {
++      repeated_one |= repeated_one << 31 << 1;
++      repeated_c |= repeated_c << 31 << 1;
++      if (8 < sizeof (longword))
++        {
++          size_t i;
++
++          for (i = 64; i < sizeof (longword) * 8; i *= 2)
++            {
++              repeated_one |= repeated_one << i;
++              repeated_c |= repeated_c << i;
++            }
++        }
++    }
++
++  /* Instead of the traditional loop which tests each byte, we will
++     test a longword at a time.  The tricky part is testing if *any of
++     the four* bytes in the longword in question are equal to NUL or
++     c.  We first use an xor with repeated_c.  This reduces the task
++     to testing whether *any of the four* bytes in longword1 is zero.
++
++     We compute tmp =
++       ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7).
++     That is, we perform the following operations:
++       1. Subtract repeated_one.
++       2. & ~longword1.
++       3. & a mask consisting of 0x80 in every byte.
++     Consider what happens in each byte:
++       - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff,
++         and step 3 transforms it into 0x80.  A carry can also be propagated
++         to more significant bytes.
++       - If a byte of longword1 is nonzero, let its lowest 1 bit be at
++         position k (0 <= k <= 7); so the lowest k bits are 0.  After step 1,
++         the byte ends in a single bit of value 0 and k bits of value 1.
++         After step 2, the result is just k bits of value 1: 2^k - 1.  After
++         step 3, the result is 0.  And no carry is produced.
++     So, if longword1 has only non-zero bytes, tmp is zero.
++     Whereas if longword1 has a zero byte, call j the position of the least
++     significant zero byte.  Then the result has a zero at positions 0, ...,
++     j-1 and a 0x80 at position j.  We cannot predict the result at the more
++     significant bytes (positions j+1..3), but it does not matter since we
++     already have a non-zero bit at position 8*j+7.
++
++     The test whether any byte in longword1 is zero is equivalent
++     to testing whether tmp is nonzero.
++
++     This test can read beyond the end of a string, depending on where
++     C_IN is encountered.  However, this is considered safe since the
++     initialization phase ensured that the read will be aligned,
++     therefore, the read will not cross page boundaries and will not
++     cause a fault.  */
++
++  while (1)
++    {
++      longword longword1 = *longword_ptr ^ repeated_c;
++
++      if ((((longword1 - repeated_one) & ~longword1)
++           & (repeated_one << 7)) != 0)
++        break;
++      longword_ptr++;
++    }
++
++  char_ptr = (const unsigned char *) longword_ptr;
++
++  /* At this point, we know that one of the sizeof (longword) bytes
++     starting at char_ptr is == c.  On little-endian machines, we
++     could determine the first such byte without any further memory
++     accesses, just by looking at the tmp result from the last loop
++     iteration.  But this does not work on big-endian machines.
++     Choose code that works in both cases.  */
++
++  char_ptr = (unsigned char *) longword_ptr;
++  while (*char_ptr != c)
++    char_ptr++;
++  return (void *) char_ptr;
++}
+diff --git a/gnulib/lib/rawmemchr.valgrind b/gnulib/lib/rawmemchr.valgrind
+new file mode 100644
+index 0000000..6363923
+--- /dev/null
++++ b/gnulib/lib/rawmemchr.valgrind
+@@ -0,0 +1,12 @@
++# Suppress a valgrind message about use of uninitialized memory in rawmemchr().
++# This use is OK because it provides only a speedup.
++{
++    rawmemchr-value4
++    Memcheck:Value4
++    fun:rawmemchr
++}
++{
++    rawmemchr-value8
++    Memcheck:Value8
++    fun:rawmemchr
++}
+diff --git a/gnulib/lib/strchrnul.c b/gnulib/lib/strchrnul.c
+new file mode 100644
+index 0000000..d3b077f
+--- /dev/null
++++ b/gnulib/lib/strchrnul.c
+@@ -0,0 +1,142 @@
++/* Searching in a string.
++   Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc.
++
++   This program is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as published by
++   the Free Software Foundation; either version 2.1 of the License, or
++   (at your option) any later version.
++
++   This program is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
++
++#include <config.h>
++
++/* Specification.  */
++#include <string.h>
++
++/* Find the first occurrence of C in S or the final NUL byte.  */
++char *
++strchrnul (const char *s, int c_in)
++{
++  /* On 32-bit hardware, choosing longword to be a 32-bit unsigned
++     long instead of a 64-bit uintmax_t tends to give better
++     performance.  On 64-bit hardware, unsigned long is generally 64
++     bits already.  Change this typedef to experiment with
++     performance.  */
++  typedef unsigned long int longword;
++
++  const unsigned char *char_ptr;
++  const longword *longword_ptr;
++  longword repeated_one;
++  longword repeated_c;
++  unsigned char c;
++
++  c = (unsigned char) c_in;
++  if (!c)
++    return rawmemchr (s, 0);
++
++  /* Handle the first few bytes by reading one byte at a time.
++     Do this until CHAR_PTR is aligned on a longword boundary.  */
++  for (char_ptr = (const unsigned char *) s;
++       (size_t) char_ptr % sizeof (longword) != 0;
++       ++char_ptr)
++    if (!*char_ptr || *char_ptr == c)
++      return (char *) char_ptr;
++
++  longword_ptr = (const longword *) char_ptr;
++
++  /* All these elucidatory comments refer to 4-byte longwords,
++     but the theory applies equally well to any size longwords.  */
++
++  /* Compute auxiliary longword values:
++     repeated_one is a value which has a 1 in every byte.
++     repeated_c has c in every byte.  */
++  repeated_one = 0x01010101;
++  repeated_c = c | (c << 8);
++  repeated_c |= repeated_c << 16;
++  if (0xffffffffU < (longword) -1)
++    {
++      repeated_one |= repeated_one << 31 << 1;
++      repeated_c |= repeated_c << 31 << 1;
++      if (8 < sizeof (longword))
++        {
++          size_t i;
++
++          for (i = 64; i < sizeof (longword) * 8; i *= 2)
++            {
++              repeated_one |= repeated_one << i;
++              repeated_c |= repeated_c << i;
++            }
++        }
++    }
++
++  /* Instead of the traditional loop which tests each byte, we will
++     test a longword at a time.  The tricky part is testing if *any of
++     the four* bytes in the longword in question are equal to NUL or
++     c.  We first use an xor with repeated_c.  This reduces the task
++     to testing whether *any of the four* bytes in longword1 or
++     longword2 is zero.
++
++     Let's consider longword1.  We compute tmp =
++       ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7).
++     That is, we perform the following operations:
++       1. Subtract repeated_one.
++       2. & ~longword1.
++       3. & a mask consisting of 0x80 in every byte.
++     Consider what happens in each byte:
++       - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff,
++         and step 3 transforms it into 0x80.  A carry can also be propagated
++         to more significant bytes.
++       - If a byte of longword1 is nonzero, let its lowest 1 bit be at
++         position k (0 <= k <= 7); so the lowest k bits are 0.  After step 1,
++         the byte ends in a single bit of value 0 and k bits of value 1.
++         After step 2, the result is just k bits of value 1: 2^k - 1.  After
++         step 3, the result is 0.  And no carry is produced.
++     So, if longword1 has only non-zero bytes, tmp is zero.
++     Whereas if longword1 has a zero byte, call j the position of the least
++     significant zero byte.  Then the result has a zero at positions 0, ...,
++     j-1 and a 0x80 at position j.  We cannot predict the result at the more
++     significant bytes (positions j+1..3), but it does not matter since we
++     already have a non-zero bit at position 8*j+7.
++
++     The test whether any byte in longword1 or longword2 is zero is equivalent
++     to testing whether tmp1 is nonzero or tmp2 is nonzero.  We can combine
++     this into a single test, whether (tmp1 | tmp2) is nonzero.
++
++     This test can read more than one byte beyond the end of a string,
++     depending on where the terminating NUL is encountered.  However,
++     this is considered safe since the initialization phase ensured
++     that the read will be aligned, therefore, the read will not cross
++     page boundaries and will not cause a fault.  */
++
++  while (1)
++    {
++      longword longword1 = *longword_ptr ^ repeated_c;
++      longword longword2 = *longword_ptr;
++
++      if (((((longword1 - repeated_one) & ~longword1)
++            | ((longword2 - repeated_one) & ~longword2))
++           & (repeated_one << 7)) != 0)
++        break;
++      longword_ptr++;
++    }
++
++  char_ptr = (const unsigned char *) longword_ptr;
++
++  /* At this point, we know that one of the sizeof (longword) bytes
++     starting at char_ptr is == 0 or == c.  On little-endian machines,
++     we could determine the first such byte without any further memory
++     accesses, just by looking at the tmp result from the last loop
++     iteration.  But this does not work on big-endian machines.
++     Choose code that works in both cases.  */
++
++  char_ptr = (unsigned char *) longword_ptr;
++  while (*char_ptr && (*char_ptr != c))
++    char_ptr++;
++  return (char *) char_ptr;
++}
+diff --git a/gnulib/lib/strchrnul.valgrind b/gnulib/lib/strchrnul.valgrind
+new file mode 100644
+index 0000000..b14fa13
+--- /dev/null
++++ b/gnulib/lib/strchrnul.valgrind
+@@ -0,0 +1,12 @@
++# Suppress a valgrind message about use of uninitialized memory in strchrnul().
++# This use is OK because it provides only a speedup.
++{
++    strchrnul-value4
++    Memcheck:Value4
++    fun:strchrnul
++}
++{
++    strchrnul-value8
++    Memcheck:Value8
++    fun:strchrnul
++}
 diff --git a/gnulib/m4/gnulib-comp.m4 b/gnulib/m4/gnulib-comp.m4
 index e42948b..2aca838 100644
 --- a/gnulib/m4/gnulib-comp.m4
@@ -5780,6 +3830,60 @@
    tests/test-string.c
    tests/test-strnlen.c
    tests/test-strstr.c
+diff --git a/gnulib/m4/rawmemchr.m4 b/gnulib/m4/rawmemchr.m4
+new file mode 100644
+index 0000000..542cba1
+--- /dev/null
++++ b/gnulib/m4/rawmemchr.m4
+@@ -0,0 +1,21 @@
++# rawmemchr.m4 serial 1
++dnl Copyright (C) 2003, 2007-2011 Free Software Foundation, Inc.
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
++
++AC_DEFUN([gl_FUNC_RAWMEMCHR],
++[
++  dnl Persuade glibc <string.h> to declare rawmemchr().
++  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
++
++  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REPLACE_FUNCS([rawmemchr])
++  if test $ac_cv_func_rawmemchr = no; then
++    HAVE_RAWMEMCHR=0
++    gl_PREREQ_RAWMEMCHR
++  fi
++])
++
++# Prerequisites of lib/strchrnul.c.
++AC_DEFUN([gl_PREREQ_RAWMEMCHR], [:])
+diff --git a/gnulib/m4/strchrnul.m4 b/gnulib/m4/strchrnul.m4
+new file mode 100644
+index 0000000..a64e805
+--- /dev/null
++++ b/gnulib/m4/strchrnul.m4
+@@ -0,0 +1,21 @@
++# strchrnul.m4 serial 7
++dnl Copyright (C) 2003, 2007, 2009-2011 Free Software Foundation, Inc.
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
++
++AC_DEFUN([gl_FUNC_STRCHRNUL],
++[
++  dnl Persuade glibc <string.h> to declare strchrnul().
++  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
++
++  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REPLACE_FUNCS([strchrnul])
++  if test $ac_cv_func_strchrnul = no; then
++    HAVE_STRCHRNUL=0
++    gl_PREREQ_STRCHRNUL
++  fi
++])
++
++# Prerequisites of lib/strchrnul.c.
++AC_DEFUN([gl_PREREQ_STRCHRNUL], [:])
 diff --git a/gnulib/tests/Makefile.am b/gnulib/tests/Makefile.am
 index 3676a7d..2331f4b 100644
 --- a/gnulib/tests/Makefile.am
@@ -6049,6 +4153,104 @@
  test-string.log: test-string$(EXEEXT)
  	@p='test-string$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
  test-strnlen.log: test-strnlen$(EXEEXT)
+diff --git a/gnulib/tests/test-rawmemchr.c b/gnulib/tests/test-rawmemchr.c
+new file mode 100644
+index 0000000..be8feac
+--- /dev/null
++++ b/gnulib/tests/test-rawmemchr.c
+@@ -0,0 +1,92 @@
++/*
++ * Copyright (C) 2008-2011 Free Software Foundation, Inc.
++ * Written by Eric Blake and Bruno Haible
++ *
++ * This program is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program 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 General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
++
++#include <config.h>
++
++#include <string.h>
++
++#include "signature.h"
++SIGNATURE_CHECK (rawmemchr, void *, (void const *, int));
++
++#include <stdlib.h>
++
++#include "zerosize-ptr.h"
++#include "macros.h"
++
++/* Calculating void * + int is not portable, so this wrapper converts
++   to char * to make the tests easier to write.  */
++#define RAWMEMCHR (char *) rawmemchr
++
++int
++main (void)
++{
++  size_t n = 0x100000;
++  char *input = malloc (n + 1);
++  ASSERT (input);
++
++  input[0] = 'a';
++  input[1] = 'b';
++  memset (input + 2, 'c', 1024);
++  memset (input + 1026, 'd', n - 1028);
++  input[n - 2] = 'e';
++  input[n - 1] = 'a';
++  input[n] = '\0';
++
++  /* Basic behavior tests.  */
++  ASSERT (RAWMEMCHR (input, 'a') == input);
++  ASSERT (RAWMEMCHR (input, 'b') == input + 1);
++  ASSERT (RAWMEMCHR (input, 'c') == input + 2);
++  ASSERT (RAWMEMCHR (input, 'd') == input + 1026);
++
++  ASSERT (RAWMEMCHR (input + 1, 'a') == input + n - 1);
++  ASSERT (RAWMEMCHR (input + 1, 'e') == input + n - 2);
++  ASSERT (RAWMEMCHR (input + 1, 0x789abc00 | 'e') == input + n - 2);
++
++  ASSERT (RAWMEMCHR (input, '\0') == input + n);
++
++  /* Alignment tests.  */
++  {
++    int i, j;
++    for (i = 0; i < 32; i++)
++      {
++        for (j = 0; j < 256; j++)
++          input[i + j] = j;
++        for (j = 0; j < 256; j++)
++          {
++            ASSERT (RAWMEMCHR (input + i, j) == input + i + j);
++          }
++      }
++  }
++
++  /* Ensure that no unaligned oversized reads occur.  */
++  {
++    char *page_boundary = (char *) zerosize_ptr ();
++    size_t i;
++
++    if (!page_boundary)
++      page_boundary = input + 4096;
++    memset (page_boundary - 512, '1', 511);
++    page_boundary[-1] = '2';
++    for (i = 1; i <= 512; i++)
++      ASSERT (RAWMEMCHR (page_boundary - i, (i * 0x01010100) | '2')
++              == page_boundary - 1);
++  }
++
++  free (input);
++
++  return 0;
++}
 diff --git a/gnulib/tests/test-readlink.h b/gnulib/tests/test-readlink.h
 index 7247fc4..08d5662 100644
 --- a/gnulib/tests/test-readlink.h
@@ -6062,6 +4264,98 @@
    errno = 0;
    ASSERT (func (".", buf, sizeof buf) == -1);
    ASSERT (errno == EINVAL);
+diff --git a/gnulib/tests/test-strchrnul.c b/gnulib/tests/test-strchrnul.c
+new file mode 100644
+index 0000000..6ea8adc
+--- /dev/null
++++ b/gnulib/tests/test-strchrnul.c
+@@ -0,0 +1,86 @@
++/*
++ * Copyright (C) 2008-2011 Free Software Foundation, Inc.
++ * Written by Eric Blake and Bruno Haible
++ *
++ * This program is free software: you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 3 of the License, or
++ * (at your option) any later version.
++ *
++ * This program 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 General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
++
++#include <config.h>
++
++#include <string.h>
++
++#include "signature.h"
++SIGNATURE_CHECK (strchrnul, char *, (char const *, int));
++
++#include <stdlib.h>
++
++#include "macros.h"
++
++int
++main (void)
++{
++  size_t n = 0x100000;
++  char *input = malloc (n + 1);
++  ASSERT (input);
++
++  input[0] = 'a';
++  input[1] = 'b';
++  memset (input + 2, 'c', 1024);
++  memset (input + 1026, 'd', n - 1028);
++  input[n - 2] = 'e';
++  input[n - 1] = 'a';
++  input[n] = '\0';
++
++  /* Basic behavior tests.  */
++  ASSERT (strchrnul (input, 'a') == input);
++  ASSERT (strchrnul (input, 'b') == input + 1);
++  ASSERT (strchrnul (input, 'c') == input + 2);
++  ASSERT (strchrnul (input, 'd') == input + 1026);
++
++  ASSERT (strchrnul (input + 1, 'a') == input + n - 1);
++  ASSERT (strchrnul (input + 1, 'e') == input + n - 2);
++
++  ASSERT (strchrnul (input, 'f') == input + n);
++  ASSERT (strchrnul (input, '\0') == input + n);
++
++  /* Check that a very long haystack is handled quickly if the byte is
++     found near the beginning.  */
++  {
++    size_t repeat = 10000;
++    for (; repeat > 0; repeat--)
++      {
++        ASSERT (strchrnul (input, 'c') == input + 2);
++      }
++  }
++
++  /* Alignment tests.  */
++  {
++    int i, j;
++    for (i = 0; i < 32; i++)
++      {
++        for (j = 0; j < 256; j++)
++          input[i + j] = (j + 1) & 0xff;
++        for (j = 1; j < 256; j++)
++          {
++            ASSERT (strchrnul (input + i, j) == input + i + j - 1);
++            input[i + j - 1] = (j == 1 ? 2 : 1);
++            ASSERT (strchrnul (input + i, j) == input + i + 255);
++            input[i + j - 1] = j;
++          }
++      }
++  }
++
++  free (input);
++
++  return 0;
++}
 diff --git a/man/Makefile.in b/man/Makefile.in
 index ea5c7a1..86212c4 100644
 --- a/man/Makefile.in
@@ -6115,19 +4409,6 @@
  	$(top_srcdir)/gnulib/m4/string_h.m4 \
  	$(top_srcdir)/gnulib/m4/strndup.m4 \
  	$(top_srcdir)/gnulib/m4/strnlen.m4 \
-diff --git a/src/regexp.c b/src/regexp.c
-index cf0ea5d..811087d 100644
---- a/src/regexp.c
-+++ b/src/regexp.c
-@@ -50,7 +50,7 @@ char *regexp_escape(const struct regexp *r) {
-     ret = fa_restrict_alphabet(r->pattern->str, strlen(r->pattern->str),
-                                &nre, &nre_len, 2, 1);
-     if (ret == 0) {
--        pat = escape(nre, nre_len);
-+        pat = escape(nre, nre_len, RX_ESCAPES);
-         free(nre);
-     }
- #endif
 diff --git a/tests/Makefile.in b/tests/Makefile.in
 index a78da2c..f8b34a0 100644
 --- a/tests/Makefile.in
@@ -6148,22 +4429,6 @@
  	$(top_srcdir)/gnulib/m4/string_h.m4 \
  	$(top_srcdir)/gnulib/m4/strndup.m4 \
  	$(top_srcdir)/gnulib/m4/strnlen.m4 \
-diff --git a/tests/root/etc/crontab b/tests/root/etc/crontab
-deleted file mode 100644
-index 1ac6d26..0000000
---- a/tests/root/etc/crontab
-+++ /dev/null
-@@ -1,2 +0,0 @@
--0 0 * * * root echo hello
--1 0 * * * root echo hi
-diff --git a/tests/root/etc/squirrelmail/config.php b/tests/root/etc/squirrelmail/config.php
-deleted file mode 100644
-index acb6c35..0000000
---- a/tests/root/etc/squirrelmail/config.php
-+++ /dev/null
-@@ -1,2 +0,0 @@
--<?php
--?>
 -- 
 1.7.6.1
 

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the devel mailing list