OSDN Git Service

* Makefile.in (OBJS-common): Remove dwarfout.o.
[pf3gnuchains/gcc-fork.git] / gcc / configure
index 798361b..09b733d 100755 (executable)
@@ -21,6 +21,8 @@ ac_help="$ac_help
                           install the user visible C preprocessor in DIR
                           (relative to PREFIX) as well as PREFIX/bin"
 ac_help="$ac_help
+  --enable-generated-files-in-srcdir  Put generated files in source dir"
+ac_help="$ac_help
   --with-gnu-ld           arrange to work with GNU ld."
 ac_help="$ac_help
   --with-ld               arrange to use the specified ld (full pathname)"
@@ -34,7 +36,7 @@ ac_help="$ac_help
   --enable-checking[=LIST]
                          enable expensive run-time checks.  With LIST,
                          enable only specific categories of checks.
-                         Categories are: misc,tree,rtl,rtlflag,gc,gcac;
+                         Categories are: misc,tree,rtl,rtlflag,gc,gcac,fold;
                          default is misc,tree,gc,rtlflag"
 ac_help="$ac_help
   --enable-coverage[=LEVEL]
@@ -44,9 +46,9 @@ ac_help="$ac_help
                          optimization. Values are opt, noopt,
                          default is noopt"
 ac_help="$ac_help
-  --with-stabs            arrange to use stabs instead of host debug format"
+  --enable-gather-detailed-mem-stats         enable detailed memory allocation stats gathering"
 ac_help="$ac_help
-  --with-elf              arrange to use ELF instead of host debug format"
+  --with-stabs            arrange to use stabs instead of host debug format"
 ac_help="$ac_help
   --enable-multilib       enable library support for multiple ABIs"
 ac_help="$ac_help
@@ -64,6 +66,8 @@ ac_help="$ac_help
 ac_help="$ac_help
   --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR."
 ac_help="$ac_help
+  --enable-intermodule    build the compiler in one step"
+ac_help="$ac_help
   --with-libiconv-prefix=DIR  search for libiconv in DIR/include and DIR/lib"
 ac_help="$ac_help
   --enable-initfini-array      use .init_array/.fini_array sections"
@@ -81,7 +85,7 @@ ac_help="$ac_help
                           use KEY instead of GCC version as the last portion
                           of the registry key"
 ac_help="$ac_help
-  --with-gc={simple,page} choose the garbage collection mechanism to use
+  --with-gc={simple,page,zone} choose the garbage collection mechanism to use
                           with the compiler"
 ac_help="$ac_help
   --with-system-zlib      use installed libz"
@@ -655,7 +659,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:659: checking host system type" >&5
+echo "configure:663: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -676,7 +680,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$host" 1>&6
 
 echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:680: checking target system type" >&5
+echo "configure:684: checking target system type" >&5
 
 target_alias=$target
 case "$target_alias" in
@@ -694,7 +698,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$target" 1>&6
 
 echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:698: checking build system type" >&5
+echo "configure:702: checking build system type" >&5
 
 build_alias=$build
 case "$build_alias" in
@@ -717,7 +721,7 @@ test "$host_alias" != "$target_alias" &&
   program_prefix=${target_alias}-
 
 
-# Determine the target- and build-specific subdirectories
+# Determine the noncanonical target name, for directory use.
  case ${build_alias} in
   "") build_noncanonical=${build} ;;
   *) build_noncanonical=${build_alias} ;;
@@ -733,6 +737,8 @@ esac
   *) target_noncanonical=${target_alias} ;;
 esac
 
+
+# Determine the target- and build-specific subdirectories
   # Prefix 'build-' so this never conflicts with target_subdir.
 build_subdir="build-${build_noncanonical}"
 # Not really a subdirectory, but here for completeness.
@@ -771,7 +777,7 @@ test "$program_transform_name" = "" && program_transform_name="s,x,x,"
 # - two terminals occur directly after each other
 # - the path contains an element with a dot in it
 echo $ac_n "checking LIBRARY_PATH variable""... $ac_c" 1>&6
-echo "configure:775: checking LIBRARY_PATH variable" >&5
+echo "configure:781: checking LIBRARY_PATH variable" >&5
 case ${LIBRARY_PATH} in
   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
     library_path_setting="contains current directory"
@@ -796,7 +802,7 @@ fi
 # - two terminals occur directly after each other
 # - the path contains an element with a dot in it
 echo $ac_n "checking GCC_EXEC_PREFIX variable""... $ac_c" 1>&6
-echo "configure:800: checking GCC_EXEC_PREFIX variable" >&5
+echo "configure:806: checking GCC_EXEC_PREFIX variable" >&5
 case ${GCC_EXEC_PREFIX} in
   [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
     gcc_exec_prefix_setting="contains current directory"
@@ -871,6 +877,24 @@ fi
 fi
 
 
+# We would like to our source tree to be readonly.  However when releases or
+# pre-releases are generated, the flex/bison generated files as well as the 
+# various formats of manuals need to be included along with the rest of the
+# sources.  Therefore we have --enable-generated-files-in-srcdir to do 
+# just that.
+
+# Check whether --enable-generated-files-in-srcdir or --disable-generated-files-in-srcdir was given.
+if test "${enable_generated_files_in_srcdir+set}" = set; then
+  enableval="$enable_generated_files_in_srcdir"
+  case ${enableval} in
+  no)    parsedir='$(objdir)'; docobjdir='$(objdir)/doc';;
+  *)     parsedir='$(srcdir)'; docobjdir='$(srcdir)/doc';;
+esac
+else
+  parsedir='$(objdir)'; docobjdir='$(objdir)/doc';
+fi
+
+
 # -------------------
 # Find default linker
 # -------------------
@@ -905,7 +929,7 @@ EOF
 fi
 
 echo $ac_n "checking whether a default linker was specified""... $ac_c" 1>&6
-echo "configure:909: checking whether a default linker was specified" >&5
+echo "configure:933: checking whether a default linker was specified" >&5
 if test x"${DEFAULT_LINKER+set}" = x"set"; then
   if test x"$gnu_ld_flag" = x"no"; then
     echo "$ac_t""yes ($DEFAULT_LINKER)" 1>&6
@@ -949,7 +973,7 @@ EOF
 fi
 
 echo $ac_n "checking whether a default assembler was specified""... $ac_c" 1>&6
-echo "configure:953: checking whether a default assembler was specified" >&5
+echo "configure:977: checking whether a default assembler was specified" >&5
 if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
   if test x"$gas_flag" = x"no"; then
     echo "$ac_t""yes ($DEFAULT_ASSEMBLER)" 1>&6
@@ -968,7 +992,7 @@ fi
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:972: checking for $ac_word" >&5
+echo "configure:996: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -998,7 +1022,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1002: checking for $ac_word" >&5
+echo "configure:1026: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1049,7 +1073,7 @@ fi
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1053: checking for $ac_word" >&5
+echo "configure:1077: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1081,7 +1105,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1085: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1109: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1092,12 +1116,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 1096 "configure"
+#line 1120 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:1101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1123,12 +1147,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1127: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1151: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1132: checking whether we are using GNU C" >&5
+echo "configure:1156: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1137,7 +1161,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1141: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1165: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1156,7 +1180,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1160: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1184: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1189,10 +1213,10 @@ fi
 
 if test "x$CC" != xcc; then
   echo $ac_n "checking whether $CC and cc understand -c and -o together""... $ac_c" 1>&6
-echo "configure:1193: checking whether $CC and cc understand -c and -o together" >&5
+echo "configure:1217: checking whether $CC and cc understand -c and -o together" >&5
 else
   echo $ac_n "checking whether cc understands -c and -o together""... $ac_c" 1>&6
-echo "configure:1196: checking whether cc understands -c and -o together" >&5
+echo "configure:1220: checking whether cc understands -c and -o together" >&5
 fi
 set dummy $CC; ac_cc="`echo $2 |
                       sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`"
@@ -1204,16 +1228,16 @@ else
 # We do the test twice because some compilers refuse to overwrite an
 # existing .o file with -o, though they will create one.
 ac_try='${CC-cc} -c conftest.c -o conftest.o 1>&5'
-if { (eval echo configure:1208: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
-   test -f conftest.o && { (eval echo configure:1209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
+if { (eval echo configure:1232: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
+   test -f conftest.o && { (eval echo configure:1233: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
 then
   eval ac_cv_prog_cc_${ac_cc}_c_o=yes
   if test "x$CC" != xcc; then
     # Test first that cc exists at all.
-    if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1214: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+    if { ac_try='cc -c conftest.c 1>&5'; { (eval echo configure:1238: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
       ac_try='cc -c conftest.c -o conftest.o 1>&5'
-      if { (eval echo configure:1216: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
-        test -f conftest.o && { (eval echo configure:1217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
+      if { (eval echo configure:1240: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } &&
+        test -f conftest.o && { (eval echo configure:1241: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; };
       then
         # cc works too.
         :
@@ -1253,21 +1277,21 @@ fi
 # -------------------------
 
 echo $ac_n "checking whether ${CC-cc} accepts -Wno-long-long""... $ac_c" 1>&6
-echo "configure:1257: checking whether ${CC-cc} accepts -Wno-long-long" >&5
+echo "configure:1281: checking whether ${CC-cc} accepts -Wno-long-long" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_no_long_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   save_CFLAGS="$CFLAGS"
 CFLAGS="-Wno-long-long"
 cat > conftest.$ac_ext <<EOF
-#line 1264 "configure"
+#line 1288 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:1271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1295: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_prog_cc_no_long_long=yes
 else
@@ -1283,7 +1307,7 @@ fi
 echo "$ac_t""$ac_cv_prog_cc_no_long_long" 1>&6
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1287: checking how to run the C preprocessor" >&5
+echo "configure:1311: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1298,13 +1322,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1302 "configure"
+#line 1326 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1308: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1332: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1315,13 +1339,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1319 "configure"
+#line 1343 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1325: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1349: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1332,13 +1356,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1336 "configure"
+#line 1360 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1342: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1366: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1363,21 +1387,21 @@ fi
 echo "$ac_t""$CPP" 1>&6
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:1367: checking for inline" >&5
+echo "configure:1391: checking for inline" >&5
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 1374 "configure"
+#line 1398 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:1381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -1404,19 +1428,19 @@ esac
 
 
 echo $ac_n "checking for long long int""... $ac_c" 1>&6
-echo "configure:1408: checking for long long int" >&5
+echo "configure:1432: checking for long long int" >&5
 if eval "test \"`echo '$''{'ac_cv_c_long_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1413 "configure"
+#line 1437 "configure"
 #include "confdefs.h"
 
 int main() {
 long long int i;
 ; return 0; }
 EOF
-if { (eval echo configure:1420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_long_long=yes
 else
@@ -1436,19 +1460,19 @@ EOF
 
   fi
 echo $ac_n "checking for __int64""... $ac_c" 1>&6
-echo "configure:1440: checking for __int64" >&5
+echo "configure:1464: checking for __int64" >&5
 if eval "test \"`echo '$''{'ac_cv_c___int64'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1445 "configure"
+#line 1469 "configure"
 #include "confdefs.h"
 
 int main() {
 __int64 i;
 ; return 0; }
 EOF
-if { (eval echo configure:1452: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1476: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c___int64=yes
 else
@@ -1469,19 +1493,19 @@ EOF
   fi
 
 echo $ac_n "checking for built-in _Bool""... $ac_c" 1>&6
-echo "configure:1473: checking for built-in _Bool" >&5
+echo "configure:1497: checking for built-in _Bool" >&5
 if eval "test \"`echo '$''{'gcc_cv_c__bool'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1478 "configure"
+#line 1502 "configure"
 #include "confdefs.h"
 
 int main() {
 _Bool foo;
 ; return 0; }
 EOF
-if { (eval echo configure:1485: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1509: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_c__bool=yes
 else
@@ -1505,13 +1529,13 @@ fi
 
 # sizeof(char) is 1 by definition.
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:1509: checking size of void *" >&5
+echo "configure:1533: checking size of void *" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
   cat > conftest.$ac_ext <<EOF
-#line 1515 "configure"
+#line 1539 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
 #include <sys/types.h>
@@ -1521,7 +1545,7 @@ int main() {
 switch (0) case 0: case (sizeof (void *) == $ac_size):;
 ; return 0; }
 EOF
-if { (eval echo configure:1525: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1549: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sizeof_void_p=$ac_size
 else
@@ -1544,13 +1568,13 @@ EOF
 
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:1548: checking size of short" >&5
+echo "configure:1572: checking size of short" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
   cat > conftest.$ac_ext <<EOF
-#line 1554 "configure"
+#line 1578 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
 #include <sys/types.h>
@@ -1560,7 +1584,7 @@ int main() {
 switch (0) case 0: case (sizeof (short) == $ac_size):;
 ; return 0; }
 EOF
-if { (eval echo configure:1564: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1588: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sizeof_short=$ac_size
 else
@@ -1583,13 +1607,13 @@ EOF
 
 
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:1587: checking size of int" >&5
+echo "configure:1611: checking size of int" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
   cat > conftest.$ac_ext <<EOF
-#line 1593 "configure"
+#line 1617 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
 #include <sys/types.h>
@@ -1599,7 +1623,7 @@ int main() {
 switch (0) case 0: case (sizeof (int) == $ac_size):;
 ; return 0; }
 EOF
-if { (eval echo configure:1603: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1627: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sizeof_int=$ac_size
 else
@@ -1622,13 +1646,13 @@ EOF
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:1626: checking size of long" >&5
+echo "configure:1650: checking size of long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
   cat > conftest.$ac_ext <<EOF
-#line 1632 "configure"
+#line 1656 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
 #include <sys/types.h>
@@ -1638,7 +1662,7 @@ int main() {
 switch (0) case 0: case (sizeof (long) == $ac_size):;
 ; return 0; }
 EOF
-if { (eval echo configure:1642: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1666: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sizeof_long=$ac_size
 else
@@ -1662,13 +1686,13 @@ EOF
 
 if test $ac_cv_c_long_long = yes; then
   echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:1666: checking size of long long" >&5
+echo "configure:1690: checking size of long long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
   cat > conftest.$ac_ext <<EOF
-#line 1672 "configure"
+#line 1696 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
 #include <sys/types.h>
@@ -1678,7 +1702,7 @@ int main() {
 switch (0) case 0: case (sizeof (long long) == $ac_size):;
 ; return 0; }
 EOF
-if { (eval echo configure:1682: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1706: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sizeof_long_long=$ac_size
 else
@@ -1703,13 +1727,13 @@ EOF
 fi
 if test $ac_cv_c___int64 = yes; then
   echo $ac_n "checking size of __int64""... $ac_c" 1>&6
-echo "configure:1707: checking size of __int64" >&5
+echo "configure:1731: checking size of __int64" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof___int64'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   for ac_size in 4 8 1 2 16 12  ; do # List sizes in rough order of prevalence.
   cat > conftest.$ac_ext <<EOF
-#line 1713 "configure"
+#line 1737 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
 #include <sys/types.h>
@@ -1719,7 +1743,7 @@ int main() {
 switch (0) case 0: case (sizeof (__int64) == $ac_size):;
 ; return 0; }
 EOF
-if { (eval echo configure:1723: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1747: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sizeof___int64=$ac_size
 else
@@ -1755,10 +1779,11 @@ else
 fi
 
 
+
 # Extract the first word of "${ac_tool_prefix}gnatbind", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gnatbind; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1762: checking for $ac_word" >&5
+echo "configure:1787: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1790,7 +1815,7 @@ if test -n "$ac_tool_prefix"; then
   # Extract the first word of "gnatbind", so it can be a program name with args.
 set dummy gnatbind; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1794: checking for $ac_word" >&5
+echo "configure:1819: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_GNATBIND'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1822,77 +1847,43 @@ else
 fi
 fi
 
-echo $ac_n "checking for compiler driver that understands Ada""... $ac_c" 1>&6
-echo "configure:1827: checking for compiler driver that understands Ada" >&5
-if eval "test \"`echo '$''{'gcc_cv_prog_adac'+set}'`\" = set"; then
+echo $ac_n "checking whether compiler driver understands Ada""... $ac_c" 1>&6
+echo "configure:1852: checking whether compiler driver understands Ada" >&5
+if eval "test \"`echo '$''{'gcc_cv_cc_supports_ada'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat >conftest.adb <<EOF
 procedure conftest is begin null; end conftest;
 EOF
-gcc_cv_prog_adac=no
-# Have to do ac_tool_prefix and user overrides by hand.
-for cand in ${ADAC+"$ADAC"} ${CC+"$CC"}        \
-           ${ac_tool_prefix}gcc        gcc             \
-           ${ac_tool_prefix}cc         cc              \
-           ${ac_tool_prefix}gnatgcc    gnatgcc         \
-           ${ac_tool_prefix}gnatcc     gnatcc          \
-           ${ac_tool_prefix}adagcc     adagcc          \
-           ${ac_tool_prefix}adacc      adacc           ; do
-  # There is a bug in all released versions of GCC which causes the
-  # driver to exit successfully when the appropriate language module
-  # has not been installed.  This is fixed in 2.95.4, 3.0.2, and 3.1.
-  # Therefore we must check for the error message as well as an
-  # unsuccessful exit.
-  errors=`($cand -c conftest.adb) 2>&1 || echo failure`
-  if test x"$errors" = x; then
-    gcc_cv_prog_adac=$cand
-    break
-  fi
-done
+gcc_cv_cc_supports_ada=no
+# There is a bug in old released versions of GCC which causes the
+# driver to exit successfully when the appropriate language module
+# has not been installed.  This is fixed in 2.95.4, 3.0.2, and 3.1.
+# Therefore we must check for the error message as well as an
+# unsuccessful exit.
+errors=`(${CC} -c conftest.adb) 2>&1 || echo failure`
+if test x"$errors" = x; then
+  gcc_cv_cc_supports_ada=yes
+  break
+fi
 rm -f conftest.*
 fi
 
-echo "$ac_t""$gcc_cv_prog_adac" 1>&6
-ADAC=$gcc_cv_prog_adac
+echo "$ac_t""$gcc_cv_cc_supports_ada" 1>&6
 
-
-if test x$GNATBIND != xno && test x$ADAC != xno; then
+if test x$GNATBIND != xno && test x$gcc_cv_supports_ada != xno; then
   have_gnat=yes
 else
   have_gnat=no
 fi
 
 
-if test x$have_gnat != xno ; then 
-echo $ac_n "checking whether ${ADAC} accepts -Wno-long-long""... $ac_c" 1>&6
-echo "configure:1870: checking whether ${ADAC} accepts -Wno-long-long" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_adac_no_long_long'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat >conftest.adb <<EOF
-procedure conftest is begin null; end conftest;
-EOF
-if $ADAC -Wno-long-long -c conftest.adb 1>&5 2>&5 ; then
-  ac_cv_prog_adac_no_long_long=yes
-else
-  ac_cv_prog_adac_no_long_long=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_prog_adac_no_long_long" 1>&6
-else
-  ac_cv_prog_adac_no_long_long=yes
-fi
-
 # ---------------------
 # Warnings and checking
 # ---------------------
 
 strict1_warn=
-if test $ac_cv_prog_cc_no_long_long = yes && \
-    test $ac_cv_prog_adac_no_long_long = yes ; then
+if test $ac_cv_prog_cc_no_long_long = yes ; then
   strict1_warn="-pedantic -Wno-long-long"
 fi
 
@@ -1931,6 +1922,7 @@ ac_rtl_checking=
 ac_rtlflag_checking=
 ac_gc_checking=
 ac_gc_always_collect=
+ac_fold_checking=
 case "${enableval}" in
 yes)   ac_checking=1 ; ac_tree_checking=1 ; ac_gc_checking=1 ;
        ac_rtlflag_checking=1 ;;
@@ -1947,6 +1939,7 @@ no)       ;;
                rtl)    ac_rtl_checking=1 ;;
                gc)     ac_gc_checking=1 ;;
                gcac)   ac_gc_always_collect=1 ;;
+               fold)   ac_fold_checking=1 ;;
                valgrind)       ac_checking_valgrind=1 ;;
                *)      { echo "configure: error: unknown check category $check" 1>&2; exit 1; } ;;
                esac
@@ -1998,70 +1991,103 @@ if test x$ac_gc_always_collect != x ; then
 EOF
 
 fi
+if test x$ac_fold_checking != x ; then
+  cat >> confdefs.h <<\EOF
+#define ENABLE_FOLD_CHECKING 1
+EOF
+
+fi
 valgrind_path_defines=
 valgrind_command=
+
+ac_safe=`echo "valgrind.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for valgrind.h""... $ac_c" 1>&6
+echo "configure:2006: checking for valgrind.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2011 "configure"
+#include "confdefs.h"
+#include <valgrind.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2016: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  have_valgrind_h=yes
+else
+  echo "$ac_t""no" 1>&6
+have_valgrind_h=no
+fi
+
+
 if test x$ac_checking_valgrind != x ; then
   # It is certainly possible that there's valgrind but no valgrind.h.
   # GCC relies on making annotations so we must have both.
-  echo $ac_n "checking for VALGRIND_DISCARD in <memcheck.h>""... $ac_c" 1>&6
-echo "configure:2008: checking for VALGRIND_DISCARD in <memcheck.h>" >&5
+  echo $ac_n "checking for VALGRIND_DISCARD in <valgrind/memcheck.h>""... $ac_c" 1>&6
+echo "configure:2043: checking for VALGRIND_DISCARD in <valgrind/memcheck.h>" >&5
   cat > conftest.$ac_ext <<EOF
-#line 2010 "configure"
+#line 2045 "configure"
 #include "confdefs.h"
-#include <memcheck.h>
+#include <valgrind/memcheck.h>
 #ifndef VALGRIND_DISCARD
 #error VALGRIND_DISCARD not defined
 #endif
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2018: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
-  gcc_cv_header_memcheck_h=yes
+  gcc_cv_header_valgrind_memcheck_h=yes
 else
   echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  gcc_cv_header_memcheck_h=no
+  gcc_cv_header_valgrind_memcheck_h=no
 fi
 rm -f conftest*
-  echo "$ac_t""$gcc_cv_header_memcheck_h" 1>&6
-  ac_safe=`echo "valgrind.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for valgrind.h""... $ac_c" 1>&6
-echo "configure:2034: checking for valgrind.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
+  echo "$ac_t""$gcc_cv_header_valgrind_memcheck_h" 1>&6
+  echo $ac_n "checking for VALGRIND_DISCARD in <memcheck.h>""... $ac_c" 1>&6
+echo "configure:2068: checking for VALGRIND_DISCARD in <memcheck.h>" >&5
   cat > conftest.$ac_ext <<EOF
-#line 2039 "configure"
+#line 2070 "configure"
 #include "confdefs.h"
-#include <valgrind.h>
+#include <memcheck.h>
+#ifndef VALGRIND_DISCARD
+#error VALGRIND_DISCARD not defined
+#endif
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2044: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2078: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+  gcc_cv_header_memcheck_h=yes
 else
   echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  gcc_cv_header_memcheck_h=no
 fi
 rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  have_valgrind_h=yes
-else
-  echo "$ac_t""no" 1>&6
-have_valgrind_h=no
-fi
-
+  echo "$ac_t""$gcc_cv_header_memcheck_h" 1>&6
   
 # Prepare PATH_SEPARATOR.
 # The user is always right.
@@ -2094,7 +2120,7 @@ rm -f conf$$.file
 # Extract the first word of "valgrind", so it can be a program name with args.
 set dummy valgrind; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2098: checking for $ac_word" >&5
+echo "configure:2124: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_valgrind_path'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2127,8 +2153,11 @@ else
   echo "$ac_t""no" 1>&6
 fi
 
-  if test "x$valgrind_path" = "x" || (test $have_valgrind_h = no && test $gcc_cv_header_memcheck_h = no); then
-       { echo "configure: error: *** Can't find both valgrind and valgrind.h/memcheck.h" 1>&2; exit 1; }
+  if test "x$valgrind_path" = "x" \
+    || (test $have_valgrind_h = no \
+       && test $gcc_cv_header_memcheck_h = no \
+       && test $gcc_cv_header_valgrind_memcheck_h = no); then
+       { echo "configure: error: *** Can't find both valgrind and valgrind/memcheck.h, memcheck.h or valgrind.h" 1>&2; exit 1; }
   fi
   valgrind_path_defines=-DVALGRIND_PATH='\"'$valgrind_path'\"'
   valgrind_command="$valgrind_path -q"
@@ -2136,6 +2165,12 @@ fi
 #define ENABLE_VALGRIND_CHECKING 1
 EOF
 
+  if test $gcc_cv_header_valgrind_memcheck_h = yes; then
+    cat >> confdefs.h <<\EOF
+#define HAVE_VALGRIND_MEMCHECK_H 1
+EOF
+
+  fi
   if test $gcc_cv_header_memcheck_h = yes; then
     cat >> confdefs.h <<\EOF
 #define HAVE_MEMCHECK_H 1
@@ -2167,6 +2202,21 @@ fi
 
 
 
+# Check whether --enable-gather-detailed-mem-stats or --disable-gather-detailed-mem-stats was given.
+if test "${enable_gather_detailed_mem_stats+set}" = set; then
+  enableval="$enable_gather_detailed_mem_stats"
+  :
+else
+  enable_gather_detailed_mem_stats=no
+fi
+
+if test x$enable_gather_detailed_mem_stats = xyes ; then
+  cat >> confdefs.h <<\EOF
+#define GATHER_STATISTICS 1
+EOF
+
+fi
+
 # -------------------------------
 # Miscenalleous configure options
 # -------------------------------
@@ -2181,16 +2231,6 @@ else
 fi
 
 
-# With ELF
-# Check whether --with-elf or --without-elf was given.
-if test "${with_elf+set}" = set; then
-  withval="$with_elf"
-  elf="$with_elf"
-else
-  elf=no
-fi
-
-
 # Determine whether or not multilibs are enabled.
 # Check whether --enable-multilib or --disable-multilib was given.
 if test "${enable_multilib+set}" = set; then
@@ -2221,27 +2261,8 @@ else
   enable_threads=''
 fi
 
-
+# Save in case it gets overwritten in config.gcc
 enable_threads_flag=$enable_threads
-# Check if a valid thread package
-case x${enable_threads_flag} in
-       x | xno)
-               # No threads
-               target_thread_file='single'
-               ;;
-       xyes)
-               # default
-               target_thread_file=''
-               ;;
-       xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \
-       xsolaris | xwin32 | xdce | xrtems| xvxworks | xaix | xgnat)
-               target_thread_file=$enable_threads_flag
-               ;;
-       *)
-               echo "$enable_threads is an unknown thread package" 1>&2
-               exit 1
-               ;;
-esac
 
 # Check whether --enable-objc-gc or --disable-objc-gc was given.
 if test "${enable_objc_gc+set}" = set; then
@@ -2294,7 +2315,7 @@ if test "${with_sysroot+set}" = set; then
   withval="$with_sysroot"
   
  case ${with_sysroot} in
- yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_alias}/sys-root' ;;
+ yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_noncanonical}/sys-root' ;;
  *) TARGET_SYSTEM_ROOT=$with_sysroot ;;
  esac
    
@@ -2330,12 +2351,26 @@ fi
 
 
 
+# Build with intermodule optimisations
+# Check whether --enable-intermodule or --disable-intermodule was given.
+if test "${enable_intermodule+set}" = set; then
+  enableval="$enable_intermodule"
+  case ${enable_intermodule} in
+  yes) onestep="-onestep";;
+  *) onestep="";;
+esac
+else
+  onestep=""
+fi
+
+
+
 # -------------------------
 # Checks for other programs
 # -------------------------
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:2339: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:2374: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2368,7 +2403,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2372: checking for $ac_word" >&5
+echo "configure:2407: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2397,8 +2432,14 @@ fi
 test -n "$AWK" && break
 done
 
+# We need awk to run opts.sh (to create options.c and options.h).
+# Bail out if it's missing.
+case ${AWK} in
+  "") { echo "configure: error: can't build without awk, bailing out" 1>&2; exit 1; } ;;
+esac
+
 echo $ac_n "checking whether ln works""... $ac_c" 1>&6
