OSDN Git Service

* alpha.md (addsi3, subsi3): No new temporaries once cse is
[pf3gnuchains/gcc-fork.git] / gcc / configure.in
index a69b708..1dd3dd9 100644 (file)
@@ -29,6 +29,59 @@ hard_link=ln
 symbolic_link='ln -s'
 copy=cp
 
+# Check for bogus environment variables.
+# Test if LIBRARY_PATH contains the notation for the current directory
+# since this would lead to problems installing/building glibc.
+# LIBRARY_PATH contains the current directory if one of the following
+# is true:
+# - one of the terminals (":" and ";") is the first or last sign
+# - two terminals occur directly after each other
+# - the path contains an element with a dot in it
+AC_MSG_CHECKING(LIBRARY_PATH variable)
+changequote(,)dnl
+case ${LIBRARY_PATH} in
+  [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
+    library_path_setting="contains current directory"
+    ;;
+  *)
+    library_path_setting="ok"
+    ;;
+esac
+changequote([,])dnl
+AC_MSG_RESULT($library_path_setting)
+if test "$library_path_setting" != "ok"; then
+AC_MSG_ERROR([
+*** LIBRARY_PATH shouldn't contain the current directory when
+*** building egcs. Please change the environment variable
+*** and run configure again.])
+fi
+
+# Test if GCC_EXEC_PREFIX contains the notation for the current directory
+# since this would lead to problems installing/building glibc.
+# GCC_EXEC_PREFIX contains the current directory if one of the following
+# is true:
+# - one of the terminals (":" and ";") is the first or last sign
+# - two terminals occur directly after each other
+# - the path contains an element with a dot in it
+AC_MSG_CHECKING(GCC_EXEC_PREFIX variable)
+changequote(,)dnl
+case ${GCC_EXEC_PREFIX} in
+  [:\;]* | *[:\;] | *[:\;][:\;]* |  *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
+    gcc_exec_prefix_setting="contains current directory"
+    ;;
+  *)
+    gcc_exec_prefix_setting="ok"
+    ;;
+esac
+changequote([,])dnl
+AC_MSG_RESULT($gcc_exec_prefix_setting)
+if test "$gcc_exec_prefix_setting" != "ok"; then
+AC_MSG_ERROR([
+*** GCC_EXEC_PREFIX shouldn't contain the current directory when
+*** building egcs. Please change the environment variable
+*** and run configure again.])
+fi
+
 # Check for additional parameters
 
 # With GNU ld
@@ -37,12 +90,37 @@ AC_ARG_WITH(gnu-ld,
 gnu_ld_flag="$with_gnu_ld",
 gnu_ld_flag=no)
 
+# With pre-defined ld
+AC_ARG_WITH(ld,
+[  --with-ld               arrange to use the specified ld (full pathname).],
+DEFAULT_LINKER="$with_ld")
+if test x"${DEFAULT_LINKER+set}" = x"set"; then
+  if test ! -x "$DEFAULT_LINKER"; then
+    AC_MSG_WARN([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
+  elif test "GNU" = `$DEFAULT_LINKER -v </dev/null 2>&1 | sed '1s/^GNU.*/GNU/;q'`; then
+    gnu_ld_flag=yes
+  fi
+  AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER")
+fi
+
 # With GNU as
 AC_ARG_WITH(gnu-as,
 [  --with-gnu-as           arrange to work with GNU as.],
 gas_flag="$with_gnu_as",
 gas_flag=no)
 
+AC_ARG_WITH(as,
+[  --with-as               arrange to use the specified as (full pathname).],
+DEFAULT_ASSEMBLER="$with_as")
+if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
+  if test ! -x "$DEFAULT_ASSEMBLER"; then
+    AC_MSG_WARN([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
+  elif test "GNU" = `$DEFAULT_ASSEMBLER -v </dev/null 2>&1 | sed '1s/^GNU.*/GNU/;q'`; then
+    gas_flag=yes
+  fi
+  AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER")
+fi
+
 # With stabs
 AC_ARG_WITH(stabs,
 [  --with-stabs            arrange to use stabs instead of host debug format.],
@@ -56,62 +134,114 @@ elf="$with_elf",
 elf=no)
 
 # Specify the local prefix
+local_prefix=
 AC_ARG_WITH(local-prefix,
 [  --with-local-prefix=DIR specifies directory to put local include.],
-local_prefix=$with_local_prefix,
-local_prefix=/usr/local)
+[case "${withval}" in
+yes)   AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
+no)    ;;
+*)     local_prefix=$with_local_prefix ;;
+esac])
 
 # Default local prefix if it is empty
-if [[ x$local_prefix = x ]]; then
+if test x$local_prefix = x; then
        local_prefix=/usr/local
 fi
 
+gxx_include_dir=
 # Specify the g++ header file directory
 AC_ARG_WITH(gxx-include-dir,
 [  --with-gxx-include-dir=DIR
                           specifies directory to put g++ header files.],
-gxx_include_dir=$with_gxx_include_dir,
-gxx_include_dir='${prefix}/include/g++')
+[case "${withval}" in
+yes)   AC_MSG_ERROR(bad value ${withval} given for g++ include directory) ;;
+no)    ;;
+*)     gxx_include_dir=$with_gxx_include_dir ;;
+esac])
 
-# Default g++ header file directory if it is empty
-if [[ x$gxx_include_dir = x ]]; then
-       gxx_include_dir='${prefix}/include/g++'
+if test x${gxx_include_dir} = x; then
+  if test x${enable_version_specific_runtime_libs} = xyes; then
+    gxx_include_dir='${libsubdir}/include/g++'
+  else
+    topsrcdir=${srcdir}/.. . ${srcdir}/../config.if
+changequote(<<, >>)dnl
+    gxx_include_dir="\$(libsubdir)/\$(unlibsubdir)/..\`echo \$(exec_prefix) | sed -e 's|^\$(prefix)||' -e 's|/[^/]*|/..|g'\`/include/g++"-${libstdcxx_interface}
+changequote([, ])dnl
+  fi
 fi
 
-# Enable use of cpplib for C.
+# Enable expensive internal checks
+AC_ARG_ENABLE(checking,
+[  --enable-checking       enable expensive run-time checks.],
+[case "${enableval}" in
+yes)   AC_DEFINE(ENABLE_CHECKING) ;;
+no)    ;;
+*)     AC_MSG_ERROR(bad value ${enableval} given for checking option) ;;
+esac])
+
+# Use cpplib+cppmain for the preprocessor, but don't link it with the compiler.
+cpp_main=cccp
+AC_ARG_ENABLE(cpplib,
+[  --enable-cpplib         use cpplib for the C preprocessor.],
+if test x$enable_cpplib != xno; then
+  cpp_main=cppmain
+fi)
+
+# Link cpplib into the compiler proper, for C/C++/ObjC.
 AC_ARG_ENABLE(c-cpplib,
-[  --enable-c-cpplib       Use cpplib for C.],
-if [[[ x$enable_c_cpplib != xno ]]]; then
-  extra_c_objs="${extra_c_objs} cpplib.o cppexp.o cpphash.o cpperror.o"
+[  --enable-c-cpplib       link cpplib directly into C and C++ compilers
+                          (implies --enable-cpplib).],
+if test x$enable_c_cpplib != xno; then
+  extra_c_objs="${extra_c_objs} libcpp.a"
+  extra_cxx_objs="${extra_cxx_objs} ../libcpp.a"
   extra_c_flags=-DUSE_CPPLIB=1
+  cpp_main=cppmain
+fi)
+
+# Enable Multibyte Characters for C/C++
+AC_ARG_ENABLE(c-mbchar,
+[  --enable-c-mbchar       enable multibyte characters for C and C++.],
+if test x$enable_c_mbchar != xno; then
+  extra_c_flags=-DMULTIBYTE_CHARS=1
 fi)
   
 # Enable Haifa scheduler.
 AC_ARG_ENABLE(haifa,
-[  --enable-haifa          Use the experimental scheduler.
-  --disable-haifa         Don't use the experimental scheduler for the
+[  --enable-haifa          use the experimental scheduler.
+  --disable-haifa         don't use the experimental scheduler for the
                           targets which normally enable it.])
 # Fast fixincludes
 #
 # This is a work in progress...
 AC_ARG_WITH(fast-fixincludes,
-[  --with-fast-fixincludes    Use a faster fixinclude program.  Experimental],
+[  --with-fast-fixincludes    use a faster fixinclude program (experimental)],
 fast_fixinc="$with_fast_fixincludes",
 fast_fixinc=no)
 
+# Enable init_priority.
+AC_ARG_ENABLE(init-priority,
+[  --enable-init-priority  use attributes to assign initialization order
+                         for static objects.
+  --disable-init-priority conform to ISO C++ rules for ordering static objects
+                         (i.e. initialized in order of declaration). ],
+if test x$enable_init_priority != xno; then
+  extra_c_flags=-DUSE_INIT_PRIORITY
+fi)
+
 # Enable threads
 # Pass with no value to take the default
 # Pass with a value to specify a thread package
 AC_ARG_ENABLE(threads,
 [  --enable-threads        enable thread usage for target GCC.
   --enable-threads=LIB    use LIB thread package for target GCC.],
-if [[[ x$enable_threads = xno ]]]; then
+if test x$enable_threads = xno; then
        enable_threads=''
 fi,
 enable_threads='')
 
+enable_threads_flag=$enable_threads
 # Check if a valid thread package
-case x${enable_threads} in
+case x${enable_threads_flag} in
        x | xno)
                # No threads
                target_thread_file='single'
@@ -122,7 +252,7 @@ case x${enable_threads} in
                ;;
        xdecosf1 | xirix | xmach | xos2 | xposix | xpthreads | xsingle | \
        xsolaris | xwin32 | xdce | xvxworks)
-               target_thread_file=$enable_threads
+               target_thread_file=$enable_threads_flag
                ;;
        *)
                echo "$enable_threads is an unknown thread package" 1>&2
@@ -130,30 +260,78 @@ case x${enable_threads} in
                ;;
 esac
 
+AC_ARG_ENABLE(objc-gc,
+[  --enable-objc-gc      enable the use of Boehm's garbage collector with
+                         the GNU Objective-C runtime.],
+if [[[ x$enable_objc_gc = xno ]]]; then
+       objc_boehm_gc=''
+else
+       objc_boehm_gc=1
+fi,
+objc_boehm_gc='')
+
 # Determine the host, build, and target systems
 AC_CANONICAL_SYSTEM
 
 # Find the native compiler
 AC_PROG_CC
+
+# If the native compiler is GCC, we can enable warnings even in stage1.  
+# That's useful for people building cross-compilers, or just running a
+# quick `make'.
+if test "x$GCC" = "xyes"; then 
+  stage1_warn_cflags='$(WARN_CFLAGS)'
+else
+  stage1_warn_cflags=""
+fi
+AC_SUBST(stage1_warn_cflags)
+
 AC_PROG_MAKE_SET
 
+AC_MSG_CHECKING([whether a default assembler was specified])
+if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
+    if test x"$with_gas" = x"no"; then
+       AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
+    else
+       AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
+    fi
+else
+    AC_MSG_RESULT(no)
+fi
+
+AC_MSG_CHECKING([whether a default linker was specified])
+if test x"${DEFAULT_LINKER+set}" = x"set"; then
+    if test x"$with_gnu_ld" = x"no"; then
+       AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
+    else
+       AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
+    fi
+else
+    AC_MSG_RESULT(no)
+fi
+
 # Find some useful tools
 AC_PROG_AWK
 AC_PROG_LEX
 GCC_PROG_LN
 GCC_PROG_LN_S
+GCC_C_VOLATILE
 AC_PROG_RANLIB
 AC_PROG_YACC
 EGCS_PROG_INSTALL
 
 AC_HEADER_STDC
 AC_HEADER_TIME
-AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h fcntl.h unistd.h stab.h sys/file.h sys/time.h sys/resource.h sys/param.h sys/times.h varargs.h sys/varargs.h wait.h sys/wait.h)
+GCC_HEADER_STRING
+AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h fcntl.h unistd.h stab.h sys/file.h sys/time.h sys/resource.h sys/param.h sys/times.h wait.h sys/wait.h)
 
 # Check for thread headers.
 AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
 AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
 
+# See if GNAT has been installed
+AC_CHECK_PROG(gnat, gnatbind, yes, no)
+
 # See if the system preprocessor understands the ANSI C preprocessor
 # stringification operator.
 AC_MSG_CHECKING(whether cpp understands the stringify operator)
@@ -175,19 +353,34 @@ AC_CACHE_VAL(gcc_cv_header_inttypes_h,
   [#include <sys/types.h>
 #include <inttypes.h>],
   [intmax_t i = -1;],
-  [AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H)
-   gcc_cv_header_inttypes_h=yes],
+  [gcc_cv_header_inttypes_h=yes],
   gcc_cv_header_inttypes_h=no)])
 AC_MSG_RESULT($gcc_cv_header_inttypes_h)
+if test $gcc_cv_header_inttypes_h = yes; then
+  AC_DEFINE(HAVE_INTTYPES_H)
+fi
 
-AC_CHECK_FUNCS(strtoul bsearch strerror putenv popen vprintf bcopy bzero bcmp \
+AC_CHECK_FUNCS(strtoul bsearch strerror putenv popen bcopy bzero bcmp \
        index rindex strchr strrchr kill getrlimit setrlimit atoll atoq \
-       sysconf isascii)
+       sysconf isascii gettimeofday strsignal)
 
