OSDN Git Service

* decl.c (init_decl_processing): Remove duplicate decl of
[pf3gnuchains/gcc-fork.git] / gcc / configure.in
index 834d8d2..2bd136e 100644 (file)
@@ -1,7 +1,7 @@
 # configure.in for GNU CC
 # Process this file with autoconf to generate a configuration script.
 
-# Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+# Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
 
 #This file is part of GNU CC.
 
@@ -21,7 +21,7 @@
 #Boston, MA 02111-1307, USA.
 
 # Initialization and defaults
-AC_PREREQ(2.12.1)
+AC_PREREQ(2.13)
 AC_INIT(tree.c)
 AC_CONFIG_HEADER(auto-host.h:config.in)
 
@@ -53,7 +53,7 @@ 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
+*** building gcc. Please change the environment variable
 *** and run configure again.])
 fi
 
@@ -79,7 +79,7 @@ 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
+*** building gcc. Please change the environment variable
 *** and run configure again.])
 fi
 
@@ -176,25 +176,59 @@ fi
 
 # Enable expensive internal checks
 AC_ARG_ENABLE(checking,
-[  --enable-checking       enable expensive run-time checks.],
+[  --enable-checking[=LIST]
+                         enable expensive run-time checks.  With LIST,
+                         enable only specific categories of checks.
+                         Categories are: misc,tree,rtl,gc,gcac; default
+                         is misc,tree,rtl],
 [case "${enableval}" in
-yes)   AC_DEFINE(ENABLE_CHECKING) ;;
+yes)   AC_DEFINE(ENABLE_CHECKING)
+       AC_DEFINE(ENABLE_TREE_CHECKING)
+       AC_DEFINE(ENABLE_RTL_CHECKING)  ;;
 no)    ;;
-*)     AC_MSG_ERROR(bad value ${enableval} given for checking option) ;;
+*)     ac_save_IFS="$IFS" IFS="$IFS,"
+       set fnord $enableval; shift
+       IFS="$ac_save_IFS"
+       for check
+       do
+               case $check in
+               misc)   AC_DEFINE(ENABLE_CHECKING)              ;;
+               tree)   AC_DEFINE(ENABLE_TREE_CHECKING)         ;;
+               rtl)    AC_DEFINE(ENABLE_RTL_CHECKING)          ;;
+               gc)     AC_DEFINE(ENABLE_GC_CHECKING)           ;;
+               gcac)   AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT)     ;;
+               *)      AC_MSG_ERROR(unknown check category $check) ;;
+               esac
+       done
+       ;;
 esac])
 
+AC_ARG_ENABLE(cpp,
+[  --disable-cpp           don't provide a user-visible C preprocessor.],
+[], [enable_cpp=yes])
+
+AC_ARG_WITH(cpp_install_dir,
+[  --with-cpp-install-dir=DIR
+                          install the user visible C preprocessor in DIR
+                          (relative to PREFIX) as well as PREFIX/bin.],
+[if test x$withval = xyes; then
+  AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
+elif test x$withval != xno; then
+  cpp_install_dir=$withval
+fi])
+
 # Use cpplib+cppmain for the preprocessor, but don't link it with the compiler.
-cpp_main=cccp
+cpp_main=cppmain
 AC_ARG_ENABLE(cpplib,
-[  --enable-cpplib         use cpplib for the C preprocessor.],
-if test x$enable_cpplib != xno; then
-  cpp_main=cppmain
+[  --disable-cpplib        use the old isolated C preprocessor.],
+if test x$enable_cpplib = xno; then
+  cpp_main=cccp
 fi)
 
 # Link cpplib into the compiler proper, for C/C++/ObjC.
 AC_ARG_ENABLE(c-cpplib,
 [  --enable-c-cpplib       link cpplib directly into C and C++ compilers
-                          (implies --enable-cpplib).],
+                          (EXPERIMENTAL) (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"
@@ -204,17 +238,11 @@ fi)
 
 # Enable Multibyte Characters for C/C++
 AC_ARG_ENABLE(c-mbchar,
-[  --enable-c-mbchar       enable multibyte characters for C and C++.],
+[  --enable-c-mbchar       Enable multibyte characters for C and C++.],
 if test x$enable_c_mbchar != xno; then
-  extra_c_flags=-DMULTIBYTE_CHARS=1
+  extra_c_flags="${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
-                          targets which normally enable it.])
-
 # Enable threads
 # Pass with no value to take the default
 # Pass with a value to specify a thread package
@@ -250,22 +278,15 @@ 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
+if test x$enable_objc_gc = xno; then
        objc_boehm_gc=''
 else
        objc_boehm_gc=1
 fi,
 objc_boehm_gc='')
 
-AC_ARG_ENABLE(java-gc,
-changequote(<<,>>)dnl
-<<  --enable-java-gc=TYPE   choose garbage collector [boehm]>>,
-changequote([,])
-  JAVAGC=$enableval,
-  JAVAGC=boehm)
-
 AC_ARG_WITH(dwarf2,
-[  --enable-dwarf2       enable DWARF2 debugging as default.],
+[  --with-dwarf2         force the default debug format to be DWARF2.],
 dwarf2="$with_dwarf2",
 dwarf2=no)
 
@@ -274,6 +295,7 @@ AC_CANONICAL_SYSTEM
 
 # Find the native compiler
 AC_PROG_CC
+AC_GCC_C_LONG_DOUBLE
 
 # 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
@@ -323,7 +345,10 @@ AC_HEADER_STDC
 AC_HEADER_TIME
 GCC_HEADER_STRING
 AC_HEADER_SYS_WAIT
-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 sys/stat.h)
+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 sys/stat.h \
+                direct.h malloc.h)
 
 # Check for thread headers.
 AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
@@ -332,18 +357,9 @@ 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)
-AC_CACHE_VAL(gcc_cv_c_have_stringify,
-[AC_TRY_COMPILE(,
-[#define S(x)   #x
-char *test = S(foo);],
-gcc_cv_c_have_stringify=yes, gcc_cv_c_have_stringify=no)])
-AC_MSG_RESULT($gcc_cv_c_have_stringify)
-if test $gcc_cv_c_have_stringify = yes; then
-  AC_DEFINE(HAVE_CPP_STRINGIFY)
-fi
+# See if the stage1 system preprocessor understands the ANSI C
+# preprocessor stringification operator.
+AC_C_STRINGIZE
 
 # Use <inttypes.h> only if it exists,
 # doesn't clash with <sys/types.h>, and declares intmax_t.
@@ -363,7 +379,7 @@ fi
 AC_CHECK_FUNCS(strtoul bsearch strerror putenv popen bcopy bzero bcmp \
        index rindex strchr strrchr kill getrlimit setrlimit atoll atoq \
        sysconf isascii gettimeofday strsignal putc_unlocked fputc_unlocked \
-       fputs_unlocked)
+       fputs_unlocked getrusage valloc)
 
 # Make sure wchar_t is available
 #AC_CHECK_TYPE(wchar_t, unsigned int)
@@ -380,19 +396,27 @@ case "${host}" in
   ;;
 esac
 AC_FUNC_VFORK
+AC_FUNC_MMAP_ANYWHERE
 
-GCC_NEED_DECLARATIONS(malloc realloc calloc free bcopy bzero bcmp \
+GCC_NEED_DECLARATIONS(bcopy bzero bcmp \
        index rindex getenv atol sbrk abort atof strerror getcwd getwd \
-       strsignal putc_unlocked fputs_unlocked)
+       strsignal putc_unlocked fputs_unlocked strstr environ)
 
-GCC_NEED_DECLARATIONS(getrlimit setrlimit, [
+GCC_NEED_DECLARATIONS(malloc realloc calloc free, [
+#ifdef HAVE_MALLOC_H
+#include <malloc.h>
+#endif
+])
+
+GCC_NEED_DECLARATIONS(getrlimit setrlimit getrusage, [
 #include <sys/types.h>
 #ifdef HAVE_SYS_RESOURCE_H
 #include <sys/resource.h>
 #endif
 ])
 
-AC_DECL_SYS_SIGLIST
+# mkdir takes a single argument on some systems. 
+GCC_FUNC_MKDIR_TAKES_ONE_ARG
 
 # File extensions
 manext='.1'
@@ -410,9 +434,6 @@ host_xmake_file=
 host_truncate_target=
 host_exeext=
 
-# It is relative to $prefix.
-cpp_install_dir=
-
 # Decode the host machine, then the target machine.
 # For the host machine, we save the xm_file variable as host_xm_file;
 # then we decode the target machine and forget everything else
@@ -455,8 +476,9 @@ for machine in $build $host $target; do
        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.
+       # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
+       # updated in each machine entry.
+       tm_p_file=
        cpu_type=`echo $machine | sed 's/-.*$//'`
        case $machine in
        alpha*-*-*)
@@ -482,6 +504,9 @@ changequote([,])dnl
        mips*-*-*)
                cpu_type=mips
                ;;
+       pj*-*-*)
+               cpu_type=pj
+               ;;
        powerpc*-*-*)
                cpu_type=rs6000
                ;;