-echo "configure:2402: checking whether ln works" >&5
+echo "configure:2443: checking whether ln works" >&5
 if eval "test \"`echo '$''{'gcc_cv_prog_LN'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2430,7 +2471,7 @@ else
 fi
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:2434: checking whether ln -s works" >&5
+echo "configure:2475: checking whether ln -s works" >&5
 if eval "test \"`echo '$''{'gcc_cv_prog_LN_S'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2464,7 +2505,7 @@ fi
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2468: checking for $ac_word" >&5
+echo "configure:2509: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2502,7 +2543,7 @@ fi
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:2506: checking for a BSD compatible install" >&5
+echo "configure:2547: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2552,11 +2593,45 @@ test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 
+# See if cmp has --ignore-initial.
+echo $ac_n "checking for cmp's capabilities""... $ac_c" 1>&6
+echo "configure:2599: checking for cmp's capabilities" >&5
+if eval "test \"`echo '$''{'gcc_cv_prog_cmp_skip'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+   echo abfoo >t1
+  echo cdfoo >t2
+  gcc_cv_prog_cmp_skip=slowcompare
+  if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then
+    if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then
+      :
+    else
+      gcc_cv_prog_cmp_skip=gnucompare
+    fi
+  fi
+  if test $gcc_cv_prog_cmp_skip = slowcompare ; then
+    if cmp t1 t2 2 2 > /dev/null 2>&1; then
+      if cmp t1 t2 1 1 > /dev/null 2>&1; then
+        :
+      else
+        gcc_cv_prog_cmp_skip=fastcompare
+      fi
+    fi
+  fi
+  rm t1 t2
+
+fi
+
+echo "$ac_t""$gcc_cv_prog_cmp_skip" 1>&6
+make_compare_target=$gcc_cv_prog_cmp_skip
+
+
+
 # See if we have the mktemp command.
 # Extract the first word of "mktemp", so it can be a program name with args.
 set dummy mktemp; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2560: checking for $ac_word" >&5
+echo "configure:2635: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_have_mktemp_command'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2595,7 +2670,7 @@ else
   # Extract the first word of "makeinfo", so it can be a program name with args.
 set dummy makeinfo; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2599: checking for $ac_word" >&5
+echo "configure:2674: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2624,13 +2699,13 @@ fi
 if test -n "$MAKEINFO"; then
   # Found it, now check the version.
   echo $ac_n "checking for modern makeinfo""... $ac_c" 1>&6
-echo "configure:2628: checking for modern makeinfo" >&5
+echo "configure:2703: checking for modern makeinfo" >&5
 if eval "test \"`echo '$''{'gcc_cv_prog_makeinfo_modern'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     ac_prog_version=`$MAKEINFO --version 2>&1 |
                    sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
-  echo "configure:2634: version of makeinfo is $ac_prog_version" >&5
+  echo "configure:2709: version of makeinfo is $ac_prog_version" >&5
   case $ac_prog_version in
     '')     gcc_cv_prog_makeinfo_modern=no;;
     4.[2-9]*)
@@ -2658,7 +2733,7 @@ fi
 
 # Is pod2man recent enough to regenerate manpages?
 echo $ac_n "checking for recent Pod::Man""... $ac_c" 1>&6
-echo "configure:2662: checking for recent Pod::Man" >&5
+echo "configure:2737: checking for recent Pod::Man" >&5
 if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then
   echo "$ac_t""yes" 1>&6
   GENERATED_MANPAGES=generated-manpages                
@@ -2667,27 +2742,6 @@ else
   GENERATED_MANPAGES=
 fi
 
-# 'make compare' can be significantly faster, if cmp itself can
-# skip bytes instead of using tail.  The test being performed is
-# "if cmp --ignore-initial=2 t1 t2 && ! cmp --ignore-initial=1 t1 t2"
-# but we need to sink errors and handle broken shells.
-echo $ac_n "checking for cmp's capabilities""... $ac_c" 1>&6
-echo "configure:2676: checking for cmp's capabilities" >&5
-echo abfoo >t1
-echo cdfoo >t2
-if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then
-  if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then
-    make_compare_target=slowcompare
-  else
-    make_compare_target=gnucompare
-  fi
-else
-  make_compare_target=slowcompare
-fi
-rm t1 t2
-
-echo "$ac_t""$make_compare_target" 1>&6
-
 # How about lex?
 if test -f $srcdir/../flex/skel.c; then
   FLEX='$(objdir)/../flex/flex'
@@ -2695,7 +2749,7 @@ else
   # Extract the first word of "flex", so it can be a program name with args.
 set dummy flex; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2699: checking for $ac_word" >&5
+echo "configure:2753: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2732,7 +2786,7 @@ else
   # Extract the first word of "bison", so it can be a program name with args.
 set dummy bison; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2736: checking for $ac_word" >&5
+echo "configure:2790: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2766,12 +2820,12 @@ fi
 # --------------------
 
 echo $ac_n "checking for GNU C library""... $ac_c" 1>&6
-echo "configure:2770: checking for GNU C library" >&5
+echo "configure:2824: checking for GNU C library" >&5
 if eval "test \"`echo '$''{'gcc_cv_glibc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2775 "configure"
