OSDN Git Service

* configure.in (m68*-*-rtemscoff*): New target, formal name for
[pf3gnuchains/gcc-fork.git] / gcc / configure.in
index 6b4168d..1cb5bdb 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)
 
@@ -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,
@@ -216,13 +236,6 @@ if test x$enable_c_cpplib != xno; then
   cpp_main=cppmain
 fi)
 
-# Enable Multibyte Characters for C/C++
-AC_ARG_ENABLE(c-mbchar,
-[  --enable-c-mbchar       enable multibyte characters for C and C++.],
-if test x$enable_c_mbchar != xno; then
-  extra_c_flags=-DMULTIBYTE_CHARS=1
-fi)
-
 # Disable fast fixincludes
 AC_ARG_ENABLE(fast-fixincludes,
 [  --disable-fast-fixincludes
@@ -232,6 +245,13 @@ 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 test x$enable_c_mbchar != xno; then
+  extra_c_flags="${extra_c_flags} -DMULTIBYTE_CHARS=1"
+fi)
+  
 # Enable threads
 # Pass with no value to take the default
 # Pass with a value to specify a thread package
@@ -267,7 +287,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
@@ -284,6 +304,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
@@ -333,7 +354,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 direct.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=])
@@ -342,18 +366,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.
@@ -373,7 +388,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)
@@ -390,20 +405,25 @@ case "${host}" in
   ;;
 esac
 AC_FUNC_VFORK
+AC_FUNC_MMAP
 
-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 strstr)
 
-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
 
@@ -465,8 +485,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*-*-*)
@@ -492,6 +513,9 @@ changequote([,])dnl
        mips*-*-*)
                cpu_type=mips
                ;;
+       pj*-*-*)
+               cpu_type=pj
+               ;;
        powerpc*-*-*)
                cpu_type=rs6000
                ;;
@@ -505,7 +529,10 @@ 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*)
@@ -742,7 +769,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
                ;;
@@ -851,6 +877,11 @@ 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
 #              ;;
@@ -1012,14 +1043,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
@@ -1030,14 +1061,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
@@ -1095,7 +1126,43 @@ changequote([,])dnl
                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
+               fixincludes=Makefile.in
+               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
+               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 test x$enable_threads = xyes; then
+                       thread_file='posix'
+               fi
                ;;
 changequote(,)dnl
        i[34567]86-*-elf*)
@@ -1124,7 +1191,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
@@ -1183,7 +1250,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
@@ -1226,17 +1293,23 @@ 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
                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
+               tm_file="i386/freebsd.h i386/perform.h"
                tmake_file=t-freebsd
                ;;
 changequote(,)dnl
@@ -1411,14 +1484,15 @@ changequote([,])dnl
                tmake_file="i386/t-go32 t-rtems"
                ;;
 changequote(,)dnl
-       i[34567]86-*-rtemself*)
+       i[34567]86-*-rtems*|i[34567]86-*-rtemself*)
 changequote([,])dnl
                cpu_type=i386
                tm_file=i386/rtemself.h
-               tmake_file="i386/t-i386bare t-rtems"
+               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-*-rtems*)
+       i[34567]86-*-rtemscoff*)
 changequote([,])dnl
                cpu_type=i386
                tm_file=i386/rtems.h
@@ -1427,7 +1501,7 @@ changequote([,])dnl
 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
@@ -1445,7 +1519,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
@@ -1484,25 +1558,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
@@ -1519,7 +1602,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
@@ -1533,7 +1616,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"
@@ -1637,7 +1720,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
@@ -1651,7 +1734,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
@@ -1683,7 +1766,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
@@ -1776,8 +1859,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
@@ -1882,7 +1965,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
@@ -1978,8 +2060,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
@@ -1994,8 +2076,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
@@ -2047,7 +2129,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
@@ -2188,13 +2272,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*)
@@ -2451,22 +2540,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
+               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
                ;;
        mips*-*-openbsd*)               # mips big endian
                target_cpu_default="MASK_GAS|MASK_ABICALLS"
-               tm_file=mips/openbsd-be.h
+               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}"
@@ -2492,7 +2582,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
@@ -2510,7 +2599,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
@@ -2589,7 +2677,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
@@ -2724,7 +2811,7 @@ changequote([,])dnl
                ;;
        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"
@@ -2750,6 +2837,7 @@ changequote([,])dnl
                fi
                ;;
        mn10200-*-*)
+               float_format=i32
                cpu_type=mn10200
                tm_file="mn10200/mn10200.h"
                if test x$stabs = xyes
@@ -2819,11 +2907,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
                ;;
@@ -2846,7 +2945,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
@@ -2906,7 +3005,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
@@ -2924,7 +3023,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"
@@ -2933,7 +3032,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
@@ -2982,7 +3081,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
@@ -3171,12 +3270,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"
@@ -3198,12 +3309,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
@@ -3212,13 +3332,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
@@ -3260,14 +3394,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
@@ -3286,7 +3420,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"
                ;;
@@ -3295,7 +3429,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"
                ;;
@@ -3315,6 +3449,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.
@@ -3372,6 +3509,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
@@ -3475,6 +3623,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"
                                ;;
@@ -3508,10 +3661,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"
                                ;;
 
@@ -3780,9 +3935,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
@@ -3795,6 +3950,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.
@@ -4218,49 +4375,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
@@ -4350,6 +4545,28 @@ 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_fixed_mapped = yes; then
+  GGC=ggc-page
+elif test $ac_cv_func_valloc = yes; then
+  GGC=ggc-page
+else
+  GGC=ggc-simple
+fi])
+AC_SUBST(GGC)
+echo "Using $GGC for garbage collection."
+
 # 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.