@@ -495,7 +520,17 @@ changequote([,])dnl
 
        tm_file=${cpu_type}/${cpu_type}.h
        xm_file=${cpu_type}/xm-${cpu_type}.h
-       
+       if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h;
+       then
+               tm_p_file=${cpu_type}/${cpu_type}-protos.h;
+       fi
+       # On a.out targets, we need to use collect2.
+       case $machine in
+       *-*-*aout*)
+               use_collect2=yes
+               ;;
+       esac    
+
        # Common parts for linux-gnu and openbsd systems
        case $machine in
        *-*-linux-gnu*)
@@ -503,11 +538,11 @@ changequote([,])dnl
                ;;
        *-*-openbsd*)
                tm_file=${cpu_type}/openbsd.h
-               # On OpenBSD systems, the headers are okay
-               fixincludes=Makefile.in
                tmake_file="t-libc-ok t-openbsd"
                # avoid surprises, always provide an xm-openbsd file 
                xm_file=${cpu_type}/xm-openbsd.h
+               # don't depend on processor x-fragments as well
+               xmake_file=none
                if test x$enable_threads = xyes; then
                        thread_file='posix'
                        tmake_file="${tmake_file} t-openbsd-thread"
@@ -556,16 +591,14 @@ changequote([,])dnl
                tm_file="${tm_file} alpha/alpha32.h interix.h alpha/alpha-interix.h"
 
                # GAS + IEEE_CONFORMANT+IEEE (no inexact);
-               #  see alpha.h for bitmasks
-               #target_cpu_default=$((4+8+16))
+               #target_cpu_default="MASK_GAS|MASK_IEEE_CONFORMANT|MASK_IEEE"
 
-               # GAS + IEEE_CONFORMANT; see alpha.h for bitmasks
-               target_cpu_default=$((4+8))
+               # GAS + IEEE_CONFORMANT
+               target_cpu_default="MASK_GAS|MASK_IEEE_CONFORMANT"
 
                xm_file="alpha/xm-alpha-interix.h xm-interix.h"
                xmake_file="x-interix alpha/t-pe"
-               tmake_file="alpha/t-interix"
-               fixincludes=fixinc.interix
+               tmake_file="alpha/t-interix alpha/t-ieee"
                if test x$enable_threads = xyes ; then
                        thread_file='posix'
                fi
@@ -578,6 +611,7 @@ changequote([,])dnl
        alpha*-*-linux-gnuecoff*)
                tm_file="${tm_file} alpha/linux-ecoff.h alpha/linux.h"
                target_cpu_default="MASK_GAS"
+               tmake_file="alpha/t-ieee"
                gas=no
                xmake_file=none
                gas=yes gnu_ld=yes
@@ -585,7 +619,7 @@ changequote([,])dnl
        alpha*-*-linux-gnulibc1*)
                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"
+               tmake_file="t-linux t-linux-gnulibc1 alpha/t-linux alpha/t-crtbe alpha/t-ieee"
                extra_parts="crtbegin.o crtend.o"
                xmake_file=none
                gas=yes gnu_ld=yes
@@ -596,7 +630,7 @@ changequote([,])dnl
        alpha*-*-linux-gnu*)
                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"
+               tmake_file="t-linux alpha/t-linux alpha/t-crtbe alpha/t-ieee"
                extra_parts="crtbegin.o crtend.o"
                xmake_file=none
                gas=yes gnu_ld=yes
@@ -607,7 +641,7 @@ changequote([,])dnl
        alpha*-*-netbsd*)
                tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h"
                target_cpu_default="MASK_GAS"
-               tmake_file="alpha/t-crtbe"
+               tmake_file="alpha/t-crtbe alpha/t-ieee"
                extra_parts="crtbegin.o crtend.o"
                xmake_file=none
                gas=yes gnu_ld=yes
@@ -616,7 +650,7 @@ changequote([,])dnl
        alpha*-*-openbsd*)
                # default x-alpha is only appropriate for dec-osf.
                target_cpu_default="MASK_GAS"
-               xmake_file=none
+               tmake_file="alpha/t-ieee"
                ;;
                
        alpha*-dec-osf*)
@@ -629,6 +663,7 @@ changequote([,])dnl
                        extra_passes="mips-tfile mips-tdump"
                fi
                use_collect2=yes
+               tmake_file="alpha/t-ieee"
                case $machine in
                  *-*-osf1*)
                    tm_file="${tm_file} alpha/osf.h alpha/osf12.h alpha/osf2or3.h"
@@ -644,10 +679,13 @@ changequote([,])dnl
                    # a broken tar, so we use cpio instead.
                    install_headers_dir=install-headers-cpio
                    ;;
+                 *-*-osf5*)
+                   tm_file="${tm_file} alpha/osf.h alpha/osf5.h"
+                   ;;
                esac
                case $machine in
 changequote(,)dnl
-                 *-*-osf4.0[b-z] | *-*-osf4.[1-9]*)
+                 *-*-osf4.0[b-z] | *-*-osf4.[1-9]* | *-*-osf5*)
 changequote([,])dnl
                    target_cpu_default=MASK_SUPPORT_ARCH
                    ;;
@@ -655,6 +693,7 @@ changequote([,])dnl
                ;;
        alpha*-*-vxworks*)
                tm_file="${tm_file} dbx.h alpha/vxworks.h"
+               tmake_file="alpha/t-ieee"
                if [ x$gas != xyes ]
                then
                        extra_passes="mips-tfile mips-tdump"
@@ -665,7 +704,7 @@ changequote([,])dnl
        alpha*-*-winnt*)
                tm_file="${tm_file} alpha/alpha32.h alpha/win-nt.h winnt/win-nt.h"
                xm_file="${xm_file} config/winnt/xm-winnt.h alpha/xm-winnt.h"
-               tmake_file=t-libc-ok
+               tmake_file="t-libc-ok alpha/t-ieee"
                xmake_file=winnt/x-winnt
                extra_host_objs=oldnames.o
                extra_gcc_objs="spawnv.o oldnames.o"
@@ -680,7 +719,7 @@ changequote([,])dnl
        alpha*-dec-vms*)
                tm_file=alpha/vms.h
                xm_file="${xm_file} alpha/xm-vms.h"
-               tmake_file=alpha/t-vms
+               tmake_file="alpha/t-vms alpha/t-ieee"
                ;;
        arc-*-elf*)
                extra_parts="crtinit.o crtfini.o"
@@ -721,8 +760,8 @@ changequote([,])dnl
                ;;
        arm*-*-netbsd*)
                tm_file=arm/netbsd.h
-               xm_file="arm/xm-netbsd.h ${xm_file}"
                tmake_file="t-netbsd arm/t-netbsd"
+       use_collect2=yes
                ;;
        arm*-*-linux-gnuaout*)          # ARM GNU/Linux with a.out
                cpu_type=arm
@@ -731,15 +770,31 @@ changequote([,])dnl
                tmake_file=arm/t-linux
                gnu_ld=yes
                ;;
-       arm*-*-linux-gnu*)              # ARM GNU/Linux with ELF
+       arm*-*-linux-gnuoldld*)         # ARM GNU/Linux with old ELF linker
                xm_file=arm/xm-linux.h
                xmake_file=x-linux
+               tm_file="arm/linux-oldld.h arm/linux-elf.h"
                case $machine in
                armv2*-*-*)
-                       tm_file=arm/linux-elf26.h
+                       tm_file="arm/linux-elf26.h $tm_file"
                        ;;
-               *)
-                       tm_file=arm/linux-elf.h
+               esac
+               tmake_file="t-linux arm/t-linux"
+               extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+               gnu_ld=yes
+               case x${enable_threads} in
+               x | xyes | xpthreads | xposix)
+                       thread_file='posix'
+                       ;;
+               esac
+               ;;
+       arm*-*-linux-gnu*)              # ARM GNU/Linux with ELF
+               xm_file=arm/xm-linux.h
+               xmake_file=x-linux
+               tm_file="arm/linux-elf.h"
+               case $machine in
+               armv2*-*-*)
+                       tm_file="arm/linux-elf26.h $tm_file"
                        ;;
                esac
                tmake_file="t-linux arm/t-linux"
@@ -751,6 +806,10 @@ changequote([,])dnl
                        ;;
                esac
                ;;
+       arm*-*-uclinux*)                # ARM ucLinux
+               tm_file=arm/uclinux-elf.h
+               tmake_file=arm/t-arm-elf
+               ;;
        arm*-*-aout)
                tm_file=arm/aout.h
                tmake_file=arm/t-bare
@@ -767,6 +826,11 @@ changequote([,])dnl
                tm_file=arm/unknown-elf-oabi.h
                tmake_file=arm/t-arm-elf
                ;;
+       arm-*-pe*)
+               tm_file=arm/pe.h
+               tmake_file=arm/t-pe
+               extra_objs=pe.o
+               ;;
        c1-convex-*)                    # Convex C1
                target_cpu_default=1
                use_collect2=yes
@@ -804,44 +868,64 @@ changequote([,])dnl
        elxsi-elxsi-*)
                use_collect2=yes
                ;;