+# Make sure wchar_t is available
+#AC_CHECK_TYPE(wchar_t, unsigned int)
+
+GCC_FUNC_VFPRINTF_DOPRNT
 GCC_FUNC_PRINTF_PTR
+AC_FUNC_VFORK
 
 GCC_NEED_DECLARATIONS(malloc realloc calloc free bcopy bzero bcmp \
-       index rindex getenv atol sbrk abort atof)
+       index rindex getenv atol sbrk abort atof strerror getcwd getwd \
+       strsignal)
+
+GCC_NEED_DECLARATIONS(getrlimit setrlimit, [
+#include <sys/types.h>
+#ifdef HAVE_SYS_RESOURCE_H
+#include <sys/resource.h>
+#endif
+])
 
 AC_DECL_SYS_SIGLIST
 
@@ -230,7 +423,7 @@ for machine in $build $host $target; do
        # Set this to override the default target model.
        target_cpu_default=
        # Set this to control which fixincludes program to use.
-       if [[ x$fast_fixinc != xyes ]] ; then
+       if test x$fast_fixinc != xyes; then
                fixincludes=fixincludes
        else fixincludes=fixinc.sh ; fi
        # Set this to control how the header file directory is installed.
@@ -251,6 +444,7 @@ for machine in $build $host $target; do
        # configure entries modify them.
        gas="$gas_flag"
        gnu_ld="$gnu_ld_flag"
+       enable_threads=$enable_threads_flag
 
        # Set default cpu_type, tm_file and xm_file so it can be updated in
        # each machine entry.
@@ -265,7 +459,9 @@ for machine in $build $host $target; do
        c*-convex-*)
                cpu_type=convex
                ;;
-       i[[34567]]86-*-*)
+changequote(,)dnl
+       i[34567]86-*-*)
+changequote([,])dnl
                cpu_type=i386
                ;;
        hppa*-*-*)
@@ -294,7 +490,7 @@ for machine in $build $host $target; do
        # Set the default macros to define for GNU/Linux systems.
        case $machine in
        *-*-linux-gnu*)
-               xm_defines="HAVE_ATEXIT POSIX NO_STAB_H BSTRING"
+               xm_defines="HAVE_ATEXIT POSIX BSTRING"
                ;;
        esac
 
@@ -305,11 +501,11 @@ for machine in $build $host $target; do
                rest=`echo $machine | sed -e "s/$cpu_type-//"`
                xm_file=${cpu_type}/xm-$rest.h
                tm_file=${cpu_type}/$rest.h
-               if [[ -f $srcdir/config/${cpu_type}/x-$rest ]] ; \
+               if test -f $srcdir/config/${cpu_type}/x-$rest; \
                then xmake_file=${cpu_type}/x-$rest; \
                else true; \
                fi
-               if [[ -f $srcdir/config/${cpu_type}/t-$rest ]] ; \
+               if test -f $srcdir/config/${cpu_type}/t-$rest; \
                then tmake_file=${cpu_type}/t-$rest; \
                else true; \
                fi
@@ -337,43 +533,51 @@ for machine in $build $host $target; do
                ;;
        alpha*-*-linux-gnuecoff*)
                tm_file="${tm_file} alpha/linux-ecoff.h alpha/linux.h"
-               xm_defines=USE_BFD
                target_cpu_default="MASK_GAS"
                gas=no
                xmake_file=none
                gas=yes gnu_ld=yes
                ;;
        alpha*-*-linux-gnulibc1*)
-               tm_file="${tm_file} alpha/elf.h alpha/linux-elf.h alpha/linux.h"
-               xm_defines=USE_BFD
+               tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
                target_cpu_default="MASK_GAS"
                tmake_file="t-linux t-linux-gnulibc1 alpha/t-linux alpha/t-crtbe"
                extra_parts="crtbegin.o crtend.o"
+               fixincludes=fixinc.wrap
                xmake_file=none
                gas=yes gnu_ld=yes
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='posix'
                fi
                ;;
        alpha*-*-linux-gnu*)
-               tm_file="${tm_file} alpha/linux.h alpha/elf.h"
-               xm_defines=USE_BFD
+               tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
                target_cpu_default="MASK_GAS"
                tmake_file="t-linux alpha/t-linux alpha/t-crtbe"
                extra_parts="crtbegin.o crtend.o"
                xmake_file=none
                fixincludes=Makefile.in
                gas=yes gnu_ld=yes
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='posix'
                fi
                ;;
+       alpha*-*-netbsd*)
+               tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsdl-elf.h"
+               target_cpu_default="MASK_GAS"
+               tmake_file="alpha/t-crtbe"
+               extra_parts="crtbegin.o crtend.o"
+               xmake_file=none
+               fixincludes=fixinc.wrap
+               gas=yes gnu_ld=yes
+               ;;
+               
        alpha*-dec-osf*)
-               if [[ x$stabs = xyes ]]
+               if test x$stabs = xyes
                then
                        tm_file="${tm_file} dbx.h"
                fi
-               if [[ x$gas != xyes ]]
+               if test x$gas != xyes
                then
                        extra_passes="mips-tfile mips-tdump"
                fi
@@ -382,7 +586,9 @@ for machine in $build $host $target; do
                  *-*-osf1*)
                    tm_file="${tm_file} alpha/osf.h alpha/osf12.h alpha/osf2or3.h"
                    ;;
-                 *-*-osf[[23]]*)
+changequote(,)dnl
+                 *-*-osf[23]*)
+changequote([,])dnl
                    tm_file="${tm_file} alpha/osf.h alpha/osf2or3.h"
                    ;;
                  *-*-osf4*)
@@ -393,11 +599,21 @@ for machine in $build $host $target; do
                    ;;
                esac
                case $machine in
-                 *-*-osf4.0[[b-z]] | *-*-osf4.[[1-9]]*)
+changequote(,)dnl
+                 *-*-osf4.0[b-z] | *-*-osf4.[1-9]*)
+changequote([,])dnl
                    target_cpu_default=MASK_SUPPORT_ARCH
                    ;;
                esac
                ;;
+       alpha*-*-vxworks*)
+               tm_file="${tm_file} dbx.h alpha/vxworks.h"
+               if [ x$gas != xyes ]
+               then
+                       extra_passes="mips-tfile mips-tdump"
+               fi
+               use_collect2=yes
+               ;;
        alpha*-*-winnt*)
                tm_file="${tm_file} alpha/win-nt.h"
                xm_file="${xm_file} config/winnt/xm-winnt.h alpha/xm-winnt.h"
@@ -406,11 +622,11 @@ for machine in $build $host $target; do
                extra_host_objs=oldnames.o
                extra_gcc_objs="spawnv.o oldnames.o"
                fixincludes=fixinc.winnt
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        extra_programs=ld.exe
                fi
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='win32'
                fi
                ;;
@@ -427,12 +643,14 @@ for machine in $build $host $target; do
                tm_file=arm/coff.h
                tmake_file=arm/t-bare
                ;;
-       arm-*-riscix1.[[01]]*)          # Acorn RISC machine (early versions)
+changequote(,)dnl
+       arm-*-riscix1.[01]*)            # Acorn RISC machine (early versions)
+changequote([,])dnl
                tm_file=arm/riscix1-1.h
                use_collect2=yes
                ;;
        arm-*-riscix*)                  # Acorn RISC machine
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                    tm_file=arm/rix-gas.h
                else
@@ -452,25 +670,45 @@ for machine in $build $host $target; do
                tmake_file=arm/t-semiaof
                fixincludes=Makefile.in # There is nothing to fix
                ;;
-       arm-*-netbsd*)
+       arm*-*-netbsd*)
                tm_file=arm/netbsd.h
-               xm_file="xm-siglist.h ${xm_file}"
+               xm_file="arm/xm-netbsd.h ${xm_file}"
                tmake_file="t-netbsd arm/t-netbsd"
                # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.math
+               fixincludes=fixinc.wrap
                ;;
-       arm-*-linux-gnuaout*)           # ARM GNU/Linux
+       arm*-*-linux-gnuaout*)          # ARM GNU/Linux with a.out
                cpu_type=arm
                xmake_file=x-linux
-               tm_file=arm/linux-gas.h
+               tm_file=arm/linux-aout.h
                tmake_file=arm/t-linux
                fixincludes=Makefile.in
                gnu_ld=yes
                ;;
-       arm-*-aout)
+       arm*-*-linux-gnu*)              # ARM GNU/Linux with ELF
+               xm_file=arm/xm-linux.h
+               xmake_file=x-linux
+               case $machine in
+               armv2*-*-*)
+                       tm_file=arm/linux-elf26.h
+                       ;;
+               *)
+                       tm_file=arm/linux-elf.h
+                       ;;
+               esac
+               tmake_file="t-linux arm/t-linux"
+               extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+               fixincludes=Makefile.in         # Nothing to fix
+               gnu_ld=yes
+               ;;
+       arm*-*-aout)
                tm_file=arm/aout.h
                tmake_file=arm/t-bare
                ;;
+       arm*-*-elf)
+               tm_file=arm/unknown-elf.h
+               tmake_file=arm/t-arm-elf
+               ;;
        c1-convex-*)                    # Convex C1
                target_cpu_default=1
                use_collect2=yes
@@ -496,6 +734,10 @@ for machine in $build $host $target; do
                use_collect2=yes
                fixincludes=Makefile.in
                ;;
+       c4x-*)
+               cpu_type=c4x
+               tmake_file=c4x/t-c4x
+               ;;
        clipper-intergraph-clix*)
                tm_file="${tm_file} svr3.h clipper/clix.h"
                xm_file=clipper/xm-clix.h
@@ -549,18 +791,20 @@ for machine in $build $host $target; do
                tm_file="pa/pa-oldas.h ${tm_file} pa/pa-hpux7.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file="${tm_file} pa/gas.h"
                fi
                install_headers_dir=install-headers-cpio
                use_collect2=yes
                ;;
-       hppa1.0-*-hpux8.0[[0-2]]*)
+changequote(,)dnl
+       hppa1.0-*-hpux8.0[0-2]*)
+changequote([,])dnl
                tm_file="${tm_file} pa/pa-hpux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file="${tm_file} pa/pa-gas.h"
                else
@@ -569,12 +813,14 @@ for machine in $build $host $target; do
                install_headers_dir=install-headers-cpio
                use_collect2=yes
                ;;
-       hppa1.1-*-hpux8.0[[0-2]]*)
+changequote(,)dnl
+       hppa1.1-*-hpux8.0[0-2]*)
+changequote([,])dnl
                target_cpu_default=1
                tm_file="${tm_file} pa/pa-hpux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file="${tm_file} pa/pa-gas.h"
                else
@@ -588,7 +834,7 @@ for machine in $build $host $target; do
                tm_file="${tm_file} pa/pa-hpux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file="${tm_file} pa/pa-gas.h"
                fi
@@ -599,7 +845,7 @@ for machine in $build $host $target; do
                tm_file="${tm_file} pa/pa-hpux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file="${tm_file} pa/pa-gas.h"
                fi
@@ -612,14 +858,14 @@ for machine in $build $host $target; do
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                tmake_file=pa/t-pa
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file="${tm_file} pa/pa-gas.h"
                fi
-               if [[ x$enable_threads = x ]]; then
+               if test x$enable_threads = x; then
                    enable_threads=$have_pthread_h
                fi
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='dce'
                        tmake_file="${tmake_file} pa/t-dce-thr"
                fi
@@ -630,14 +876,14 @@ for machine in $build $host $target; do
                tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux10.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file="${tm_file} pa/pa-gas.h"
                fi
-               if [[ x$enable_threads = x ]]; then
+               if test x$enable_threads = x; then
                    enable_threads=$have_pthread_h
                fi
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='dce'
                        tmake_file="${tmake_file} pa/t-dce-thr"
                fi
@@ -649,7 +895,7 @@ for machine in $build $host $target; do
                tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux9.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file="${tm_file} pa/pa-gas.h"
                fi
@@ -660,7 +906,7 @@ for machine in $build $host $target; do
                tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux9.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file="${tm_file} pa/pa-gas.h"
                fi
@@ -672,7 +918,7 @@ for machine in $build $host $target; do
                tm_file="${tm_file} pa/pa-hpux.h pa/pa-hiux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file="${tm_file} pa/pa-gas.h"
                fi
@@ -683,7 +929,7 @@ for machine in $build $host $target; do
                tm_file="${tm_file} pa/pa-hpux.h pa/pa-hiux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file="${tm_file} pa/pa-gas.h"
                fi
@@ -697,8 +943,10 @@ for machine in $build $host $target; do
                ;;
        i370-*-mvs*)
                ;;
-       i[[34567]]86-ibm-aix*)          # IBM PS/2 running AIX
-                if [[ x$gas = xyes ]]
+changequote(,)dnl
+       i[34567]86-ibm-aix*)            # IBM PS/2 running AIX
+changequote([,])dnl
+                if test x$gas = xyes
                then
                        tm_file=i386/aix386.h
                        extra_parts="crtbegin.o crtend.o"
@@ -711,11 +959,13 @@ for machine in $build $host $target; do
                xm_defines=USG
                xmake_file=i386/x-aix
                ;;
-       i[[34567]]86-ncr-sysv4*)        # NCR 3000 - ix86 running system V.4
+changequote(,)dnl
+       i[34567]86-ncr-sysv4*)          # NCR 3000 - ix86 running system V.4
+changequote([,])dnl
                xm_file="xm-siglist.h xm-alloca.h ${xm_file}"
                xm_defines="USG POSIX SMALL_ARG_MAX"
                xmake_file=i386/x-ncr3000
