OSDN Git Service

* decl.c (init_decl_processing): Remove duplicate decl of
[pf3gnuchains/gcc-fork.git] / gcc / configure.in
index 21984a3..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.
 
@@ -176,11 +176,31 @@ 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,
@@ -198,11 +218,11 @@ elif test x$withval != xno; then
 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.
@@ -216,20 +236,11 @@ if test x$enable_c_cpplib != xno; then
   cpp_main=cppmain
 fi)
 
-# Disable fast fixincludes
-AC_ARG_ENABLE(fast-fixincludes,
-[  --disable-fast-fixincludes
-                         Disable the new fast fixincludes.
-                         Run the old fixincludes script unconditionally],
-if test x$enable_fast_fixincludes = xno ; then
-  cp $srcdir/fixincludes ./fixinc.sh
-fi)
-
 # Enable Multibyte Characters for C/C++
 AC_ARG_ENABLE(c-mbchar,
 [  --enable-c-mbchar       Enable multibyte characters for C and C++.],
-if [[[ x$enable_c_mbchar != xno ]]]; then
-  extra_c_flags=-DMULTIBYTE_CHARS=1
+if test x$enable_c_mbchar != xno; then
+  extra_c_flags="${extra_c_flags} -DMULTIBYTE_CHARS=1"
 fi)
   
 # Enable threads
@@ -267,7 +278,7 @@ 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
@@ -275,7 +286,7 @@ fi,
 objc_boehm_gc='')
 
 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)
 
@@ -368,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 getrusage)
+       fputs_unlocked getrusage valloc)
 
 # Make sure wchar_t is available
 #AC_CHECK_TYPE(wchar_t, unsigned int)
@@ -385,10 +396,11 @@ case "${host}" in
   ;;
 esac
 AC_FUNC_VFORK
+AC_FUNC_MMAP_ANYWHERE
 
 GCC_NEED_DECLARATIONS(bcopy bzero bcmp \
        index rindex getenv atol sbrk abort atof strerror getcwd getwd \
-       strsignal putc_unlocked fputs_unlocked strstr)
+       strsignal putc_unlocked fputs_unlocked strstr environ)
 
 GCC_NEED_DECLARATIONS(malloc realloc calloc free, [
 #ifdef HAVE_MALLOC_H
@@ -403,8 +415,6 @@ GCC_NEED_DECLARATIONS(getrlimit setrlimit getrusage, [
 #endif
 ])
 
-AC_DECL_SYS_SIGLIST
-
 # mkdir takes a single argument on some systems. 
 GCC_FUNC_MKDIR_TAKES_ONE_ARG
 
@@ -494,6 +504,9 @@ changequote([,])dnl
        mips*-*-*)
                cpu_type=mips
                ;;
+       pj*-*-*)
+               cpu_type=pj
+               ;;
        powerpc*-*-*)
                cpu_type=rs6000
                ;;
@@ -667,12 +680,12 @@ changequote([,])dnl
                    install_headers_dir=install-headers-cpio
                    ;;
                  *-*-osf5*)
-                   tm_file="${tm_file} alpha/osf.h"
+                   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
                    ;;
@@ -747,7 +760,6 @@ 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
                ;;
@@ -1022,14 +1034,14 @@ changequote([,])dnl
                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
@@ -1040,14 +1052,14 @@ changequote([,])dnl
                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 [[ 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
@@ -1111,7 +1123,6 @@ changequote([,])dnl
                xmake_file=pa/x-pa-mpeix 
                echo "You must use gas. Assuming it is already installed." 
                install_headers_dir=install-headers-tar
-               fixincludes=Makefile.in
                use_collect2=yes 
                ;; 
        i370-*-opened*)                  # IBM 360/370/390 Architecture
@@ -1119,27 +1130,24 @@ changequote([,])dnl
                tm_file=i370/oe.h
                xmake_file=i370/x-oe
                tmake_file=i370/t-oe
-               fixincludes=Makefile.in # Headers are wierd, don't mess with
                ;;
        i370-*-mvs*)
                xm_file=i370/xm-mvs.h
                tm_file=i370/mvs.h
                tmake_file=i370/t-mvs
-               fixincludes=Makefile.in # Headers are wierd, don't mess with
                ;;
        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"
-               fixincludes=Makefile.in # The headers are ok already.
                # 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 [[ x$enable_threads = xyes ]]; then
+               if test x$enable_threads = xyes; then
                        thread_file='posix'
                fi
                ;;
@@ -1170,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
@@ -1229,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
@@ -1256,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
@@ -1272,7 +1300,7 @@ changequote([,])dnl
 changequote(,)dnl
        i[34567]86-*-freebsdelf*)
 changequote([,])dnl
-               tm_file="i386/i386.h i386/att.h svr4.h i386/freebsd-elf.h i386/perform.h"
+               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=t-freebsd
                gas=yes
@@ -1281,14 +1309,14 @@ changequote([,])dnl
                case x${enable_threads} in
                xyes | xpthreads | xposix)
                        thread_file='posix'
-                       tmake_file="${tmake_file} t-openbsd-thread"
+                       tmake_file="${tmake_file} t-freebsd-thread"
                        ;;
                esac
                ;;
 changequote(,)dnl
        i[34567]86-*-freebsd*)
 changequote([,])dnl
-               tm_file=i386/freebsd.h
+               tm_file="i386/freebsd.h i386/perform.h"
                tmake_file=t-freebsd
                ;;
 changequote(,)dnl
@@ -1463,24 +1491,24 @@ changequote([,])dnl
                tmake_file="i386/t-go32 t-rtems"
                ;;
 changequote(,)dnl
-       i[34567]86-*-rtems*|i[34567]86-*-rtemself*)
+       i[34567]86-*-rtemscoff*)
 changequote([,])dnl
                cpu_type=i386