+       fr30-*-elf)
+               tm_file="fr30/fr30.h"
+               tmake_file=fr30/t-fr30
+               extra_parts="crti.o crtn.o crtbegin.o crtend.o"
+               ;;
 # This hasn't been upgraded to GCC 2.
 #      fx80-alliant-*)                 # Alliant FX/80
 #              ;;
        h8300-*-*)
                float_format=i32
                ;;
+       hppa*-*-linux*)
+               target_cpu_default="(MASK_PA_11 | MASK_GAS | MASK_JUMP_IN_DELAY)"
+               tm_file="${tm_file} pa/elf.h linux.h pa/pa-linux.h"
+               tmake_file="t-linux pa/t-linux"
+               extra_parts="crtbegin.o crtend.o"
+               xmake_file=none
+               gas=yes gnu_ld=yes
+               if test x$enable_threads = xyes; then
+                       thread_file='posix'
+               fi
+               ;;
        hppa*-*-openbsd*)
-               target_cpu_default="MASK_SNAKE"
+               target_cpu_default="MASK_PA_11"
                tmake_file=pa/t-openbsd
                ;;
        hppa1.1-*-pro*)
-               tm_file="pa/pa-pro.h ${tm_file} pa/pa-pro-end.h libgloss.h"
+               target_cpu_default="(MASK_JUMP_IN_DELAY | MASK_PORTABLE_RUNTIME | MASK_GAS | MASK_NO_SPACE_REGS | MASK_SOFT_FLOAT)"
+               tm_file="${tm_file} elfos.h pa/elf.h pa/pa-pro-end.h libgloss.h"
                xm_file=pa/xm-papro.h
                tmake_file=pa/t-pro
                ;;
        hppa1.1-*-osf*)
-               target_cpu_default="MASK_SNAKE"
-               tm_file="${tm_file} pa/pa-osf.h"
+               target_cpu_default="MASK_PA_11"
+               tm_file="${tm_file} pa/som.h pa/pa-osf.h"
                use_collect2=yes
                ;;
        hppa1.1-*-rtems*)
-               tm_file="pa/pa-pro.h ${tm_file} pa/pa-pro-end.h libgloss.h pa/rtems.h"
+               target_cpu_default="(MASK_JUMP_IN_DELAY | MASK_PORTABLE_RUNTIME | MASK_GAS | MASK_NO_SPACE_REGS | MASK_SOFT_FLOAT)"
+               tm_file="${tm_file} elfos.h pa/elf.h pa/pa-pro-end.h libgloss.h pa/rtems.h"
                xm_file=pa/xm-papro.h
                tmake_file=pa/t-pro
                ;;
        hppa1.0-*-osf*)
-               tm_file="${tm_file} pa/pa-osf.h"
+               tm_file="${tm_file} pa/som.h pa/pa-osf.h"
                use_collect2=yes
                ;;
        hppa1.1-*-bsd*)
-               target_cpu_default="MASK_SNAKE"
+               tm_file="${tm_file} pa/som.h"
+               target_cpu_default="MASK_PA_11"
                use_collect2=yes
                ;;
        hppa1.0-*-bsd*)
+               tm_file="${tm_file} pa/som.h"
                use_collect2=yes
                ;;
        hppa1.0-*-hpux7*)
-               tm_file="pa/pa-oldas.h ${tm_file} pa/pa-hpux7.h"
+               tm_file="pa/pa-oldas.h ${tm_file} pa/som.h pa/pa-hpux7.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -854,7 +938,7 @@ changequote([,])dnl
 changequote(,)dnl
        hppa1.0-*-hpux8.0[0-2]*)
 changequote([,])dnl
-               tm_file="${tm_file} pa/pa-hpux.h"
+               tm_file="${tm_file} pa/som.h pa/pa-hpux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -869,8 +953,8 @@ changequote([,])dnl
 changequote(,)dnl
        hppa1.1-*-hpux8.0[0-2]*)
 changequote([,])dnl
-               target_cpu_default="MASK_SNAKE"
-               tm_file="${tm_file} pa/pa-hpux.h"
+               target_cpu_default="MASK_PA_11"
+               tm_file="${tm_file} pa/som.h pa/pa-hpux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -883,8 +967,8 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa1.1-*-hpux8*)
-               target_cpu_default="MASK_SNAKE"
-               tm_file="${tm_file} pa/pa-hpux.h"
+               target_cpu_default="MASK_PA_11"
+               tm_file="${tm_file} pa/som.h pa/pa-hpux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -895,7 +979,7 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa1.0-*-hpux8*)
-               tm_file="${tm_file} pa/pa-hpux.h"
+               tm_file="${tm_file} pa/som.h pa/pa-hpux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -906,8 +990,8 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa1.1-*-hpux10* | hppa2*-*-hpux10*)
-               target_cpu_default="MASK_SNAKE"
-               tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux10.h"
+               target_cpu_default="MASK_PA_11"
+               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hpux10.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                tmake_file=pa/t-pa
@@ -926,7 +1010,7 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa1.0-*-hpux10*)
-               tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux10.h"
+               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hpux10.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                tmake_file=pa/t-pa
@@ -944,9 +1028,47 @@ changequote([,])dnl
                install_headers_dir=install-headers-cpio
                use_collect2=yes
                ;;
+       hppa1.1-*-hpux11* | hppa2*-*-hpux11*)
+               target_cpu_default="MASK_PA_11"
+               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hpux11.h"
+               xm_file=pa/xm-pahpux.h
+               xmake_file=pa/x-pa-hpux
+               tmake_file=pa/t-pa
+               if test x$gas = xyes
+               then
+                       tm_file="${tm_file} pa/pa-gas.h"
+               fi
+#              if test x$enable_threads = x; then
+#                  enable_threads=$have_pthread_h
+#              fi
+#              if test x$enable_threads = xyes; then
+#                      thread_file='dce'
+#                      tmake_file="${tmake_file} pa/t-dce-thr"
+#              fi
+               install_headers_dir=install-headers-cpio
+               use_collect2=yes
+               ;;
+       hppa1.0-*-hpux11*)
+               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hpux11.h"
+               xm_file=pa/xm-pahpux.h
+               xmake_file=pa/x-pa-hpux
+               if test x$gas = xyes
+               then
+                       tm_file="${tm_file} pa/pa-gas.h"
+               fi
+#              if test x$enable_threads = x; then
+#                  enable_threads=$have_pthread_h
+#              fi
+#              if test x$enable_threads = xyes; then
+#                      thread_file='dce'
+#                      tmake_file="${tmake_file} pa/t-dce-thr"
+#              fi
+               install_headers_dir=install-headers-cpio
+               use_collect2=yes
+               ;;
        hppa1.1-*-hpux* | hppa2*-*-hpux*)
-               target_cpu_default="MASK_SNAKE"
-               tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux9.h"
+               target_cpu_default="MASK_PA_11"
+               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hpux9.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -957,7 +1079,7 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa1.0-*-hpux*)
-               tm_file="${tm_file} pa/pa-hpux.h pa/pa-hpux9.h"
+               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hpux9.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -968,8 +1090,8 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa1.1-*-hiux* | hppa2*-*-hiux*)
-               target_cpu_default="MASK_SNAKE"
-               tm_file="${tm_file} pa/pa-hpux.h pa/pa-hiux.h"
+               target_cpu_default="MASK_PA_11"
+               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hiux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -980,7 +1102,7 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa1.0-*-hiux*)
-               tm_file="${tm_file} pa/pa-hpux.h pa/pa-hiux.h"
+               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hiux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -991,10 +1113,51 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa*-*-lites*)
-               target_cpu_default="MASK_SNAKE"
+               tm_file="${tm_file} elfos.h pa/elf.h"
+               target_cpu_default="MASK_PA_11"
                use_collect2=yes
                ;;
+       hppa*-*-mpeix*)
+               tm_file="${tm_file} pa/pa-mpeix.h"
+               xm_file=pa/xm-pampeix.h 
+               xmake_file=pa/x-pa-mpeix 
+               echo "You must use gas. Assuming it is already installed." 
+               install_headers_dir=install-headers-tar
+               use_collect2=yes 
+               ;; 
+       i370-*-opened*)                  # IBM 360/370/390 Architecture
+               xm_file=i370/xm-oe.h
+               tm_file=i370/oe.h
+               xmake_file=i370/x-oe
+               tmake_file=i370/t-oe
+               ;;
        i370-*-mvs*)
+               xm_file=i370/xm-mvs.h
+               tm_file=i370/mvs.h
+               tmake_file=i370/t-mvs
+               ;;
+       i370-*-linux*)
+               xm_file="xm-linux.h i370/xm-linux.h"
+               xmake_file=x-linux
+               tm_file="i370/linux.h ${tm_file}"
+               tmake_file="t-linux i370/t-linux"
+               # broken_install=yes
+               extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+               # extra_parts="crtbegin.o crtend.o"
+               gnu_ld=yes
+               gas=yes
+               elf=yes
+               if test x$enable_threads = xyes; then
+                       thread_file='posix'
+               fi
+               ;;
+changequote(,)dnl
+       i[34567]86-*-elf*)
+changequote([,])dnl
+               xm_file="${xm_file} xm-svr4.h i386/xm-sysv4.h"
+               tm_file=i386/i386elf.h
+               tmake_file=i386/t-i386elf
+               xmake_file=x-svr4
                ;;
 changequote(,)dnl
        i[34567]86-ibm-aix*)            # IBM PS/2 running AIX