+#line 2829 "configure"
 #include "confdefs.h"
 #include <features.h>
 int main() {
@@ -2781,7 +2835,7 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:2785: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2839: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_glibc=yes
 else
@@ -2802,12 +2856,12 @@ EOF
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2806: checking for ANSI C header files" >&5
+echo "configure:2860: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2811 "configure"
+#line 2865 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -2815,7 +2869,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2819: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2873: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2832,7 +2886,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 2836 "configure"
+#line 2890 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -2850,7 +2904,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 2854 "configure"
+#line 2908 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -2871,7 +2925,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 2875 "configure"
+#line 2929 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -2882,7 +2936,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:2886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2940: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -2906,12 +2960,12 @@ EOF
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:2910: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:2964: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2915 "configure"
+#line 2969 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -2920,7 +2974,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:2924: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -2941,19 +2995,19 @@ EOF
 fi
 
 echo $ac_n "checking for working stdbool.h""... $ac_c" 1>&6
-echo "configure:2945: checking for working stdbool.h" >&5
+echo "configure:2999: checking for working stdbool.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdbool_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2950 "configure"
+#line 3004 "configure"
 #include "confdefs.h"
 #include <stdbool.h>
 int main() {
 bool foo = false;
 ; return 0; }
 EOF
-if { (eval echo configure:2957: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_stdbool_h=yes
 else
@@ -2974,12 +3028,12 @@ EOF
 fi
 
 echo $ac_n "checking whether string.h and strings.h may both be included""... $ac_c" 1>&6
-echo "configure:2978: checking whether string.h and strings.h may both be included" >&5
+echo "configure:3032: checking whether string.h and strings.h may both be included" >&5
 if eval "test \"`echo '$''{'gcc_cv_header_string'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2983 "configure"
+#line 3037 "configure"
 #include "confdefs.h"
 #include <string.h>
 #include <strings.h>
@@ -2987,7 +3041,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:2991: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3045: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_header_string=yes
 else
@@ -3008,12 +3062,12 @@ EOF
 fi
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:3012: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:3066: checking for sys/wait.h that is POSIX.1 compatible" >&5
 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3017 "configure"
+#line 3071 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -3029,7 +3083,7 @@ wait (&s);
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:3033: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3087: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -3056,17 +3110,17 @@ for ac_hdr in limits.h stddef.h string.h strings.h stdlib.h time.h \
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3060: checking for $ac_hdr" >&5
+echo "configure:3114: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3065 "configure"
+#line 3119 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3070: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3124: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3096,17 +3150,17 @@ done
 # Check for thread headers.
 ac_safe=`echo "thread.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for thread.h""... $ac_c" 1>&6
-echo "configure:3100: checking for thread.h" >&5
+echo "configure:3154: checking for thread.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3105 "configure"
+#line 3159 "configure"
 #include "confdefs.h"
 #include <thread.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3110: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3164: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3130,17 +3184,17 @@ fi
 
 ac_safe=`echo "pthread.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for pthread.h""... $ac_c" 1>&6
-echo "configure:3134: checking for pthread.h" >&5
+echo "configure:3188: checking for pthread.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3139 "configure"
+#line 3193 "configure"
 #include "confdefs.h"
 #include <pthread.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3144: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3198: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3165,12 +3219,12 @@ fi
 
 # These tests can't be done till we know if we have limits.h.
 echo $ac_n "checking for CHAR_BIT""... $ac_c" 1>&6
-echo "configure:3169: checking for CHAR_BIT" >&5
+echo "configure:3223: checking for CHAR_BIT" >&5
 if eval "test \"`echo '$''{'gcc_cv_decl_char_bit'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3174 "configure"
+#line 3228 "configure"
 #include "confdefs.h"
 #ifdef HAVE_LIMITS_H
 #include <limits.h>
@@ -3195,7 +3249,7 @@ fi
 echo "$ac_t""$gcc_cv_decl_char_bit" 1>&6
 if test $gcc_cv_decl_char_bit = no; then
   echo $ac_n "checking number of bits in a byte""... $ac_c" 1>&6
-echo "configure:3199: checking number of bits in a byte" >&5
+echo "configure:3253: checking number of bits in a byte" >&5
 if eval "test \"`echo '$''{'gcc_cv_c_nbby'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3203,7 +3257,7 @@ else
  gcc_cv_c_nbby=
  while test $i -lt 65; do
    cat > conftest.$ac_ext <<EOF
-#line 3207 "configure"
+#line 3261 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -3213,7 +3267,7 @@ switch(0) {
   ; }
 ; return 0; }
 EOF
-if { (eval echo configure:3217: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_c_nbby=$i; break
 else
@@ -3238,14 +3292,14 @@ EOF
 fi
 fi
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:3242: checking whether byte ordering is bigendian" >&5
+echo "configure:3296: checking whether byte ordering is bigendian" >&5
 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat > conftest.$ac_ext <<EOF
-#line 3249 "configure"
+#line 3303 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -3256,11 +3310,11 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3260: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3314: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat > conftest.$ac_ext <<EOF
-#line 3264 "configure"
+#line 3318 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -3271,7 +3325,7 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:3275: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3329: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -3291,7 +3345,7 @@ if test "$cross_compiling" = yes; then
    echo $ac_n "cross-compiling... " 2>&6 
 else
   cat > conftest.$ac_ext <<EOF
-#line 3295 "configure"
+#line 3349 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -3304,7 +3358,7 @@ main () {
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:3308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_bigendian=no
 else
@@ -3322,7 +3376,7 @@ fi
 echo "$ac_t""$ac_cv_c_bigendian" 1>&6
 if test $ac_cv_c_bigendian = unknown; then
 echo $ac_n "checking to probe for byte ordering""... $ac_c" 1>&6
-echo "configure:3326: checking to probe for byte ordering" >&5
+echo "configure:3380: checking to probe for byte ordering" >&5
 
 cat >conftest.c <<EOF
 short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
@@ -3402,7 +3456,7 @@ esac
 # These libraries may be used by collect2.
 # We may need a special search path to get them linked.
 echo $ac_n "checking for collect2 libraries""... $ac_c" 1>&6
-echo "configure:3406: checking for collect2 libraries" >&5
+echo "configure:3460: checking for collect2 libraries" >&5
 if eval "test \"`echo '$''{'gcc_cv_collect2_libs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3413,7 +3467,7 @@ for libs in '' -lld -lmld \
 do
        LIBS="$libs"
        cat > conftest.$ac_ext <<EOF
-#line 3417 "configure"
+#line 3471 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3424,7 +3478,7 @@ int main() {
 ldopen()
 ; return 0; }
 EOF
-if { (eval echo configure:3428: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   gcc_cv_collect2_libs="$libs"; break
 else
@@ -3450,14 +3504,14 @@ save_LIBS="$LIBS"
 LIBS=
 
 echo $ac_n "checking for library containing exc_resume""... $ac_c" 1>&6
-echo "configure:3454: checking for library containing exc_resume" >&5
+echo "configure:3508: checking for library containing exc_resume" >&5
 if eval "test \"`echo '$''{'ac_cv_search_exc_resume'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_func_search_save_LIBS="$LIBS"
 ac_cv_search_exc_resume="no"
 cat > conftest.$ac_ext <<EOF
-#line 3461 "configure"
+#line 3515 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3468,7 +3522,7 @@ int main() {
 exc_resume()
 ; return 0; }
 EOF
-if { (eval echo configure:3472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_search_exc_resume="none required"
 else
@@ -3479,7 +3533,7 @@ rm -f conftest*
 test "$ac_cv_search_exc_resume" = "no" && for i in exc; do
 LIBS="-l$i  $ac_func_search_save_LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3483 "configure"
+#line 3537 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3490,7 +3544,7 @@ int main() {
 exc_resume()
 ; return 0; }
 EOF
-if { (eval echo configure:3494: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_search_exc_resume="-l$i"
 break
@@ -3520,14 +3574,14 @@ save_LIBS="$LIBS"
 LIBS=
 
 echo $ac_n "checking for library containing ldexp""... $ac_c" 1>&6
-echo "configure:3524: checking for library containing ldexp" >&5
+echo "configure:3578: checking for library containing ldexp" >&5
 if eval "test \"`echo '$''{'ac_cv_search_ldexp'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_func_search_save_LIBS="$LIBS"
 ac_cv_search_ldexp="no"
 cat > conftest.$ac_ext <<EOF
-#line 3531 "configure"
+#line 3585 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3538,7 +3592,7 @@ int main() {
 ldexp()
 ; return 0; }
 EOF
-if { (eval echo configure:3542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3596: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_search_ldexp="none required"
 else
@@ -3549,7 +3603,7 @@ rm -f conftest*
 test "$ac_cv_search_ldexp" = "no" && for i in m; do
 LIBS="-l$i  $ac_func_search_save_LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3553 "configure"
+#line 3607 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3560,7 +3614,7 @@ int main() {
 ldexp()
 ; return 0; }
 EOF
-if { (eval echo configure:3564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_search_ldexp="-l$i"
 break
@@ -3587,12 +3641,12 @@ LIBS="$save_LIBS"
 # Use <inttypes.h> only if it exists,
 # doesn't clash with <sys/types.h>, and declares intmax_t.
 echo $ac_n "checking for inttypes.h""... $ac_c" 1>&6
-echo "configure:3591: checking for inttypes.h" >&5
+echo "configure:3645: checking for inttypes.h" >&5
 if eval "test \"`echo '$''{'gcc_cv_header_inttypes_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3596 "configure"
+#line 3650 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <inttypes.h>
@@ -3600,7 +3654,7 @@ int main() {
 intmax_t i = -1;
 ; return 0; }
 EOF
-if { (eval echo configure:3604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3658: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_header_inttypes_h=yes
 else
@@ -3623,17 +3677,17 @@ fi
 
 for ac_func in times clock dup2 kill getrlimit setrlimit atoll atoq \
        sysconf strsignal putc_unlocked fputc_unlocked fputs_unlocked \
-       fwrite_unlocked fprintf_unlocked getrusage nl_langinfo lstat \
+       fwrite_unlocked fprintf_unlocked getrusage nl_langinfo \
         scandir alphasort gettimeofday mbstowcs wcswidth mmap mincore \
         setlocale
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3632: checking for $ac_func" >&5
+echo "configure:3686: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3637 "configure"
+#line 3691 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3656,7 +3710,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3683,7 +3737,7 @@ done
 
 if test x$ac_cv_func_mbstowcs = xyes; then
   echo $ac_n "checking whether mbstowcs works""... $ac_c" 1>&6
-echo "configure:3687: checking whether mbstowcs works" >&5
+echo "configure:3741: checking whether mbstowcs works" >&5
 if eval "test \"`echo '$''{'gcc_cv_func_mbstowcs_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3691,7 +3745,7 @@ else
   gcc_cv_func_mbstowcs_works=yes
 else
   cat > conftest.$ac_ext <<EOF
-#line 3695 "configure"
+#line 3749 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 int main()
@@ -3700,7 +3754,7 @@ int main()
   return 0;
 }
 EOF
-if { (eval echo configure:3704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   gcc_cv_func_mbstowcs_works=yes
 else
@@ -3724,12 +3778,12 @@ EOF
 fi
 
 echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:3728: checking for ssize_t" >&5
+echo "configure:3782: checking for ssize_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3733 "configure"
+#line 3787 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3760,12 +3814,12 @@ fi
 # Try to determine the array type of the second argument of getgroups
 # for the target system (int or gid_t).
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3764: checking for uid_t in sys/types.h" >&5
+echo "configure:3818: checking for uid_t in sys/types.h" >&5
 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3769 "configure"
+#line 3823 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -3794,7 +3848,7 @@ EOF
 fi
 
 echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6
-echo "configure:3798: checking type of array argument to getgroups" >&5
+echo "configure:3852: checking type of array argument to getgroups" >&5
 if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3802,7 +3856,7 @@ else
   ac_cv_type_getgroups=cross
 else
   cat > conftest.$ac_ext <<EOF
-#line 3806 "configure"
+#line 3860 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Rendell for this test.  */
@@ -3827,7 +3881,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:3831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
     ac_cv_type_getgroups=gid_t
 else
@@ -3841,7 +3895,7 @@ fi
 
 if test $ac_cv_type_getgroups = cross; then
         cat > conftest.$ac_ext <<EOF
-#line 3845 "configure"
+#line 3899 "configure"
 #include "confdefs.h"
 #include <unistd.h>
 EOF
@@ -3882,7 +3936,7 @@ fi
 
 
 echo $ac_n "checking whether the printf functions support %p""... $ac_c" 1>&6
-echo "configure:3886: checking whether the printf functions support %p" >&5
+echo "configure:3940: checking whether the printf functions support %p" >&5
 if eval "test \"`echo '$''{'gcc_cv_func_printf_ptr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3890,7 +3944,7 @@ else
   gcc_cv_func_printf_ptr=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 3894 "configure"
+#line 3948 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 
@@ -3903,7 +3957,7 @@ int main()
   return (p != q);
 }
 EOF
-if { (eval echo configure:3907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   gcc_cv_func_printf_ptr=yes
 else
@@ -3933,7 +3987,7 @@ if test $ac_cv_header_sys_mman_h != yes \
    gcc_cv_func_mmap_anon=no
 else
    echo $ac_n "checking whether read-only mmap of a plain file works""... $ac_c" 1>&6
-echo "configure:3937: checking whether read-only mmap of a plain file works" >&5
+echo "configure:3991: checking whether read-only mmap of a plain file works" >&5
 if eval "test \"`echo '$''{'gcc_cv_func_mmap_file'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3943,7 +3997,7 @@ else
    # read() to the same fd.  The only system known to have a problem here
    # is VMS, where text files have record structure.
    case "$host_os" in
-     vms*) 
+     vms* | ultrix*
         gcc_cv_func_mmap_file=no ;;
      *)
         gcc_cv_func_mmap_file=yes;;
@@ -3952,7 +4006,7 @@ fi
 
 echo "$ac_t""$gcc_cv_func_mmap_file" 1>&6
    echo $ac_n "checking whether mmap from /dev/zero works""... $ac_c" 1>&6
-echo "configure:3956: checking whether mmap from /dev/zero works" >&5
+echo "configure:4010: checking whether mmap from /dev/zero works" >&5
 if eval "test \"`echo '$''{'gcc_cv_func_mmap_dev_zero'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3967,7 +4021,7 @@ else
    # Systems known to be in this category are Windows (all variants),
    # VMS, and Darwin.
    case "$host_os" in
-     vms* | cygwin* | pe | mingw* | darwin*)
+     vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00)
         gcc_cv_func_mmap_dev_zero=no ;;
      *)
         gcc_cv_func_mmap_dev_zero=yes;;
@@ -3978,12 +4032,12 @@ echo "$ac_t""$gcc_cv_func_mmap_dev_zero" 1>&6
 
    # Unlike /dev/zero, the MAP_ANON(YMOUS) defines can be probed for.
    echo $ac_n "checking for MAP_ANON(YMOUS)""... $ac_c" 1>&6
-echo "configure:3982: checking for MAP_ANON(YMOUS)" >&5
+echo "configure:4036: checking for MAP_ANON(YMOUS)" >&5
 if eval "test \"`echo '$''{'gcc_cv_decl_map_anon'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3987 "configure"
+#line 4041 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/mman.h>
@@ -3997,7 +4051,7 @@ int main() {
 int n = MAP_ANONYMOUS;
 ; return 0; }
 EOF
-if { (eval echo configure:4001: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_decl_map_anon=yes
 else
@@ -4015,7 +4069,7 @@ echo "$ac_t""$gcc_cv_decl_map_anon" 1>&6
      gcc_cv_func_mmap_anon=no
    else
      echo $ac_n "checking whether mmap with MAP_ANON(YMOUS) works""... $ac_c" 1>&6
-echo "configure:4019: checking whether mmap with MAP_ANON(YMOUS) works" >&5
+echo "configure:4073: checking whether mmap with MAP_ANON(YMOUS) works" >&5
 if eval "test \"`echo '$''{'gcc_cv_func_mmap_anon'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4057,25 +4111,20 @@ fi
 
 
 case "${host}" in
-*-*-uwin*)
-  { echo "configure: error: 
-*** UWIN may not be used as a host platform because
-*** linking with posix.dll is not allowed by the GNU GPL" 1>&2; exit 1; }
-  ;;
 *-*-*vms*)
-  # Under VMS, vfork works very different than on Unix. The standard test 
+  # Under VMS, vfork works very differently than on Unix. The standard test 
   # won't work, and it isn't easily adaptable. It makes more sense to
   # just force it.
   ac_cv_func_vfork_works=yes
   ;;
 esac
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:4074: checking for pid_t" >&5
+echo "configure:4123: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4079 "configure"
+#line 4128 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -4104,17 +4153,17 @@ fi
 
 ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:4108: checking for vfork.h" >&5
+echo "configure:4157: checking for vfork.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4113 "configure"
+#line 4162 "configure"
 #include "confdefs.h"
 #include <vfork.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4118: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4167: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4139,18 +4188,18 @@ else
 fi
 
 echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:4143: checking for working vfork" >&5
+echo "configure:4192: checking for working vfork" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vfork_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test "$cross_compiling" = yes; then
   echo $ac_n "checking for vfork""... $ac_c" 1>&6
-echo "configure:4149: checking for vfork" >&5
+echo "configure:4198: checking for vfork" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vfork'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4154 "configure"
+#line 4203 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vfork(); below.  */
@@ -4173,7 +4222,7 @@ vfork();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_vfork=yes"
 else
@@ -4195,7 +4244,7 @@ fi
 ac_cv_func_vfork_works=$ac_cv_func_vfork
 else
   cat > conftest.$ac_ext <<EOF
-#line 4199 "configure"
+#line 4248 "configure"
 #include "confdefs.h"
 /* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
@@ -4290,7 +4339,7 @@ main() {
   }
 }
 EOF
-if { (eval echo configure:4294: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_vfork_works=yes
 else
@@ -4328,8 +4377,49 @@ if test "${with_libiconv_prefix+set}" = set; then
 fi
 
 
+  for ac_hdr in iconv.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:4385: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 4390 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:4395: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
   echo $ac_n "checking for iconv""... $ac_c" 1>&6
-echo "configure:4333: checking for iconv" >&5
+echo "configure:4423: checking for iconv" >&5
 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4337,7 +4427,7 @@ else
     am_cv_func_iconv="no, consider installing GNU libiconv"
     am_cv_lib_iconv=no
     cat > conftest.$ac_ext <<EOF
-#line 4341 "configure"
+#line 4431 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <iconv.h>
@@ -4347,7 +4437,7 @@ iconv_t cd = iconv_open("","");
        iconv_close(cd);
 ; return 0; }
 EOF
-if { (eval echo configure:4351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   am_cv_func_iconv=yes
 else
@@ -4359,7 +4449,7 @@ rm -f conftest*
       am_save_LIBS="$LIBS"
       LIBS="$LIBS $am_cv_libiconv_ldpath -liconv"
       cat > conftest.$ac_ext <<EOF
-#line 4363 "configure"
+#line 4453 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <iconv.h>
@@ -4369,7 +4459,7 @@ iconv_t cd = iconv_open("","");
          iconv_close(cd);
 ; return 0; }
 EOF
-if { (eval echo configure:4373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   am_cv_lib_iconv=yes
         am_cv_func_iconv=yes
@@ -4390,13 +4480,13 @@ echo "$ac_t""$am_cv_func_iconv" 1>&6
 EOF
 
     echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6
-echo "configure:4394: checking for iconv declaration" >&5
+echo "configure:4484: checking for iconv declaration" >&5
     if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
       cat > conftest.$ac_ext <<EOF
-#line 4400 "configure"
+#line 4490 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -4415,7 +4505,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:4419: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4509: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   am_cv_proto_iconv_arg1=""
 else
@@ -4448,19 +4538,19 @@ LIBICONV_DEP=
 
 
   echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:4452: checking for LC_MESSAGES" >&5
+echo "configure:4542: checking for LC_MESSAGES" >&5
 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4457 "configure"
+#line 4547 "configure"
 #include "confdefs.h"
 #include <locale.h>
 int main() {
 return LC_MESSAGES
 ; return 0; }
 EOF
-if { (eval echo configure:4464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   am_cv_val_LC_MESSAGES=yes
 else
@@ -4486,17 +4576,17 @@ saved_CFLAGS="$CFLAGS"
 CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
 for ac_func in getenv atol sbrk abort atof getcwd getwd \
        strsignal putc_unlocked fputs_unlocked fwrite_unlocked \
-        fprintf_unlocked strstr errno vasprintf \
+        fprintf_unlocked strstr errno snprintf vasprintf \
        malloc realloc calloc free basename getopt clock
 do
   ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
 echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6
-echo "configure:4495: checking whether $ac_func is declared" >&5
+echo "configure:4585: checking whether $ac_func is declared" >&5
 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4500 "configure"
+#line 4590 "configure"
 #include "confdefs.h"
 #undef $ac_tr_decl
 #define $ac_tr_decl 1
@@ -4510,7 +4600,7 @@ char *(*pfn) = (char *(*)) $ac_func ;
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:4514: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "gcc_cv_have_decl_$ac_func=yes"
 else
@@ -4581,6 +4671,9 @@ EOF
 #define HAVE_DECL_ERRNO 1
 EOF
  cat >> confdefs.h <<\EOF
+#define HAVE_DECL_SNPRINTF 1
+EOF
+ cat >> confdefs.h <<\EOF
 #define HAVE_DECL_VASPRINTF 1
 EOF
  \
@@ -4612,12 +4705,12 @@ for ac_func in getrlimit setrlimit getrusage
 do
   ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
 echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6
-echo "configure:4616: checking whether $ac_func is declared" >&5
+echo "configure:4709: checking whether $ac_func is declared" >&5
 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4621 "configure"
+#line 4714 "configure"
 #include "confdefs.h"
 #undef $ac_tr_decl
 #define $ac_tr_decl 1
@@ -4635,7 +4728,7 @@ char *(*pfn) = (char *(*)) $ac_func ;
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:4639: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4732: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "gcc_cv_have_decl_$ac_func=yes"
 else
@@ -4674,7 +4767,7 @@ fi
 
 
 cat > conftest.$ac_ext <<EOF
-#line 4678 "configure"
+#line 4771 "configure"
 #include "confdefs.h"
 
 #include "ansidecl.h"
@@ -4687,7 +4780,7 @@ int main() {
 rlim_t l = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:4691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4784: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -4704,12 +4797,12 @@ for ac_func in ldgetname
 do
   ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
 echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6
-echo "configure:4708: checking whether $ac_func is declared" >&5
+echo "configure:4801: checking whether $ac_func is declared" >&5
 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4713 "configure"
+#line 4806 "configure"
 #include "confdefs.h"
 #undef $ac_tr_decl
 #define $ac_tr_decl 1
@@ -4727,7 +4820,7 @@ char *(*pfn) = (char *(*)) $ac_func ;
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:4731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4824: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "gcc_cv_have_decl_$ac_func=yes"
 else
@@ -4763,12 +4856,12 @@ for ac_func in times
 do
   ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
 echo $ac_n "checking whether $ac_func is declared""... $ac_c" 1>&6
-echo "configure:4767: checking whether $ac_func is declared" >&5
+echo "configure:4860: checking whether $ac_func is declared" >&5
 if eval "test \"`echo '$''{'gcc_cv_have_decl_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4772 "configure"
+#line 4865 "configure"
 #include "confdefs.h"
 #undef $ac_tr_decl
 #define $ac_tr_decl 1
@@ -4786,7 +4879,7 @@ char *(*pfn) = (char *(*)) $ac_func ;
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:4790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4883: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "gcc_cv_have_decl_$ac_func=yes"
 else
@@ -4820,13 +4913,13 @@ fi
 
 # More time-related stuff.
 echo $ac_n "checking for struct tms""... $ac_c" 1>&6
-echo "configure:4824: checking for struct tms" >&5
+echo "configure:4917: checking for struct tms" >&5
 if eval "test \"`echo '$''{'ac_cv_struct_tms'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 4830 "configure"
+#line 4923 "configure"
 #include "confdefs.h"
 
 #include "ansidecl.h"
@@ -4839,7 +4932,7 @@ int main() {
 struct tms tms;
 ; return 0; }
 EOF
-if { (eval echo configure:4843: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4936: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tms=yes
 else
@@ -4862,13 +4955,13 @@ fi
 # use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
 # revisit after autoconf 2.50.
 echo $ac_n "checking for clock_t""... $ac_c" 1>&6
-echo "configure:4866: checking for clock_t" >&5
+echo "configure:4959: checking for clock_t" >&5
 if eval "test \"`echo '$''{'gcc_cv_type_clock_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 4872 "configure"
+#line 4965 "configure"
 #include "confdefs.h"
 
 #include "ansidecl.h"
@@ -4878,7 +4971,7 @@ int main() {
 clock_t x;
 ; return 0; }
 EOF
-if { (eval echo configure:4882: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_type_clock_t=yes
 else
@@ -4899,12 +4992,12 @@ EOF
 fi
 
 echo $ac_n "checking for uchar""... $ac_c" 1>&6
-echo "configure:4903: checking for uchar" >&5
+echo "configure:4996: checking for uchar" >&5
 if eval "test \"`echo '$''{'gcc_cv_type_uchar'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4908 "configure"
+#line 5001 "configure"
 #include "confdefs.h"
 
 #include "ansidecl.h"
@@ -4915,7 +5008,7 @@ if ((uchar *)0) return 0;
  if (sizeof(uchar)) return 0;
 ; return 0; }
 EOF
-if { (eval echo configure:4919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5012: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_uchar=yes
 else
@@ -4945,7 +5038,7 @@ if test "${enable_initfini_array+set}" = set; then
 else
   
 echo $ac_n "checking for .preinit_array/.init_array/.fini_array support""... $ac_c" 1>&6
-echo "configure:4949: checking for .preinit_array/.init_array/.fini_array support" >&5
+echo "configure:5042: checking for .preinit_array/.init_array/.fini_array support" >&5
 if eval "test \"`echo '$''{'gcc_cv_initfini_array'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4953,7 +5046,7 @@ else
   gcc_cv_initfini_array=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 4957 "configure"
+#line 5050 "configure"
 #include "confdefs.h"
 
 static int x = -1;
@@ -4961,7 +5054,7 @@ int main (void) { return x; }
 int foo (void) { x = 0; }
 int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
 EOF
-if { (eval echo configure:4965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   gcc_cv_initfini_array=yes
 else
@@ -4989,12 +5082,12 @@ fi
 
 # mkdir takes a single argument on some systems. 
 echo $ac_n "checking if mkdir takes one argument""... $ac_c" 1>&6
-echo "configure:4993: checking if mkdir takes one argument" >&5
+echo "configure:5086: checking if mkdir takes one argument" >&5
 if eval "test \"`echo '$''{'gcc_cv_mkdir_takes_one_arg'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4998 "configure"
+#line 5091 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -5011,7 +5104,7 @@ int main() {
 mkdir ("foo", 0);
 ; return 0; }
 EOF
-if { (eval echo configure:5015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5108: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   gcc_cv_mkdir_takes_one_arg=no
 else
@@ -5050,8 +5143,9 @@ EOF
 fi
 
 
-echo $ac_n "checking for main in -lunwind""... $ac_c" 1>&6
-echo "configure:5055: checking for main in -lunwind" >&5
+if test x$host = x$target; then
+   echo $ac_n "checking for main in -lunwind""... $ac_c" 1>&6
+echo "configure:5149: checking for main in -lunwind" >&5
 ac_lib_var=`echo unwind'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5059,14 +5153,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lunwind  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5063 "configure"
+#line 5157 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5087,6 +5181,9 @@ else
 use_libunwind_default=no
 fi
 
+else
+   use_libunwind_default=no
+fi
 # Use libunwind based exception handling.
 # Check whether --enable-libunwind-exceptions or --disable-libunwind-exceptions was given.
 if test "${enable_libunwind_exceptions+set}" = set; then
@@ -5107,23 +5204,16 @@ fi
 # Build, host, and target specific configuration fragments
 # --------------------------------------------------------
 
+# Collect build-machine-specific information.
+. ${srcdir}/config.build
+
+# Collect host-machine-specific information.
+. ${srcdir}/config.host
+
 target_gtfiles=
-build_xm_file=
-build_xm_defines=
-build_install_headers_dir=install-headers-tar
-build_exeext=
-host_xm_file=
-host_xm_defines=
-host_xmake_file=
-host_exeext=
-
-# Decode the host machine, then the target machine.
-# For the host machine, we save the xm_file variable as host_xm_file;
-# then we decode the target machine and forget everything else
-# that came from the host machine.
-for machine in $build $host $target; do
-       . ${srcdir}/config.gcc
-done
+
+# Collect target-machine-specific information.
+. ${srcdir}/config.gcc
 
 extra_objs="${host_extra_objs} ${extra_objs}"
 
@@ -5235,12 +5325,30 @@ if test "$host_xm_file" != "$build_xm_file"; then
        fi
 fi
 
-if test x$thread_file = x; then
-       if test x$target_thread_file != x; then
-               thread_file=$target_thread_file
-       else
-               thread_file='single'
-       fi
+# Check if a valid thread package
+case ${enable_threads_flag} in
+  "" | no)
+    # No threads
+    target_thread_file='single'
+    ;;
+  yes)
+    # default
+    target_thread_file='single'
+    ;;
+  aix | dce | gnat | irix | posix | rtems | \
+  single | solaris | vxworks | win32 )
+    target_thread_file=${enable_threads_flag}
+    ;;
+  *)
+    echo "${enable_threads_flag} is an unknown thread package" 1>&2
+    exit 1
+    ;;
+esac
+
+if test x${thread_file} = x; then
+  # No thread file set by target-specific clauses in config.gcc,
+  # so use file chosen by default logic above
+  thread_file=${target_thread_file}
 fi
 
 if test x$enable___cxa_atexit = xyes || \
@@ -5256,11 +5364,7 @@ if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then
   extra_modes_file='$(srcdir)'/config/${extra_modes}
   
   cat >> confdefs.h <<EOF
-#define EXTRA_MODES_FILE "$extra_modes"
-EOF
-
-  cat >> confdefs.h <<\EOF
-#define EXTRA_CC_MODES 1
+#define EXTRA_MODES_FILE "config/$extra_modes"
 EOF
 
 fi
@@ -5332,9 +5436,18 @@ if test -f configargs.h ; then
 else
        gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
 fi
+
+# Double all backslashes and backslash all quotes to turn
+# gcc_config_arguments into a C string.
+sed -e 's/\\/\\\\/g; s/"/\\"/g' <<EOF >conftest.out
+$gcc_config_arguments
+EOF
+gcc_config_arguments_str=`cat conftest.out`
+rm -f conftest.out
+
 cat > configargs.h <<EOF
 /* Generated automatically. */
-static const char configuration_arguments[] = "$gcc_config_arguments";
+static const char configuration_arguments[] = "$gcc_config_arguments_str";
 static const char thread_model[] = "$thread_file";
 
 static const struct {
@@ -5361,7 +5474,7 @@ if test -f ../intl/config.intl; then
   . ../intl/config.intl
 fi
 echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:5365: checking whether NLS is requested" >&5
+echo "configure:5478: checking whether NLS is requested" >&5
 if test x"$USE_NLS" != xyes; then
   echo "$ac_t""no" 1>&6
 else
@@ -5372,7 +5485,7 @@ EOF
 
 
   echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:5376: checking for catalogs to be installed" >&5
+echo "configure:5489: checking for catalogs to be installed" >&5
   # Look for .po and .gmo files in the source directory.
   CATALOGS=  
   XLINGUAS=
@@ -5422,7 +5535,7 @@ fi
 case $host_os in
        win32 | pe | cygwin* | mingw32* | uwin*)
 echo $ac_n "checking whether windows registry support is requested""... $ac_c" 1>&6
-echo "configure:5426: checking whether windows registry support is requested" >&5
+echo "configure:5539: checking whether windows registry support is requested" >&5
 if test "x$enable_win32_registry" != xno; then
   cat >> confdefs.h <<\EOF
 #define ENABLE_WIN32_REGISTRY 1
@@ -5431,14 +5544,14 @@ EOF
   echo "$ac_t""yes" 1>&6
   
 echo $ac_n "checking for library containing RegOpenKeyExA""... $ac_c" 1>&6
-echo "configure:5435: checking for library containing RegOpenKeyExA" >&5
+echo "configure:5548: checking for library containing RegOpenKeyExA" >&5
 if eval "test \"`echo '$''{'ac_cv_search_RegOpenKeyExA'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_func_search_save_LIBS="$LIBS"
 ac_cv_search_RegOpenKeyExA="no"
 cat > conftest.$ac_ext <<EOF
-#line 5442 "configure"
+#line 5555 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5449,7 +5562,7 @@ int main() {
 RegOpenKeyExA()
 ; return 0; }
 EOF
-if { (eval echo configure:5453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_search_RegOpenKeyExA="none required"
 else
@@ -5460,7 +5573,7 @@ rm -f conftest*
 test "$ac_cv_search_RegOpenKeyExA" = "no" && for i in advapi32; do
 LIBS="-l$i  $ac_func_search_save_LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5464 "configure"
+#line 5577 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5471,7 +5584,7 @@ int main() {
 RegOpenKeyExA()
 ; return 0; }
 EOF
-if { (eval echo configure:5475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_search_RegOpenKeyExA="-l$i"
 break
@@ -5513,7 +5626,7 @@ esac
 
 if test "x$enable_win32_registry" != xno; then
   echo $ac_n "checking registry key on windows hosts""... $ac_c" 1>&6
-echo "configure:5517: checking registry key on windows hosts" >&5
+echo "configure:5630: checking registry key on windows hosts" >&5
   cat >> confdefs.h <<EOF
 #define WIN32_REGISTRY_KEY "$gcc_cv_win32_registry_key"
 EOF
@@ -5530,30 +5643,25 @@ topdir=`${PWDCMD-pwd}`
 cd $holddir
 
 # Conditionalize the makefile for this host machine.
-# Make-host contains the concatenation of all host makefile fragments
-# [there can be more than one].  This file is built by configure.frag.
-host_overrides=Make-host
-dep_host_xmake_file=
-for f in .. ${host_xmake_file}
+xmake_file=
+for f in ${host_xmake_file}
 do
        if test -f ${srcdir}/config/$f
        then
-               dep_host_xmake_file="${dep_host_xmake_file} ${srcdir}/config/$f"
+               xmake_file="${xmake_file} \$(srcdir)/config/$f"
        fi
 done
 
 # Conditionalize the makefile for this target machine.
-# Make-target contains the concatenation of all host makefile fragments
-# [there can be more than one].  This file is built by configure.frag.
-target_overrides=Make-target
-dep_tmake_file=
-for f in .. ${tmake_file}
+tmake_file_=
+for f in ${tmake_file}
 do
        if test -f ${srcdir}/config/$f
        then
-               dep_tmake_file="${dep_tmake_file} ${srcdir}/config/$f"
+               tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
        fi
 done
+tmake_file="${tmake_file_}"
 
 symbolic_link='ln -s'
 
@@ -5585,35 +5693,69 @@ rm -f symtest.tem
 out_object_file=`basename $out_file .c`.o
 
 tm_file_list=
+tm_include_list=
 for f in $tm_file; do
   case $f in
-    ansidecl.h )
-       tm_file_list="${tm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
     defaults.h )
-       tm_file_list="${tm_file_list} \$(srcdir)/$f" ;;
-    *) tm_file_list="${tm_file_list} \$(srcdir)/config/$f" ;;
+       tm_file_list="${tm_file_list} \$(srcdir)/$f"
+       tm_include_list="${tm_include_list} $f"
+       ;;
+    * )
+       tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
+       tm_include_list="${tm_include_list} config/$f"
+       ;;
   esac
 done
 
 tm_p_file_list=
+tm_p_include_list=
 for f in $tm_p_file; do
   case $f in
     tm-preds.h )
-       tm_p_file_list="${tm_p_file_list} $f" ;;
-    *) tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f" ;;
+       tm_p_file_list="${tm_p_file_list} $f"
+       tm_p_include_list="${tm_p_include_list} $f"
+       ;;
+    * )
+       tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f"
+       tm_p_include_list="${tm_p_include_list} config/$f"
+  esac
+done
+
+xm_file_list=
+xm_include_list=
+for f in $xm_file; do
+  case $f in
+    ansidecl.h )
+       xm_file_list="${xm_file_list} \$(srcdir)/../include/$f"
+       xm_include_list="${xm_include_list} $f"
+       ;;
+    auto-host.h )
+       xm_file_list="${xm_file_list} $f"
+       xm_include_list="${xm_include_list} $f"
+       ;;
+    * )
+       xm_file_list="${xm_file_list} \$(srcdir)/config/$f"
+       xm_include_list="${xm_include_list} config/$f"
+       ;;
   esac
 done
 
 host_xm_file_list=