-               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"
+               tm_file=i386/rtems.h
+               tmake_file="i386/t-i386bare t-rtems"
                ;;
 changequote(,)dnl
-       i[34567]86-*-rtemscoff*)
+       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
@@ -1498,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
@@ -1537,7 +1565,7 @@ 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"
                tm_file=i386/sol2.h
                if test x$gas = xyes; then
@@ -1564,7 +1592,7 @@ changequote([,])dnl
 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
@@ -1581,7 +1609,7 @@ changequote([,])dnl
 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
@@ -1595,7 +1623,7 @@ 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"
@@ -1699,7 +1727,7 @@ 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
@@ -1713,7 +1741,7 @@ 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
@@ -1745,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
@@ -1838,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
@@ -1944,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
@@ -2040,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
@@ -2056,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
@@ -2109,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
@@ -2250,13 +2279,13 @@ changequote([,])dnl
                extra_headers=math-68881.h
                float_format=m68k
                ;;
-       m68k-*-rtemscoff*|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-*-rtemself*|m68k-*-rtems*)
                tmake_file="m68k/t-m68kbare t-rtems m68k/t-crtstuff"
                tm_file=m68k/rtemself.h
                extra_headers=math-68881.h
@@ -2518,7 +2547,6 @@ 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" ;;
@@ -2561,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
@@ -2579,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
@@ -2658,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
@@ -2793,7 +2818,6 @@ changequote([,])dnl
                ;;
        mips64orion-*-rtems*)
                tm_file="mips/elforion.h mips/elf64.h mips/rtems64.h"
-                tm_file="mips/elforion.h mips/elf64.h mips/rtems64.h"
                tmake_file="mips/t-elf t-rtems"
                ;;
        mipstx39el-*-elf*)
@@ -2820,6 +2844,7 @@ changequote([,])dnl
                fi
                ;;
        mn10200-*-*)
+               float_format=i32
                cpu_type=mn10200
                tm_file="mn10200/mn10200.h"
                if test x$stabs = xyes
@@ -2895,6 +2920,16 @@ changequote([,])dnl
 #              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
                ;;
@@ -2917,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
@@ -2977,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
@@ -2995,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"
@@ -3004,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
@@ -3053,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
@@ -3242,6 +3277,10 @@ changequote([,])dnl
                tmake_file=sparc/t-sunos41
                xmake_file=x-lynx
                ;;
+       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"
@@ -3249,12 +3288,13 @@ changequote([,])dnl
                #float_format=i128
                float_format=i64
                ;;
-       sparc-*-rtemsaout*)
-               tmake_file="sparc/t-sparcbare t-rtems"
-               tm_file=sparc/rtems.h
-               ;;
        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"
@@ -3276,12 +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"
-                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
@@ -3290,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
@@ -3338,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
@@ -3364,7 +3427,7 @@ changequote([,])dnl
                tmake_file=sparc/t-sparclite
                ;;
        sparclite-*-elf*)
-               tm_file="sparc/liteelf.h libgloss.h"
+               tm_file="sparc/liteelf.h"
                tmake_file=sparc/t-sparclite
                 extra_parts="crtbegin.o crtend.o"
                ;;
@@ -3373,7 +3436,7 @@ changequote([,])dnl
                tmake_file=sparc/t-sp86x
                ;;
        sparc86x-*-elf*)        
-               tm_file="sparc/sp86x-elf.h libgloss.h"
+               tm_file="sparc/sp86x-elf.h"
                tmake_file=sparc/t-sp86x
                 extra_parts="crtbegin.o crtend.o"
                ;;
@@ -3393,6 +3456,9 @@ 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.
@@ -3450,6 +3516,17 @@ changequote([,])dnl
 #              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
@@ -3553,6 +3630,11 @@ 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_MAX|MASK_FIX"
                                ;;
@@ -3586,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"
                                ;;
 
@@ -3746,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
@@ -4298,49 +4382,87 @@ AC_MSG_RESULT($gcc_cv_as_subsections)
 
 case "$target" in 
   sparc*-*-*)
-    AC_MSG_CHECKING(assembler .register pseudo-op support)
-    gcc_cv_as_register_pseudo_op=
-    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
+    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
-               AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP)
+           else
+               gcc_cv_as_register_pseudo_op=no
+           fi
+           rm -f conftest.s conftest.o
        fi
-       rm -f conftest.s conftest.o
+    ])
+    if test "x$gcc_cv_as_register_pseudo_op" = xyes; then
+       AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP)
     fi
-    AC_MSG_RESULT($gcc_cv_as_register_pseudo_op)
 
-    AC_MSG_CHECKING([assembler offsetable %lo() support])
-    gcc_cv_as_offsetable_lo10=
-    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
-       gcc_cv_as_flags64="-xarch=v9"
-       if $gcc_cv_as $gcc_cv_as_flags64 -o conftest.o conftest.s > /dev/null 2>&1; then
-               :
-       else          
-               gcc_cv_as_flags64="-64"
-               if $gcc_cv_as $gcc_cv_as_flags64 -o conftest.o conftest.s > /dev/null 2>&1; then
-                       :
-               else          
-                       gcc_cv_as_flags64=""
+    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
-       if test -n "$gcc_cv_as_flags64" ; then
-               if $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
-                               :
-                       else
-                               gcc_cv_as_offsetable_lo10=yes
-                               AC_DEFINE(HAVE_AS_OFFSETABLE_LO10)
-                       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
-       rm -f conftest.s conftest.o conftest1.s conftest1.o
     fi
-    AC_MSG_RESULT($gcc_cv_as_offsetable_lo10)
     ;;
 
 changequote(,)dnl
@@ -4430,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.
 
@@ -4652,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)