@@ -1015,7 +1178,7 @@ changequote([,])dnl
 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_file="xm-alloca.h ${xm_file}"
                xm_defines="USG POSIX SMALL_ARG_MAX"
                xmake_file=i386/x-ncr3000
                if test x$stabs = xyes -a x$gas = xyes
@@ -1074,7 +1237,7 @@ changequote([,])dnl
 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_file="xm-alloca.h ${xm_file}"
                xm_defines="USG POSIX SMALL_ARG_MAX"
                xmake_file=x-svr4
                tm_file=i386/ptx4-i.h
@@ -1101,6 +1264,26 @@ changequote([,])dnl
                tmake_file=i386/t-i386bare
                ;;
 changequote(,)dnl
+       i[34567]86-*-beospe*)
+changequote([,])dnl
+               xm_file=i386/xm-beos.h
+               xm_defines="USE_C_ALLOCA"
+               tmake_file=i386/t-beos
+               tm_file=i386/beos-pe.h
+               xmake_file=i386/x-beos
+               extra_objs=winnt.o
+               ;;
+changequote(,)dnl
+       i[34567]86-*-beoself* | i[34567]86-*-beos*)
+changequote([,])dnl
+               xm_file=i386/xm-beos.h
+               tmake_file='i386/t-beos i386/t-crtpic'
+               tm_file=i386/beos-elf.h
+               xmake_file=i386/x-beos
+               extra_objs=winnt.o
+               extra_parts='crtbegin.o crtend.o'
+               ;;
+changequote(,)dnl
        i[34567]86-*-bsdi* | i[34567]86-*-bsd386*)
 changequote([,])dnl
                tm_file=i386/bsd386.h
@@ -1117,31 +1300,35 @@ changequote([,])dnl
 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.wrap
+               tm_file="i386/i386.h i386/att.h svr4.h freebsd.h i386/freebsd-elf.h i386/perform.h"
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-               tmake_file=i386/t-freebsd
+               tmake_file=t-freebsd
                gas=yes
                gnu_ld=yes
                stabs=yes
+               case x${enable_threads} in
+               xyes | xpthreads | xposix)
+                       thread_file='posix'
+                       tmake_file="${tmake_file} t-freebsd-thread"
+                       ;;
+               esac
                ;;
 changequote(,)dnl
        i[34567]86-*-freebsd*)
 changequote([,])dnl
-               tm_file=i386/freebsd.h
-               tmake_file=i386/t-freebsd
+               tm_file="i386/freebsd.h i386/perform.h"
+               tmake_file=t-freebsd
                ;;
 changequote(,)dnl
        i[34567]86-*-netbsd*)
 changequote([,])dnl
                tm_file=i386/netbsd.h
                tmake_file=t-netbsd
+       use_collect2=yes
                ;;
 changequote(,)dnl
        i[34567]86-*-openbsd*)
 changequote([,])dnl
-               # Remove when the math emulator is fixed
                # we need collect2 until our bug is fixed...
                use_collect2=yes
                ;;
@@ -1304,23 +1491,24 @@ changequote([,])dnl
                tmake_file="i386/t-go32 t-rtems"
                ;;
 changequote(,)dnl
-       i[34567]86-*-rtemself*)
+       i[34567]86-*-rtemscoff*)
 changequote([,])dnl
                cpu_type=i386
-               tm_file=i386/rtemself.h
+               tm_file=i386/rtems.h
                tmake_file="i386/t-i386bare t-rtems"
                ;;
 changequote(,)dnl
-       i[34567]86-*-rtems*)
+       i[34567]86-*-rtems*|i[34567]86-*-rtemself*)
 changequote([,])dnl
                cpu_type=i386
-               tm_file=i386/rtems.h
-               tmake_file="i386/t-i386bare t-rtems"
+               tm_file=i386/rtemself.h
+               extra_parts="crtbegin.o crtend.o crti.o crtn.o"
+               tmake_file="i386/t-rtems-i386 i386/t-crtstuff t-rtems"
                ;;
 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_file="xm-alloca.h ${xm_file} i386/xm-sco5.h"
                xm_defines="USG SVR3"
                xmake_file=i386/x-sco5
                install_headers_dir=install-headers-cpio
@@ -1338,7 +1526,7 @@ 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"
+               xm_defines="USG SVR3 BROKEN_LDEXP SMALL_ARG_MAX"
                xmake_file=i386/x-sco4
                install_headers_dir=install-headers-cpio
                 if test x$stabs = xyes
@@ -1351,7 +1539,10 @@ changequote([,])dnl
                        tmake_file=i386/t-crtstuff
                        extra_parts="crtbegin.o crtend.o"
                fi
-               truncate_target=yes
+               # The default EAFS filesystem supports long file names.
+               # Truncating the target makes $host != $target which
+               # makes gcc think it is doing a cross-compile.
+               # truncate_target=yes
                ;;
 changequote(,)dnl
        i[34567]86-*-sco*)              # 80386 running SCO system
@@ -1374,25 +1565,34 @@ changequote([,])dnl
 changequote(,)dnl
        i[34567]86-*-solaris2*)
 changequote([,])dnl
-               xm_file="xm-siglist.h xm-alloca.h ${xm_file}"
+               xm_file="xm-alloca.h ${xm_file}"
                xm_defines="USG POSIX SMALL_ARG_MAX"
-               if test x$stabs = xyes
-               then
-                       tm_file=i386/sol2dbg.h
-               else
-                       tm_file=i386/sol2.h
+               tm_file=i386/sol2.h
+               if test x$gas = xyes; then
+                       # Only needed if gas does not support -s
+                       tm_file="i386/sol2gas.h ${tm_file}"
                fi
                tmake_file=i386/t-sol2
                extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
                xmake_file=x-svr4
-               if test x$enable_threads = xyes; then
+               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
                ;;
 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_file="xm-alloca.h ${xm_file}"
                xm_defines="USG POSIX"
                tm_file=i386/sysv5.h
                if test x$stabs = xyes
@@ -1402,11 +1602,14 @@ changequote([,])dnl
                tmake_file=i386/t-crtpic
                xmake_file=x-svr4
                extra_parts="crtbegin.o crtend.o"
+              if test x$enable_threads = xyes; then
+                      thread_file='posix'
+              fi
                ;;
 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_file="xm-alloca.h ${xm_file}"
                xm_defines="USG POSIX SMALL_ARG_MAX"
                tm_file=i386/sysv4.h
                if test x$stabs = xyes
@@ -1420,12 +1623,13 @@ changequote([,])dnl
 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_file="xm-alloca.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"
+               install_headers_dir=install-headers-cpio
                ;;
 changequote(,)dnl
        i[34567]86-*-osf1*)             # Intel 80386's running OSF/1 1.3+
@@ -1523,11 +1727,10 @@ changequote(,)dnl
 changequote([,])dnl
                tm_file=i386/uwin.h
                xm_file="${xm_file} i386/xm-uwin.h"
-               xm_defines="USG NO_STAB_H NO_SYS_SIGLIST"
+               xm_defines="USG NO_STAB_H"
                tmake_file="i386/t-cygwin i386/t-uwin"
                extra_objs=winnt.o
                xmake_file=i386/x-cygwin
-               fixincludes=Makefile.in
                if test x$enable_threads = xyes; then
                        thread_file='win32'
                fi
@@ -1538,11 +1741,10 @@ changequote(,)dnl
 changequote([,])dnl
                tm_file="i386/i386-interix.h interix.h"
                xm_file="i386/xm-i386-interix.h xm-interix.h"
-               xm_defines="USG NO_SYS_SIGLIST"
+               xm_defines="USG"
                tmake_file="i386/t-interix"
                extra_objs=interix.o
                xmake_file=x-interix
-               fixincludes=fixinc.interix
                if test x$enable_threads = xyes ; then
                        thread_file='posix'
                fi
@@ -1571,7 +1773,7 @@ changequote([,])dnl
 changequote(,)dnl
        i[34567]86-dg-dgux*)
 changequote([,])dnl
-               xm_file="xm-alloca.h xm-siglist.h ${xm_file}"
+               xm_file="xm-alloca.h ${xm_file}"
                xm_defines="USG POSIX"
                out_file=i386/dgux.c
                tm_file=i386/dgux.h
@@ -1664,8 +1866,8 @@ changequote([,])dnl
                extra_headers=math-68881.h
                ;;
        m68000-hp-hpux*)                # HP 9000 series 300
-               xm_file="xm_alloca.h ${xm_file}"
-               xm_defines="USG NO_SYS_SIGLIST"
+               xm_file="xm-alloca.h ${xm_file}"
+               xm_defines="USG"
                if test x$gas = xyes
                then
                        xmake_file=m68k/x-hp320g