-               if [[ x$stabs = xyes -a x$gas = xyes ]]
+               if test x$stabs = xyes -a x$gas = xyes
                then
                        tm_file=i386/sysv4gdb.h
                else
@@ -724,26 +974,33 @@ for machine in $build $host $target; do
                extra_parts="crtbegin.o crtend.o"
                tmake_file=i386/t-crtpic
                ;;
-       i[[34567]]86-next-*)
+changequote(,)dnl
+       i[34567]86-next-*)
+changequote([,])dnl
                tm_file=i386/next.h
                xm_file=i386/xm-next.h
                tmake_file=i386/t-next
                xmake_file=i386/x-next
                extra_objs=nextstep.o
-               if [[ x$enable_threads = xyes ]]; then
+               extra_parts="crtbegin.o crtend.o"
+               if test x$enable_threads = xyes; then
                        thread_file='mach'
                fi
                ;;
-       i[[34567]]86-sequent-bsd*)              # 80386 from Sequent
+changequote(,)dnl
+       i[34567]86-sequent-bsd*)                # 80386 from Sequent
+changequote([,])dnl
                use_collect2=yes
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file=i386/seq-gas.h
                else
                        tm_file=i386/sequent.h
                fi
                ;;
-       i[[34567]]86-sequent-ptx1*)
+changequote(,)dnl
+       i[34567]86-sequent-ptx1*)
+changequote([,])dnl
                xm_defines="USG SVR3"
                xmake_file=i386/x-sysv3
                tm_file=i386/seq-sysv3.h
@@ -752,7 +1009,9 @@ for machine in $build $host $target; do
                extra_parts="crtbegin.o crtend.o"
                install_headers_dir=install-headers-cpio
                ;;
-       i[[34567]]86-sequent-ptx2* | i[[34567]]86-sequent-sysv3*)
+changequote(,)dnl
+       i[34567]86-sequent-ptx2* | i[34567]86-sequent-sysv3*)
+changequote([,])dnl
                xm_defines="USG SVR3"
                xmake_file=i386/x-sysv3
                tm_file=i386/seq2-sysv3.h
@@ -761,7 +1020,9 @@ for machine in $build $host $target; do
                fixincludes=fixinc.ptx
                install_headers_dir=install-headers-cpio
                ;;
-       i[[34567]]86-sequent-ptx4* | i[[34567]]86-sequent-sysv4*)
+changequote(,)dnl
+       i[34567]86-sequent-ptx4* | i[34567]86-sequent-sysv4*)
+changequote([,])dnl
                xm_file="xm-siglist.h xm-alloca.h ${xm_file}"
                xm_defines="USG POSIX SMALL_ARG_MAX"
                xmake_file=x-svr4
@@ -776,61 +1037,83 @@ for machine in $build $host $target; do
                tm_file=i386/sun.h
                use_collect2=yes
                ;;
-       i[[34567]]86-wrs-vxworks*)
+changequote(,)dnl
+       i[34567]86-wrs-vxworks*)
+changequote([,])dnl
                tm_file=i386/vxi386.h
                tmake_file=i386/t-i386bare
                ;;
-       i[[34567]]86-*-aout*)
+changequote(,)dnl
+       i[34567]86-*-aout*)
+changequote([,])dnl
                tm_file=i386/i386-aout.h
                tmake_file=i386/t-i386bare
                ;;
-       i[[34567]]86-*-bsdi* | i[[34567]]86-*-bsd386*)
+changequote(,)dnl
+       i[34567]86-*-bsdi* | i[34567]86-*-bsd386*)
+changequote([,])dnl
                tm_file=i386/bsd386.h
 #              tmake_file=t-libc-ok
                ;;
-       i[[34567]]86-*-bsd*)
+changequote(,)dnl
+       i[34567]86-*-bsd*)
+changequote([,])dnl
                tm_file=i386/386bsd.h
 #              tmake_file=t-libc-ok
 # Next line turned off because both 386BSD and BSD/386 use GNU ld.
 #              use_collect2=yes
                ;;
-       i[[34567]]86-*-freebsdelf*)
+changequote(,)dnl
+       i[34567]86-*-freebsdelf*)
+changequote([,])dnl
                tm_file="i386/i386.h i386/att.h linux.h i386/freebsd-elf.h i386/perform.h"
                # On FreeBSD, the headers are already ok, except for math.h.
-               fixincludes=fixinc.math
+               fixincludes=fixinc.wrap
                tmake_file=i386/t-freebsd
                gas=yes
                gnu_ld=yes
                stabs=yes
                ;;
-       i[[34567]]86-*-freebsd*)
+changequote(,)dnl
+       i[34567]86-*-freebsd*)
+changequote([,])dnl
                tm_file=i386/freebsd.h
                # On FreeBSD, the headers are already ok, except for math.h.
-               fixincludes=fixinc.math
+               fixincludes=fixinc.wrap
                tmake_file=i386/t-freebsd
                ;;
-       i[[34567]]86-*-netbsd*)
+       # We are hoping OpenBSD is still close enough to NetBSD that we can
+       # share the configurations.
+changequote(,)dnl
+       i[34567]86-*-netbsd* | i[34567]86-*-openbsd*)
+changequote([,])dnl
                tm_file=i386/netbsd.h
                # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.math
+               fixincludes=fixinc.wrap
                tmake_file=t-netbsd
                ;;
-       i[[34567]]86-*-coff*)
+changequote(,)dnl
+       i[34567]86-*-coff*)
+changequote([,])dnl
                tm_file=i386/i386-coff.h
                tmake_file=i386/t-i386bare
                ;;
-       i[[34567]]86-*-isc*)            # 80386 running ISC system
+changequote(,)dnl
+       i[34567]86-*-isc*)              # 80386 running ISC system
+changequote([,])dnl
                xm_file="${xm_file} i386/xm-isc.h"
                xm_defines="USG SVR3"
                case $machine in
-                 i[[34567]]86-*-isc[[34]]*)
+changequote(,)dnl
+                 i[34567]86-*-isc[34]*)
+changequote([,])dnl
                    xmake_file=i386/x-isc3
                    ;;
                  *)
                    xmake_file=i386/x-isc
                    ;;
                esac
-                if [[ x$gas = xyes -a x$stabs = xyes ]]
+                if test x$gas = xyes -a x$stabs = xyes
                then
                        tm_file=i386/iscdbx.h
                        tmake_file=i386/t-svr3dbx
@@ -842,25 +1125,30 @@ for machine in $build $host $target; do
                fi
                install_headers_dir=install-headers-cpio
                ;;
-       i[[34567]]86-*-linux-gnuoldld*) # Intel 80386's running GNU/Linux
-                                       # with a.out format using
+changequote(,)dnl
+       i[34567]86-*-linux-gnuoldld*)   # Intel 80386's running GNU/Linux
+changequote([,])dnl                    # with a.out format using
                                        # pre BFD linkers
                xmake_file=x-linux-aout
                tmake_file="t-linux-aout i386/t-crtstuff"
                tm_file=i386/linux-oldld.h
                fixincludes=Makefile.in #On Linux, the headers are ok already.
                gnu_ld=yes
+               float_format=i386
                ;;
-       i[[34567]]86-*-linux-gnuaout*)  # Intel 80386's running GNU/Linux
-                                       # with a.out format
+changequote(,)dnl
+       i[34567]86-*-linux-gnuaout*)    # Intel 80386's running GNU/Linux
+changequote([,])dnl                    # with a.out format
                xmake_file=x-linux-aout
                tmake_file="t-linux-aout i386/t-crtstuff"
                tm_file=i386/linux-aout.h
                fixincludes=Makefile.in #On Linux, the headers are ok already.
                gnu_ld=yes
+               float_format=i386
                ;;
-       i[[34567]]86-*-linux-gnulibc1)  # Intel 80386's running GNU/Linux
-                                       # with ELF format using the
+changequote(,)dnl
+       i[34567]86-*-linux-gnulibc1)    # Intel 80386's running GNU/Linux
+changequote([,])dnl                    # with ELF format using the
                                        # GNU/Linux C library 5
                xmake_file=x-linux      
                tm_file=i386/linux.h    
@@ -868,12 +1156,14 @@ for machine in $build $host $target; do
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                fixincludes=Makefile.in #On Linux, the headers are ok already.
                gnu_ld=yes
-               if [[ x$enable_threads = xyes ]]; then
+               float_format=i386
+               if test x$enable_threads = xyes; then
                        thread_file='single'
                fi
                ;;
-       i[[34567]]86-*-linux-gnu*)      # Intel 80386's running GNU/Linux
-                                       # with ELF format using glibc 2
+changequote(,)dnl
+       i[34567]86-*-linux-gnu*)        # Intel 80386's running GNU/Linux
+changequote([,])dnl                    # with ELF format using glibc 2
                                        # aka GNU/Linux C library 6
                xmake_file=x-linux
                tm_file=i386/linux.h
@@ -881,33 +1171,50 @@ for machine in $build $host $target; do
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                fixincludes=Makefile.in #On Linux, the headers are ok already.
                gnu_ld=yes
-               if [[ x$enable_threads = xyes ]]; then
+               float_format=i386
+               if test x$enable_threads = xyes; then
                        thread_file='posix'
                fi
                ;;
-       i[[34567]]86-*-gnu*)
+changequote(,)dnl
+       i[34567]86-*-gnu*)
+changequote([,])dnl
                ;;
-       i[[34567]]86-go32-msdos | i[[34567]]86-*-go32*)
+changequote(,)dnl
+       i[34567]86-go32-msdos | i[34567]86-*-go32*)
+changequote([,])dnl
                xm_file=i386/xm-go32.h
                tm_file=i386/go32.h
                tmake_file=i386/t-go32
                ;;
-       i[[34567]]86-pc-msdosdjgpp*)
+changequote(,)dnl
+       i[34567]86-pc-msdosdjgpp*)
+changequote([,])dnl
                xm_file=i386/xm-go32.h
                tm_file=i386/go32.h
                tmake_file=i386/t-go32
                gnu_ld=yes
                gas=yes
+               exeext=.exe
+               case $host in
+               *pc-msdosdjgpp*)
+                       target_alias=djgpp
+                       ;;
+               esac
                ;;
-       i[[34567]]86-moss-msdos* | i[[34567]]86-*-moss*)
+changequote(,)dnl
+       i[34567]86-moss-msdos* | i[34567]86-*-moss*)
+changequote([,])dnl
                tm_file=i386/moss.h
                tmake_file=t-libc-ok
                fixincludes=Makefile.in
                gnu_ld=yes
                gas=yes
                ;;
-       i[[34567]]86-*-lynxos*)
-               if [[ x$gas = xyes ]]
+changequote(,)dnl
+       i[34567]86-*-lynxos*)
+changequote([,])dnl
+               if test x$gas = xyes
                then
                        tm_file=i386/lynx.h
                else
@@ -917,13 +1224,17 @@ for machine in $build $host $target; do
                tmake_file=i386/t-i386bare
                xmake_file=x-lynx
                ;;
-       i[[34567]]86-*-mach*)
+changequote(,)dnl
+       i[34567]86-*-mach*)
+changequote([,])dnl
                tm_file=i386/mach.h
 #              tmake_file=t-libc-ok
                use_collect2=yes
                ;;
-       i[[34567]]86-*-osfrose*)                # 386 using OSF/rose
-                if [[ x$elf = xyes ]]
+changequote(,)dnl
+       i[34567]86-*-osfrose*)          # 386 using OSF/rose
+changequote([,])dnl
+                if test x$elf = xyes
                then
                        tm_file=i386/osfelf.h
                        use_collect2=
@@ -936,39 +1247,55 @@ for machine in $build $host $target; do
                tmake_file=i386/t-osf
                extra_objs=halfpic.o
                ;;
-       i[[34567]]86-go32-rtems*)
+changequote(,)dnl
+       i[34567]86-go32-rtems*)
+changequote([,])dnl
                cpu_type=i386
                xm_file=i386/xm-go32.h
                tm_file=i386/go32-rtems.h
                tmake_file="i386/t-go32 t-rtems"
                ;;
-       i[[34567]]86-*-rtemself*)
+changequote(,)dnl
+       i[34567]86-*-rtemself*)
+changequote([,])dnl
                cpu_type=i386
                tm_file=i386/rtemself.h
                tmake_file="i386/t-i386bare t-rtems"
                ;;
-       i[[34567]]86-*-rtems*)
+changequote(,)dnl
+       i[34567]86-*-rtems*)
+changequote([,])dnl
                cpu_type=i386
                tm_file=i386/rtems.h
                tmake_file="i386/t-i386bare t-rtems"
                ;;
-       i[[34567]]86-*-sco3.2v5*)       # 80386 running SCO Open Server 5
+changequote(,)dnl
+       i[34567]86-*-sco3.2v5*) # 80386 running SCO Open Server 5
+changequote([,])dnl
                xm_file="xm-siglist.h xm-alloca.h ${xm_file} i386/xm-sco5.h"
                xm_defines="USG SVR3"
                xmake_file=i386/x-sco5
                fixincludes=fixinc.sco
                install_headers_dir=install-headers-cpio
                tm_file=i386/sco5.h
-               tmake_file=i386/t-sco5
+               if test x$gas = xyes
+               then
+                       tm_file="i386/sco5gas.h ${tm_file}"
+                       tmake_file=i386/t-sco5gas
+               else
+                       tmake_file=i386/t-sco5
+               fi
                extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
                ;;