+host_xm_include_list=
 for f in $host_xm_file; do
   case $f in
     ansidecl.h )
-       host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
+       host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/$f"
+       host_xm_include_list="${host_xm_include_list} $f"
+       ;;
     auto-host.h )
-       host_xm_file_list="${host_xm_file_list} $f" ;;
-    defaults.h )
-       host_xm_file_list="${host_xm_file_list} \$(srcdir)/$f" ;;
-    *) host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f" ;;
+       host_xm_file_list="${host_xm_file_list} $f"
+       host_xm_include_list="${host_xm_include_list} $f"
+       ;;
+    * )
+       host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f"
+       host_xm_include_list="${host_xm_include_list} config/$f"
+       ;;
   esac
 done
 
@@ -5621,12 +5763,17 @@ build_xm_file_list=
 for f in $build_xm_file; do
   case $f in
     ansidecl.h )
-       build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/ansidecl.h" ;;
+       build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/$f"
+       build_xm_include_list="${build_xm_include_list} $f"
+       ;;
     auto-build.h | auto-host.h )
-       build_xm_file_list="${build_xm_file_list} $f" ;;
-    defaults.h )
-       host_xm_file_list="${host_xm_file_list} \$(srcdir)/$f" ;;
-    *) build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f" ;;
+       build_xm_file_list="${build_xm_file_list} $f"
+       build_xm_include_list="${build_xm_include_list} $f"
+       ;;
+    * )
+       build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f"
+       build_xm_include_list="${build_xm_include_list} config/$f"
+       ;;
   esac
 done
 
@@ -5641,6 +5788,21 @@ then
        ALL=all.cross
        SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
        case "$host","$target" in
+       # Darwin crosses can use the host system's libraries and headers,
+       # because of the fat library support.  Of course, it must be the
+       # same version of Darwin on both sides.  Allow the user to
+       # just say --target=foo-darwin without a version number to mean
+       # "the version on this system".
+           *-*-darwin*,*-*-darwin*)
+               hostos=`echo $host | sed 's/.*-darwin/darwin/'`
+               targetos=`echo $target | sed 's/.*-darwin/darwin/'`
+               if test $hostos = $targetos -o $targetos = darwin ; then
+                   CROSS=
+                   SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)'
+                   with_headers=yes
+               fi
+               ;;
+
            i?86-*-*,x86_64-*-* \
            | powerpc*-*-*,powerpc64*-*-*)
                CROSS="$CROSS -DNATIVE_CROSS" ;;
@@ -5661,7 +5823,7 @@ fi
 inhibit_libc=
 if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
        test x$with_newlib = xyes ; } &&
-     test "x$with_headers" = x ; then
+     { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then
        inhibit_libc=-Dinhibit_libc
 fi
 
@@ -5677,7 +5839,17 @@ CC_FOR_BUILD='$(CC)'
 BUILD_CFLAGS='$(ALL_CFLAGS)'   
 
 STMP_FIXINC=stmp-fixinc                
-STMP_FIXPROTO=stmp-fixproto    
+
+# Possibly disable fixproto, on a per-target basis.
+case ${use_fixproto} in
+  no)
+    STMP_FIXPROTO=
+    ;;
+  yes)
+    STMP_FIXPROTO=stmp-fixproto
+    ;;
+esac
+
 
 # And these apply if build != host, or we are generating coverage data
 if test x$build != x$host || test "x$coverage_flags" != x
@@ -5695,15 +5867,10 @@ fi
 # Expand extra_headers to include complete path.
 # This substitutes for lots of t-* files.
 extra_headers_list=
-if test "x$extra_headers" = x
-then true
-else
-       # Prepend ${srcdir}/config/${cpu_type}/ to every entry in extra_headers.
-       for file in $extra_headers;
-       do
-               extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
-       done
-fi
+# Prepend $(srcdir)/config/${cpu_type}/ to every entry in extra_headers.
+for file in ${extra_headers} ; do
+  extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
+done
 
 # Add a definition of USE_COLLECT2 if system wants one.
 case $use_collect2 in
@@ -5723,7 +5890,7 @@ esac
 # build->target assembler and hope that it will have the same features
 # as the host->target assembler we'll be using.
 echo $ac_n "checking what assembler to use""... $ac_c" 1>&6
-echo "configure:5727: checking what assembler to use" >&5
+echo "configure:5894: checking what assembler to use" >&5
 in_tree_gas=no
 gcc_cv_as=
 gcc_cv_gas_major_version=
@@ -5753,6 +5920,12 @@ done
 gcc_cv_gas_major_version=`expr "$gcc_cv_gas_version" : "VERSION=\([0-9]*\)"`
 gcc_cv_gas_minor_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
 gcc_cv_gas_patch_version=`expr "$gcc_cv_gas_version" : "VERSION=[0-9]*\.[0-9]*\.\([0-9]*\)"`
+case $gcc_cv_gas_patch_version in
+  "") gcc_cv_gas_patch_version="0" ;;
+esac
+gcc_cv_gas_vers=`expr \( \( $gcc_cv_gas_major_version \* 1000 \) \
+                           + $gcc_cv_gas_minor_version \) \* 1000 \
+                           + $gcc_cv_gas_patch_version`
 
   rm -f as$host_exeext
   $symbolic_link ../gas/as-new$host_exeext as$host_exeext 2>/dev/null
@@ -5796,12 +5969,12 @@ if test "x$gcc_cv_as" = x; then
                gcc_cv_as=`echo as | sed ${program_transform_name}`$host_exeext
        fi
 
-       test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \
-                  $test_prefix/lib/gcc-lib/$target_alias \
-                  /usr/lib/gcc/$target_alias/$gcc_version \
-                  /usr/lib/gcc/$target_alias \
-                  $test_prefix/$target_alias/bin/$target_alias/$gcc_version \
-                  $test_prefix/$target_alias/bin"
+       test_dirs="$test_prefix/lib/gcc-lib/$target_noncanonical/$gcc_version \
+                  $test_prefix/lib/gcc-lib/$target_noncanonical \
+                  /usr/lib/gcc/$target_noncanonical/$gcc_version \
+                  /usr/lib/gcc/$target_noncanonical \
+                  $test_prefix/$target_noncanonical/bin/$target_noncanonical/$gcc_version \
+                  $test_prefix/$target_noncanonical/bin"
 
        if test x$host = x$target; then
            test_dirs="$test_dirs \
@@ -5841,7 +6014,7 @@ esac
 # build->target linker and hope that it will have the same features
 # as the host->target linker we'll be using.
 echo $ac_n "checking what linker to use""... $ac_c" 1>&6
-echo "configure:5845: checking what linker to use" >&5
+echo "configure:6018: checking what linker to use" >&5
 in_tree_ld=no
 gcc_cv_ld=
 gcc_cv_gld_major_version=
@@ -5909,12 +6082,12 @@ if test "x$gcc_cv_ld" = x; then
                gcc_cv_ld=`echo ld | sed ${program_transform_name}`$host_exeext
        fi
 
-       test_dirs="$test_prefix/lib/gcc-lib/$target_alias/$gcc_version \
-                  $test_prefix/lib/gcc-lib/$target_alias \
-                  /usr/lib/gcc/$target_alias/$gcc_version \
-                  /usr/lib/gcc/$target_alias \
-                  $test_prefix/$target_alias/bin/$target_alias/$gcc_version \
-                  $test_prefix/$target_alias/bin"
+       test_dirs="$test_prefix/lib/gcc-lib/$target_noncanonical/$gcc_version \
+                  $test_prefix/lib/gcc-lib/$target_noncanonical \
+                  /usr/lib/gcc/$target_noncanonical/$gcc_version \
+                  /usr/lib/gcc/$target_noncanonical \
+                  $test_prefix/$target_noncanonical/bin/$target_noncanonical/$gcc_version \
+                  $test_prefix/$target_noncanonical/bin"
 
        if test x$host = x$target; then
            test_dirs="$test_dirs \
@@ -5949,7 +6122,7 @@ esac
 # Figure out what nm we will be using.
 gcc_cv_binutils_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/binutils
 echo $ac_n "checking what nm to use""... $ac_c" 1>&6
-echo "configure:5953: checking what nm to use" >&5
+echo "configure:6126: checking what nm to use" >&5
 in_tree_nm=no
 if test -x nm$host_exeext; then
        gcc_cv_nm=./nm$host_exeext