@@ -1770,7 +1972,6 @@ changequote([,])dnl
        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 test x$gas = xyes
                then
                        xmake_file=m68k/x-mot3300-gas
@@ -1866,8 +2067,8 @@ changequote([,])dnl
                extra_headers=math-68881.h
                ;;
        m68k-hp-hpux7*) # HP 9000 series 300 running HPUX version 7.
-               xm_file="xm_alloca.h ${xm_file}"
-               xm_defines="USG NO_SYS_SIGLIST"
+               xm_file="xm-alloca.h ${xm_file}"
+               xm_defines="USG"
                if test x$gas = xyes
                then
                        xmake_file=m68k/x-hp320g
@@ -1882,8 +2083,8 @@ changequote([,])dnl
                float_format=m68k
                ;;
        m68k-hp-hpux*)  # HP 9000 series 300
-               xm_file="xm_alloca.h ${xm_file}"
-               xm_defines="USG NO_SYS_SIGLIST"
+               xm_file="xm-alloca.h ${xm_file}"
+               xm_defines="USG"
                if test x$gas = xyes
                then
                        xmake_file=m68k/x-hp320g
@@ -1935,7 +2136,9 @@ changequote([,])dnl
                use_collect2=yes
                float_format=m68k
                 ;;
-       m68k-next-nextstep3*)
+changequote(,)dnl
+       m68k-next-nextstep[34]*)
+changequote([,])dnl
                tm_file=m68k/next.h
                xm_file="m68k/xm-next.h ${xm_file}"
                tmake_file=m68k/t-next
@@ -1990,7 +2193,7 @@ changequote([,])dnl
                float_format=m68k
                ;;
        m68020-*-elf* | m68k-*-elf*)
-               tm_file="m68k/m68020-elf.h libgloss.h"
+               tm_file="m68k/m68020-elf.h"
                xm_file=m68k/xm-m68kv.h
                tmake_file=m68k/t-m68kelf
                header_files=math-68881.h
@@ -2012,6 +2215,7 @@ changequote([,])dnl
                tm_file=m68k/netbsd.h
                tmake_file=t-netbsd
                float_format=m68k
+       use_collect2=yes
                ;;
        m68k*-*-openbsd*)
                float_format=m68k
@@ -2075,13 +2279,18 @@ changequote([,])dnl
                extra_headers=math-68881.h
                float_format=m68k
                ;;
-       m68k-*-rtems*)
+       m68k-*-rtemscoff*)
                tmake_file="m68k/t-m68kbare t-rtems"
                tm_file=m68k/rtems.h
                extra_headers=math-68881.h
                float_format=m68k
                ;;
-
+       m68k-*-rtemself*|m68k-*-rtems*)
+               tmake_file="m68k/t-m68kbare t-rtems m68k/t-crtstuff"
+               tm_file=m68k/rtemself.h
+               extra_headers=math-68881.h
+               float_format=m68k
+               ;;
        m88k-dg-dgux*)
                case $machine in
                  m88k-dg-dguxbcs*)
@@ -2157,16 +2366,21 @@ changequote([,])dnl
                tmake_file=m88k/t-sysv4
                ;;
        mips-sgi-irix6*)                # SGI System V.4., IRIX 6
-               tm_file=mips/iris6.h
+               if test "x$gnu_ld" = xyes
+               then
+                       tm_file="mips/iris6.h mips/iris6gld.h"
+               else
+                       tm_file=mips/iris6.h
+               fi
+               tmake_file=mips/t-iris6
                xm_file=mips/xm-iris6.h
                xmake_file=mips/x-iris6
-               tmake_file=mips/t-iris6
 #              if test x$enable_threads = xyes; then
 #                      thread_file='irix'
 #              fi
                ;;
        mips-wrs-vxworks)
-               tm_file="mips/elf.h libgloss.h"
+               tm_file="mips/elf.h mips/vxworks.h"
                tmake_file=mips/t-ecoff
                gas=yes
                gnu_ld=yes
@@ -2333,25 +2547,23 @@ changequote([,])dnl
                ;;
        mips*-*-linux*)                         # Linux MIPS, either endian.
                xmake_file=x-linux
-               xm_file="xm-siglist.h ${xm_file}"
                case $machine in
                        mipsel-*)  tm_file="mips/elfl.h mips/linux.h" ;;
                        *)         tm_file="mips/elf.h mips/linux.h" ;;
                esac
-               extra_parts="crtbegin.o crtend.o"
+               extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                gnu_ld=yes
                gas=yes
-               fixincludes=Makefile.in 
+               if test x$enable_threads = xyes; then
+                       thread_file='posix'
+               fi
                ;;
        mips*el-*-openbsd*)     # mips little endian
                target_cpu_default="MASK_GAS|MASK_ABICALLS"
-               tm_file=mips/openbsd.h
-               xmake_file=none
                ;;
        mips*-*-openbsd*)               # mips big endian
                target_cpu_default="MASK_GAS|MASK_ABICALLS"
-               tm_file=mips/openbsd-be.h
-               xmake_file=none
+               tm_file="mips/openbsd-be.h ${tm_file}"
                ;;
        mips-sony-bsd* | mips-sony-newsos*)     # Sony NEWS 3600 or risc/news.
                tm_file="mips/news4.h ${tm_file}"
@@ -2377,7 +2589,6 @@ changequote([,])dnl
                if test x$stabs = xyes; then
                        tm_file="${tm_file} dbx.h"
                fi
-               xm_file="xm-siglist.h ${xm_file}"
                xm_defines=USG
                if test x$gas = xyes
                then
@@ -2395,7 +2606,6 @@ changequote([,])dnl
                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 test x$gas = xyes
@@ -2474,7 +2684,6 @@ changequote([,])dnl
                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 test x$gas = xyes
                then
@@ -2584,42 +2793,40 @@ changequote([,])dnl
                tmake_file=mips/t-ecoff
                ;;
        mipsel-*-elf*)
-               tm_file="mips/elfl.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tm_file="mips/elfl.h"
+               tmake_file=mips/t-elf
                ;;
        mips-*-elf*)
-               tm_file="mips/elf.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tm_file="mips/elf.h"
+               tmake_file=mips/t-elf
                ;;
        mips64el-*-elf*)
-               tm_file="mips/elfl64.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tm_file="mips/elfl64.h"
+               tmake_file=mips/t-elf
                ;;
        mips64orionel-*-elf*)
-               tm_file="mips/elforion.h mips/elfl64.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tm_file="mips/elforion.h mips/elfl64.h"
+               tmake_file=mips/t-elf
                ;;
        mips64-*-elf*)
-               tm_file="mips/elf64.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tm_file="mips/elf64.h"
+               tmake_file=mips/t-elf
                ;;
        mips64orion-*-elf*)
-               tm_file="mips/elforion.h mips/elf64.h libgloss.h"
-               tmake_file=mips/t-ecoff
+               tm_file="mips/elforion.h mips/elf64.h"
+               tmake_file=mips/t-elf
                ;;
        mips64orion-*-rtems*)
                tm_file="mips/elforion.h mips/elf64.h mips/rtems64.h"
-               tmake_file="mips/t-ecoff t-rtems"
+               tmake_file="mips/t-elf t-rtems"
                ;;
        mipstx39el-*-elf*)
-               tm_file="mips/r3900.h mips/elfl.h mips/abi64.h libgloss.h"
+               tm_file="mips/r3900.h mips/elfl.h mips/abi64.h"
                tmake_file=mips/t-r3900
                ;;
        mipstx39-*-elf*)
-               tm_file="mips/r3900.h mips/elf.h mips/abi64.h libgloss.h"
+               tm_file="mips/r3900.h mips/elf.h mips/abi64.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 test x$stabs = xyes; then
@@ -2637,6 +2844,7 @@ changequote([,])dnl
                fi
                ;;
        mn10200-*-*)
+               float_format=i32
                cpu_type=mn10200
                tm_file="mn10200/mn10200.h"
                if test x$stabs = xyes
@@ -2696,6 +2904,7 @@ changequote([,])dnl
                xm_file="ns32k/xm-netbsd.h ${xm_file}"
                # On NetBSD, the headers are already okay, except for math.h.
                tmake_file=t-netbsd
+       use_collect2=yes
                ;;
         pdp11-*-bsd)
                tm_file="${tm_file} pdp11/2bsd.h"
@@ -2705,11 +2914,22 @@ changequote([,])dnl
        ns32k-*-openbsd*)
                # Nothing special
                ;;
-       pyramid-*-*)
-               cpu_type=pyr
-               xmake_file=pyr/x-pyr
-               use_collect2=yes
-               ;;
+# This has not been updated to GCC 2.
+#      pyramid-*-*)
+#              cpu_type=pyr
+#              xmake_file=pyr/x-pyr
+#              use_collect2=yes
+#              ;;
+
+       pj*-linux*)
+               tm_file="svr4.h pj/linux.h ${tm_file}"
+               ;;
+       pj-*)
+               ;;
+       pjl-*)
+               tm_file="svr4.h pj/pjl.h ${tm_file}"
+               ;;
+
        romp-*-aos*)
                use_collect2=yes
                ;;