-       i[[34567]]86-*-sco3.2v4*)       # 80386 running SCO 3.2v4 system
+changequote(,)dnl
+       i[34567]86-*-sco3.2v4*)         # 80386 running SCO 3.2v4 system
+changequote([,])dnl
                xm_file="${xm_file} i386/xm-sco.h"
                xm_defines="USG SVR3 BROKEN_LDEXP SMALL_ARG_MAX NO_SYS_SIGLIST"
                xmake_file=i386/x-sco4
                fixincludes=fixinc.sco
                install_headers_dir=install-headers-cpio
-                if [[ x$stabs = xyes ]]
+                if test x$stabs = xyes
                then
                        tm_file=i386/sco4dbx.h
                        tmake_file=i386/t-svr3dbx
@@ -980,11 +1307,13 @@ for machine in $build $host $target; do
                fi
                truncate_target=yes
                ;;
-       i[[34567]]86-*-sco*)            # 80386 running SCO system
+changequote(,)dnl
+       i[34567]86-*-sco*)              # 80386 running SCO system
+changequote([,])dnl
                xm_file=i386/xm-sco.h
                xmake_file=i386/x-sco
                install_headers_dir=install-headers-cpio
-                if [[ x$stabs = xyes ]]
+                if test x$stabs = xyes
                then
                        tm_file=i386/scodbx.h
                        tmake_file=i386/t-svr3dbx
@@ -996,10 +1325,12 @@ for machine in $build $host $target; do
                fi
                truncate_target=yes
                ;;
-       i[[34567]]86-*-solaris2*)
+changequote(,)dnl
+       i[34567]86-*-solaris2*)
+changequote([,])dnl
                xm_file="xm-siglist.h xm-alloca.h ${xm_file}"
                xm_defines="USG POSIX SMALL_ARG_MAX"
-               if [[ x$stabs = xyes ]]
+               if test x$stabs = xyes
                then
                        tm_file=i386/sol2dbg.h
                else
@@ -1009,33 +1340,39 @@ for machine in $build $host $target; do
                extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
                xmake_file=x-svr4
                case $machine in
-               *-*-solaris2.[[0-4]])
+changequote(,)dnl
+               *-*-solaris2.[0-4])
+changequote([,])dnl
                        fixincludes=fixinc.svr4;;
                *)
-                       fixincludes=fixinc.math;;
+                       fixincludes=fixinc.wrap;;
                esac
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='solaris'
                fi
                ;;
-       i[[34567]]86-*-sysv5*)           # Intel x86 on System V Release 5
+changequote(,)dnl
+       i[34567]86-*-sysv5*)           # Intel x86 on System V Release 5
+changequote([,])dnl
                xm_file="xm-alloca.h xm-siglist.h ${xm_file}"
                xm_defines="USG POSIX"
                tm_file=i386/sysv4.h
-               if [[ x$stabs = xyes ]]
+               if test x$stabs = xyes
                then
                        tm_file="${tm_file} dbx.h"
                fi
                tmake_file=i386/t-crtpic
                xmake_file=x-svr4
                extra_parts="crtbegin.o crtend.o"
-               fixincludes=Makefile.in # The headers are just fine, thank you.
+               fixincludes=fixinc.svr4
                ;;
-       i[[34567]]86-*-sysv4*)          # Intel 80386's running system V.4
+changequote(,)dnl
+       i[34567]86-*-sysv4*)            # Intel 80386's running system V.4
+changequote([,])dnl
                xm_file="xm-siglist.h xm-alloca.h ${xm_file}"
                xm_defines="USG POSIX SMALL_ARG_MAX"
                tm_file=i386/sysv4.h
-               if [[ x$stabs = xyes ]]
+               if test x$stabs = xyes
                then
                        tm_file="${tm_file} dbx.h"
                fi
@@ -1043,12 +1380,25 @@ for machine in $build $host $target; do
                xmake_file=x-svr4
                extra_parts="crtbegin.o crtend.o"
                ;;
-       i[[34567]]86-*-osf1*)           # Intel 80386's running OSF/1 1.3+
+changequote(,)dnl
+       i[34567]86-*-udk*)      # Intel x86 on SCO UW/OSR5 Dev Kit
+changequote([,])dnl
+               xm_file="xm-alloca.h xm-siglist.h ${xm_file}"
+               xm_defines="USG POSIX"
+               tm_file=i386/udk.h
+               tmake_file="i386/t-crtpic i386/t-udk"
+               xmake_file=x-svr4
+               extra_parts="crtbegin.o crtend.o"
+               fixincludes="fixinc.svr4"
+               ;;
+changequote(,)dnl
+       i[34567]86-*-osf1*)             # Intel 80386's running OSF/1 1.3+
+changequote([,])dnl
                cpu_type=i386
                xm_file="${xm_file} xm-svr4.h i386/xm-sysv4.h i386/xm-osf1elf.h"
                xm_defines="USE_C_ALLOCA SMALL_ARG_MAX"
                fixincludes=Makefile.in #Don't do it on OSF/1
-               if [[ x$stabs = xyes ]]
+               if test x$stabs = xyes
                then
                        tm_file=i386/osf1elfgdb.h
                else
@@ -1058,12 +1408,14 @@ for machine in $build $host $target; do
                xmake_file=i386/x-osf1elf
                extra_parts="crti.o crtn.o crtbegin.o crtend.o"
                ;;
-       i[[34567]]86-*-sysv*)           # Intel 80386's running system V
+changequote(,)dnl
+       i[34567]86-*-sysv*)             # Intel 80386's running system V
+changequote([,])dnl
                xm_defines="USG SVR3"
                xmake_file=i386/x-sysv3
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
-                       if [[ x$stabs = xyes ]]
+                       if test x$stabs = xyes
                        then
                                tm_file=i386/svr3dbx.h
                                tmake_file=i386/t-svr3dbx
@@ -1085,26 +1437,44 @@ for machine in $build $host $target; do
                tmake_file=i386/t-vsta
                xmake_file=i386/x-vsta
                ;;
-       i[[34567]]86-*-pe | i[[34567]]86-*-cygwin32)
+changequote(,)dnl
+       i[34567]86-*-win32)
+changequote([,])dnl
+               xm_file="${xm_file} i386/xm-cygwin32.h"
+               tmake_file=i386/t-cygwin32
+               tm_file=i386/win32.h
+               xmake_file=i386/x-cygwin32
+               extra_objs=winnt.o
+               fixincludes=Makefile.in
+               if test x$enable_threads = xyes; then
+                       thread_file='win32'
+               fi
+               exeext=.exe
+               ;;
+changequote(,)dnl
+       i[34567]86-*-pe | i[34567]86-*-cygwin32)
+changequote([,])dnl
                xm_file="${xm_file} i386/xm-cygwin32.h"
                tmake_file=i386/t-cygwin32
                tm_file=i386/cygwin32.h
                xmake_file=i386/x-cygwin32
                extra_objs=winnt.o
                fixincludes=Makefile.in
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='win32'
                fi
                exeext=.exe
                ;;
-       i[[34567]]86-*-mingw32*)
+changequote(,)dnl
+       i[34567]86-*-mingw32*)
+changequote([,])dnl
                tm_file=i386/mingw32.h
                xm_file="${xm_file} i386/xm-mingw32.h"
-               tmake_file=i386/t-cygwin32
+               tmake_file="i386/t-cygwin32 i386/t-mingw32"
                extra_objs=winnt.o
                xmake_file=i386/x-cygwin32
                fixincludes=Makefile.in
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='win32'
                fi
                exeext=.exe
@@ -1116,7 +1486,9 @@ for machine in $build $host $target; do
                                ;;
                esac
                ;;
-       i[[34567]]86-*-winnt3*)
+changequote(,)dnl
+       i[34567]86-*-winnt3*)
+changequote([,])dnl
                tm_file=i386/win-nt.h
                out_file=i386/i386.c
                xm_file="xm-winnt.h ${xm_file}"
@@ -1125,15 +1497,17 @@ for machine in $build $host $target; do
                extra_host_objs="winnt.o oldnames.o"
                extra_gcc_objs="spawnv.o oldnames.o"
                fixincludes=fixinc.winnt
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        extra_programs=ld.exe
                fi
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='win32'
                fi
                ;;
-       i[[34567]]86-dg-dgux*)
+changequote(,)dnl
+       i[34567]86-dg-dgux*)
+changequote([,])dnl
                xm_file="xm-alloca.h xm-siglist.h ${xm_file}"
                xm_defines="USG POSIX"
                out_file=i386/dgux.c
@@ -1152,7 +1526,7 @@ for machine in $build $host $target; do
                ;;
        i860-*-bsd*)
                tm_file="${tm_file} i860/bsd.h"
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file="${tm_file} i860/bsd-gas.h"
                fi
@@ -1230,7 +1604,7 @@ for machine in $build $host $target; do
        m68000-hp-hpux*)                # HP 9000 series 300
                xm_file="xm_alloca.h ${xm_file}"
                xm_defines="USG NO_SYS_SIGLIST"
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        xmake_file=m68k/x-hp320g
                        tm_file=m68k/hp310g.h
@@ -1255,7 +1629,7 @@ for machine in $build $host $target; do
        m68000-att-sysv*)
                xm_file="m68k/xm-3b1.h ${xm_file}"
                xm_defines=USG
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file=m68k/3b1g.h
                else
@@ -1271,28 +1645,30 @@ for machine in $build $host $target; do
                extra_headers=math-68881.h
                extra_parts="crt1.o mcrt1.o maccrt1.o crt2.o crtn.o"
                tm_file=
-               if [[ "$gnu_ld" = yes ]]
+               if test "$gnu_ld" = yes
                then
                        tm_file="${tm_file} m68k/auxgld.h"
                else
                        tm_file="${tm_file} m68k/auxld.h"
                fi
-               if [[ "$gas" = yes ]]
+               if test "$gas" = yes
                then
                        tm_file="${tm_file} m68k/auxgas.h"
                else
                        tm_file="${tm_file} m68k/auxas.h"
                fi
                tm_file="${tm_file} m68k/a-ux.h"
+               float_format=m68k
                ;;
        m68k-apollo-*)
                tm_file=m68k/apollo68.h
                xmake_file=m68k/x-apollo68
                use_collect2=yes
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-altos-sysv*)                  # Altos 3068
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file=m68k/altos3068.h
                        xm_defines=USG
@@ -1303,9 +1679,9 @@ for machine in $build $host $target; do
                extra_headers=math-68881.h
                ;;
        m68k-bull-sysv*)                # Bull DPX/2
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
-                       if [[ x$stabs = xyes ]]
+                       if test x$stabs = xyes
                        then
                                tm_file=m68k/dpx2cdbx.h
                        else
@@ -1327,15 +1703,16 @@ for machine in $build $host $target; do
                tmake_file=t-svr4
                extra_parts="crtbegin.o crtend.o"
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-motorola-sysv*)
                tm_file=m68k/mot3300.h
                xm_file="xm-alloca.h m68k/xm-mot3300.h ${xm_file}"
                xm_defines=NO_SYS_SIGLIST
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        xmake_file=m68k/x-mot3300-gas
-                       if [[ x$gnu_ld = xyes ]]
+                       if test x$gnu_ld = xyes
                        then
                                tmake_file=m68k/t-mot3300-gald
                        else
@@ -1344,7 +1721,7 @@ for machine in $build $host $target; do
                        fi
                else
                        xmake_file=m68k/x-mot3300
-                       if [[ x$gnu_ld = xyes ]]
+                       if test x$gnu_ld = xyes
                        then
                                tmake_file=m68k/t-mot3300-gld
                        else
@@ -1355,6 +1732,7 @@ for machine in $build $host $target; do
                gdb_needs_out_file_path=yes
                extra_parts="crt0.o mcrt0.o"
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-ncr-sysv*)                 # NCR Tower 32 SVR3
                tm_file=m68k/tower-as.h
@@ -1392,30 +1770,35 @@ for machine in $build $host $target; do
                tmake_file=t-svr4
                extra_parts="crtbegin.o crtend.o"
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-ccur-rtu)
                tm_file=m68k/ccur-GAS.h
                xmake_file=m68k/x-ccur
                extra_headers=math-68881.h
                use_collect2=yes
+               float_format=m68k
                ;;
        m68k-hp-bsd4.4*)                # HP 9000/3xx running 4.4bsd
                tm_file=m68k/hp3bsd44.h
                xmake_file=m68k/x-hp3bsd44
                use_collect2=yes
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-hp-bsd*)                   # HP 9000/3xx running Berkeley Unix
                tm_file=m68k/hp3bsd.h
                use_collect2=yes
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-isi-bsd*)
-               if [[ x$with_fp = xno ]]
+               if test x$with_fp = xno
                then
                        tm_file=m68k/isi-nfp.h
                else
                        tm_file=m68k/isi.h
+                       float_format=m68k
                fi
                use_collect2=yes
                extra_headers=math-68881.h
@@ -1423,7 +1806,7 @@ for machine in $build $host $target; do
        m68k-hp-hpux7*) # HP 9000 series 300 running HPUX version 7.
                xm_file="xm_alloca.h ${xm_file}"
                xm_defines="USG NO_SYS_SIGLIST"
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        xmake_file=m68k/x-hp320g
                        tm_file=m68k/hp320g.h
@@ -1434,11 +1817,12 @@ for machine in $build $host $target; do
                install_headers_dir=install-headers-cpio
                use_collect2=yes
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-hp-hpux*)  # HP 9000 series 300
                xm_file="xm_alloca.h ${xm_file}"
                xm_defines="USG NO_SYS_SIGLIST"
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        xmake_file=m68k/x-hp320g
                        tm_file=m68k/hp320g.h