@@ -5972,7 +6145,7 @@ esac
 
 # Figure out what objdump we will be using.
 echo $ac_n "checking what objdump to use""... $ac_c" 1>&6
-echo "configure:5976: checking what objdump to use" >&5
+echo "configure:6149: checking what objdump to use" >&5
 in_tree_objdump=no
 if test -x objdump$host_exeext; then
        gcc_cv_objdump=./objdump$host_exeext
@@ -5996,305 +6169,313 @@ case $in_tree_objdump in
 esac
 
 # Figure out what assembler alignment features are present.
-echo $ac_n "checking assembler alignment features""... $ac_c" 1>&6
-echo "configure:6001: checking assembler alignment features" >&5
-gcc_cv_as_alignment_features=none
-if test $in_tree_gas = yes; then
-  # Gas version 2.6 and later support for .balign and .p2align.
-   if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 6 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
-
+echo $ac_n "checking assembler for .balign and .p2align""... $ac_c" 1>&6
+echo "configure:6174: checking assembler for .balign and .p2align" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_balign_and_p2align'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_balign_and_p2align=no
+    if test $in_tree_gas = yes; then
+    if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 6 \) \* 1000 + 0`
+  then gcc_cv_as_balign_and_p2align=yes
+fi
+  elif test x$gcc_cv_as != x; then
+    echo '.balign 4
+.p2align 2' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:6186: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_balign_and_p2align=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
+fi
 
-    gcc_cv_as_alignment_features=".balign and .p2align"
-    cat >> confdefs.h <<\EOF
+echo "$ac_t""$gcc_cv_as_balign_and_p2align" 1>&6
+if test $gcc_cv_as_balign_and_p2align = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_GAS_BALIGN_AND_P2ALIGN 1
 EOF
 
-  
-
 fi
 
-  # Gas version 2.8 and later support specifying the maximum
-  # bytes to skip when using .p2align.
-   if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 8 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
-
-
-    gcc_cv_as_alignment_features=".p2align including maximum skip"
-    cat >> confdefs.h <<\EOF
-#define HAVE_GAS_MAX_SKIP_P2ALIGN 1
-EOF
-
-  
-
+echo $ac_n "checking assembler for .p2align with maximum skip""... $ac_c" 1>&6
+echo "configure:6206: checking assembler for .p2align with maximum skip" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_max_skip_p2align'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_max_skip_p2align=no
+    if test $in_tree_gas = yes; then
+    if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 8 \) \* 1000 + 0`
+  then gcc_cv_as_max_skip_p2align=yes
+fi
+  elif test x$gcc_cv_as != x; then
+    echo '.p2align 4,,7' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:6217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_max_skip_p2align=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
 
-elif test x$gcc_cv_as != x; then
-       # Check if we have .balign and .p2align
-       echo ".balign  4" > conftest.s
-       echo ".p2align  2" >> conftest.s
-       if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-               gcc_cv_as_alignment_features=".balign and .p2align"
-               cat >> confdefs.h <<\EOF
-#define HAVE_GAS_BALIGN_AND_P2ALIGN 1
-EOF
-
-       fi
-       rm -f conftest.s conftest.o
-       # Check if specifying the maximum bytes to skip when
-       # using .p2align is supported.
-       echo ".p2align 4,,7" > conftest.s
-       if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-               gcc_cv_as_alignment_features=".p2align including maximum skip"
-               cat >> confdefs.h <<\EOF
+echo "$ac_t""$gcc_cv_as_max_skip_p2align" 1>&6
+if test $gcc_cv_as_max_skip_p2align = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_GAS_MAX_SKIP_P2ALIGN 1
 EOF
 
-       fi
-       rm -f conftest.s conftest.o
 fi
-echo "$ac_t""$gcc_cv_as_alignment_features" 1>&6
-
-echo $ac_n "checking assembler subsection support""... $ac_c" 1>&6
-echo "configure:6062: checking assembler subsection support" >&5
-gcc_cv_as_subsections=no
-if test $in_tree_gas = yes ; then
-   if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 9 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
-
-
-    test $in_tree_gas_is_elf = yes \
-       && gcc_cv_as_subsections="working .subsection -1"
-  
 
+echo $ac_n "checking assembler for working .subsection -1""... $ac_c" 1>&6
+echo "configure:6237: checking assembler for working .subsection -1" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_subsection_m1'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_subsection_m1=no
+    if test $in_tree_gas = yes; then
+    if test $in_tree_gas_is_elf = yes \
+  && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 9 \) \* 1000 + 0`
+  then gcc_cv_as_subsection_m1=yes
 fi
-
-elif test x$gcc_cv_as != x; then
-       # Check if we have .subsection
-       echo ".subsection 1" > conftest.s
-       if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-               gcc_cv_as_subsections=".subsection"
-               if test x$gcc_cv_nm != x; then
-                       cat > conftest.s <<EOF
-conftest_label1: .word 0
+  elif test x$gcc_cv_as != x; then
+    echo 'conftest_label1: .word 0
 .subsection -1
 conftest_label2: .word 0
-.previous
-EOF
-                       if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-                               $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
-                               $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
-                               if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1; then
-                                       :
-                               else
-                                       gcc_cv_as_subsections="working .subsection -1"
-                               fi
-                       fi
-               fi
-       fi
-       rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
+.previous' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:6252: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       if test x$gcc_cv_nm != x; then
+    $gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
+    $gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
+    if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1
+    then :
+    else gcc_cv_as_subsection_m1=yes
+    fi
+    rm -f conftest.nm1 conftest.nm2
+  fi
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
-if test x"$gcc_cv_as_subsections" = x"working .subsection -1"; then
-       cat >> confdefs.h <<\EOF
+
+echo "$ac_t""$gcc_cv_as_subsection_m1" 1>&6
+if test $gcc_cv_as_subsection_m1 = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_GAS_SUBSECTION_ORDERING 1
 EOF
 
 fi
-echo "$ac_t""$gcc_cv_as_subsections" 1>&6
-
-echo $ac_n "checking assembler weak support""... $ac_c" 1>&6
-echo "configure:6110: checking assembler weak support" >&5
-gcc_cv_as_weak=no
-if test $in_tree_gas = yes ; then
-   if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 2 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
-
-
-    gcc_cv_as_weak="yes"
-  
 
+echo $ac_n "checking assembler for .weak""... $ac_c" 1>&6
+echo "configure:6280: checking assembler for .weak" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_weak'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_weak=no
+    if test $in_tree_gas = yes; then
+    if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 2 \) \* 1000 + 0`
+  then gcc_cv_as_weak=yes
 fi
-
-elif test x$gcc_cv_as != x; then
-       # Check if we have .weak
-       echo "  .weak foobar" > conftest.s
-       if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-               gcc_cv_as_weak="yes"
-       fi
-       rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
+  elif test x$gcc_cv_as != x; then
+    echo '     .weak foobar' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:6291: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_weak=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
-if test x"$gcc_cv_as_weak" = xyes; then
-       cat >> confdefs.h <<\EOF
+
+echo "$ac_t""$gcc_cv_as_weak" 1>&6
+if test $gcc_cv_as_weak = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_GAS_WEAK 1
 EOF
 
 fi
-echo "$ac_t""$gcc_cv_as_weak" 1>&6
-
-echo $ac_n "checking assembler hidden support""... $ac_c" 1>&6
-echo "configure:6140: checking assembler hidden support" >&5
-gcc_cv_as_hidden=no
-if test $in_tree_gas = yes ; then
-   if test $gcc_cv_gas_major_version -eq 2 \
-&& (test $gcc_cv_gas_minor_version -gt 12 \
-    || (test $gcc_cv_gas_minor_version -eq 12 \
-        && test $gcc_cv_gas_patch_version -ge 1 )) \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
 
+# .hidden needs to be supported in both the assembler and the linker,
+# because GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
+# This is irritatingly difficult to feature test for; we have to check the
+# date string after the version number.  If we've got an in-tree
+# ld, we don't know its patchlevel version, so we set the baseline at 2.13
+# to be safe.
+# The gcc_GAS_CHECK_FEATURE call just sets a cache variable.
+echo $ac_n "checking assembler for .hidden""... $ac_c" 1>&6
+echo "configure:6318: checking assembler for .hidden" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_hidden'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_hidden=no
+    if test $in_tree_gas = yes; then
+    if test $in_tree_gas_is_elf = yes \
+  && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 13 \) \* 1000 + 0`
+  then gcc_cv_as_hidden=yes
+fi
+  elif test x$gcc_cv_as != x; then
+    echo '     .hidden foobar
+foobar:' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:6331: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_hidden=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
+fi
 
-    test $in_tree_gas_is_elf = yes && gcc_cv_as_hidden="yes"
-  
+echo "$ac_t""$gcc_cv_as_hidden" 1>&6
 
-fi
 
-elif test x$gcc_cv_as != x; then
-       # Check if we have .hidden
-       echo "  .hidden foobar" > conftest.s
-       echo "foobar:" >> conftest.s
-       if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-               gcc_cv_as_hidden="yes"
-       fi
-       rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
-
-       # GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
-       # This is irritatingly difficult to feature test for.  Look for 
-       # the date string after the version number.
-       ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1`
-       if echo "$ld_ver" | grep GNU > /dev/null; then
-               ld_vers=`echo $ld_ver | sed -n \
-              -e 's,^.*[        ]\([0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
-              -e 's,^.*[        ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
-              -e 's,^.*[        ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
-              -e 's,^.*[        ]\([0-9][0-9]*\.[0-9][0-9]*\)[  ].*$,\1,p' \
-              -e 's,^.*[        ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[     ].*$,\1,p' \
-              -e 's,^.*[        ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[        ].*$,\1,p'`
-               ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
-               if test 0"$ld_date" -lt 20020404; then
-                       if test -n "$ld_date"; then
-                               # If there was date string, but was earlier than 2002-04-04, fail
-                               gcc_cv_as_hidden="no"
-                       elif test -z "$ld_vers"; then
-                               # If there was no date string nor ld version number, something is wrong
-                               gcc_cv_as_hidden="no"
-                       else
-                               ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
-                               ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
-                               ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
-                               test -z "$ld_vers_patch" && ld_vers_patch=0
-                               if test "$ld_vers_major" -lt 2; then
-                                       gcc_cv_as_hidden="no"
-                               elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then
-                                       gcc_cv_as_hidden="no"
-                               elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 \
-                                         -a "$ld_vers_patch" -eq 0; then
-                                       gcc_cv_as_hidden="no"
-                               fi
-                       fi
-               fi
+echo $ac_n "checking linker for .hidden support""... $ac_c" 1>&6
+echo "configure:6346: checking linker for .hidden support" >&5
+if eval "test \"`echo '$''{'gcc_cv_ld_hidden'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test $in_tree_ld = yes ; then
+  gcc_cv_ld_hidden=no
+  if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 13 -o "$gcc_cv_gld_major_version" -gt 2 \
+     && test $in_tree_ld_is_elf = yes; then
+     gcc_cv_ld_hidden=yes
+  fi
+else
+  gcc_cv_ld_hidden=yes
+  ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q`
+  if echo "$ld_ver" | grep GNU > /dev/null; then
+    ld_vers=`echo $ld_ver | sed -n \
+       -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
+       -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
+       -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)$,\1,p' \
+       -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\)[  ].*$,\1,p' \
+       -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[     ].*$,\1,p' \
+       -e 's,^.*[       ]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\)[        ].*$,\1,p'`
+    ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
+    if test 0"$ld_date" -lt 20020404; then
+      if test -n "$ld_date"; then
+       # If there was date string, but was earlier than 2002-04-04, fail
+       gcc_cv_ld_hidden=no
+      elif test -z "$ld_vers"; then
+       # If there was no date string nor ld version number, something is wrong
+       gcc_cv_ld_hidden=no
+      else
+       ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
+       ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
+       ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
+       test -z "$ld_vers_patch" && ld_vers_patch=0
+       if test "$ld_vers_major" -lt 2; then
+         gcc_cv_ld_hidden=no
+       elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then
+         gcc_cv_ld_hidden="no"
+       elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 -a "$ld_vers_patch" -eq 0; then
+         gcc_cv_ld_hidden=no
        fi
-fi
-case "$target" in
-  mips-sgi-irix6*)
-    if test x"$gnu_ld_flag" = x"no"; then
-      # Even if using gas with .hidden support, the resulting object files
-      # cannot be linked with the IRIX 6 O32 linker.  With the N32 and
-      # N64 linkers, the problem is that the linker refuses to accept
-      # -call_shared (passed by default to the linker) and -r (used to
-      # link the object file generated without .hidden directives with
-      # one that hides symbols), so we also lose.
-      gcc_cv_as_hidden=no
+      fi
     fi
-    ;;
-esac
-if test x"$gcc_cv_as_hidden" = xyes; then
-       cat >> confdefs.h <<\EOF
-#define HAVE_GAS_HIDDEN 1
-EOF
-
+  else
+    case "${target}" in
+      hppa64*-*-hpux*)
+       gcc_cv_ld_hidden=yes
+       ;;
+      *)
+       gcc_cv_ld_hidden=no
+       ;;
+    esac
+  fi
+fi
 fi
-echo "$ac_t""$gcc_cv_as_hidden" 1>&6
-libgcc_visibility=$gcc_cv_as_hidden
-
-
-echo $ac_n "checking assembler leb128 support""... $ac_c" 1>&6
-echo "configure:6225: checking assembler leb128 support" >&5
-gcc_cv_as_leb128=no
-if test $in_tree_gas = yes ; then
-   if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 11 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
 
+echo "$ac_t""$gcc_cv_ld_hidden" 1>&6
+libgcc_visibility=no
 
-    test $in_tree_gas_is_elf = yes && gcc_cv_as_leb128="yes"
-  
+if test $gcc_cv_as_hidden = yes && test $gcc_cv_ld_hidden = yes; then
+  libgcc_visibility=yes
+  cat >> confdefs.h <<\EOF
+#define HAVE_GAS_HIDDEN 1
+EOF
 
 fi
 
-elif test x$gcc_cv_as != x; then
-       # Check if we have .[us]leb128, and support symbol arithmetic with it.
-       cat > conftest.s <<EOF
-       .data
+# Check if we have .[us]leb128, and support symbol arithmetic with it.
+echo $ac_n "checking assembler for .sleb128 and .uleb128""... $ac_c" 1>&6
+echo "configure:6415: checking assembler for .sleb128 and .uleb128" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_leb128'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_leb128=no
+    if test $in_tree_gas = yes; then
+    if test $in_tree_gas_is_elf = yes \
+  && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 11 \) \* 1000 + 0`
+  then gcc_cv_as_leb128=yes
+fi
+  elif test x$gcc_cv_as != x; then
+    echo '     .data
        .uleb128 L2 - L1
 L1:
        .uleb128 1280
        .sleb128 -1010
-L2:
-EOF
-       if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-               gcc_cv_as_leb128="yes"
-
-               # GAS versions before 2.11 do not support uleb128,
-               # despite appearing to.
-               # ??? There exists an elf-specific test that will crash
-               # the assembler.  Perhaps it's better to figure out whether
-               # arbitrary sections are supported and try the test.
-               as_ver=`$gcc_cv_as --version 2>/dev/null | head -1`
-               if echo "$as_ver" | grep GNU > /dev/null; then
-                       as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
-                       as_major=`echo $as_ver | sed 's/\..*//'`
-                       as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
-                       if test $as_major -eq 2 -a $as_minor -lt 11; then
-                               gcc_cv_as_leb128="no"
-                       fi
-               fi
-       fi
-       rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
+L2:' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:6432: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       # GAS versions before 2.11 do not support uleb128,
+  # despite appearing to.
+  # ??? There exists an elf-specific test that will crash
+  # the assembler.  Perhaps it's better to figure out whether
+  # arbitrary sections are supported and try the test.
+  as_ver=`$gcc_cv_as --version 2>/dev/null | sed 1q`
+  if echo "$as_ver" | grep GNU > /dev/null; then
+    as_ver=`echo $as_ver | sed -e 's/GNU assembler \([0-9.][0-9.]*\).*/\1/'`
+    as_major=`echo $as_ver | sed 's/\..*//'`
+    as_minor=`echo $as_ver | sed 's/[^.]*\.\([0-9]*\).*/\1/'`
+    if test $as_major -eq 2 && test $as_minor -lt 11
+    then :
+    else gcc_cv_as_leb128=yes
+    fi
+  fi
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
-if test x"$gcc_cv_as_leb128" = xyes; then
-       cat >> confdefs.h <<\EOF
+
+echo "$ac_t""$gcc_cv_as_leb128" 1>&6
+if test $gcc_cv_as_leb128 = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_AS_LEB128 1
 EOF
 
 fi
-echo "$ac_t""$gcc_cv_as_leb128" 1>&6
-
-echo $ac_n "checking assembler eh_frame optimization""... $ac_c" 1>&6
-echo "configure:6277: checking assembler eh_frame optimization" >&5
-gcc_cv_as_eh_frame=no
-if test $in_tree_gas = yes ; then
-   if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 12 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
-
-
-    test $in_tree_gas_is_elf = yes && gcc_cv_as_eh_frame="yes"
-  
 
+# GAS versions up to and including 2.11.0 may mis-optimize
+# .eh_frame data.
+echo $ac_n "checking assembler for eh_frame optimization""... $ac_c" 1>&6
+echo "configure:6468: checking assembler for eh_frame optimization" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_eh_frame'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_eh_frame=no
+    if test $in_tree_gas = yes; then
+    if test $in_tree_gas_is_elf = yes \
+  && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 12 \) \* 1000 + 0`
+  then gcc_cv_as_eh_frame=yes
 fi
-
-elif test x$gcc_cv_as != x; then
-       # Check if this is GAS.
-       as_ver=`$gcc_cv_as --version < /dev/null 2> /dev/null | head -1`
-       rm -f a.out 2> /dev/null
-       if echo "$as_ver" | grep GNU > /dev/null; then
-               # Versions up to and including 2.11.0 may mis-optimize
-               # .eh_frame data.  Try something.
-               cat > conftest.s <<EOF
-       .text
+  elif test x$gcc_cv_as != x; then
+    echo '     .text
 .LFB1:
        .4byte  0
 .L1:
@@ -6325,74 +6506,84 @@ __FRAME_BEGIN__:
        .4byte  .LFE1-.LFB1
        .byte   0x4
        .4byte  .L1-.LFB1
-.LEFDE1:
-EOF
-               cat > conftest.lit <<EOF
+.LEFDE1:' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:6511: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+         cat > conftest.lit <<EOF
  0000 10000000 00000000 017a0001 781a0004  .........z..x...
  0010 01000000 12000000 18000000 00000000  ................
  0020 08000000 04080000 0044               .........D      
 EOF
-               cat > conftest.big <<EOF
+  cat > conftest.big <<EOF
  0000 00000010 00000000 017a0001 781a0004  .........z..x...
  0010 00000001 00000012 00000018 00000000  ................
  0020 00000008 04000000 0844               .........D      
 EOF