@@ -2722,7 +2942,6 @@ changequote([,])dnl
                ;;
        powerpc-*-openbsd*)
                tmake_file="${tmake_file} rs6000/t-rs6000 rs6000/t-openbsd"
-               xmake_file=none
                ;;
        powerpc-*-beos*)
                cpu_type=rs6000
@@ -2733,7 +2952,7 @@ changequote([,])dnl
                ;;
        powerpc-*-sysv* | powerpc-*-elf*)
                tm_file=rs6000/sysv4.h
-               xm_file="xm-siglist.h rs6000/xm-sysv4.h"
+               xm_file="rs6000/xm-sysv4.h"
                xm_defines="USG POSIX"
                extra_headers=ppc-asm.h
                if test x$gas = xyes
@@ -2793,7 +3012,7 @@ changequote([,])dnl
                ;;
        powerpc-*-linux-gnu*)
                tm_file=rs6000/linux.h
-               xm_file="xm-siglist.h rs6000/xm-sysv4.h"
+               xm_file="rs6000/xm-sysv4.h"
                xm_defines="USG ${xm_defines}"
                out_file=rs6000/rs6000.c
                if test x$gas = xyes
@@ -2811,7 +3030,7 @@ changequote([,])dnl
                ;;
         powerpc-wrs-vxworks*)
                 cpu_type=rs6000
-               xm_file="xm-siglist.h rs6000/xm-sysv4.h"
+               xm_file="rs6000/xm-sysv4.h"
                xm_defines="USG POSIX"
                 tm_file=rs6000/vxppc.h
                 tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
@@ -2820,7 +3039,7 @@ changequote([,])dnl
                 ;;
        powerpcle-*-sysv* | powerpcle-*-elf*)
                tm_file=rs6000/sysv4le.h
-               xm_file="xm-siglist.h rs6000/xm-sysv4.h"
+               xm_file="rs6000/xm-sysv4.h"
                xm_defines="USG POSIX"
                if test x$gas = xyes
                then
@@ -2869,7 +3088,7 @@ changequote([,])dnl
                ;;
        powerpcle-*-solaris2*)
                tm_file=rs6000/sol2.h
-               xm_file="xm-siglist.h rs6000/xm-sysv4.h"
+               xm_file="rs6000/xm-sysv4.h"
                xm_defines="USG POSIX"
                if test x$gas = xyes
                then
@@ -2904,24 +3123,24 @@ changequote([,])dnl
 changequote(,)dnl
        rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*)
 changequote([,])dnl
-               if test "$gnu_ld" = yes
-               then
-                       tm_file=rs6000/aix41-gld.h
-               else
-                       tm_file=rs6000/aix41.h
-               fi
+               tm_file=rs6000/aix41.h
                if test x$host != x$target
                then
                        tmake_file=rs6000/t-xnewas
                else
                        tmake_file=rs6000/t-newas
                fi
-               xmake_file=rs6000/x-aix41
+               if test "$gnu_ld" = yes
+               then
+                       xmake_file=rs6000/x-aix41-gld
+               else
+                       xmake_file=rs6000/x-aix41
+               fi
                float_format=none
                use_collect2=yes
                ;;
 changequote(,)dnl
-       rs6000-ibm-aix4.[3456789].* | powerpc-ibm-aix4.[3456789].*)
+       rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
 changequote([,])dnl
                tm_file=rs6000/aix43.h
                if test x$host != x$target
@@ -3004,6 +3223,7 @@ changequote([,])dnl
        sparc-*-netbsd*)
                tm_file=sparc/netbsd.h
                tmake_file=t-netbsd
+       use_collect2=yes
                ;;
        sparc-*-openbsd*)
                # we need collect2 until our bug is fixed...
@@ -3032,6 +3252,7 @@ changequote([,])dnl
                tmake_file="t-linux t-linux-gnulibc1"
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                gnu_ld=yes
+               float_format=sparc
                ;;
        sparc-*-linux-gnu*)             # Sparc's running GNU/Linux, libc6
                xm_file="${xm_file} sparc/xm-linux.h"
@@ -3043,6 +3264,7 @@ changequote([,])dnl
                if test x$enable_threads = xyes; then
                        thread_file='posix'
                fi
+               float_format=sparc
                ;;
        sparc-*-lynxos*)
                if test x$gas = xyes
@@ -3055,12 +3277,24 @@ changequote([,])dnl
                tmake_file=sparc/t-sunos41
                xmake_file=x-lynx
                ;;
-       sparc-*-rtems*)
+       sparc-*-rtemsaout*)
                tmake_file="sparc/t-sparcbare t-rtems"
                tm_file=sparc/rtems.h
                ;;
+       sparc-*-rtems*|sparc-*-rtemself*)
+               tm_file="sparc/rtemself.h"
+               tmake_file="sparc/t-elf t-rtems"
+               extra_parts="crti.o crtn.o crtbegin.o crtend.o"
+               #float_format=i128
+               float_format=i64
+               ;;
        sparcv9-*-solaris2*)
-               tm_file=sparc/sol2-sld-64.h
+               if test x$gnu_ld = xyes
+               then
+                       tm_file=sparc/sol2-64.h
+               else
+                       tm_file=sparc/sol2-sld-64.h
+               fi
                xm_file="sparc/xm-sysv4-64.h sparc/xm-sol2.h"
                xm_defines="USG POSIX"
                tmake_file="sparc/t-sol2 sparc/t-sol2-64"
@@ -3082,13 +3316,21 @@ changequote([,])dnl
                fi
                ;;
         sparc-hal-solaris2*)
-                xm_file=sparc/xm-sol2.h
+                xm_file="sparc/xm-sysv4.h sparc/xm-sol2.h"
+                xm_defines="USG POSIX"
                 tm_file="sparc/sol2.h sparc/hal.h"
                 tmake_file="sparc/t-halos sparc/t-sol2"
                 xmake_file=sparc/x-sysv4
                 extra_parts="crt1.o crti.o crtn.o gmon.o crtbegin.o crtend.o"
-                fixincludes=fixinc.svr4
-                broken_install=yes
+                case $machine in
+                *-*-solaris2.[0-4])
+                        float_format=i128
+                ;;
+                *)
+                        float_format=none
+                        ;;
+                esac
+               thread_file='solaris'
                 ;;
        sparc-*-solaris2*)
                if test x$gnu_ld = xyes
@@ -3097,13 +3339,27 @@ changequote([,])dnl
                else
                        tm_file=sparc/sol2-sld.h
                fi
-               xm_file="xm-siglist.h sparc/xm-sysv4.h sparc/xm-sol2.h"
+               xm_file="sparc/xm-sysv4.h sparc/xm-sol2.h"
                xm_defines="USG POSIX"
                tmake_file=sparc/t-sol2
                xmake_file=sparc/x-sysv4
                extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
                case $machine in
 changequote(,)dnl
+               *-*-solaris2.[0-6] | *-*-solaris2.[0-6].*) ;;
+changequote([,])dnl
+               *-*-solaris2*)
+                       if test x$gnu_ld = xyes
+                       then
+                               tm_file=sparc/sol2-64.h
+                       else
+                               tm_file=sparc/sol2-sld-64.h
+                       fi
+                       tmake_file="$tmake_file sparc/t-sol2-64"
+                       ;;
+               esac
+               case $machine in
+changequote(,)dnl
                *-*-solaris2.[0-4])
 changequote([,])dnl
                        float_format=i128
@@ -3145,14 +3401,14 @@ changequote([,])dnl
                ;;
        sparc-*-sysv4*)
                tm_file=sparc/sysv4.h
-               xm_file="xm-siglist.h sparc/xm-sysv4.h"
+               xm_file="sparc/xm-sysv4.h"
                xm_defines="USG POSIX"
                tmake_file=t-svr4
                xmake_file=sparc/x-sysv4
                extra_parts="crtbegin.o crtend.o"
                ;;
        sparc-*-vxsim*)
-               xm_file="xm-siglist.h sparc/xm-sysv4.h sparc/xm-sol2.h"
+               xm_file="sparc/xm-sysv4.h sparc/xm-sol2.h"
                xm_defines="USG POSIX"
                tm_file=sparc/vxsim.h
                tmake_file=sparc/t-vxsparc
@@ -3170,6 +3426,20 @@ changequote([,])dnl
                tm_file="sparc/lite.h aoutos.h libgloss.h"
                tmake_file=sparc/t-sparclite
                ;;
+       sparclite-*-elf*)
+               tm_file="sparc/liteelf.h"
+               tmake_file=sparc/t-sparclite
+                extra_parts="crtbegin.o crtend.o"
+               ;;
+       sparc86x-*-aout*)
+               tm_file="sparc/sp86x-aout.h aoutos.h libgloss.h"
+               tmake_file=sparc/t-sp86x
+               ;;
+       sparc86x-*-elf*)        
+               tm_file="sparc/sp86x-elf.h"
+               tmake_file=sparc/t-sp86x
+                extra_parts="crtbegin.o crtend.o"
+               ;;
        sparc64-*-aout*)
                tmake_file=sparc/t-sp64
                tm_file=sparc/sp64-aout.h