@@ -1449,14 +1833,16 @@ for machine in $build $host $target; do
                install_headers_dir=install-headers-cpio
                use_collect2=yes
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-sun-mach*)
                tm_file=m68k/sun3mach.h
                use_collect2=yes
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-sony-newsos3*)
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file=m68k/news3gas.h
                else
@@ -1464,9 +1850,10 @@ for machine in $build $host $target; do
                fi
                use_collect2=yes
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-sony-bsd* | m68k-sony-newsos*)
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file=m68k/newsgas.h
                else
@@ -1474,6 +1861,7 @@ for machine in $build $host $target; do
                fi
                use_collect2=yes
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-next-nextstep2*)
                tm_file=m68k/next21.h
@@ -1483,6 +1871,7 @@ for machine in $build $host $target; do
                extra_objs=nextstep.o
                extra_headers=math-68881.h
                use_collect2=yes
+               float_format=m68k
                 ;;
        m68k-next-nextstep3*)
                tm_file=m68k/next.h
@@ -1490,27 +1879,31 @@ for machine in $build $host $target; do
                tmake_file=m68k/t-next
                xmake_file=m68k/x-next
                extra_objs=nextstep.o
+               extra_parts="crtbegin.o crtend.o"
                extra_headers=math-68881.h
-               if [[ x$enable_threads = xyes ]]; then
+               float_format=m68k
+               if test x$enable_threads = xyes; then
                        thread_file='mach'
                fi
                ;;
        m68k-sun-sunos3*)
-               if [[ x$with_fp = xno ]]
+               if test x$with_fp = xno
                then
                        tm_file=m68k/sun3n3.h
                else
                        tm_file=m68k/sun3o3.h
+                       float_format=m68k
                fi
                use_collect2=yes
                extra_headers=math-68881.h
                ;;
        m68k-sun-sunos*)                        # For SunOS 4 (the default).
-               if [[ x$with_fp = xno ]]
+               if test x$with_fp = xno
                then
                        tm_file=m68k/sun3n.h
                else
                        tm_file=m68k/sun3.h
+                       float_format=m68k
                fi
                use_collect2=yes
                extra_headers=math-68881.h
@@ -1520,19 +1913,22 @@ for machine in $build $host $target; do
                tmake_file=m68k/t-vxworks68
                extra_headers=math-68881.h
                thread_file='vxworks'
+               float_format=m68k
                ;;
        m68k-*-aout*)
                tmake_file=m68k/t-m68kbare
                tm_file="m68k/m68k-aout.h libgloss.h"
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-*-coff*)
                tmake_file=m68k/t-m68kbare
                tm_file="m68k/m68k-coff.h dbx.h libgloss.h"
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-*-lynxos*)
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file=m68k/lynx.h
                else
@@ -1542,12 +1938,14 @@ for machine in $build $host $target; do
                xmake_file=x-lynx
                tmake_file=m68k/t-lynx
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
-       m68k-*-netbsd*)
+       m68k*-*-netbsd*)
                tm_file=m68k/netbsd.h
                # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.math
+               fixincludes=fixinc.wrap
                tmake_file=t-netbsd
+               float_format=m68k
                ;;
        m68k-*-sysv3*)                  # Motorola m68k's running system V.3
                xm_file="xm-alloca.h ${xm_file}"
@@ -1555,6 +1953,7 @@ for machine in $build $host $target; do
                xmake_file=m68k/x-m68kv
                extra_parts="crtbegin.o crtend.o"
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-*-sysv4*)                  # Motorola m68k's running system V.4
                tm_file=m68k/m68kv4.h
@@ -1563,6 +1962,7 @@ for machine in $build $host $target; do
                tmake_file=t-svr4
                extra_parts="crtbegin.o crtend.o"
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-*-linux-gnuaout*)          # Motorola m68k's running GNU/Linux
                                        # with a.out format
@@ -1571,6 +1971,7 @@ for machine in $build $host $target; do
                tmake_file="t-linux-aout m68k/t-linux-aout"
                fixincludes=Makefile.in # The headers are ok already.
                extra_headers=math-68881.h
+               float_format=m68k
                gnu_ld=yes
                ;;
        m68k-*-linux-gnulibc1)          # Motorola m68k's running GNU/Linux
@@ -1582,6 +1983,7 @@ for machine in $build $host $target; do
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                fixincludes=Makefile.in # The headers are ok already.
                extra_headers=math-68881.h
+               float_format=m68k
                gnu_ld=yes
                ;;
        m68k-*-linux-gnu*)              # Motorola m68k's running GNU/Linux
@@ -1593,8 +1995,9 @@ for machine in $build $host $target; do
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                fixincludes=Makefile.in # The headers are ok already.
                extra_headers=math-68881.h
+               float_format=m68k
                gnu_ld=yes
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='posix'
                fi
                ;;
@@ -1602,11 +2005,13 @@ for machine in $build $host $target; do
                tmake_file=m68k/t-m68kbare
                tm_file=m68k/m68k-psos.h
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
        m68k-*-rtems*)
                tmake_file="m68k/t-m68kbare t-rtems"
                tm_file=m68k/rtems.h
                extra_headers=math-68881.h
+               float_format=m68k
                ;;
 
        m88k-dg-dgux*)
@@ -1622,7 +2027,7 @@ for machine in $build $host $target; do
                esac
                extra_parts="crtbegin.o bcscrtbegin.o crtend.o m88kdgux.ld"
                xmake_file=m88k/x-dgux
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=m88k/t-dgux-gas
                fi
@@ -1633,7 +2038,7 @@ for machine in $build $host $target; do
                extra_parts="crtbegin.o crtend.o"
                xm_file="m88k/xm-sysv3.h ${xm_file}"
                xmake_file=m88k/x-dolph
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=m88k/t-m88k-gas
                fi
@@ -1643,7 +2048,7 @@ for machine in $build $host $target; do
                extra_parts="crtbegin.o crtend.o"
                xm_file="m88k/xm-sysv3.h ${xm_file}"
                xmake_file=m88k/x-tekXD88
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=m88k/t-m88k-gas
                fi
@@ -1658,7 +2063,7 @@ for machine in $build $host $target; do
        m88k-*-luna*)
                tm_file=m88k/luna.h
                extra_parts="crtbegin.o crtend.o"
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=m88k/t-luna-gas
                else
@@ -1670,7 +2075,7 @@ for machine in $build $host $target; do
                extra_parts="crtbegin.o crtend.o"
                xm_file="m88k/xm-sysv3.h ${xm_file}"
                xmake_file=m88k/x-sysv3
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=m88k/t-m88k-gas
                fi
@@ -1687,9 +2092,9 @@ for machine in $build $host $target; do
                fixincludes=fixinc.irix
                xmake_file=mips/x-iris6
                tmake_file=mips/t-iris6
-               if [[ x$enable_threads = xyes ]]; then
-                       thread_file='irix'
-               fi
+#              if test x$enable_threads = xyes; then
+#                      thread_file='irix'
+#              fi
                ;;
        mips-wrs-vxworks)
                tm_file="mips/elf.h libgloss.h"
@@ -1701,20 +2106,21 @@ for machine in $build $host $target; do
                ;;
        mips-sgi-irix5cross64)          # Irix5 host, Irix 6 target, cross64
                tm_file="mips/iris6.h mips/cross64.h"
-               xm_defines="USG HAVE_INTTYPES_H"
+               xm_defines=USG
+               xm_file="mips/xm-iris5.h"
                fixincludes=Makefile.in
                xmake_file=mips/x-iris
                tmake_file=mips/t-cross64
                # See comment in mips/iris[56].h files.
                use_collect2=yes
-               if [[ x$enable_threads = xyes ]]; then
-                       thread_file='irix'
-               fi
+#              if test x$enable_threads = xyes; then
+#                      thread_file='irix'
+#              fi
                ;;
         mips-sni-sysv4)
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
-                       if [[ x$stabs = xyes ]]
+                       if test x$stabs = xyes
                        then
                                tm_file=mips/iris5gdb.h
                        else
@@ -1726,89 +2132,90 @@ for machine in $build $host $target; do
                xm_defines=USG
                 xmake_file=mips/x-sni-svr4
                 tmake_file=mips/t-mips-gas
-                if [[ x$gnu_ld != xyes ]]
+                if test x$gnu_ld != xyes
                 then
                         use_collect2=yes
                 fi
                 ;;
        mips-sgi-irix5*)                # SGI System V.4., IRIX 5
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file="mips/iris5.h mips/iris5gas.h"
-                       if [[ x$stabs = xyes ]]
+                       if test x$stabs = xyes
                        then
                                tm_file="${tm_file} dbx.h"
                        fi
                else
                        tm_file=mips/iris5.h
                fi
-               xm_defines="USG HAVE_INTTYPES_H"
+               xm_defines=USG
+               xm_file="mips/xm-iris5.h"
                fixincludes=fixinc.irix
                xmake_file=mips/x-iris
                # mips-tfile doesn't work yet
                tmake_file=mips/t-mips-gas
                # See comment in mips/iris5.h file.
                use_collect2=yes
-               if [[ x$enable_threads = xyes ]]; then
-                       thread_file='irix'
-               fi
+#              if test x$enable_threads = xyes; then
+#                      thread_file='irix'
+#              fi
                ;;
        mips-sgi-irix4loser*)           # Mostly like a MIPS.
                tm_file="mips/iris4loser.h mips/iris3.h ${tm_file} mips/iris4.h"
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
                xm_defines=USG
                xmake_file=mips/x-iris
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-mips-gas
                else
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
-               if [[ x$enable_threads = xyes ]]; then
-                       thread_file='irix'
-               fi
+#              if test x$enable_threads = xyes; then
+#                      thread_file='irix'
+#              fi
                ;;
        mips-sgi-irix4*)                # Mostly like a MIPS.
                tm_file="mips/iris3.h ${tm_file} mips/iris4.h"
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
                xm_defines=USG
                xmake_file=mips/x-iris
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-mips-gas
                else
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
-               if [[ x$enable_threads = xyes ]]; then
-                       thread_file='irix'
-               fi
+#              if test x$enable_threads = xyes; then
+#                      thread_file='irix'
+#              fi
                ;;
        mips-sgi-*)                     # Mostly like a MIPS.
                tm_file="mips/iris3.h ${tm_file}"
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
                xm_defines=USG
                xmake_file=mips/x-iris3
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-mips-gas
                else
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
@@ -1822,18 +2229,18 @@ for machine in $build $host $target; do
                ;;
        mips-dec-osf*)                  # Decstation running OSF/1 as shipped by DIGITAL
                tm_file=mips/dec-osf1.h
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
                xmake_file=mips/x-dec-osf1
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-mips-gas
                else
                        tmake_file=mips/t-ultrix
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
@@ -1841,36 +2248,36 @@ for machine in $build $host $target; do
        mips-dec-bsd*)                  # Decstation running 4.4 BSD
               tm_file=mips/dec-bsd.h
               fixincludes=
-             if [[ x$gas = xyes ]]
+             if test x$gas = xyes
              then
                        tmake_file=mips/t-mips-gas
              else
                        tmake_file=mips/t-ultrix
                        extra_passes="mips-tfile mips-tdump"
              fi
-             if [[ x$gnu_ld != xyes ]]
+             if test x$gnu_ld != xyes
              then
                        use_collect2=yes
              fi
              ;;
-       mips-dec-netbsd*)                  # Decstation running NetBSD
+       mipsel-*-netbsd* | mips-dec-netbsd*)    # Decstation running NetBSD
                tm_file=mips/netbsd.h
                # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.math
+               fixincludes=fixinc.wrap
                tmake_file=t-netbsd
                ;;
        mips-sony-bsd* | mips-sony-newsos*)     # Sony NEWS 3600 or risc/news.
                tm_file="mips/news4.h ${tm_file}"
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-mips-gas
                else
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
@@ -1880,31 +2287,31 @@ for machine in $build $host $target; do
                                        # That is based on svr4.
                # t-svr4 is not right because this system doesn't use ELF.
                tm_file="mips/news5.h ${tm_file}"
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
                xm_file="xm-siglist.h ${xm_file}"
                xm_defines=USG
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-mips-gas
                else
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
                ;;
        mips-tandem-sysv4*)             # Tandem S2 running NonStop UX
                tm_file="mips/svr4-5.h mips/svr4-t.h"
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
                xm_file="xm-siglist.h ${xm_file}"
                xm_defines=USG
                xmake_file=mips/x-sysv
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-mips-gas
                        extra_parts="crtbegin.o crtend.o"
@@ -1912,151 +2319,163 @@ for machine in $build $host $target; do
                        tmake_file=mips/t-mips
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
                ;;
        mips-*-ultrix* | mips-dec-mach3)        # Decstation.
                tm_file="mips/ultrix.h ${tm_file}"
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
                xmake_file=mips/x-ultrix
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-mips-gas
                else
                        tmake_file=mips/t-ultrix
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
                ;;
-       mips-*-riscos[[56789]]bsd*)
+changequote(,)dnl
+       mips-*-riscos[56789]bsd*)
+changequote([,])dnl
                tm_file=mips/bsd-5.h    # MIPS BSD 4.3, RISC-OS 5.0
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-bsd-gas
                else
                        tmake_file=mips/t-bsd
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
                ;;
-       mips-*-bsd* | mips-*-riscosbsd* | mips-*-riscos[[1234]]bsd*)
+changequote(,)dnl
+       mips-*-bsd* | mips-*-riscosbsd* | mips-*-riscos[1234]bsd*)
+changequote([,])dnl
                tm_file="mips/bsd-4.h ${tm_file}" # MIPS BSD 4.3, RISC-OS 4.0
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-bsd-gas
                else
                        tmake_file=mips/t-bsd
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
                ;;