-               # If the assembler didn't choke, and we can objdump,
-               # and we got the correct data, then succeed.
-               if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
-                  && $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
-                     | tail -3 > conftest.got \
-                  && { cmp conftest.lit conftest.got > /dev/null 2>&1 \
-                       || cmp conftest.big conftest.got > /dev/null 2>&1; }
-               then
-                       gcc_cv_as_eh_frame="yes"
-               else
-                       gcc_cv_as_eh_frame="bad"
-                       if $gcc_cv_as -o conftest.o --traditional-format /dev/null; then
-                               cat >> confdefs.h <<\EOF
-#define USE_AS_TRADITIONAL_FORMAT 1
-EOF
-
-                       fi
-               fi
-       fi
-       rm -f conftest.*
+  # If the assembler didn't choke, and we can objdump,
+  # and we got the correct data, then succeed.
+  if test x$gcc_cv_objdump != x \
+  && $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
+     | tail -3 > conftest.got \
+  && { cmp conftest.lit conftest.got > /dev/null 2>&1 \
+    || cmp conftest.big conftest.got > /dev/null 2>&1; }
+  then
+    gcc_cv_as_eh_frame=yes
+  elif { ac_try='$gcc_cv_as -o conftest.o --traditional-format /dev/null'; { (eval echo configure:6532: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+    gcc_cv_as_eh_frame=buggy
+  else
+    # Uh oh, what do we do now?
+    gcc_cv_as_eh_frame=no
+  fi
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
-echo "$ac_t""$gcc_cv_as_eh_frame" 1>&6
 
-echo $ac_n "checking assembler section merging support""... $ac_c" 1>&6
-echo "configure:6365: checking assembler section merging support" >&5
-gcc_cv_as_shf_merge=no
-if test $in_tree_gas = yes ; then
-   if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 12 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
+echo "$ac_t""$gcc_cv_as_eh_frame" 1>&6
 
 
-    test $in_tree_gas_is_elf = yes && gcc_cv_as_shf_merge="yes"
-  
+if test $gcc_cv_as_eh_frame = buggy; then
+  cat >> confdefs.h <<\EOF
+#define USE_AS_TRADITIONAL_FORMAT 1
+EOF
 
 fi
 
-elif test x$gcc_cv_as != x; then
-       # Check if we support SHF_MERGE sections
-       echo '.section .rodata.str, "aMS", @progbits, 1' > conftest.s
-       if $gcc_cv_as --fatal-warnings -o conftest.o conftest.s > /dev/null 2>&1; then
-               gcc_cv_as_shf_merge=yes
-       fi
-       rm -f conftest.s conftest.o
+echo $ac_n "checking assembler for section merging support""... $ac_c" 1>&6
+echo "configure:6557: checking assembler for section merging support" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_shf_merge'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_shf_merge=no
+    if test $in_tree_gas = yes; then
+    if test $in_tree_gas_is_elf = yes \
+  && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 12 \) \* 1000 + 0`
+  then gcc_cv_as_shf_merge=yes
+fi
+  elif test x$gcc_cv_as != x; then
+    echo '.section .rodata.str, "aMS", @progbits, 1' > conftest.s
+    if { ac_try='$gcc_cv_as --fatal-warnings -o conftest.o conftest.s >&5'; { (eval echo configure:6569: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_shf_merge=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
-if test x"$gcc_cv_as_shf_merge" = xyes; then
-       cat >> confdefs.h <<\EOF
-#define HAVE_GAS_SHF_MERGE 1
-EOF
 
-fi
 echo "$ac_t""$gcc_cv_as_shf_merge" 1>&6
 
-echo $ac_n "checking assembler thread-local storage support""... $ac_c" 1>&6
-echo "configure:6395: checking assembler thread-local storage support" >&5
-gcc_cv_as_tls=no
+cat >> confdefs.h <<EOF
+#define HAVE_GAS_SHF_MERGE `if test $gcc_cv_as_shf_merge = yes; then echo 1; else echo 0; fi`
+EOF
+
+
+# Thread-local storage - the check is heavily parametrized.
 conftest_s=
 tls_first_major=
 tls_first_minor=
@@ -6567,60 +6758,99 @@ foo:    .long   25
        tls_first_minor=14
        tls_as_opt="-m64 -Aesame"
        ;;
+  sh-*-* | sh[34]-*-*)
+    conftest_s='
+       .section ".tdata","awT",@progbits
+foo:   .long   25
+       .text
+       .long   foo@TLSGD
+       .long   foo@TLSLDM
+       .long   foo@DTPOFF
+       .long   foo@GOTTPOFF
+       .long   foo@TPOFF'
+       tls_first_major=2
+       tls_first_minor=13
+       ;;
+  sparc*-*-*)
+    conftest_s='
+       .section ".tdata","awT",@progbits
+foo:   .long   25
+       .text
+       sethi   %tgd_hi22(foo), %o0
+       add     %o0, %tgd_lo10(foo), %o1
+       add     %l7, %o1, %o0, %tgd_add(foo)
+       call    __tls_get_addr, %tgd_call(foo)
+       sethi   %tldm_hi22(foo), %l1
+       add     %l1, %tldm_lo10(foo), %l2
+       add     %l7, %l2, %o0, %tldm_add(foo)
+       call    __tls_get_addr, %tldm_call(foo)
+       sethi   %tldo_hix22(foo), %l3
+       xor     %l3, %tldo_lox10(foo), %l4
+       add     %o0, %l4, %l5, %tldo_add(foo)
+       sethi   %tie_hi22(foo), %o3
+       add     %o3, %tie_lo10(foo), %o3
+       ld      [%l7 + %o3], %o2, %tie_ld(foo)
+       add     %g7, %o2, %o4, %tie_add(foo)
+       sethi   %tle_hix22(foo), %l1
+       xor     %l1, %tle_lox10(foo), %o5
+       ld      [%g7 + %o5], %o1'
+       tls_first_major=2
+       tls_first_minor=14
+       tls_as_opt=-32
+       ;;
 esac
 if test -z "$tls_first_major"; then
-  :
-elif test $in_tree_gas = yes ; then
-   if test $gcc_cv_gas_major_version -eq $tls_first_major \
-&& test $gcc_cv_gas_minor_version -ge $tls_first_minor \
-|| test $gcc_cv_gas_major_version -gt $tls_first_major ; then
-
-
-    gcc_cv_as_tls=yes
-  
-
+  : # If we don't have a check, assume no support.
+else
+  echo $ac_n "checking assembler for thread-local storage support""... $ac_c" 1>&6
+echo "configure:6807: checking assembler for thread-local storage support" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_tls'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_tls=no
+    if test $in_tree_gas = yes; then
+    if test $gcc_cv_gas_vers -ge `expr \( \( $tls_first_major \* 1000 \) + $tls_first_minor \) \* 1000 + 0`
+  then gcc_cv_as_tls=yes
 fi
-
-elif test x$gcc_cv_as != x; then
-  echo "$conftest_s" > conftest.s
-  if $gcc_cv_as $tls_as_opt --fatal-warnings -o conftest.o conftest.s > /dev/null 2>&1
-  then
-    gcc_cv_as_tls=yes
+  elif test x$gcc_cv_as != x; then
+    echo "$conftest_s" > conftest.s
+    if { ac_try='$gcc_cv_as $tls_as_opt --fatal-warnings -o conftest.o conftest.s >&5'; { (eval echo configure:6818: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_tls=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
   fi
-  rm -f conftest.s conftest.o
 fi
-if test "$gcc_cv_as_tls" = yes; then
+
+echo "$ac_t""$gcc_cv_as_tls" 1>&6
+if test $gcc_cv_as_tls = yes; then
   cat >> confdefs.h <<\EOF
 #define HAVE_AS_TLS 1
 EOF
 
 fi
-echo "$ac_t""$gcc_cv_as_tls" 1>&6
+fi
+
+# Target-specific assembler checks.
 
 case "$target" in
   # All TARGET_ABI_OSF targets.
   alpha*-*-osf* | alpha*-*-linux* | alpha*-*-*bsd*)
-    echo $ac_n "checking assembler supports explicit relocations""... $ac_c" 1>&6
-echo "configure:6605: checking assembler supports explicit relocations" >&5
-if eval "test \"`echo '$''{'gcc_cv_as_explicit_relocs'+set}'`\" = set"; then
+    echo $ac_n "checking assembler for explicit relocation support""... $ac_c" 1>&6
+echo "configure:6844: checking assembler for explicit relocation support" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_alpha_explicit_relocs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  
-       gcc_cv_as_explicit_relocs=unknown
-       if test $in_tree_gas = yes ; then
-            if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 12 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
-
-
-             gcc_cv_as_explicit_relocs=yes
-          
-
+  gcc_cv_as_alpha_explicit_relocs=no
+    if test $in_tree_gas = yes; then
+    if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 12 \) \* 1000 + 0`
+  then gcc_cv_as_alpha_explicit_relocs=yes
 fi
-
-       elif test x$gcc_cv_as != x; then
-           cat > conftest.s << 'EOF'
-       .set nomacro
+  elif test x$gcc_cv_as != x; then
+    echo '     .set nomacro
        .text
        extbl   $3, $2, $3      !lituse_bytoff!1
        ldq     $2, a($29)      !literal!1
        lda     $0, c($29)      !gprel
        ldah    $1, d($29)      !gprelhigh
        lda     $1, d($1)       !gprellow
-       lda     $29, 0($29)     !gpdisp!3
-EOF
-           if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-               gcc_cv_as_explicit_relocs=yes
-           else
-               gcc_cv_as_explicit_relocs=no
-           fi
-           rm -f conftest.s conftest.o
-       fi
-    
+       lda     $29, 0($29)     !gpdisp!3' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:6867: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_alpha_explicit_relocs=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
 
-echo "$ac_t""$gcc_cv_as_explicit_relocs" 1>&6
-    if test "x$gcc_cv_as_explicit_relocs" = xyes; then
-       cat >> confdefs.h <<\EOF
+echo "$ac_t""$gcc_cv_as_alpha_explicit_relocs" 1>&6
+if test $gcc_cv_as_alpha_explicit_relocs = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_AS_EXPLICIT_RELOCS 1
 EOF
 
-    fi
+fi
     ;;
+
   sparc*-*-*)
-    echo $ac_n "checking assembler .register pseudo-op support""... $ac_c" 1>&6
-echo "configure:6658: checking assembler .register pseudo-op support" >&5
-if eval "test \"`echo '$''{'gcc_cv_as_register_pseudo_op'+set}'`\" = set"; then
+    echo $ac_n "checking assembler for .register""... $ac_c" 1>&6
+echo "configure:6889: checking assembler for .register" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_sparc_register_op'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  
-       gcc_cv_as_register_pseudo_op=unknown
-       if test x$gcc_cv_as != x; then
-           # Check if we have .register
-           echo ".register %g2, #scratch" > conftest.s
-           if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-               gcc_cv_as_register_pseudo_op=yes
-           else
-               gcc_cv_as_register_pseudo_op=no
-           fi
-           rm -f conftest.s conftest.o
-       fi
-    
+  gcc_cv_as_sparc_register_op=no
+  if test x$gcc_cv_as != x; then
+    echo '.register %g2, #scratch' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:6896: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_sparc_register_op=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
 
-echo "$ac_t""$gcc_cv_as_register_pseudo_op" 1>&6
-    if test "x$gcc_cv_as_register_pseudo_op" = xyes; then
-       cat >> confdefs.h <<\EOF
+echo "$ac_t""$gcc_cv_as_sparc_register_op" 1>&6
+if test $gcc_cv_as_sparc_register_op = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_AS_REGISTER_PSEUDO_OP 1
 EOF
 
-    fi
+fi
 
-    echo $ac_n "checking assembler supports -relax""... $ac_c" 1>&6
-echo "configure:6686: checking assembler supports -relax" >&5
-if eval "test \"`echo '$''{'gcc_cv_as_relax_opt'+set}'`\" = set"; then
+    echo $ac_n "checking assembler for -relax option""... $ac_c" 1>&6
+echo "configure:6916: checking assembler for -relax option" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_sparc_relax'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  
-       gcc_cv_as_relax_opt=unknown
-       if test x$gcc_cv_as != x; then
-           # Check if gas supports -relax
-           echo ".text" > conftest.s
-           if $gcc_cv_as -relax -o conftest.o conftest.s > /dev/null 2>&1; then
-               gcc_cv_as_relax_opt=yes
-           else
-               gcc_cv_as_relax_opt=no
-           fi
-           rm -f conftest.s conftest.o
-       fi
-    
+  gcc_cv_as_sparc_relax=no
+  if test x$gcc_cv_as != x; then
+    echo '.text' > conftest.s
+    if { ac_try='$gcc_cv_as -relax -o conftest.o conftest.s >&5'; { (eval echo configure:6923: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_sparc_relax=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
 
-echo "$ac_t""$gcc_cv_as_relax_opt" 1>&6
-    if test "x$gcc_cv_as_relax_opt" = xyes; then
-       cat >> confdefs.h <<\EOF
+echo "$ac_t""$gcc_cv_as_sparc_relax" 1>&6
+if test $gcc_cv_as_sparc_relax = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_AS_RELAX_OPTION 1
 EOF
 
-    fi
+fi
 
-    echo $ac_n "checking assembler and linker support unaligned pc related relocs""... $ac_c" 1>&6
-echo "configure:6714: checking assembler and linker support unaligned pc related relocs" >&5
+    echo $ac_n "checking assembler for unaligned pcrel relocs""... $ac_c" 1>&6
+echo "configure:6943: checking assembler for unaligned pcrel relocs" >&5
 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  
-       gcc_cv_as_sparc_ua_pcrel=unknown
-       if test x$gcc_cv_as != x -a x$gcc_cv_ld != x; then
-           gcc_cv_as_sparc_ua_pcrel=no
-           echo ".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo)" > conftest.s
-           if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1 \
-              && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
-               gcc_cv_as_sparc_ua_pcrel=yes
-           fi
-           rm -f conftest.s conftest.o conftest
-       fi
-    
+  gcc_cv_as_sparc_ua_pcrel=no
+  if test x$gcc_cv_as != x; then
+    echo '.text
+foo:
+       nop
+.data
+.align 4
+.byte 0
+.uaword %r_disp32(foo)' > conftest.s
+    if { ac_try='$gcc_cv_as -K PIC -o conftest.o conftest.s >&5'; { (eval echo configure:6956: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       if test x$gcc_cv_ld != x \
+       && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
+        gcc_cv_as_sparc_ua_pcrel=yes
+       fi
+       rm -f conftest
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
 
 echo "$ac_t""$gcc_cv_as_sparc_ua_pcrel" 1>&6
-    if test "x$gcc_cv_as_sparc_ua_pcrel" = xyes; then
-       cat >> confdefs.h <<\EOF
+if test $gcc_cv_as_sparc_ua_pcrel = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_AS_SPARC_UA_PCREL 1
 EOF
 
-    fi
 
-    echo $ac_n "checking assembler and linker support unaligned pc related relocs against hidden symbols""... $ac_c" 1>&6
-echo "configure:6741: checking assembler and linker support unaligned pc related relocs against hidden symbols" >&5
+      echo $ac_n "checking assembler for unaligned pcrel relocs against hidden symbols""... $ac_c" 1>&6
+echo "configure:6979: checking assembler for unaligned pcrel relocs against hidden symbols" >&5
 if eval "test \"`echo '$''{'gcc_cv_as_sparc_ua_pcrel_hidden'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  
-       if test "x$gcc_cv_as_sparc_ua_pcrel" = xyes; then
-           gcc_cv_as_sparc_ua_pcrel_hidden=unknown
-           if test x$gcc_cv_objdump != x; then
-               gcc_cv_as_sparc_ua_pcrel_hidden=no
-               echo ".data; .align 4; .byte 0x31; .uaword %r_disp32(foo)" > conftest.s
-               echo ".byte 0x32, 0x33, 0x34; .global foo; .hidden foo" >> conftest.s
-               echo "foo: .skip 4" >> conftest.s
-               if $gcc_cv_as -K PIC -o conftest.o conftest.s > /dev/null 2>&1 \
-                  && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
-                  && $gcc_cv_objdump -s -j .data conftest 2> /dev/null \
-                     | grep ' 31000000 07323334' > /dev/null 2>&1; then
-                   if $gcc_cv_objdump -R conftest 2> /dev/null \
-                      | grep 'DISP32' > /dev/null 2>&1; then
-                       :
-                   else
-                       gcc_cv_as_sparc_ua_pcrel_hidden=yes
-                   fi
-               fi
+  gcc_cv_as_sparc_ua_pcrel_hidden=no
+  if test x$gcc_cv_as != x; then
+    echo '.data
+.align 4
+.byte 0x31
+.uaword %r_disp32(foo)
+.byte 0x32, 0x33, 0x34
+.global foo
+.hidden foo
+foo:
+.skip 4' > conftest.s
+    if { ac_try='$gcc_cv_as -K PIC -o conftest.o conftest.s >&5'; { (eval echo configure:6994: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       if test x$gcc_cv_ld != x && test x$gcc_cv_objdump != x \
+        && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
+        && $gcc_cv_objdump -s -j .data conftest 2> /dev/null \
+           | grep ' 31000000 07323334' > /dev/null 2>&1; then
+           if $gcc_cv_objdump -R conftest 2> /dev/null \
+              | grep 'DISP32' > /dev/null 2>&1; then
+               :
+           else
+               gcc_cv_as_sparc_ua_pcrel_hidden=yes
            fi
-           rm -f conftest.s conftest.o conftest
-       else
-           gcc_cv_as_sparc_ua_pcrel_hidden="$gcc_cv_as_sparc_ua_pcrel"
-       fi
-    
+        fi
+        rm -f conftest
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
 
 echo "$ac_t""$gcc_cv_as_sparc_ua_pcrel_hidden" 1>&6
-    if test "x$gcc_cv_as_sparc_ua_pcrel_hidden" = xyes; then
-       cat >> confdefs.h <<\EOF
+if test $gcc_cv_as_sparc_ua_pcrel_hidden = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_AS_SPARC_UA_PCREL_HIDDEN 1
 EOF
 
-    fi
+fi
+    
+fi # unaligned pcrel relocs
 
-    echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6
-echo "configure:6781: checking for assembler offsetable %lo() support" >&5
-if eval "test \"`echo '$''{'gcc_cv_as_offsetable_lo10'+set}'`\" = set"; then
+    echo $ac_n "checking assembler for offsetable %lo()""... $ac_c" 1>&6
+echo "configure:7027: checking assembler for offsetable %lo()" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_sparc_offsetable_lo10'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  
-       gcc_cv_as_offsetable_lo10=unknown
-       if test "x$gcc_cv_as" != x; then
-           # Check if assembler has offsetable %lo()
-           echo "or %g1, %lo(ab) + 12, %g1" > conftest.s
-           echo "or %g1, %lo(ab + 12), %g1" > conftest1.s
-           if $gcc_cv_as -xarch=v9 -o conftest.o conftest.s \
-                   > /dev/null 2>&1 &&
-              $gcc_cv_as -xarch=v9 -o conftest1.o conftest1.s \
-                   > /dev/null 2>&1; then
-               if cmp conftest.o conftest1.o > /dev/null 2>&1; then
-                   gcc_cv_as_offsetable_lo10=no
-               else
-                   gcc_cv_as_offsetable_lo10=yes
-               fi
-           else
-               gcc_cv_as_offsetable_lo10=no
-           fi
-           rm -f conftest.s conftest.o conftest1.s conftest1.o
-       fi
-    
+  gcc_cv_as_sparc_offsetable_lo10=no
+  if test x$gcc_cv_as != x; then
+    echo '.text
+       or %g1, %lo(ab) + 12, %g1
+       or %g1, %lo(ab + 12), %g1' > conftest.s
+    if { ac_try='$gcc_cv_as -xarch=v9 -o conftest.o conftest.s >&5'; { (eval echo configure:7036: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       if test x$gcc_cv_objdump != x \
+       && %gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \
+          | grep ' 82106000 82106000' > /dev/null 2>&1; then
+        gcc_cv_as_offsetable_lo10=yes
+       fi
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
 
-echo "$ac_t""$gcc_cv_as_offsetable_lo10" 1>&6
-    if test "x$gcc_cv_as_offsetable_lo10" = xyes; then
-       cat >> confdefs.h <<\EOF
+echo "$ac_t""$gcc_cv_as_sparc_offsetable_lo10" 1>&6
+if test $gcc_cv_as_sparc_offsetable_lo10 = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_AS_OFFSETABLE_LO10 1
 EOF
 
-    fi
-
+fi
     ;;
 
   i[34567]86-*-* | x86_64-*-*)
-    echo $ac_n "checking assembler instructions""... $ac_c" 1>&6
-echo "configure:6820: checking assembler instructions" >&5
-    gcc_cv_as_instructions=
-    if test $in_tree_gas = yes ; then 
-       if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 9 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
-
-
-       gcc_cv_as_instructions="filds fists"
-      
-
+    echo $ac_n "checking assembler for filds and fists mnemonics""... $ac_c" 1>&6
+echo "configure:7062: checking assembler for filds and fists mnemonics" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_ix86_filds_fists'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_ix86_filds_fists=no
+    if test $in_tree_gas = yes; then
+    if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 9 \) \* 1000 + 0`
+  then gcc_cv_as_ix86_filds_fists=yes
 fi
-
-    elif test x$gcc_cv_as != x; then
-       set "filds fists" "filds mem; fists mem"
-       while test $# -gt 0
-       do
-               echo "$2" > conftest.s
-               if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-                       gcc_cv_as_instructions=${gcc_cv_as_instructions}$1" "
-               fi
-               shift 2
-       done
-       rm -f conftest.s conftest.o
+  elif test x$gcc_cv_as != x; then
+    echo 'filds mem; fists mem' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:7073: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_ix86_filds_fists=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
     fi
-    if test x"$gcc_cv_as_instructions" != x; then
-       cat >> confdefs.h <<EOF
-#define HAVE_GAS_`echo "$gcc_cv_as_instructions" | sed -e 's/ $//' | tr 'a-z ' 'A-Z_'` 1
-EOF
+    rm -f conftest.o conftest.s
+  fi
+fi
 
-    fi
-    echo "$ac_t""$gcc_cv_as_instructions" 1>&6
+echo "$ac_t""$gcc_cv_as_ix86_filds_fists" 1>&6
+if test $gcc_cv_as_ix86_filds_fists = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_GAS_FILDS_FISTS 1
+EOF
 
-    echo $ac_n "checking assembler GOTOFF in data directives""... $ac_c" 1>&6
-echo "configure:6854: checking assembler GOTOFF in data directives" >&5
-    gcc_cv_as_gotoff_in_data=no
-    if test $in_tree_gas = yes ; then
-       if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 11 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
+fi
 
+    echo $ac_n "checking assembler for cmov syntax""... $ac_c" 1>&6
+echo "configure:7093: checking assembler for cmov syntax" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_ix86_cmov_sun_syntax'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_ix86_cmov_sun_syntax=no
+  if test x$gcc_cv_as != x; then
+    echo 'cmovl.l %edx, %eax' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:7100: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_ix86_cmov_sun_syntax=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
+fi
 
-       gcc_cv_as_gotoff_in_data=yes
-      
+echo "$ac_t""$gcc_cv_as_ix86_cmov_sun_syntax" 1>&6
+if test $gcc_cv_as_ix86_cmov_sun_syntax = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_AS_IX86_CMOV_SUN_SYNTAX 1
+EOF
 
 fi
 
-    elif test x$gcc_cv_as != x; then
-       cat > conftest.s <<EOF
-       .text
+    # This one is used unconditionally by i386.[ch]; it is to be defined
+    # to 1 if the feature is present, 0 otherwise.
+    echo $ac_n "checking assembler for GOTOFF in data""... $ac_c" 1>&6
+echo "configure:7122: checking assembler for GOTOFF in data" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_ix86_gotoff_in_data'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_ix86_gotoff_in_data=no
+    if test $in_tree_gas = yes; then
+    if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 11 \) \* 1000 + 0`
+  then gcc_cv_as_ix86_gotoff_in_data=yes
+fi
+  elif test x$gcc_cv_as != x; then
+    echo '     .text
 .L0:
        nop
        .data
-       .long .L0@GOTOFF
-EOF
-       if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-         gcc_cv_as_gotoff_in_data=yes
-       fi
+       .long .L0@GOTOFF' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:7137: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_ix86_gotoff_in_data=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
     fi
+    rm -f conftest.o conftest.s
+  fi
+fi
+
+echo "$ac_t""$gcc_cv_as_ix86_gotoff_in_data" 1>&6
+
     cat >> confdefs.h <<EOF
-#define HAVE_AS_GOTOFF_IN_DATA `if test $gcc_cv_as_gotoff_in_data = yes; then echo 1; else echo 0; fi`
+#define HAVE_AS_GOTOFF_IN_DATA `if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`
 EOF
 
-    echo "$ac_t""$gcc_cv_as_gotoff_in_data" 1>&6
     ;;
 
   ia64*-*-*)
-    echo $ac_n "checking assembler supports ltoffx and ldxmov""... $ac_c" 1>&6
-echo "configure:6888: checking assembler supports ltoffx and ldxmov" >&5
-if eval "test \"`echo '$''{'gcc_cv_as_ltoffx_ldxmov_relocs'+set}'`\" = set"; then
+    echo $ac_n "checking assembler for ltoffx and ldxmov relocs""... $ac_c" 1>&6
+echo "configure:7158: checking assembler for ltoffx and ldxmov relocs" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_ia64_ltoffx_ldxmov_relocs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  
-       gcc_cv_as_ltoffx_ldxmov_relocs=unknown
-       if test $in_tree_gas = yes ; then
-           if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 14 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
-
-
-           gcc_cv_as_ltoffx_ldxmov_relocs=yes
-          
-
+  gcc_cv_as_ia64_ltoffx_ldxmov_relocs=no
+    if test $in_tree_gas = yes; then
+    if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 14 \) \* 1000 + 0`
+  then gcc_cv_as_ia64_ltoffx_ldxmov_relocs=yes
 fi
-
-       elif test x$gcc_cv_as != x; then
-           cat > conftest.s << 'EOF'
-       .text
+  elif test x$gcc_cv_as != x; then
+    echo '     .text
        addl r15 = @ltoffx(x#), gp
        ;;
-       ld8.mov r16 = [r15], x#
-EOF
-           if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-               gcc_cv_as_ltoffx_ldxmov_relocs=yes
-           else
-               gcc_cv_as_ltoffx_ldxmov_relocs=no
-           fi
-           rm -f conftest.s conftest.o
-       fi
-    
+       ld8.mov r16 = [r15], x#' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:7172: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_ia64_ltoffx_ldxmov_relocs=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
 
-echo "$ac_t""$gcc_cv_as_ltoffx_ldxmov_relocs" 1>&6
-    if test "x$gcc_cv_as_ltoffx_ldxmov_relocs" = xyes; then
-       cat >> confdefs.h <<\EOF
+echo "$ac_t""$gcc_cv_as_ia64_ltoffx_ldxmov_relocs" 1>&6
+if test $gcc_cv_as_ia64_ltoffx_ldxmov_relocs = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_AS_LTOFFX_LDXMOV_RELOCS 1
 EOF
 
-    fi
+fi
+
     ;;
+
   powerpc*-*-*)
-    echo $ac_n "checking assembler supports mfcr field""... $ac_c" 1>&6
-echo "configure:6932: checking assembler supports mfcr field" >&5
-if eval "test \"`echo '$''{'gcc_cv_as_mfcrf'+set}'`\" = set"; then
+    case $target in
+      *-*-aix) conftest_s='    .csect .textPR';;
+      *)       conftest_s='    .text';;
+    esac
+    conftest_s="$conftest_s
+       mfcr 3,128"
+
+    echo $ac_n "checking assembler for mfcr field support""... $ac_c" 1>&6
+echo "configure:7202: checking assembler for mfcr field support" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_powerpc_mfcrf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  
-       gcc_cv_as_mfcrf=unknown
-       if test $in_tree_gas = yes ; then
-           if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 14 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
-
-
-           gcc_cv_as_mfcrf=yes
-          
-
+  gcc_cv_as_powerpc_mfcrf=no
+    if test $in_tree_gas = yes; then
+    if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 14 \) \* 1000 + 0`
+  then gcc_cv_as_powerpc_mfcrf=yes
 fi
-
-       elif test x$gcc_cv_as != x; then
-           cat > conftest.s << 'EOF'
-             case "$target" in
-               *-*-aix*)
-       .csect .text[PR]
-               ;;
-               *)
-       .text
-               ;;
-             esac
-       mfcr 3,128
-EOF
-           if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-               gcc_cv_as_mfcrf=yes
-           else
-               gcc_cv_as_mfcrf=no
-           fi
-           rm -f conftest.s conftest.o
-       fi
-    
+  elif test x$gcc_cv_as != x; then
+    echo "$conftest_s" > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:7213: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_powerpc_mfcrf=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
 
-echo "$ac_t""$gcc_cv_as_mfcrf" 1>&6
-    if test "x$gcc_cv_as_mfcrf" = xyes; then
-       cat >> confdefs.h <<\EOF
+echo "$ac_t""$gcc_cv_as_powerpc_mfcrf" 1>&6
+if test $gcc_cv_as_powerpc_mfcrf = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_AS_MFCRF 1
 EOF
 
+fi
+    ;;
+
+  mips*-*-*)
+    echo $ac_n "checking assembler for explicit relocation support""... $ac_c" 1>&6
+echo "configure:7235: checking assembler for explicit relocation support" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_mips_explicit_relocs'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_mips_explicit_relocs=no
+    if test $in_tree_gas = yes; then
+    if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 14 \) \* 1000 + 0`
+  then gcc_cv_as_mips_explicit_relocs=yes
+fi
+  elif test x$gcc_cv_as != x; then
+    echo '     lw $4,%gp_rel(foo)($4)' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:7246: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_mips_explicit_relocs=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
     fi
+    rm -f conftest.o conftest.s
+  fi
+fi
+
+echo "$ac_t""$gcc_cv_as_mips_explicit_relocs" 1>&6
+if test $gcc_cv_as_mips_explicit_relocs = yes; then
+  if test x$target_cpu_default = x
+       then target_cpu_default=MASK_EXPLICIT_RELOCS
+       else target_cpu_default="($target_cpu_default)|MASK_EXPLICIT_RELOCS"
+       fi
+fi
+
     ;;
 esac
-
-echo $ac_n "checking assembler dwarf2 debug_line support""... $ac_c" 1>&6
-echo "configure:6982: checking assembler dwarf2 debug_line support" >&5
-gcc_cv_as_dwarf2_debug_line=no
 # ??? Not all targets support dwarf2 debug_line, even within a version
 # of gas.  Moreover, we need to emit a valid instruction to trigger any
 # info to the output file.  So, as supported targets are added to gas 2.11,
@@ -6989,7 +7272,7 @@ gcc_cv_as_dwarf2_debug_line=no
 case "$target" in
   i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
   | x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-* \
-  | xstormy16*-*-* | cris-*-*)
+  | xstormy16*-*-* | cris-*-* | xtensa-*-*)
     insn="nop"
     ;;
   ia64*-*-*)
@@ -6998,121 +7281,150 @@ case "$target" in
   mmix-*-*)
     insn="swym 0"
     ;;
-  esac
-if test $in_tree_gas = yes ; then
-   if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 11 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
+esac
+if test x"$insn" != x; then
+ conftest_s="\
+       .file 1 \"conftest.s\"
+       .loc 1 3 0
+       $insn"
+ echo $ac_n "checking assembler for dwarf2 debug_line support""... $ac_c" 1>&6
+echo "configure:7292: checking assembler for dwarf2 debug_line support" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_dwarf2_debug_line'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_dwarf2_debug_line=no
+    if test $in_tree_gas = yes; then
+    if test $in_tree_gas_is_elf = yes \
+  && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 11 \) \* 1000 + 0`
+  then gcc_cv_as_dwarf2_debug_line=yes
+fi
+  elif test x$gcc_cv_as != x; then
+    echo "$conftest_s" > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:7304: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       # ??? This fails with non-gnu grep.  Maybe use objdump?
+   if grep debug_line conftest.o > /dev/null 2>&1; then
+     gcc_cv_as_dwarf2_debug_line=yes
+   fi
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
+fi
 
+echo "$ac_t""$gcc_cv_as_dwarf2_debug_line" 1>&6
 
-    test $in_tree_gas_is_elf = yes && test x"$insn" != x \
-       && gcc_cv_as_dwarf2_debug_line="yes"
-  
 
+# The .debug_line file table must be in the exact order that
+# we specified the files, since these indices are also used
+# by DW_AT_decl_file.  Approximate this test by testing if
+# the assembler bitches if the same index is assigned twice.
+ echo $ac_n "checking assembler for buggy dwarf2 .file directive""... $ac_c" 1>&6
+echo "configure:7326: checking assembler for buggy dwarf2 .file directive" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_dwarf2_file_buggy'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_dwarf2_file_buggy=no
+  if test x$gcc_cv_as != x; then
+    echo '     .file 1 "foo.s"
+       .file 1 "bar.s"' > conftest.s
+    if { ac_try='$gcc_cv_as  -o conftest.o conftest.s >&5'; { (eval echo configure:7334: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_dwarf2_file_buggy=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
 
-elif test x$gcc_cv_as != x -a x"$insn" != x ; then
-       echo '  .file 1 "conftest.s"' > conftest.s
-       echo '  .loc 1 3 0' >> conftest.s
-       echo "  $insn" >> conftest.s
-       # ??? This fails with non-gnu grep.
-       if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
-          && grep debug_line conftest.o > /dev/null 2>&1 ; then
-               # The .debug_line file table must be in the exact order that
-               # we specified the files, since these indices are also used
-               # by DW_AT_decl_file.  Approximate this test by testing if
-               # the assembler bitches if the same index is assigned twice.
-               echo '  .file 1 "foo.s"' > conftest.s
-               echo '  .file 1 "bar.s"' >> conftest.s
-               if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1
-               then
-                 gcc_cv_as_dwarf2_debug_line="no"
-               else
-                 gcc_cv_as_dwarf2_debug_line="yes"
-               fi
-       fi
-       rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
-fi
-if test x"$gcc_cv_as_dwarf2_debug_line" = xyes; then
+echo "$ac_t""$gcc_cv_as_dwarf2_file_buggy" 1>&6
+
+
+ if test $gcc_cv_as_dwarf2_debug_line = yes \
+ && test $gcc_cv_as_dwarf2_file_buggy = no; then
        cat >> confdefs.h <<\EOF
 #define HAVE_AS_DWARF2_DEBUG_LINE 1
 EOF
 
-fi
-echo "$ac_t""$gcc_cv_as_dwarf2_debug_line" 1>&6
-
-echo $ac_n "checking assembler --gdwarf2 support""... $ac_c" 1>&6
-echo "configure:7046: checking assembler --gdwarf2 support" >&5
-gcc_cv_as_gdwarf2_flag=no
-if test $in_tree_gas = yes ; then
-   if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 11 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
-
-
-    test $in_tree_gas_is_elf = yes && test x"$insn" != x \
-       && gcc_cv_as_gdwarf2_flag="yes"
-  
+ fi
 
+ echo $ac_n "checking assembler for --gdwarf2 option""... $ac_c" 1>&6
+echo "configure:7357: checking assembler for --gdwarf2 option" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_gdwarf2_flag'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_gdwarf2_flag=no
+    if test $in_tree_gas = yes; then
+    if test $in_tree_gas_is_elf = yes \
+  && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 11 \) \* 1000 + 0`
+  then gcc_cv_as_gdwarf2_flag=yes
+fi
+  elif test x$gcc_cv_as != x; then
+    echo "$insn" > conftest.s
+    if { ac_try='$gcc_cv_as --gdwarf2 -o conftest.o conftest.s >&5'; { (eval echo configure:7369: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       gcc_cv_as_gdwarf2_flag=yes
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
 
-elif test x$gcc_cv_as != x -a x"$insn" != x ; then
-       echo '' > conftest.s
-       # ??? This fails with non-gnu grep.
-       if $gcc_cv_as --gdwarf2 -o conftest.o conftest.s > /dev/null 2>&1
-         then
-         gcc_cv_as_gdwarf2_flag="yes"
-       fi
-       rm -f conftest.s conftest.o
-fi
-if test x"$gcc_cv_as_gdwarf2_flag" = xyes; then
-       cat >> confdefs.h <<\EOF
+echo "$ac_t""$gcc_cv_as_gdwarf2_flag" 1>&6
+if test $gcc_cv_as_gdwarf2_flag = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_AS_GDWARF2_DEBUG_FLAG 1
 EOF
 
 fi
-echo "$ac_t""$gcc_cv_as_gdwarf2_flag" 1>&6
-
-echo $ac_n "checking assembler --gstabs support""... $ac_c" 1>&6
-echo "configure:7078: checking assembler --gstabs support" >&5
-gcc_cv_as_gstabs_flag=no
-if test $in_tree_gas = yes ; then
-   if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 11 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
-
-
-    test $in_tree_gas_is_elf = yes && test x"$insn" != x \
-       && gcc_cv_as_gstabs_flag="yes"
-  
 
+ echo $ac_n "checking assembler for --gstabs option""... $ac_c" 1>&6
+echo "configure:7389: checking assembler for --gstabs option" >&5
+if eval "test \"`echo '$''{'gcc_cv_as_gstabs_flag'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  gcc_cv_as_gstabs_flag=no
+    if test $in_tree_gas = yes; then
+    if test $in_tree_gas_is_elf = yes \
+  && test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 11 \) \* 1000 + 0`
+  then gcc_cv_as_gstabs_flag=yes
+fi
+  elif test x$gcc_cv_as != x; then
+    echo "$insn" > conftest.s
+    if { ac_try='$gcc_cv_as --gstabs -o conftest.o conftest.s >&5'; { (eval echo configure:7401: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+    then
+       # The native Solaris 9/Intel assembler doesn't understand --gstabs
+   # and warns about it, but still exits successfully.  So check for
+   # this.
+   if { ac_try='$gcc_cv_as --gstabs -o conftest.o conftest.s 2>&1 | grep -i warning > /dev/null'; { (eval echo configure:7406: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+   then :
+   else gcc_cv_as_gstabs_flag=yes
+   fi
+    else
+      echo "configure: failed program was" >&5
+      cat conftest.s >&5
+    fi
+    rm -f conftest.o conftest.s
+  fi
 fi
 
-elif test x$gcc_cv_as != x -a x"$insn" != x ; then
-       echo '' > conftest.s
-       # ??? This fails with non-gnu grep.
-       if $gcc_cv_as --gstabs -o conftest.o conftest.s > /dev/null 2>&1 ; then
-         gcc_cv_as_gstabs_flag="yes"
-         # The native Solaris 9/Intel assembler doesn't understand --gstabs
-         # and warns about it, but still exits successfully.  So check for
-         # this.
-         if $gcc_cv_as --gstabs -o conftest.o conftest.s 2>&1 | \
-               grep -i warning > /dev/null ; then
-           gcc_cv_as_gstabs_flag="no"
-         fi
-       fi
-       rm -f conftest.s conftest.o
-fi
-if test x"$gcc_cv_as_gstabs_flag" = xyes; then
-       cat >> confdefs.h <<\EOF
+echo "$ac_t""$gcc_cv_as_gstabs_flag" 1>&6
+if test $gcc_cv_as_gstabs_flag = yes; then
+  cat >> confdefs.h <<\EOF
 #define HAVE_AS_GSTABS_DEBUG_FLAG 1
 EOF
 
 fi
-echo "$ac_t""$gcc_cv_as_gstabs_flag" 1>&6
+fi
 
 echo $ac_n "checking linker read-only and read-write section mixing""... $ac_c" 1>&6
-echo "configure:7116: checking linker read-only and read-write section mixing" >&5
+echo "configure:7428: checking linker read-only and read-write section mixing" >&5
 gcc_cv_ld_ro_rw_mix=unknown
 if test $in_tree_ld = yes ; then
   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10 -o "$gcc_cv_gld_major_version" -gt 2 \
@@ -7151,7 +7463,7 @@ fi
 echo "$ac_t""$gcc_cv_ld_ro_rw_mix" 1>&6
 
 echo $ac_n "checking linker PT_GNU_EH_FRAME support""... $ac_c" 1>&6
-echo "configure:7155: checking linker PT_GNU_EH_FRAME support" >&5
+echo "configure:7467: checking linker PT_GNU_EH_FRAME support" >&5
 gcc_cv_ld_eh_frame_hdr=no
 if test $in_tree_ld = yes ; then
   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 \
@@ -7173,7 +7485,7 @@ fi
 echo "$ac_t""$gcc_cv_ld_eh_frame_hdr" 1>&6
 
 echo $ac_n "checking linker position independent executable support""... $ac_c" 1>&6
-echo "configure:7177: checking linker position independent executable support" >&5
+echo "configure:7489: checking linker position independent executable support" >&5
 gcc_cv_ld_pie=no
 if test $in_tree_ld = yes ; then
   if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 15 -o "$gcc_cv_gld_major_version" -gt 2 \
@@ -7194,68 +7506,6 @@ EOF
 fi
 echo "$ac_t""$gcc_cv_ld_pie" 1>&6
 
-# Miscellaneous target-specific checks.
-case "$target" in
-  mips*-*-*)
-    echo $ac_n "checking whether libgloss uses STARTUP directives consistently""... $ac_c" 1>&6
-echo "configure:7202: checking whether libgloss uses STARTUP directives consistently" >&5
-    gcc_cv_mips_libgloss_startup=no
-    gcc_cv_libgloss_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/libgloss
-    if test "x$exec_prefix" = xNONE; then
-      if test "x$prefix" = xNONE; then
-        test_prefix=/usr/local
-      else
-        test_prefix=$prefix
-      fi
-    else
-      test_prefix=$exec_prefix
-    fi
-    for f in $gcc_cv_libgloss_srcdir/mips/idt.ld $test_prefix/$target_alias/lib/idt.ld
-    do
-      if grep '^STARTUP' $f > /dev/null 2>&1; then
-        gcc_cv_mips_libgloss_startup=yes
-        break
-      fi
-    done
-    if test x"$gcc_cv_mips_libgloss_startup" = xyes; then
-      cat >> confdefs.h <<\EOF
-#define HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES 1
-EOF
-
-    fi
-    echo "$ac_t""$gcc_cv_mips_libgloss_startup" 1>&6
-
-    echo $ac_n "checking whether the assembler has explicit relocation support""... $ac_c" 1>&6
-echo "configure:7230: checking whether the assembler has explicit relocation support" >&5
-    if test x$gcc_cv_mips_explicit_relocs = x; then
-      gcc_cv_mips_explicit_relocs=no
-      if test $in_tree_gas = yes; then
-         if test $gcc_cv_gas_major_version -eq 2 \
-&& test $gcc_cv_gas_minor_version -ge 14 \
-|| test $gcc_cv_gas_major_version -gt 2 ; then
-
-
-         gcc_cv_mips_explicit_relocs=yes
-       
-
-fi
-
-      elif test x$gcc_cv_as != x; then
-       echo '  lw $4,%gp_rel(foo)($4)' > conftest.s
-       if $gcc_cv_as conftest.s -o conftest.o > /dev/null 2>&1; then
-         gcc_cv_mips_explicit_relocs=yes
-       fi
-       rm -f conftest.s conftest.o
-      fi
-    fi
-    if test $gcc_cv_mips_explicit_relocs = yes; then
-      test x$target_cpu_default != x || target_cpu_default=0
-      target_cpu_default="(${target_cpu_default}|MASK_EXPLICIT_RELOCS)"
-    fi
-    echo "$ac_t""$gcc_cv_mips_explicit_relocs" 1>&6
-    ;;
-esac
-
 if test x$with_sysroot = x && test x$host = x$target \
    && test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" ; then
   cat >> confdefs.h <<EOF
@@ -7289,11 +7539,9 @@ enable_languages=`echo "${enable_languages}" | sed -e 's/[       ,][     ,]*/,/g' -e 's/
 # First scan to see if an enabled language requires some other language.
 # We assume that a given config-lang.in will list all the language
 # front ends it requires, even if some are required indirectly.
-for lang in ${srcdir}/*/config-lang.in ..
+for lang in ${srcdir}/*/config-lang.in
 do
    case $lang in
-    ..)
-       ;;
     # The odd quoting in the next line works around
     # an apparent bug in bash 1.12 on linux.
     ${srcdir}/[*]/config-lang.in)
@@ -7320,10 +7568,9 @@ done
 expected_languages=`echo ,${enable_languages}, | sed -e 's:,: :g' -e 's:  *: :g' -e 's:  *: :g' -e 's:^ ::' -e 's: $::'`
 found_languages=
 subdirs=
-for lang in ${srcdir}/*/config-lang.in ..
+for lang in ${srcdir}/*/config-lang.in
 do
        case $lang in
-       ..) ;;
        # The odd quoting in the next line works around
        # an apparent bug in bash 1.12 on linux.
        ${srcdir}/[*]/config-lang.in) ;;
@@ -7402,7 +7649,7 @@ fi
 if test "${with_gc+set}" = set; then
   withval="$with_gc"
   case "$withval" in
-  simple | page)
+  simple | page | zone)
     GGC=ggc-$withval
     ;;
   *)