@@ -3186,6 +3456,10 @@ changequote([,])dnl
                xmake_file=x-linux
                extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                gnu_ld=yes
+               if test x$enable_threads = xyes; then
+                       thread_file='posix'
+               fi
+               float_format=sparc
                ;;
 # This hasn't been upgraded to GCC 2.
 #      tahoe-harris-*)                 # Harris tahoe, using COFF.
@@ -3200,6 +3474,27 @@ changequote([,])dnl
                md_file=arm/thumb.md
                tmake_file=arm/t-thumb
                ;;
+       thumb-*-elf* | thumbel-*-elf*)
+               tm_file=arm/telf.h
+               out_file=arm/thumb.c
+               xm_file=arm/xm-thumb.h
+               md_file=arm/thumb.md
+               tmake_file=arm/t-thumb-elf
+               ;;
+       thumb-*-linux-gnu*)
+               tm_file=arm/linux-telf.h
+               out_file=arm/thumb.c
+               xm_file=arm/xm-thumb.h
+               md_file=arm/thumb.md
+               tmake_file=arm/t-thumb-linux
+               ;;
+       thumb-*-uclinux*)
+               tm_file=arm/uclinux-telf.h
+               out_file=arm/thumb.c
+               md_file=arm/thumb.md
+               tmake_file=arm/t-thumb-linux
+               xm_file=arm/xm-thumb.h
+               ;;
        thumb-wrs-vxworks)
                tm_file=arm/tcoff.h
                out_file=arm/thumb.c
@@ -3208,12 +3503,32 @@ changequote([,])dnl
                tmake_file=arm/t-thumb
                thread_file='vxworks'
                ;;
+       thumb-*-pe)
+               tm_file=arm/tpe.h
+               out_file=arm/thumb.c
+               xm_file=arm/xm-thumb.h
+               md_file=arm/thumb.md
+               tmake_file=arm/t-pe-thumb
+               extra_objs=pe.o
+               ;;
 # This hasn't been upgraded to GCC 2.
 #      tron-*-*)
 #              cpu_type=gmicro
 #              use_collect2=yes
 #              ;;
+       v850-*-rtems*)
+               cpu_type=v850
+               tm_file="v850/rtems.h"
+               xm_file="v850/xm-v850.h"
+               tmake_file="v850/t-v850 t-rtems"
+               if test x$stabs = xyes
+               then
+                       tm_file="${tm_file} dbx.h"
+               fi
+               use_collect2=no
+               ;;
        v850-*-*)
+               target_cpu_default="TARGET_CPU_generic"
                cpu_type=v850
                tm_file="v850/v850.h"
                xm_file="v850/xm-v850.h"
@@ -3237,9 +3552,10 @@ changequote([,])dnl
                tm_file="${tm_file} netbsd.h vax/netbsd.h"
                tmake_file=t-netbsd
                float_format=vax
+       use_collect2=yes
                ;;
        vax-*-openbsd*)
-               tmake_file="${tm_file} vax/t-openbsd"
+               tmake_file="${tmake_file} vax/t-openbsd"
                ;;
        vax-*-ultrix*)                  # vaxen running ultrix
                tm_file="${tm_file} vax/ultrix.h"
@@ -3314,8 +3630,13 @@ changequote([,])dnl
                ;;
        alpha*-*-*)
                case $machine in
+changequote(,)dnl
+                       alphaev6[78]*)
+changequote([,])dnl
+                               target_cpu_default2="MASK_CPU_EV6|MASK_BWX|MASK_MAX|MASK_FIX|MASK_CIX"
+                               ;;
                        alphaev6*)
-                               target_cpu_default2="MASK_CPU_EV6|MASK_BWX|MASK_CIX|MASK_MAX"
+                               target_cpu_default2="MASK_CPU_EV6|MASK_BWX|MASK_MAX|MASK_FIX"
                                ;;
                        alphapca56*)
                                target_cpu_default2="MASK_CPU_EV5|MASK_BWX|MASK_MAX"
@@ -3347,10 +3668,12 @@ changequote([,])dnl
 
                        # Distinguish cores, and major variants
                        # arm7m doesn't exist, but D & I don't affect code
+changequote(,)dnl
                        xarm[23678] | xarm250 | xarm[67][01]0 \
                        | xarm7m | xarm7dm | xarm7dmi | xarm7tdmi \
                        | xarm7100 | xarm7500 | xarm7500fe | xarm810 \
                        | xstrongarm | xstrongarm110 | xstrongarm1100)
+changequote([,])dnl
                                target_cpu_default2="TARGET_CPU_$with_cpu"
                                ;;
 
@@ -3507,7 +3830,7 @@ then tmake_file=$cpu_type/t-$cpu_type
 fi
 
 if test x"$dwarf2" = xyes
-then tm_file="tm-dwarf2.h $tm_file"
+then tm_file="$tm_file tm-dwarf2.h"
 fi
 
 if test x$float_format = x
@@ -3519,16 +3842,8 @@ then float_h_file=Makefile.in
 else float_h_file=float-$float_format.h
 fi
 
-if test x$enable_haifa = x
-then
-  case $target in
-    alpha*-* | hppa*-* | powerpc*-* | rs6000-* | *sparc*-* | m32r*-*)
-      enable_haifa=yes;;
-  esac
-fi
-
 # Handle cpp installation.
-if [[ x$enable_cpp != x ]]
+if test x$enable_cpp != xno
 then
   tmake_file="$tmake_file t-install-cpp"
 fi
@@ -3627,9 +3942,9 @@ fi
 xm_file="gansidecl.h ${xm_file}"
 tm_file="gansidecl.h ${tm_file}"
 
-vars="host_xm_file tm_file xm_file build_xm_file"
-links="config.h tm.h tconfig.h hconfig.h"
-defines="host_xm_defines null_defines xm_defines build_xm_defines"
+vars="host_xm_file tm_file tm_p_file xm_file build_xm_file"
+links="config.h tm.h tm_p.h tconfig.h hconfig.h"
+defines="host_xm_defines null_defines null_defines xm_defines build_xm_defines"
 
 rm -f config.bak
 if test -f config.status; then mv -f config.status config.bak; fi
@@ -3642,6 +3957,8 @@ do
        set $defines; define=$1; shift; defines=$*
 
        rm -f $link
+       # Make sure the file is created, even if it is empty.
+       echo >$link
 
        # Define TARGET_CPU_DEFAULT if the system wants one.
        # This substitutes for lots of *.h files.
@@ -3708,6 +4025,46 @@ AC_ARG_ENABLE(nls,
 AM_GNU_GETTEXT
 XGETTEXT="AWK='$AWK' \$(SHELL) \$(top_srcdir)/exgettext $XGETTEXT"
 
+# Windows32 Registry support for specifying GCC installation paths.
+AC_ARG_ENABLE(win32-registry,
+[  --disable-win32-registry
+                          Disable lookup of installation paths in the
+                         Registry on Windows hosts.
+  --enable-win32-registry Enable registry lookup (default).
+  --enable-win32-registry=KEY
+                          Use KEY instead of GCC version as the last portion
+                         of the registry key.],,)
+
+AC_MSG_CHECKING(whether windows registry support is requested)
+if test x$enable_win32_registry != xno; then
+  AC_DEFINE(ENABLE_WIN32_REGISTRY)
+  AC_MSG_RESULT(yes)
+else
+  AC_MSG_RESULT(no)
+fi
+
+# Check if user specified a different registry key.
+case x${enable_win32_registry} in
+x | xyes)
+  # default.
+  gcc_cv_win32_registry_key="$VERSION"
+  ;;
+xno)
+  # no registry lookup.
+  gcc_cv_win32_registry_key=''
+  ;;
+*)
+  # user-specified key.
+  gcc_cv_win32_registry_key="$enable_win32_registry"
+  ;;
+esac
+
+if test x$enable_win32_registry != xno; then
+  AC_MSG_CHECKING(registry key on windows hosts)
+  AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$gcc_cv_win32_registry_key")
+  AC_MSG_RESULT($gcc_cv_win32_registry_key)
+fi
+
 # Get an absolute path to the GCC top-level source directory
 holddir=`pwd`
 cd $srcdir
@@ -3917,7 +4274,55 @@ changequote([,])dnl
        fi
 elif test x$host = x$target; then
        # Native build.