-       mips-*-riscos[[56789]]sysv4*)
+changequote(,)dnl
+       mips-*-riscos[56789]sysv4*)
+changequote([,])dnl
                tm_file=mips/svr4-5.h   # MIPS System V.4., RISC-OS 5.0
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
                xm_file="xm-siglist.h ${xm_file}"
                xmake_file=mips/x-sysv
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-svr4-gas
                else
                        tmake_file=mips/t-svr4
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
                ;;
-       mips-*-sysv4* | mips-*-riscos[[1234]]sysv4* | mips-*-riscossysv4*)
+changequote(,)dnl
+       mips-*-sysv4* | mips-*-riscos[1234]sysv4* | mips-*-riscossysv4*)
+changequote([,])dnl
                tm_file="mips/svr4-4.h ${tm_file}"
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
                xm_defines=USG
                xmake_file=mips/x-sysv
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-svr4-gas
                else
                        tmake_file=mips/t-svr4
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
                ;;
-       mips-*-riscos[[56789]]sysv*)
+changequote(,)dnl
+       mips-*-riscos[56789]sysv*)
+changequote([,])dnl
                tm_file=mips/svr3-5.h   # MIPS System V.3, RISC-OS 5.0
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
                xm_defines=USG
                xmake_file=mips/x-sysv
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-svr3-gas
                else
                        tmake_file=mips/t-svr3
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
                ;;
        mips-*-sysv* | mips-*-riscos*sysv*)
                tm_file="mips/svr3-4.h ${tm_file}"
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
                xm_defines=USG
                xmake_file=mips/x-sysv
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-svr3-gas
                else
                        tmake_file=mips/t-svr3
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
                ;;
-       mips-*-riscos[[56789]]*)                # Default MIPS RISC-OS 5.0.
+changequote(,)dnl
+       mips-*-riscos[56789]*)          # Default MIPS RISC-OS 5.0.
+changequote([,])dnl
                tm_file=mips/mips-5.h
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-mips-gas
                else
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
@@ -2065,14 +2484,14 @@ for machine in $build $host $target; do
                ;;
        mipsel-*-ecoff*)
                tm_file=mips/ecoffl.h
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
                tmake_file=mips/t-ecoff
                ;;
        mips-*-ecoff*)
                tm_file="gofast.h mips/ecoff.h"
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
                tmake_file=mips/t-ecoff
@@ -2102,7 +2521,7 @@ for machine in $build $host $target; do
                tmake_file=mips/t-ecoff
                ;;
        mips64orion-*-rtems*)
-               tm_file="mips/elforion.h mips/elfl64.h mips/rtems64.h"
+               tm_file="mips/elforion.h mips/elf64.h mips/rtems64.h"
                tmake_file="mips/t-ecoff t-rtems"
                ;;
        mipstx39el-*-elf*)
@@ -2112,18 +2531,20 @@ for machine in $build $host $target; do
        mipstx39-*-elf*)
                tm_file="mips/r3900.h mips/elf.h mips/abi64.h libgloss.h"
                tmake_file=mips/t-r3900
+               # FIXME mips-elf should be fixed to use crtstuff.
+               use_collect2=yes
                ;;
        mips-*-*)                               # Default MIPS RISC-OS 4.0.
-               if [[ x$stabs = xyes ]]; then
+               if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file=mips/t-mips-gas
                else
                        extra_passes="mips-tfile mips-tdump"
                fi
-               if [[ x$gnu_ld != xyes ]]
+               if test x$gnu_ld != xyes
                then
                        use_collect2=yes
                fi
@@ -2131,7 +2552,7 @@ for machine in $build $host $target; do
        mn10200-*-*)
                cpu_type=mn10200
                tm_file="mn10200/mn10200.h"
-               if [[ x$stabs = xyes ]]
+               if test x$stabs = xyes
                then
                        tm_file="${tm_file} dbx.h"
                fi
@@ -2140,7 +2561,7 @@ for machine in $build $host $target; do
        mn10300-*-*)
                cpu_type=mn10300
                tm_file="mn10300/mn10300.h"
-               if [[ x$stabs = xyes ]]
+               if test x$stabs = xyes
                then
                        tm_file="${tm_file} dbx.h"
                fi
@@ -2183,10 +2604,11 @@ for machine in $build $host $target; do
                xm_defines=USG
                use_collect2=yes
                ;;
-       ns32k-pc532-netbsd*)
+       ns32k-*-netbsd*)
                tm_file=ns32k/netbsd.h
+               xm_file="ns32k/xm-netbsd.h ${xm_file}"
                # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.math
+               fixincludes=fixinc.wrap
                tmake_file=t-netbsd
                ;;
         pdp11-*-bsd)
@@ -2218,7 +2640,7 @@ for machine in $build $host $target; do
                xm_file="xm-siglist.h rs6000/xm-sysv4.h"
                xm_defines="USG POSIX"
                extra_headers=ppc-asm.h
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
                else
@@ -2240,7 +2662,7 @@ for machine in $build $host $target; do
                ;;
        powerpc-*-eabi*)
                tm_file=rs6000/eabi.h
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
                else
@@ -2251,7 +2673,7 @@ for machine in $build $host $target; do
                ;;
        powerpc-*-rtems*)
                tm_file=rs6000/rtems.h
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                     tmake_file="rs6000/t-ppcgas t-rtems rs6000/t-ppccomm"
                else
@@ -2264,7 +2686,7 @@ for machine in $build $host $target; do
                tm_file=rs6000/linux.h
                xm_file=rs6000/xm-sysv4.h
                out_file=rs6000/rs6000.c
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file="rs6000/t-ppcos t-linux t-linux-gnulibc1 rs6000/t-ppccomm"
                else
@@ -2274,7 +2696,7 @@ for machine in $build $host $target; do
                fixincludes=Makefile.in
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                extra_headers=ppc-asm.h
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='posix'
                fi
                ;;
@@ -2283,7 +2705,7 @@ for machine in $build $host $target; do
                xm_file="xm-siglist.h rs6000/xm-sysv4.h"
                xm_defines="USG ${xm_defines}"
                out_file=rs6000/rs6000.c
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file="rs6000/t-ppcos t-linux rs6000/t-ppccomm"
                else
@@ -2293,7 +2715,7 @@ for machine in $build $host $target; do
                fixincludes=Makefile.in
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                extra_headers=ppc-asm.h
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='posix'
                fi
                ;;
@@ -2310,7 +2732,7 @@ for machine in $build $host $target; do
                tm_file=rs6000/sysv4le.h
                xm_file="xm-siglist.h rs6000/xm-sysv4.h"
                xm_defines="USG POSIX"
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
                else
@@ -2327,7 +2749,7 @@ for machine in $build $host $target; do
                ;;
        powerpcle-*-eabi*)
                tm_file=rs6000/eabile.h
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
                else
@@ -2341,7 +2763,7 @@ for machine in $build $host $target; do
                 tmake_file=rs6000/t-winnt
 #               extra_objs=pe.o
                fixincludes=Makefile.in
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='win32'
                fi
                extra_headers=ppc-asm.h
@@ -2349,12 +2771,11 @@ for machine in $build $host $target; do
        powerpcle-*-pe | powerpcle-*-cygwin32)
                tm_file=rs6000/cygwin32.h
                xm_file="rs6000/xm-cygwin32.h ${xm_file}"
-               xm_defines=NO_STAB_H
                tmake_file=rs6000/t-winnt
                xmake_file=rs6000/x-cygwin32
 #              extra_objs=pe.o
                fixincludes=Makefile.in
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='win32'
                fi
                exeext=.exe
@@ -2364,7 +2785,7 @@ for machine in $build $host $target; do
                tm_file=rs6000/sol2.h
                xm_file="xm-siglist.h rs6000/xm-sysv4.h"
                xm_defines="USG POSIX"
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
                else
@@ -2372,21 +2793,27 @@ for machine in $build $host $target; do
                fi
                xmake_file=rs6000/x-sysv4
                case $machine in
-               *-*-solaris2.[[0-4]])
+changequote(,)dnl
+               *-*-solaris2.[0-4])
+changequote([,])dnl
                        fixincludes=fixinc.svr4;;
                *)
-                       fixincludes=fixinc.math;;
+                       fixincludes=fixinc.wrap;;
                esac
                extra_headers=ppc-asm.h
                ;;
-       rs6000-ibm-aix3.[[01]]*)
+changequote(,)dnl
+       rs6000-ibm-aix3.[01]*)
+changequote([,])dnl
                tm_file=rs6000/aix31.h
                xmake_file=rs6000/x-aix31
                use_collect2=yes
                ;;
-       rs6000-ibm-aix3.2.[[456789]]* | powerpc-ibm-aix3.2.[[456789]]*)
+changequote(,)dnl
+       rs6000-ibm-aix3.2.[456789]* | powerpc-ibm-aix3.2.[456789]*)
+changequote([,])dnl
                tm_file=rs6000/aix3newas.h
-               if [[ x$host != x$target ]]
+               if test x$host != x$target
                then
                        tmake_file=rs6000/t-xnewas
                else
@@ -2394,15 +2821,43 @@ for machine in $build $host $target; do
                fi
                use_collect2=yes
                ;;
-       rs6000-ibm-aix[[456789]].* | powerpc-ibm-aix[[456789]].*)
+changequote(,)dnl
+       rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*)
+changequote([,])dnl
                tm_file=rs6000/aix41.h
-               if [[ x$host != x$target ]]
+               if test x$host != x$target
                then
                        tmake_file=rs6000/t-xnewas
                else
                        tmake_file=rs6000/t-newas
                fi
-               xmake_file=rs6000/x-aix31
+               xmake_file=rs6000/x-aix41
+               use_collect2=yes
+               ;;
+changequote(,)dnl
+       rs6000-ibm-aix4.[3456789].* | powerpc-ibm-aix4.[3456789].*)
+changequote([,])dnl
+               tm_file=rs6000/aix43.h
+               if test x$host != x$target
+               then
+                       tmake_file=rs6000/t-xaix43
+               else
+                       tmake_file=rs6000/t-aix43
+               fi
+               xmake_file=rs6000/x-aix43
+               use_collect2=yes
+               ;;
+changequote(,)dnl
+       rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
+changequote([,])dnl
+               tm_file=rs6000/aix43.h
+               if test x$host != x$target
+               then
+                       tmake_file=rs6000/t-xaix43
+               else
+                       tmake_file=rs6000/t-aix43
+               fi
+               xmake_file=rs6000/x-aix43
                use_collect2=yes
                ;;
        rs6000-ibm-aix*)
@@ -2428,6 +2883,11 @@ for machine in $build $host $target; do
                tm_file=sh/elf.h
                float_format=sh
                ;;
+       sh-*-rtemself*)
+               tmake_file="sh/t-sh t-rtems"
+               tm_file=sh/rtemself.h
+               float_format=sh
+               ;;
        sh-*-rtems*)
                tmake_file="sh/t-sh t-rtems"
                tm_file=sh/rtems.h
@@ -2454,7 +2914,7 @@ for machine in $build $host $target; do
        sparc-*-netbsd*)
                tm_file=sparc/netbsd.h
                # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.math
+               fixincludes=fixinc.wrap
                tmake_file=t-netbsd
                ;;
        sparc-*-bsd*)
@@ -2491,12 +2951,12 @@ for machine in $build $host $target; do
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                fixincludes=Makefile.in #On Linux, the headers are ok already.
                gnu_ld=yes
-               if [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='posix'
                fi
                ;;
        sparc-*-lynxos*)
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        tm_file=sparc/lynx.h
                else
@@ -2510,8 +2970,31 @@ for machine in $build $host $target; do
                tmake_file="sparc/t-sparcbare t-rtems"
                tm_file=sparc/rtems.h
                ;;
+       sparcv9-*-solaris2*)
+               tm_file=sparc/sol2-sld-64.h
+               xm_file="sparc/xm-sysv4-64.h sparc/xm-sol2.h"
+               xm_defines="USG POSIX"
+               tmake_file="sparc/t-sol2 sparc/t-sol2-64"
+               xmake_file=sparc/x-sysv4
+               extra_parts="crt1.o crti.o crtn.o gcrt1.o crtbegin.o crtend.o"
+               fixincludes=fixinc.wrap
+               float_format=i128
+               if test x${enable_threads} = x ; then
+                   enable_threads=$have_pthread_h
+                   if test x${enable_threads} = x ; then
+                       enable_threads=$have_thread_h
+                   fi
+               fi
+               if test x${enable_threads} = xyes ; then
+                   if test x${have_pthread_h} = xyes ; then
+                       thread_file='posix'
+                   else
+                       thread_file='solaris'
+                   fi
+               fi
+               ;;
        sparc-*-solaris2*)
-               if [[ x$gnu_ld = xyes ]]
+               if test x$gnu_ld = xyes
                then
                        tm_file=sparc/sol2.h
                else
@@ -2523,20 +3006,22 @@ for machine in $build $host $target; do
                xmake_file=sparc/x-sysv4
                extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
                case $machine in
-               *-*-solaris2.[[0-4]])
+changequote(,)dnl
+               *-*-solaris2.[0-4])
+changequote([,])dnl
                        fixincludes=fixinc.svr4;;
                *)
-                       fixincludes=fixinc.math;;
+                       fixincludes=fixinc.wrap;;
                esac
                float_format=i128
-               if [[ x${enable_threads} = x ]]; then
+               if test x${enable_threads} = x; then
                    enable_threads=$have_pthread_h