@@ -7432,7 +7679,7 @@ fi
 
 
 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:7436: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:7683: checking whether to enable maintainer-specific portions of Makefiles" >&5
     # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then
   enableval="$enable_maintainer_mode"
@@ -7455,7 +7702,6 @@ fi
 
 lang_opt_files=
 lang_specs_files=
-lang_options_files=
 lang_tree_files=
 for subdir in . $subdirs
 do
@@ -7465,9 +7711,6 @@ do
        if test -f $srcdir/$subdir/lang-specs.h; then
            lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
        fi
-       if test -f $srcdir/$subdir/lang-options.h; then
-           lang_options_files="$lang_options_files $srcdir/$subdir/lang-options.h"
-       fi
        if test -f $srcdir/$subdir/$subdir-tree.def; then
            lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
        fi
@@ -7481,6 +7724,8 @@ all_compilers=
 all_stagestuff=
 all_outputs='Makefile fixinc/Makefile gccbug mklibgcc mkheaders'
 # List of language makefile fragments.
+all_lang_makefrags=
+# List of language subdirectory makefiles.  Deprecated.
 all_lang_makefiles=
 # Files for gengtype
 all_gtfiles="$target_gtfiles"
@@ -7495,13 +7740,10 @@ all_gtfiles_files_files=
 # The other mechanism is a set of hooks for each of the main targets
 # like `clean', `install', etc.
 