-       gcc_cv_as=as$host_exeext
+       # Search the same directories that the installed compiler will
+       # search.  Else we may find the wrong assembler and lose.  If we
+       # do not find a suitable assembler binary, then try the user's
+       # path.
+       #
+       # Also note we have to check MD_EXEC_PREFIX before checking the
+       # user's path.  Unfortunately, there is no good way to get at the
+       # value of MD_EXEC_PREFIX here.  So we do a brute force search
+       # through all the known MD_EXEC_PREFIX values.  Ugh.  This needs
+       # to be fixed as part of the make/configure rewrite too.
+
+       if test "x$exec_prefix" = xNONE; then
+               if test "x$prefix" = xNONE; then
+                       test_prefix=/usr/local
+               else
+                       test_prefix=$prefix
+               fi
+       else
+               test_prefix=$exec_prefix
+       fi
+
+       # If the loop below does not find an assembler, then use whatever
+       # one we can find in the users's path.
+       # user's path.
+       as=as$host_exeext
+
+       test_dirs="$test_prefix/lib/gcc-lib/$target/$gcc_version \
+                  $test_prefix/lib/gcc-lib/$target \
+                  /usr/lib/gcc/$target/$gcc_version \
+                  /usr/lib/gcc/$target \
+                  $test_prefix/$target/bin/$target/$gcc_version \
+                  $test_prefix/$target/bin \
+                  /usr/libexec \
+                  /usr/ccs/gcc \
+                  /usr/ccs/bin \
+                  /udk/usr/ccs/bin \
+                  /bsd43/usr/lib/cmplrs/cc \
+                  /usr/cross64/usr/bin \
+                  /usr/lib/cmplrs/cc \
+                  /sysv/usr/lib/cmplrs/cc \
+                  /svr4/usr/lib/cmplrs/cc \
+                  /usr/bin"
+
+       for dir in $test_dirs; do
+               if test -f $dir/as$host_exeext; then
+                       gcc_cv_as=$dir/as$host_exeext
+                       break;
+               fi
+       done
 fi
 if test x$gcc_cv_as != x; then
        # Check if we have .balign and .p2align
@@ -3975,6 +4380,113 @@ EOF
 fi
 AC_MSG_RESULT($gcc_cv_as_subsections)
 
+case "$target" in 
+  sparc*-*-*)
+    AC_CACHE_CHECK([assembler .register pseudo-op support],
+       gcc_cv_as_register_pseudo_op, [
+       gcc_cv_as_register_pseudo_op=unknown
+       if test x$gcc_cv_as != x; then
+           # Check if we have .register
+           echo ".register %g2, #scratch" > conftest.s
+           if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
+               gcc_cv_as_register_pseudo_op=yes
+           else
+               gcc_cv_as_register_pseudo_op=no
+           fi
+           rm -f conftest.s conftest.o
+       fi
+    ])
+    if test "x$gcc_cv_as_register_pseudo_op" = xyes; then
+       AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP)
+    fi
+
+    case "$tm_file" in
+    *64*)
+       AC_CACHE_CHECK([for 64 bit support in assembler ($gcc_cv_as)],
+           gcc_cv_as_flags64, [
+               if test -n "$gcc_cv_as"; then
+                   echo ".xword foo" > conftest.s
+                   gcc_cv_as_flags64=no
+                   for flag in "-xarch=v9" "-64 -Av9"; do
+                       if $gcc_cv_as $flag -o conftest.o conftest.s \
+                           > /dev/null 2>&1; then
+                           gcc_cv_as_flags64=$flag
+                           break
+                       fi
+                   done
+                   rm -f conftest.s conftest.o
+               else
+                   if test "$gas" = yes; then
+                       gcc_cv_as_flags64="-64 -Av9"
+                   else
+                       gcc_cv_as_flags64="-xarch=v9"
+                   fi
+               fi
+       ])
+       if test "x$gcc_cv_as_flags64" = xno; then
+changequote(, )
+           tmake_file=`echo " $tmake_file " | sed -e 's, sparc/t-sol2-64 , ,' -e 's,^ ,,' -e 's, $,,'`
+           dep_tmake_file=`echo " $dep_tmake_file " | sed -e 's, [^ ]*/config/sparc/t-sol2-64 , ,' -e 's,^ ,,' -e 's, $,,'`
+changequote([, ])
+       else
+           AC_DEFINE_UNQUOTED(AS_SPARC64_FLAG, "$gcc_cv_as_flags64")
+       fi
+       ;;
+    *) gcc_cv_as_flags64=${gcc_cv_as_flags64-no}
+       ;;
+    esac
+
+    if test "x$gcc_cv_as_flags64" != xno; then
+       AC_CACHE_CHECK([for assembler offsetable %lo() support],
+           gcc_cv_as_offsetable_lo10, [
+           gcc_cv_as_offsetable_lo10=unknown
+           if test "x$gcc_cv_as" != x; then
+               # Check if assembler has offsetable %lo()
+               echo "or %g1, %lo(ab) + 12, %g1" > conftest.s
+               echo "or %g1, %lo(ab + 12), %g1" > conftest1.s
+               if $gcc_cv_as $gcc_cv_as_flags64 -o conftest.o conftest.s \
+                       > /dev/null 2>&1 &&
+                  $gcc_cv_as $gcc_cv_as_flags64 -o conftest1.o conftest1.s \
+                       > /dev/null 2>&1; then
+                   if cmp conftest.o conftest1.o > /dev/null 2>&1; then
+                       gcc_cv_as_offsetable_lo10=no
+                   else
+                       gcc_cv_as_offsetable_lo10=yes
+                   fi
+               else
+                   gcc_cv_as_offsetable_lo10=no
+               fi
+               rm -f conftest.s conftest.o conftest1.s conftest1.o
+           fi
+       ])
+       if test "x$gcc_cv_as_offsetable_lo10" = xyes; then
+           AC_DEFINE(HAVE_AS_OFFSETABLE_LO10)
+       fi
+    fi
+    ;;
+
+changequote(,)dnl
+  i[34567]86-*-*)
+changequote([,])dnl
+    AC_MSG_CHECKING(assembler instructions)
+    gcc_cv_as_instructions=
+    if test x$gcc_cv_as != x; then
+       set "filds fists" "filds mem; fists mem"
+       while test $# -gt 0
+       do
+               echo "$2" > conftest.s
+               if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
+                       gcc_cv_as_instructions=${gcc_cv_as_instructions}$1" "
+                       AC_DEFINE_UNQUOTED(HAVE_GAS_`echo "$1" | tr '[a-z ]' '[A-Z_]'`)
+               fi
+               shift 2
+       done
+       rm -f conftest.s conftest.o
+    fi
+    AC_MSG_RESULT($gcc_cv_as_instructions)
+    ;;
+esac
+
 # Figure out what language subdirectories are present.
 # Look if the user specified --enable-languages="..."; if not, use
 # the environment variable $LANGUAGES if defined. $LANGUAGES might
@@ -4040,6 +4552,39 @@ if test $thread_file != single; then
 fi
 AC_SUBST(gthread_flags)
 
+# Find out what GC implementation we want, or may, use.
+AC_ARG_WITH(gc,
+[  --with-gc={simple,page} Choose the garbage collection mechanism to use
+                           with the compiler.],
+[case "$withval" in
+  simple | page)
+    GGC=ggc-$withval
+    ;;
+  *)
+    AC_MSG_ERROR([$withval is an invalid option to --with-gc])
+    ;;
+esac],
+[if test $ac_cv_func_mmap_anywhere = yes \
+    || test $ac_cv_func_valloc = yes; then
+  GGC=ggc-page
+else
+  GGC=ggc-simple
+fi])
+AC_SUBST(GGC)
+echo "Using $GGC for garbage collection."
+
+# Build a new-abi (c++) system
+AC_ARG_ENABLE(new-gxx-abi,
+[  --enable-new-gxx-abi
+                         select the new abi for g++. You must select an ABI
+                         at configuration time, so that the correct runtime
+                         support is built. You cannot mix ABIs.],
+[AC_DEFINE(ENABLE_NEW_GXX_ABI)
+GXX_ABI_FLAG='-fnew-abi'
+echo "Building a new-abi g++ compiler."
+])
+AC_SUBST(GXX_ABI_FLAG)
+
 # Make empty files to contain the specs and options for each language.
 # Then add #include lines to for a compiler that has specs and/or options.
 
@@ -4188,26 +4733,6 @@ if test x$with_newlib = xyes; then
 fi
 AC_SUBST(inhibit_libc)
 
-# Override SCHED_OBJ and SCHED_CFLAGS to enable the Haifa scheduler.
-sched_prefix=
-sched_cflags=
-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 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 *sched.o; do
-       if test -f $x; then
-           echo "Removing $x"
-           rm -f $x
-       fi
-    done
-fi
-
 # If $(exec_prefix) exists and is not the same as $(prefix), then compute an
 # absolute path for gcc_tooldir based on inserting the number of up-directory
 # movements required to get from $(exec_prefix) to $(prefix) into the basic
@@ -4282,7 +4807,6 @@ AC_SUBST(extra_objs)
 AC_SUBST(extra_parts)
 AC_SUBST(extra_passes)
 AC_SUBST(extra_programs)
-AC_SUBST(fixinc_defs)
 AC_SUBST(float_h_file)
 AC_SUBST(gcc_gxx_include_dir)
 AC_SUBST(gcc_version)
@@ -4291,7 +4815,6 @@ AC_SUBST(host_exeext)
 AC_SUBST(host_extra_gcc_objs)
 AC_SUBST(host_xm_file_list)
 AC_SUBST(install)
-AC_SUBST(JAVAGC)
 AC_SUBST(lang_options_files)
 AC_SUBST(lang_specs_files)
 AC_SUBST(lang_tree_files)