-                   if [[ x${enable_threads} = x ]]; then
+                   if test x${enable_threads} = x; then
                        enable_threads=$have_thread_h
                    fi
                fi
-               if [[ x${enable_threads} = xyes ]]; then
-                   if [[ x${have_pthread_h} = xyes ]]; then
+               if test x${enable_threads} = xyes; then
+                   if test x${have_pthread_h} = xyes; then
                        thread_file='posix'
                    else
                        thread_file='solaris'
@@ -2552,7 +3037,7 @@ for machine in $build $host $target; do
                tm_file=sparc/sunos4.h
                tmake_file=sparc/t-sunos41
                use_collect2=yes
-               if [[ x$gas = xyes ]]; then
+               if test x$gas = xyes; then
                        tm_file="${tm_file} sparc/sun4gas.h"
                fi
                ;;
@@ -2597,11 +3082,12 @@ for machine in $build $host $target; do
                extra_parts="crtbegin.o crtend.o"
                ;;
        sparc64-*-linux*)               # 64-bit Sparc's running GNU/Linux
-               tmake_file=sparc/t-sp64
+               tmake_file="t-linux sparc/t-linux64"
                xm_file="sparc/xm-sp64.h sparc/xm-linux.h"
                tm_file=sparc/linux64.h
                xmake_file=x-linux
                fixincludes=Makefile.in # The headers are ok already.
+               extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                gnu_ld=yes
                ;;
 # This hasn't been upgraded to GCC 2.
@@ -2616,6 +3102,7 @@ for machine in $build $host $target; do
                xm_file=arm/xm-thumb.h
                md_file=arm/thumb.md
                tmake_file=arm/t-thumb
+               fixincludes=Makefile.in # There is nothing to fix
                ;;
 # This hasn't been upgraded to GCC 2.
 #      tron-*-*)
@@ -2627,7 +3114,7 @@ for machine in $build $host $target; do
                tm_file="v850/v850.h"
                xm_file="v850/xm-v850.h"
                tmake_file=v850/t-v850
-               if [[ x$stabs = xyes ]]
+               if test x$stabs = xyes
                then
                        tm_file="${tm_file} dbx.h"
                fi
@@ -2645,7 +3132,7 @@ for machine in $build $host $target; do
        vax-*-netbsd*)
                tm_file="${tm_file} netbsd.h vax/netbsd.h"
                # On NetBSD, the headers are already okay, except for math.h.
-               fixincludes=fixinc.math
+               fixincludes=fixinc.wrap
                tmake_file=t-netbsd
                float_format=vax
                ;;
@@ -2732,9 +3219,9 @@ for machine in $build $host $target; do
                                ;;
                esac
                                
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
-                       if [[ "$target_cpu_default2" = "" ]]
+                       if test "$target_cpu_default2" = ""
                        then
                                target_cpu_default2="MASK_GAS"
                        else
@@ -2764,7 +3251,7 @@ for machine in $build $host $target; do
                                ;;
 
                        *)
-                               if [[ x$pass2done = xyes ]]
+                               if test x$pass2done = xyes
                                then
                                        echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
                                        exit 1
@@ -2774,9 +3261,9 @@ for machine in $build $host $target; do
                ;;
 
        mips*-*-ecoff* | mips*-*-elf*)
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
-                       if [[ x$gnu_ld = xyes ]]
+                       if test x$gnu_ld = xyes
                        then
                                target_cpu_default2=20
                        else
@@ -2785,7 +3272,7 @@ for machine in $build $host $target; do
                fi
                ;;
        mips*-*-*)
-               if [[ x$gas = xyes ]]
+               if test x$gas = xyes
                then
                        target_cpu_default2=16
                fi
@@ -2808,7 +3295,7 @@ for machine in $build $host $target; do
                                ;;
 
                        *)
-                               if [[ x$pass2done = xyes ]]
+                               if test x$pass2done = xyes
                                then
                                        echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
                                        exit 1
@@ -2825,7 +3312,7 @@ for machine in $build $host $target; do
                                target_cpu_default2="TARGET_CPU_$with_cpu"
                                ;;
                        *)
-                               if [[ x$pass2done = xyes ]]
+                               if test x$pass2done = xyes
                                then
                                        echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
                                        exit 1
@@ -2835,9 +3322,9 @@ for machine in $build $host $target; do
                ;;
        esac
 
-       if [[ "$target_cpu_default2" != "" ]]
+       if test "$target_cpu_default2" != ""
        then
-               if [[ "$target_cpu_default" != "" ]]
+               if test "$target_cpu_default" != ""
                then
                        target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
                else
@@ -2846,17 +3333,19 @@ for machine in $build $host $target; do
        fi
 
        # No need for collect2 if we have the GNU linker.
-       case x$gnu_ld in
-       xyes)
-               use_collect2=
-               ;;
-       esac
+       # Actually, there is now; GNU ld doesn't handle the EH info or
+       # collecting for shared libraries.
+       #case x$gnu_ld in
+       #xyes)
+       #       use_collect2=
+       #       ;;
+       #esac
 
 # Save data on machine being used to compile GCC in build_xm_file.
 # Save data on host machine in vars host_xm_file and host_xmake_file.
-       if [[ x$pass1done = x ]]
+       if test x$pass1done = x
        then
-               if [[ x"$xm_file" = x ]]
+               if test x"$xm_file" = x
                then build_xm_file=$cpu_type/xm-$cpu_type.h
                else build_xm_file=$xm_file
                fi
@@ -2865,14 +3354,14 @@ for machine in $build $host $target; do
                build_exeext=$exeext
                pass1done=yes
        else
-               if [[ x$pass2done = x ]]
+               if test x$pass2done = x
                then
-                       if [[ x"$xm_file" = x ]]
+                       if test x"$xm_file" = x
                        then host_xm_file=$cpu_type/xm-$cpu_type.h
                        else host_xm_file=$xm_file
                        fi
                        host_xm_defines=$xm_defines
-                       if [[ x"$xmake_file" = x ]]
+                       if test x"$xmake_file" = x
                        then xmake_file=$cpu_type/x-$cpu_type
                        fi
                        host_xmake_file="$xmake_file"
@@ -2888,33 +3377,33 @@ done
 extra_objs="${host_extra_objs} ${extra_objs}"
 
 # Default the target-machine variables that were not explicitly set.
-if [[ x"$tm_file" = x ]]
+if test x"$tm_file" = x
 then tm_file=$cpu_type/$cpu_type.h; fi
 
-if [[ x$extra_headers = x ]]
+if test x$extra_headers = x
 then extra_headers=; fi
 
-if [[ x"$xm_file" = x ]]
+if test x"$xm_file" = x
 then xm_file=$cpu_type/xm-$cpu_type.h; fi
 
-if [[ x$md_file = x ]]
+if test x$md_file = x
 then md_file=$cpu_type/$cpu_type.md; fi
 
-if [[ x$out_file = x ]]
+if test x$out_file = x
 then out_file=$cpu_type/$cpu_type.c; fi
 
-if [[ x"$tmake_file" = x ]]
+if test x"$tmake_file" = x
 then tmake_file=$cpu_type/t-$cpu_type
 fi
 
-if [[ x$float_format = x ]]
+if test x$float_format = x
 then float_format=i64
 fi
 
-if [[ x$enable_haifa = x ]]
+if test x$enable_haifa = x
 then
   case $target in
-    alpha*-* | hppa1.?-* | powerpc*-* | rs6000-* | *sparc-* | m32r*-*)
+    alpha*-* | hppa1.?-* | powerpc*-* | rs6000-* | *sparc*-* | m32r*-*)
       enable_haifa=yes;;
   esac
 fi
@@ -2927,7 +3416,7 @@ count=a
 for f in $tm_file; do
        count=${count}x
 done
-if [[ $count = ax ]]; then
+if test $count = ax; then
        echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
 else
        echo "Using the following target machine macro files:"
@@ -2940,7 +3429,7 @@ count=a
 for f in $host_xm_file; do
        count=${count}x
 done
-if [[ $count = ax ]]; then
+if test $count = ax; then
        echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
 else
        echo "Using the following host machine macro files:"
@@ -2949,12 +3438,12 @@ else
        done
 fi
 
-if [[ "$host_xm_file" != "$build_xm_file" ]]; then
+if test "$host_xm_file" != "$build_xm_file"; then
        count=a
        for f in $build_xm_file; do
                count=${count}x
        done
-       if [[ $count = ax ]]; then
+       if test $count = ax; then
                echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
        else
                echo "Using the following build machine macro files:"
@@ -2964,8 +3453,8 @@ if [[ "$host_xm_file" != "$build_xm_file" ]]; then
        fi
 fi
 
-if [[ x$thread_file = x ]]; then
-       if [[ x$target_thread_file != x ]]; then
+if test x$thread_file = x; then
+       if test x$target_thread_file != x; then
                thread_file=$target_thread_file
        else
                thread_file='single'
@@ -2983,7 +3472,7 @@ host_xm_file="auto-host.h ${host_xm_file}"
 # If host=build, it is correct to have hconfig include auto-host.h
 # as well.  If host!=build, we are in error and need to do more 
 # work to find out the build config parameters.
-if [[ x$host = x$build ]]
+if test x$host = x$build
 then
        build_xm_file="auto-host.h ${build_xm_file}"
 else
@@ -3015,10 +3504,10 @@ links="config.h tm.h tconfig.h hconfig.h"
 defines="host_xm_defines null_defines xm_defines build_xm_defines"
 
 rm -f config.bak
-if [[ -f config.status ]]; then mv -f config.status config.bak; fi
+if test -f config.status; then mv -f config.status config.bak; fi
 
 # Make the links.
-while [[ -n "$vars" ]]
+while test -n "$vars"
 do
        set $vars; var=$1; shift; vars=$*
        set $links; link=$1; shift; links=$*
@@ -3028,7 +3517,7 @@ do
 
        # Define TARGET_CPU_DEFAULT if the system wants one.
        # This substitutes for lots of *.h files.
-       if [[ "$target_cpu_default" != "" -a $link = tm.h ]]
+       if test "$target_cpu_default" != "" -a $link = tm.h
        then
                echo "#define TARGET_CPU_DEFAULT ($target_cpu_default)" >>$link
        fi
@@ -3045,12 +3534,19 @@ do
 done
 
 # Truncate the target if necessary
-if [[ x$host_truncate_target != x ]]; then
+if test x$host_truncate_target != x; then
        target=`echo $target | sed -e 's/\(..............\).*/\1/'`
 fi
 