-language_fragments="Make-lang"
 language_hooks="Make-hooks"
 
-for s in .. $subdirs
+for s in $subdirs
 do
-       if test $s != ".."
-       then
                language=
                boot_language=
                compilers=
@@ -7514,9 +7756,9 @@ do
                        echo "${srcdir}/$s/config-lang.in doesn't set \$language." 1>&2
                        exit 1
                fi
-               all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Make-lang.in"
+               all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$s/Make-lang.in"
                if test -f ${srcdir}/$s/Makefile.in
-               then all_lang_makefiles="$all_lang_makefiles ${srcdir}/$s/Makefile.in"
+               then all_lang_makefiles="$s/Makefile"
                fi
                all_languages="$all_languages $language"
                if test "x$boot_language" = xyes
@@ -7527,15 +7769,11 @@ do
                all_stagestuff="$all_stagestuff $stagestuff"
                all_outputs="$all_outputs $outputs"
                all_gtfiles="$all_gtfiles $gtfiles"
-                for f in .. $gtfiles
+                for f in $gtfiles
                 do
-                    if test $f != ".."
-                     then
                          all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
                          all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
-                     fi
                 done
-       fi
 done
 
 # Pick up gtfiles for c
@@ -7543,43 +7781,34 @@ gtfiles=
 s="c"
 . ${srcdir}/c-config-lang.in
 all_gtfiles="$all_gtfiles $gtfiles"
-for f in .. $gtfiles
+for f in $gtfiles
 do
-     if test $f != ".."
-     then
         all_gtfiles_files_langs="$all_gtfiles_files_langs ${s} "
         all_gtfiles_files_files="$all_gtfiles_files_files ${f} "
-     fi
 done
 
 check_languages=
-for language in .. $all_languages
+for language in $all_languages
 do
-       if test $language != ".."
-       then
                check_languages="$check_languages check-$language"
-       fi
 done
 
-# Since we can't use `::' targets, we link each language in
-# with a set of hooks, reached indirectly via lang.${target}.
+# We link each language in with a set of hooks, reached indirectly via
+# lang.${target}.
 
 rm -f Make-hooks
 touch Make-hooks
 target_list="all.build all.cross start.encap rest.encap tags \
-       info dvi generated-manpages \
-       install-normal install-common install-info install-man \
+       install-normal install-common install-man \
        uninstall \
-       mostlyclean clean distclean extraclean maintainer-clean \
+       mostlyclean clean distclean maintainer-clean \
        stage1 stage2 stage3 stage4 stageprofile stagefeedback"
 for t in $target_list
 do
        x=
-       for lang in .. $all_languages
+       for lang in $all_languages
        do
-               if test $lang != ".."; then
                        x="$x $lang.$t"
-               fi
        done
        echo "lang.$t: $x" >> Make-hooks
 done
@@ -7608,7 +7837,7 @@ echo "source ${srcdir}/gdbinit.in" >> .gdbinit
 # make and thus we'd get different behavior depending on where we built the
 # sources.
 if test x$exec_prefix = xNONE -o x$exec_prefix = x$prefix; then
-    gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_alias)'
+    gcc_tooldir='$(libsubdir)/$(unlibsubdir)/../$(target_noncanonical)'
 else
 # An explanation of the sed strings:
 #  -e 's|^\$(prefix)||'   matches and eliminates 'prefix' from 'exec_prefix'
@@ -7632,7 +7861,7 @@ else
 #   /foo        /foo/bar/ugg      ../../
 #
     dollar='$$'
-    gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_alias)"
+    gcc_tooldir="\$(libsubdir)/\$(unlibsubdir)/\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/\$(dollar)||' -e 's|^[^/]|/|' -e 's|/[^/]*|../|g'\`\$(target_noncanonical)"
 fi
 
 
@@ -7665,9 +7894,6 @@ fi
 objdir=`${PWDCMD-pwd}`
 
 
-# Process the language and host/target makefile fragments.
-${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xmake_file" "$dep_tmake_file"
-
 # Substitute configuration variables
 
 
@@ -7739,30 +7965,22 @@ ${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xma
 
 
 
-# Echo that links are built
-if test x$host = x$target
-then
-       str1="native "
+# Echo link setup.
+if test x${build} = x${host} ; then
+  if test x${host} = x${target} ; then
+    echo "Links are now set up to build a native compiler for ${target}." 1>&2
+  else
+    echo "Links are now set up to build a cross-compiler" 1>&2
+    echo " from ${host} to ${target}." 1>&2
+  fi
 else
-       str1="cross-"
-       str2=" from $host"
-fi
-
-if test x$host != x$build
-then
-       str3=" on a $build system"
-fi
-
-if test "x$str2" != x || test "x$str3" != x
-then
-       str4=
-fi
-
-echo "Links are now set up to build a ${str1}compiler for ${target}$str4" 1>&2
-
-if test "x$str2" != x || test "x$str3" != x
-then
-       echo " ${str2}${str3}." 1>&2
+  if test x${host} = x${target} ; then
+    echo "Links are now set up to build (on ${build}) a native compiler" 1>&2
+    echo " for ${target}." 1>&2
+  else
+    echo "Links are now set up to build (on ${build}) a cross-compiler" 1>&2
+    echo " from ${host} to ${target}." 1>&2
+  fi
 fi
 
 # Configure the subdirectories
@@ -7925,7 +8143,6 @@ s%@NO_MINUS_C_MINUS_O@%$NO_MINUS_C_MINUS_O%g
 s%@OUTPUT_OPTION@%$OUTPUT_OPTION%g
 s%@CPP@%$CPP%g
 s%@GNATBIND@%$GNATBIND%g
-s%@ADAC@%$ADAC%g
 s%@strict1_warn@%$strict1_warn%g
 s%@warn_cflags@%$warn_cflags%g
 s%@WERROR@%$WERROR%g
@@ -7939,6 +8156,7 @@ s%@enable_shared@%$enable_shared%g
 s%@TARGET_SYSTEM_ROOT@%$TARGET_SYSTEM_ROOT%g
 s%@TARGET_SYSTEM_ROOT_DEFINE@%$TARGET_SYSTEM_ROOT_DEFINE%g
 s%@CROSS_SYSTEM_HEADER_DIR@%$CROSS_SYSTEM_HEADER_DIR%g
+s%@onestep@%$onestep%g
 s%@SET_MAKE@%$SET_MAKE%g
 s%@AWK@%$AWK%g
 s%@LN@%$LN%g
@@ -7947,11 +8165,11 @@ s%@RANLIB@%$RANLIB%g
 s%@INSTALL@%$INSTALL%g
 s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
 s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@make_compare_target@%$make_compare_target%g
 s%@have_mktemp_command@%$have_mktemp_command%g
 s%@MAKEINFO@%$MAKEINFO%g
 s%@BUILD_INFO@%$BUILD_INFO%g
 s%@GENERATED_MANPAGES@%$GENERATED_MANPAGES%g
-s%@make_compare_target@%$make_compare_target%g
 s%@FLEX@%$FLEX%g
 s%@BISON@%$BISON%g
 s%@stage1_cflags@%$stage1_cflags%g
@@ -7997,25 +8215,28 @@ s%@slibdir@%$slibdir%g
 s%@objdir@%$objdir%g
 s%@subdirs@%$subdirs%g
 s%@srcdir@%$srcdir%g
+s%@docobjdir@%$docobjdir%g
+s%@parsedir@%$parsedir%g
 s%@all_boot_languages@%$all_boot_languages%g
 s%@all_compilers@%$all_compilers%g
 s%@all_gtfiles@%$all_gtfiles%g
 s%@all_gtfiles_files_langs@%$all_gtfiles_files_langs%g
 s%@all_gtfiles_files_files@%$all_gtfiles_files_files%g
+s%@all_lang_makefrags@%$all_lang_makefrags%g
 s%@all_lang_makefiles@%$all_lang_makefiles%g
 s%@all_languages@%$all_languages%g
 s%@all_stagestuff@%$all_stagestuff%g
 s%@build_exeext@%$build_exeext%g
 s%@build_install_headers_dir@%$build_install_headers_dir%g
 s%@build_xm_file_list@%$build_xm_file_list%g
-s%@build_xm_file@%$build_xm_file%g
+s%@build_xm_include_list@%$build_xm_include_list%g
 s%@build_xm_defines@%$build_xm_defines%g
 s%@check_languages@%$check_languages%g
 s%@cc_set_by_configure@%$cc_set_by_configure%g
 s%@quoted_cc_set_by_configure@%$quoted_cc_set_by_configure%g
 s%@cpp_install_dir@%$cpp_install_dir%g
-s%@dep_host_xmake_file@%$dep_host_xmake_file%g
-s%@dep_tmake_file@%$dep_tmake_file%g
+s%@xmake_file@%$xmake_file%g
+s%@tmake_file@%$tmake_file%g
 s%@extra_headers_list@%$extra_headers_list%g
 s%@extra_objs@%$extra_objs%g
 s%@extra_parts@%$extra_parts%g
@@ -8031,12 +8252,11 @@ s%@gcc_version_trigger@%$gcc_version_trigger%g
 s%@host_exeext@%$host_exeext%g
 s%@host_extra_gcc_objs@%$host_extra_gcc_objs%g
 s%@host_xm_file_list@%$host_xm_file_list%g
-s%@host_xm_file@%$host_xm_file%g
+s%@host_xm_include_list@%$host_xm_include_list%g
 s%@host_xm_defines@%$host_xm_defines%g
 s%@out_host_hook_obj@%$out_host_hook_obj%g
 s%@install@%$install%g
 s%@lang_opt_files@%$lang_opt_files%g
-s%@lang_options_files@%$lang_options_files%g
 s%@lang_specs_files@%$lang_specs_files%g
 s%@lang_tree_files@%$lang_tree_files%g
 s%@local_prefix@%$local_prefix%g
@@ -8049,21 +8269,17 @@ s%@quoted_stage_prefix_set_by_configure@%$quoted_stage_prefix_set_by_configure%g
 s%@symbolic_link@%$symbolic_link%g
 s%@thread_file@%$thread_file%g
 s%@tm_file_list@%$tm_file_list%g
-s%@tm_file@%$tm_file%g
+s%@tm_include_list@%$tm_include_list%g
 s%@tm_defines@%$tm_defines%g
 s%@tm_p_file_list@%$tm_p_file_list%g
-s%@tm_p_file@%$tm_p_file%g
-s%@xm_file@%$xm_file%g
+s%@tm_p_include_list@%$tm_p_include_list%g
+s%@xm_file_list@%$xm_file_list%g
+s%@xm_include_list@%$xm_include_list%g
 s%@xm_defines@%$xm_defines%g
+s%@target_noncanonical@%$target_noncanonical%g
 s%@c_target_objs@%$c_target_objs%g
 s%@cxx_target_objs@%$cxx_target_objs%g
 s%@target_cpu_default@%$target_cpu_default%g
-/@target_overrides@/r $target_overrides
-s%@target_overrides@%%g
-/@host_overrides@/r $host_overrides
-s%@host_overrides@%%g
-/@language_fragments@/r $language_fragments
-s%@language_fragments@%%g
 /@language_hooks@/r $language_hooks
 s%@language_hooks@%%g
 
@@ -8276,10 +8492,15 @@ symbolic_link='$symbolic_link'
 EOF
 cat >> $CONFIG_STATUS <<\EOF
 
-case x$CONFIG_HEADERS in
-xauto-host.h:config.in)
-echo > cstamp-h ;;
+case ${CONFIG_HEADERS} in
+  *auto-host.h:config.in*)
+  echo > cstamp-h ;;
 esac
+# Make sure all the subdirs exist.
+for d in $subdirs
+do
+    test -d $d || mkdir $d
+done
 # If the host supports symlinks, point stage[1234] at ../stage[1234] so
 # bootstrapping and the installation procedure can still use
 # CC="stage1/xgcc -Bstage1/".  If the host doesn't support symlinks,
@@ -8287,8 +8508,7 @@ esac
 # This is virtually a duplicate of what happens in configure.lang; we do
 # an extra check to make sure this only happens if ln -s can be used.
 if test "$symbolic_link" = "ln -s"; then
- for d in .. ${subdirs} fixinc ; do
-   if test $d != ..; then
+ for d in ${subdirs} fixinc ; do
        STARTDIR=`${PWDCMD-pwd}`
        cd $d
        for t in stage1 stage2 stage3 stage4 stageprofile stagefeedback include
@@ -8297,7 +8517,6 @@ if test "$symbolic_link" = "ln -s"; then
                $symbolic_link ../$t $t 2>/dev/null
        done
        cd $STARTDIR
-   fi
  done
 else true ; fi