-# Get the version number from the toplevel
-version=`sed -e 's/.*\"\([[^ \"]]*\)[[ \"]].*/\1/' < ${srcdir}/version.c`
+# Get the version trigger filename from the toplevel
+if test "${with_gcc_version_trigger+set}" = set; then
+       gcc_version_trigger=$with_gcc_version_trigger
+else
+       gcc_version_trigger=${srcdir}/version.c
+fi
+changequote(,)dnl
+gcc_version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ${gcc_version_trigger}`
+changequote([,])dnl
 
 # Get an absolute path to the GCC top-level source directory
 holddir=`pwd`
@@ -3065,7 +3561,7 @@ host_overrides=Make-host
 dep_host_xmake_file=
 for f in .. ${host_xmake_file}
 do
-       if [[ -f ${srcdir}/config/$f ]]
+       if test -f ${srcdir}/config/$f
        then
                dep_host_xmake_file="${dep_host_xmake_file} ${srcdir}/config/$f"
        fi
@@ -3078,7 +3574,7 @@ target_overrides=Make-target
 dep_tmake_file=
 for f in .. ${tmake_file}
 do
-       if [[ -f ${srcdir}/config/$f ]]
+       if test -f ${srcdir}/config/$f
        then
                dep_tmake_file="${dep_tmake_file} ${srcdir}/config/$f"
        fi
@@ -3139,7 +3635,7 @@ done
 # Also use all.cross instead of all.internal
 # and add cross-make to Makefile.
 cross_overrides="/dev/null"
-if [[ x$host != x$target ]]
+if test x$host != x$target
 then
        cross_defines="CROSS=-DCROSS_COMPILE"
        cross_overrides="${topdir}/cross-make"
@@ -3149,7 +3645,7 @@ fi
 # This must come after cross-make as we want all.build to override
 # all.cross.
 build_overrides="/dev/null"
-if [[ x$build != x$host ]]
+if test x$build != x$host
 then
        build_overrides="${topdir}/build-make"
 fi
@@ -3157,7 +3653,7 @@ fi
 # Expand extra_headers to include complete path.
 # This substitutes for lots of t-* files.
 extra_headers_list=
-if [[ "x$extra_headers" = x ]]
+if test "x$extra_headers" = x
 then true
 else
        # Prepend ${srcdir}/ginclude/ to every entry in extra_headers.
@@ -3167,10 +3663,14 @@ else
        done
 fi
 
+if test x$use_collect2 = xno; then
+       use_collect2=
+fi
+
 # Add a definition of USE_COLLECT2 if system wants one.
 # Also tell toplev.c what to do.
 # This substitutes for lots of t-* files.
-if [[ x$use_collect2 = x ]]
+if test x$use_collect2 = x
 then
        will_use_collect2=
        maybe_use_collect2=
@@ -3186,7 +3686,7 @@ fi
 # building gcc with a cross compiler, use the cross compiler just
 # built.  Otherwise, we can use the cpp just built.
 md_file_sub=
-if [[ "x$md_cppflags" = x ]]
+if test "x$md_cppflags" = x
 then
        md_file_sub=$srcdir/config/$md_file
 else
@@ -3194,19 +3694,125 @@ else
 fi
 
 # If we have gas in the build tree, make a link to it.
-if [[ -f ../gas/Makefile ]]; then
+if test -f ../gas/Makefile; then
        rm -f as; $symbolic_link ../gas/as-new$host_exeext as$host_exeext 2>/dev/null
 fi
 
+# If we have nm in the build tree, make a link to it.
+if test -f ../binutils/Makefile; then
+       rm -f nm; $symbolic_link ../binutils/nm-new$host_exeext nm$host_exeext 2>/dev/null
+fi
+
 # If we have ld in the build tree, make a link to it.
-if [[ -f ../ld/Makefile ]]; then
-#      if [[ x$use_collect2 = x ]]; then
+if test -f ../ld/Makefile; then
+#      if test x$use_collect2 = x; then
 #              rm -f ld; $symbolic_link ../ld/ld-new$host_exeext ld$host_exeext 2>/dev/null
 #      else
                rm -f collect-ld; $symbolic_link ../ld/ld-new$host_exeext collect-ld$host_exeext 2>/dev/null
 #      fi
 fi
 
+# Figure out what assembler alignment features are present.
+AC_MSG_CHECKING(assembler alignment features)
+gcc_cv_as=
+gcc_cv_as_alignment_features=
+gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
+if test -x "$DEFAULT_ASSEMBLER"; then
+       gcc_cv_as="$DEFAULT_ASSEMBLER"
+elif test -x "$AS"; then
+       gcc_cv_as="$AS"
+elif test -x as$host_exeext; then
+       # Build using assembler in the current directory.
+       gcc_cv_as=./as$host_exeext
+elif test -f $gcc_cv_as_gas_srcdir/configure.in -a -f ../gas/Makefile; then
+       # Single tree build which includes gas.
+       for f in $gcc_cv_as_gas_srcdir/configure $gcc_cv_as_gas_srcdir/configure.in $gcc_cv_as_gas_srcdir/Makefile.in
+       do
+changequote(,)dnl
+               gcc_cv_gas_version=`grep '^VERSION=[0-9]*\.[0-9]*' $f`
+changequote([,])dnl
+               if test x$gcc_cv_gas_version != x; then
+                       break
+               fi
+       done
+changequote(,)dnl
+       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]*\)"`
+changequote([,])dnl
+       if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
+               # Gas version 2.6 and later support for .balign and .p2align.
+               # bytes to skip when using .p2align.
+               if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 6 -o "$gcc_cv_gas_major_version" -gt 2; then
+                       gcc_cv_as_alignment_features=".balign and .p2align"
+                       AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
+               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 -a "$gcc_cv_gas_minor_version" -ge 8 -o "$gcc_cv_gas_major_version" -gt 2; then
+                       gcc_cv_as_alignment_features=".p2align including maximum skip"
+                       AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
+               fi
+       fi
+elif test x$host = x$target; then
+       # Native build.
+       gcc_cv_as=as$host_exeext
+fi
+if 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"
+               AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN)
+       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"
+               AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN)
+       fi
+       rm -f conftest.s conftest.o
+fi
+AC_MSG_RESULT($gcc_cv_as_alignment_features)
+
+AC_MSG_CHECKING(assembler subsection support)
+gcc_cv_as_subsections=
+if 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 nm$host_exeext; then
+                       gcc_cv_nm=./nm$host_exeext
+               elif test x$host = x$target; then
+                       # Native build.
+                       gcc_cv_nm=nm$host_exeext
+               fi
+               if test x$gcc_cv_nm != x; then
+                       cat > conftest.s <<EOF
+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"
+                                       AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING)
+                               fi
+                       fi
+               fi
+       fi
+       rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
+fi
+AC_MSG_RESULT($gcc_cv_as_subsections)
+
 # Figure out what language subdirectories are present.
 subdirs=
 for lang in ${srcdir}/*/config-lang.in ..
@@ -3215,14 +3821,21 @@ do
        ..) ;;
        # The odd quoting in the next line works around
        # an apparent bug in bash 1.12 on linux.
-       ${srcdir}/[[*]]/config-lang.in) ;;
-       *) subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([[^/]]*\)/config-lang.in$,\1,'`" ;;
+changequote(,)dnl
+       ${srcdir}/ada/config-lang.in)
+         if test x$gnat = xyes ; then
+               subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
+         fi
+       ;;
+       ${srcdir}/[*]/config-lang.in) ;;
+       *) subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" ;;
+changequote([,])dnl
        esac
 done
 
 # Make gthr-default.h if we have a thread file.
 gthread_flags=
-if [[ $thread_file != single ]]; then
+if test $thread_file != single; then
     rm -f gthr-default.h
     echo "#include \"gthr-${thread_file}.h\"" > gthr-default.h
     gthread_flags=-DHAVE_GTHR_DEFAULT
@@ -3234,18 +3847,23 @@ AC_SUBST(gthread_flags)
 
 lang_specs_files=
 lang_options_files=
-rm -f specs.h options.h
-touch specs.h options.h
+lang_tree_files=
+rm -f specs.h options.h gencheck.h
+touch specs.h options.h gencheck.h
 for subdir in . $subdirs
 do
-       if [[ -f $srcdir/$subdir/lang-specs.h ]]; then
+       if test -f $srcdir/$subdir/lang-specs.h; then
                echo "#include \"$subdir/lang-specs.h\"" >>specs.h
                lang_specs_files="$lang_specs_files $srcdir/$subdir/lang-specs.h"
        fi
-       if [[ -f $srcdir/$subdir/lang-options.h ]]; then
+       if test -f $srcdir/$subdir/lang-options.h; then
                echo "#include \"$subdir/lang-options.h\"" >>options.h
                lang_options_files="$lang_options_files $srcdir/$subdir/lang-options.h"
        fi
+       if test -f $srcdir/$subdir/$subdir-tree.def; then
+               echo "#include \"$subdir/$subdir-tree.def\"" >>gencheck.h
+               lang_tree_files="$lang_tree_files $srcdir/$subdir/$subdir-tree.def"
+       fi
 done
 
 # These (without "all_") are set in each config-lang.in.
@@ -3274,7 +3892,7 @@ oldstyle_subdirs=
 
 for s in .. $subdirs
 do
-       if [[ $s != ".." ]]
+       if test $s != ".."
        then
                language=
                boot_language=
@@ -3285,14 +3903,14 @@ do
                outputs=
                lib2funcs=
                . ${srcdir}/$s/config-lang.in
-               if [[ "x$language" = x ]]
+               if test "x$language" = x
                then
                        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 ${srcdir}/$s/Makefile.in"
                all_languages="$all_languages $language"
-               if [[ "x$boot_language" = xyes ]]
+               if test "x$boot_language" = xyes
                then
                        all_boot_languages="$all_boot_languages $language"
                fi
@@ -3301,7 +3919,7 @@ do
                all_diff_excludes="$all_diff_excludes $diff_excludes"
                all_headers="$all_headers $headers"
                all_outputs="$all_outputs $outputs"
-               if [[ x$outputs = x ]]
+               if test x$outputs = x
                then
                        oldstyle_subdirs="$oldstyle_subdirs $s"
                fi
@@ -3325,7 +3943,7 @@ do
        x=
        for l in .. $all_languages
        do
-               if [[ $l != ".." ]]; then
+               if test $l != ".."; then
                        x="$x $l.$t"
                fi
        done
@@ -3334,14 +3952,14 @@ done
 
 # If we're not building in srcdir, create .gdbinit.
 
-if [[ ! -f Makefile.in ]]; then
+if test ! -f Makefile.in; then
        echo "dir ." > .gdbinit
        echo "dir ${srcdir}" >> .gdbinit
-       if [[ x$gdb_needs_out_file_path = xyes ]]
+       if test x$gdb_needs_out_file_path = xyes
        then
                echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
        fi
-       if [[ "x$subdirs" != x ]]; then
+       if test "x$subdirs" != x; then
                for s in $subdirs
                do
                        echo "dir ${srcdir}/$s" >> .gdbinit
@@ -3350,12 +3968,24 @@ if [[ ! -f Makefile.in ]]; then
        echo "source ${srcdir}/.gdbinit" >> .gdbinit
 fi
 
+# Define variables host_canonical and build_canonical
+# because some Cygnus local changes in the Makefile depend on them.
+build_canonical=${build}
+host_canonical=${host}
+target_subdir=
+if test "${host}" != "${target}" ; then
+    target_subdir=${target}/
+fi
+AC_SUBST(build_canonical)
+AC_SUBST(host_canonical)
+AC_SUBST(target_subdir)
+       
 # If this is using newlib, then define inhibit_libc in
 # LIBGCC2_CFLAGS.  This will cause __eprintf to be left out of
 # libgcc.a, but that's OK because newib should have its own version of
 # assert.h.
 inhibit_libc=
-if [[ x$with_newlib = xyes ]]; then
+if test x$with_newlib = xyes; then
        inhibit_libc=-Dinhibit_libc
 fi
 AC_SUBST(inhibit_libc)
@@ -3363,23 +3993,34 @@ AC_SUBST(inhibit_libc)
 # Override SCHED_OBJ and SCHED_CFLAGS to enable the Haifa scheduler.
 sched_prefix=
 sched_cflags=
-if [[ x$enable_haifa = xyes ]]; then
+if test x$enable_haifa = xyes; then
     echo "Using the Haifa scheduler."
     sched_prefix=haifa-
     sched_cflags=-DHAIFA
 fi
 AC_SUBST(sched_prefix)
 AC_SUBST(sched_cflags)
-if [[ x$enable_haifa != x ]]; then
+if test x$enable_haifa != x; then
     # Explicitly remove files that need to be recompiled for the Haifa scheduler.
     for x in genattrtab.o toplev.o loop.o unroll.o *sched.o; do
-       if [[ -f $x ]]; then
+       if test -f $x; then
            echo "Removing $x"
            rm -f $x
        fi
     done
 fi
 
+# Warn if using init_priority.
+AC_MSG_CHECKING(whether to enable init_priority by default)
+if test x$enable_init_priority != xyes; then
+  enable_init_priority=no
+fi
+AC_MSG_RESULT($enable_init_priority)
+
+# Nothing to do for FLOAT_H, float_format already handled.
+objdir=`pwd`
+AC_SUBST(objdir)
+
 # Process the language and host/target makefile fragments.
 ${CONFIG_SHELL-/bin/sh} $srcdir/configure.frag $srcdir "$subdirs" "$dep_host_xmake_file" "$dep_tmake_file"
 
@@ -3393,10 +4034,13 @@ AC_SUBST(all_stagestuff)
 AC_SUBST(all_diff_excludes)
 AC_SUBST(all_lib2funcs)
 AC_SUBST(all_headers)
+AC_SUBST(cpp_main)
 AC_SUBST(extra_passes)
 AC_SUBST(extra_programs)
 AC_SUBST(extra_parts)
 AC_SUBST(extra_c_objs)
+AC_SUBST(extra_cxx_objs)
+AC_SUBST(extra_cpp_objs)
 AC_SUBST(extra_c_flags)
 AC_SUBST(extra_objs)
 AC_SUBST(host_extra_gcc_objs)
@@ -3411,8 +4055,11 @@ AC_SUBST(build_xm_file_list)
 AC_SUBST(host_xm_file_list)
 AC_SUBST(lang_specs_files)
 AC_SUBST(lang_options_files)
+AC_SUBST(lang_tree_files)
 AC_SUBST(thread_file)
-AC_SUBST(version)
+AC_SUBST(objc_boehm_gc)
+AC_SUBST(gcc_version)
+AC_SUBST(gcc_version_trigger)
 AC_SUBST(local_prefix)
 AC_SUBST(gxx_include_dir)
 AC_SUBST(fixincludes)
@@ -3436,7 +4083,7 @@ AC_SUBST_FILE(language_fragments)
 AC_SUBST_FILE(language_hooks)
 
 # Echo that links are built
-if [[ x$host = x$target ]]
+if test x$host = x$target
 then
        str1="native "
 else
@@ -3444,25 +4091,25 @@ else
        str2=" from $host"
 fi
 
-if [[ x$host != x$build ]]
+if test x$host != x$build
 then
        str3=" on a $build system"
 fi
 
-if [[ "x$str2" != x ]] || [[ "x$str3" != x ]]
+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 [[ "x$str2" != x ]] || [[ "x$str3" != x ]]
+if test "x$str2" != x || test "x$str3" != x
 then
        echo " ${str2}${str3}." 1>&2
 fi
 
 # Truncate the target if necessary
-if [[ x$host_truncate_target != x ]]; then
+if test x$host_truncate_target != x; then
        target=`echo $target | sed -e 's/\(..............\).*/\1/'`
 fi
 
@@ -3484,9 +4131,9 @@ esac
 # FLAGS_TO_PASS has been modified to solve the problem there.
 # 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 [[ "$symbolic_link" = "ln -s" ]]; then
+if test "$symbolic_link" = "ln -s"; then
  for d in .. ${subdirs} ; do
-   if [[ $d != .. ]]; then
+   if test $d != ..; then
        STARTDIR=`pwd`
        cd $d
        for t in stage1 stage2 stage3 stage4 include
@@ -3515,7 +4162,8 @@ host_xmake_file='${host_xmake_file}'
 dep_tmake_file='${dep_tmake_file}'
 tmake_file='${tmake_file}'
 thread_file='${thread_file}'
-version='${version}'
+gcc_version='${gcc_version}'
+gcc_version_trigger='${gcc_version_trigger}'
 local_prefix='${local_prefix}'
 build_install_headers_dir='${build_install_headers_dir}'
 build_exeext='${build_exeext}'