OSDN Git Service

* configure.in: Adjust FreeBSD bits to match changes to config.guess.
[pf3gnuchains/gcc-fork.git] / gcc / configure.in
index 5b19800..3061753 100644 (file)
@@ -101,7 +101,8 @@ if test x"${DEFAULT_LINKER+set}" = x"set"; then
   elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
     gnu_ld_flag=yes
   fi
-  AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER")
+  AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
+       [Define to enable the use of a default linker.])
 fi
 
 # With GNU as
@@ -119,7 +120,8 @@ if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
   elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
     gas_flag=yes
   fi
-  AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER")
+  AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER",
+       [Define to enable the use of a default assembler.])
 fi
 
 # With stabs
@@ -181,27 +183,59 @@ AC_ARG_ENABLE(checking,
                          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)
-       AC_DEFINE(ENABLE_TREE_CHECKING)
-       AC_DEFINE(ENABLE_RTL_CHECKING)  ;;
+[ac_checking=
+ac_tree_checking=
+ac_rtl_checking=
+ac_gc_checking=
+ac_gc_always_collect=
+case "${enableval}" in
+yes)   ac_checking=1 ; ac_tree_checking=1 ; ac_rtl_checking=1 ;;
 no)    ;;
-*)     ac_save_IFS="$IFS" IFS="$IFS,"
+*)     IFS="${IFS=     }"; 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)     ;;
+               misc)   ac_checking=1 ;;
+               tree)   ac_tree_checking=1 ;;
+               rtl)    ac_rtl_checking=1 ;;
+               gc)     ac_gc_checking=1 ;;
+               gcac)   ac_gc_always_collect=1 ;;
                *)      AC_MSG_ERROR(unknown check category $check) ;;
                esac
        done
        ;;
-esac])
+esac
+if test x$ac_checking != x ; then
+  AC_DEFINE(ENABLE_CHECKING, 1,
+[Define if you want more run-time sanity checks.  This one gets a grab
+   bag of miscellaneous but relatively cheap checks.])
+fi
+if test x$ac_tree_checking != x ; then
+  AC_DEFINE(ENABLE_TREE_CHECKING, 1,
+[Define if you want all operations on trees (the basic data
+   structure of the front ends) to be checked for dynamic type safety
+   at runtime.  This is moderately expensive.])
+fi
+if test x$ac_rtl_checking != x ; then
+  AC_DEFINE(ENABLE_RTL_CHECKING, 1,
+[Define if you want all operations on RTL (the basic data structure
+   of the optimizer and back end) to be checked for dynamic type safety
+   at runtime.  This is quite expensive.])
+fi
+if test x$ac_gc_checking != x ; then
+  AC_DEFINE(ENABLE_GC_CHECKING, 1,
+[Define if you want the garbage collector to do object poisoning and
+   other memory allocation checks.  This is quite expensive.])
+fi
+if test x$ac_gc_always_collect != x ; then
+  AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
+[Define if you want the garbage collector to operate in maximally
+   paranoid mode, validating the entire heap and collecting garbage at
+   every opportunity.  This is extremely expensive.])
+fi
+])
 
 AC_ARG_ENABLE(cpp,
 [  --disable-cpp           don't provide a user-visible C preprocessor.],
@@ -217,24 +251,16 @@ 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=cppmain
-AC_ARG_ENABLE(cpplib,
-[  --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
-                          (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"
-  extra_c_flags="${extra_c_flags} -DUSE_CPPLIB=1"
-  cpp_main=cppmain
-fi)
+dnl Disable this for the moment; the library interface is changing.
+dnl # Link cpplib into the compiler proper, for C/C++/ObjC.
+dnl AC_ARG_ENABLE(c-cpplib,
+dnl [  --enable-c-cpplib       link cpplib directly into C and C++ compilers
+dnl                           (EXPERIMENTAL) (implies --enable-cpplib).],
+dnl if test x$enable_c_cpplib != xno; then
+dnl  extra_c_objs="${extra_c_objs} libcpp.a"
+dnl  extra_cxx_objs="${extra_cxx_objs} ../libcpp.a"
+dnl  extra_c_flags="${extra_c_flags} -DUSE_CPPLIB=1"
+dnl fi)
 
 # Enable Multibyte Characters for C/C++
 AC_ARG_ENABLE(c-mbchar,
@@ -295,17 +321,38 @@ AC_CANONICAL_SYSTEM
 
 # Find the native compiler
 AC_PROG_CC
-AC_GCC_C_LONG_DOUBLE
+AC_PROG_CC_C_O
+if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
+  NO_MINUS_C_MINUS_O=yes
+fi
+AC_SUBST(NO_MINUS_C_MINUS_O)
+
+gcc_AC_C_LONG_DOUBLE
+
+AC_MSG_CHECKING(whether ${CC-cc} accepts -Wno-long-long)
+echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -Wno-long-long -c conftest.c 2>&1`"; then
+  ac_cv_prog_cc_no_long_long=yes
+else
+  ac_cv_prog_cc_no_long_long=no
+fi
+rm -f conftest*
+echo "$ac_t"$ac_cv_prog_cc_no_long_long 1>&6
 
 # If the native compiler is GCC, we can enable warnings even in stage1.  
 # That's useful for people building cross-compilers, or just running a
 # quick `make'.
+stage1_warn_cflags=" -W -Wall -Wtraditional -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes"
+stage2_warn_cflags="$stage1_warn_cflags -pedantic -Wno-long-long"
 if test "x$GCC" = "xyes"; then 
-  stage1_warn_cflags='$(WARN_CFLAGS)'
+  if test $ac_cv_prog_cc_no_long_long = yes; then
+    stage1_warn_cflags="$stage1_warn_cflags -pedantic -Wno-long-long"
+  fi
 else
   stage1_warn_cflags=""
 fi
 AC_SUBST(stage1_warn_cflags)
+AC_SUBST(stage2_warn_cflags)
 
 AC_PROG_MAKE_SET
 
@@ -331,19 +378,21 @@ else
     AC_MSG_RESULT(no)
 fi
 
+AC_C_INLINE
+
 # Find some useful tools
 AC_PROG_AWK
 AC_PROG_LEX
-GCC_PROG_LN
-GCC_PROG_LN_S
-GCC_C_VOLATILE
+gcc_AC_PROG_LN
+gcc_AC_PROG_LN_S
+gcc_AC_C_VOLATILE
 AC_PROG_RANLIB
 AC_PROG_YACC
-EGCS_PROG_INSTALL
+gcc_AC_PROG_INSTALL
 
 AC_HEADER_STDC
 AC_HEADER_TIME
-GCC_HEADER_STRING
+gcc_AC_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 \
@@ -357,6 +406,30 @@ 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)
 
+# Do we have a single-tree copy of texinfo?
+if test -f $srcdir/../texinfo/Makefile.in; then
+  MAKEINFO='$(objdir)/../texinfo/makeinfo/makeinfo'
+  gcc_cv_prog_makeinfo_modern=yes
+  AC_MSG_RESULT([Using makeinfo from the unified source tree.])
+else
+  # See if makeinfo has been installed and is modern enough
+  # that we can use it.
+  gcc_AC_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
+  [GNU texinfo.* \([0-9][0-9.]*\)],
+  [3.1[2-9] | 3.[2-9][0-9] | 4.* | 1.6[89] | 1.7[0-9]])
+fi
+
+if test $gcc_cv_prog_makeinfo_modern = no; then
+  AC_MSG_WARN([
+*** Makeinfo is missing or too old.
+*** Info documentation will not be built or installed.])
+  BUILD_INFO=
+  INSTALL_INFO=
+else
+  BUILD_INFO=info              AC_SUBST(BUILD_INFO)
+  INSTALL_INFO=install-info    AC_SUBST(INSTALL_INFO)
+fi
+
 # See if the stage1 system preprocessor understands the ANSI C
 # preprocessor stringification operator.
 AC_C_STRINGIZE
@@ -373,19 +446,39 @@ AC_CACHE_VAL(gcc_cv_header_inttypes_h,
   gcc_cv_header_inttypes_h=no)])
 AC_MSG_RESULT($gcc_cv_header_inttypes_h)
 if test $gcc_cv_header_inttypes_h = yes; then
-  AC_DEFINE(HAVE_INTTYPES_H)
+  AC_DEFINE(HAVE_INTTYPES_H, 1,
+       [Define if you have a working <inttypes.h> header file.])
+fi
+
+#
+# Determine if enumerated bitfields are unsigned.   ISO C says they can 
+# be either signed or unsigned.
+#
+AC_CACHE_CHECK(for unsigned enumerated bitfields, gcc_cv_enum_bf_unsigned,
+[AC_TRY_RUN(#include <stdlib.h>
+enum t { BLAH = 128 } ;
+struct s_t { enum t member : 8; } s ;
+int main(void)
+{            
+        s.member = BLAH;
+        if (s.member < 0) exit(1);
+        exit(0);
+
+}, gcc_cv_enum_bf_unsigned=yes, gcc_cv_enum_bf_unsigned=no, gcc_cv_enum_bf_unsigned=yes)])
+if test $gcc_cv_enum_bf_unsigned = yes; then
+  AC_DEFINE(ENUM_BITFIELDS_ARE_UNSIGNED, 1,
+    [Define if enumerated bitfields are treated as unsigned values.])
 fi
 
-AC_CHECK_FUNCS(strtoul bsearch strerror putenv popen bcopy bzero bcmp \
+AC_CHECK_FUNCS(strtoul bsearch 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 valloc)
 
-# Make sure wchar_t is available
-#AC_CHECK_TYPE(wchar_t, unsigned int)
+AC_CHECK_TYPE(ssize_t, int)
 
-GCC_FUNC_VFPRINTF_DOPRNT
-GCC_FUNC_PRINTF_PTR
+gcc_AC_FUNC_VFPRINTF_DOPRNT
+gcc_AC_FUNC_PRINTF_PTR
 
 case "${host}" in
 *-*-uwin*)
@@ -397,26 +490,31 @@ 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 environ)
-
-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>
+AC_FUNC_MMAP_FILE
+
+# We will need to find libiberty.h and ansidecl.h
+saved_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include"
+gcc_AC_CHECK_DECLS(bcopy bzero bcmp \
+       index rindex getenv atol sbrk abort atof getcwd getwd \
+       strsignal putc_unlocked fputs_unlocked strstr environ \
+       malloc realloc calloc free basename getopt, , ,[
+#include "gansidecl.h"
+#include "system.h"])
+
+gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
+#include "gansidecl.h"
+#include "system.h"
 #ifdef HAVE_SYS_RESOURCE_H
 #include <sys/resource.h>
 #endif
 ])
 
+# Restore CFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
+CFLAGS="$saved_CFLAGS"
+
 # mkdir takes a single argument on some systems. 
-GCC_FUNC_MKDIR_TAKES_ONE_ARG
+gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
 
 # File extensions
 manext='.1'
@@ -484,6 +582,9 @@ for machine in $build $host $target; do
        alpha*-*-*)
                cpu_type=alpha
                ;;
+       strongarm*-*-*)
+               cpu_type=arm
+               ;;
        arm*-*-*)
                cpu_type=arm
                ;;
@@ -598,7 +699,7 @@ changequote([,])dnl
 
                xm_file="alpha/xm-alpha-interix.h xm-interix.h"
                xmake_file="x-interix alpha/t-pe"
-               tmake_file="alpha/t-interix alpha/t-ieee"
+               tmake_file="alpha/t-alpha alpha/t-interix alpha/t-ieee"
                if test x$enable_threads = xyes ; then
                        thread_file='posix'
                fi
@@ -611,7 +712,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"
+               tmake_file="alpha/t-alpha alpha/t-ieee"
                gas=no
                xmake_file=none
                gas=yes gnu_ld=yes
@@ -619,7 +720,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 alpha/t-ieee"
+               tmake_file="t-linux t-linux-gnulibc1 alpha/t-alpha alpha/t-crtbe alpha/t-ieee"
                extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
                xmake_file=none
                gas=yes gnu_ld=yes
@@ -630,7 +731,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 alpha/t-ieee"
+               tmake_file="t-linux alpha/t-crtbe alpha/t-alpha alpha/t-ieee"
                extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
                xmake_file=none
                gas=yes gnu_ld=yes
@@ -641,7 +742,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 alpha/t-ieee"
+               tmake_file="alpha/t-crtbe alpha/t-alpha alpha/t-ieee"
                extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
                xmake_file=none
                gas=yes gnu_ld=yes
@@ -650,7 +751,7 @@ changequote([,])dnl
        alpha*-*-openbsd*)
                # default x-alpha is only appropriate for dec-osf.
                target_cpu_default="MASK_GAS"
-               tmake_file="alpha/t-ieee"
+               tmake_file="alpha/t-alpha alpha/t-ieee"
                ;;
                
        alpha*-dec-osf*)
@@ -663,7 +764,7 @@ changequote([,])dnl
                        extra_passes="mips-tfile mips-tdump"
                fi
                use_collect2=yes
-               tmake_file="alpha/t-ieee"
+               tmake_file="alpha/t-alpha alpha/t-ieee"
                case $machine in
                  *-*-osf1*)
                    tm_file="${tm_file} alpha/osf.h alpha/osf12.h alpha/osf2or3.h"
@@ -693,7 +794,7 @@ changequote([,])dnl
                ;;
        alpha*-*-vxworks*)
                tm_file="${tm_file} dbx.h alpha/vxworks.h"
-               tmake_file="alpha/t-ieee"
+               tmake_file="alpha/t-alpha alpha/t-ieee"
                if [ x$gas != xyes ]
                then
                        extra_passes="mips-tfile mips-tdump"
@@ -704,7 +805,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 alpha/t-ieee"
+               tmake_file="t-libc-ok alpha/t-alpha alpha/t-ieee"
                xmake_file=winnt/x-winnt
                extra_host_objs=oldnames.o
                extra_gcc_objs="spawnv.o oldnames.o"
@@ -719,18 +820,18 @@ changequote([,])dnl
        alpha*-dec-vms*)
                tm_file=alpha/vms.h
                xm_file="${xm_file} alpha/xm-vms.h"
-               tmake_file="alpha/t-vms alpha/t-ieee"
+               tmake_file="alpha/t-alpha alpha/t-vms alpha/t-ieee"
                ;;
        arc-*-elf*)
                extra_parts="crtinit.o crtfini.o"
                ;;
        arm-*-coff* | armel-*-coff*)
                tm_file=arm/coff.h
-               tmake_file=arm/t-bare
+               tmake_file=arm/t-arm-coff
                ;;
        arm-*-vxworks*)
                tm_file=arm/vxarm.h
-               tmake_file=arm/t-bare
+               tmake_file=arm/t-arm-coff
                thread_file='vxworks'
                ;;
 changequote(,)dnl
@@ -812,21 +913,19 @@ changequote([,])dnl
                ;;
        arm*-*-aout)
                tm_file=arm/aout.h
-               tmake_file=arm/t-bare
+               tmake_file=arm/t-arm-aout
                ;;
         arm*-*-ecos-elf)
                tm_file=arm/ecos-elf.h
-               tmake_file=arm/t-elf
+               tmake_file=arm/t-arm-elf
                ;; 
        arm*-*-elf)
                tm_file=arm/unknown-elf.h
                tmake_file=arm/t-arm-elf
-#              tm_file=arm2/unknown-elf.h
-#              tmake_file=arm2/t-arm-elf
-#              out_file=arm2/arm.c
-#              xm_file=arm2/xm-arm.h
-#              md_file=arm2/arm.md
-#              tm_p_file=arm2/arm-protos.h
+               ;;
+       arm*-*-conix*)
+               tm_file=arm/conix-elf.h
+               tmake_file=arm/t-arm-elf
                ;;
         arm*-*-oabi)
                tm_file=arm/unknown-elf-oabi.h
@@ -835,7 +934,7 @@ changequote([,])dnl
        arm-*-pe*)
                tm_file=arm/pe.h
                tmake_file=arm/t-pe
-               extra_objs=pe.o
+               extra_objs="pe.o"
                ;;
        avr-*-*)
                ;;
@@ -871,6 +970,9 @@ changequote([,])dnl
                extra_parts="crtbegin.o crtend.o"
                install_headers_dir=install-headers-cpio
                ;;
+       d30v-*)
+               float_format=i64
+               ;;
        dsp16xx-*)
                ;;
        elxsi-elxsi-*)
@@ -904,36 +1006,36 @@ changequote([,])dnl
                ;;
        hppa1.1-*-pro*)
                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"
+               tm_file="${tm_file} pa/pa32-regs.h 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_PA_11"
-               tm_file="${tm_file} pa/som.h pa/pa-osf.h"
+               tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-osf.h"
                use_collect2=yes
                ;;
        hppa1.1-*-rtems*)
                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"
+               tm_file="${tm_file} pa/pa32-regs.h 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/som.h pa/pa-osf.h"
+               tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-osf.h"
                use_collect2=yes
                ;;
        hppa1.1-*-bsd*)
-               tm_file="${tm_file} pa/som.h"
+               tm_file="${tm_file} pa/pa32-regs.h pa/som.h"
                target_cpu_default="MASK_PA_11"
                use_collect2=yes
                ;;
        hppa1.0-*-bsd*)
-               tm_file="${tm_file} pa/som.h"
+               tm_file="${tm_file} pa/pa32-regs.h pa/som.h"
                use_collect2=yes
                ;;
        hppa1.0-*-hpux7*)
-               tm_file="pa/pa-oldas.h ${tm_file} pa/som.h pa/pa-hpux7.h"
+               tm_file="pa/pa-oldas.h ${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux7.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -946,7 +1048,7 @@ changequote([,])dnl
 changequote(,)dnl
        hppa1.0-*-hpux8.0[0-2]*)
 changequote([,])dnl
-               tm_file="${tm_file} pa/som.h pa/pa-hpux.h"
+               tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -962,7 +1064,7 @@ changequote(,)dnl
        hppa1.1-*-hpux8.0[0-2]*)
 changequote([,])dnl
                target_cpu_default="MASK_PA_11"
-               tm_file="${tm_file} pa/som.h pa/pa-hpux.h"
+               tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -976,7 +1078,7 @@ changequote([,])dnl
                ;;
        hppa1.1-*-hpux8*)
                target_cpu_default="MASK_PA_11"
-               tm_file="${tm_file} pa/som.h pa/pa-hpux.h"
+               tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -987,7 +1089,7 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa1.0-*-hpux8*)
-               tm_file="${tm_file} pa/som.h pa/pa-hpux.h"
+               tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux.h"
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -999,7 +1101,8 @@ changequote([,])dnl
                ;;
        hppa1.1-*-hpux10* | hppa2*-*-hpux10*)
                target_cpu_default="MASK_PA_11"
-               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hpux10.h"
+               tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux10.h"
+               float_format=i128
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                tmake_file=pa/t-pa
@@ -1018,7 +1121,8 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa1.0-*-hpux10*)
-               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hpux10.h"
+               tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux10.h"
+               float_format=i128
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                tmake_file=pa/t-pa
@@ -1036,9 +1140,34 @@ changequote([,])dnl
                install_headers_dir=install-headers-cpio
                use_collect2=yes
                ;;
+       hppa*64*-*-hpux11*)
+               target_cpu_default="MASK_PA_11"
+               xm_file=pa/xm-pa64hpux.h
+               xmake_file=pa/x-pa-hpux
+               tmake_file=pa/t-pa
+               tm_file="pa/pa64-start.h ${tm_file} pa/pa64-regs.h pa/long_double.h pa/elf.h pa/pa-hpux.h pa/pa-hpux11.h pa/pa-64.h"
+               float_format=i128
+               tmake_file=pa/t-pa64
+               target_cpu_default="(MASK_PA_11|MASK_PA_20)"
+
+               if [[ x$gas = xyes ]]
+               then
+                       tm_file="${tm_file} pa/pa-gas.h"
+               fi
+#              if [[ x$enable_threads = x ]]; then
+#                  enable_threads=$have_pthread_h
+#              fi
+#              if [[ 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-*-hpux11* | hppa2*-*-hpux11*)
                target_cpu_default="MASK_PA_11"
-               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hpux11.h"
+               tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux11.h"
+               float_format=i128
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                tmake_file=pa/t-pa
@@ -1057,7 +1186,8 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa1.0-*-hpux11*)
-               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hpux11.h"
+               tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux11.h"
+               float_format=i128
                xm_file=pa/xm-pahpux.h
                xmake_file=pa/x-pa-hpux
                if test x$gas = xyes
@@ -1076,7 +1206,7 @@ changequote([,])dnl
                ;;
        hppa1.1-*-hpux* | hppa2*-*-hpux*)
                target_cpu_default="MASK_PA_11"
-               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hpux9.h"
+               tm_file="${tm_file} pa/pa32-regs.h 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
@@ -1087,7 +1217,7 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa1.0-*-hpux*)
-               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hpux9.h"
+               tm_file="${tm_file} pa/pa32-regs.h 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
@@ -1099,7 +1229,7 @@ changequote([,])dnl
                ;;
        hppa1.1-*-hiux* | hppa2*-*-hiux*)
                target_cpu_default="MASK_PA_11"
-               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hiux.h"
+               tm_file="${tm_file} pa/pa32-regs.h 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
@@ -1110,7 +1240,7 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa1.0-*-hiux*)
-               tm_file="${tm_file} pa/som.h pa/pa-hpux.h pa/pa-hiux.h"
+               tm_file="${tm_file} pa/pa32-regs.h 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
@@ -1121,12 +1251,12 @@ changequote([,])dnl
                use_collect2=yes
                ;;
        hppa*-*-lites*)
-               tm_file="${tm_file} elfos.h pa/elf.h"
+               tm_file="${tm_file} pa/pa32-regs.h elfos.h pa/elf.h"
                target_cpu_default="MASK_PA_11"
                use_collect2=yes
                ;;
        hppa*-*-mpeix*)
-               tm_file="${tm_file} pa/pa-mpeix.h"
+               tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h 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." 
@@ -1306,7 +1436,13 @@ changequote([,])dnl
 #              use_collect2=yes
                ;;
 changequote(,)dnl
-       i[34567]86-*-freebsdelf*)
+       i[34567]86-*-freebsd[12] | i[34567]86-*-freebsd[12].* | i[34567]86-*-freebsd*aout*)
+changequote([,])dnl
+               tm_file="i386/freebsd.h i386/perform.h"
+               tmake_file=t-freebsd
+               ;;
+changequote(,)dnl
+       i[34567]86-*-freebsd*)
 changequote([,])dnl
                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"
@@ -1322,12 +1458,6 @@ changequote([,])dnl
                esac
                ;;
 changequote(,)dnl
-       i[34567]86-*-freebsd*)
-changequote([,])dnl
-               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
@@ -1371,6 +1501,7 @@ changequote([,])dnl
                        tmake_file=i386/t-crtstuff
                        extra_parts="crtbegin.o crtend.o"
                fi
+               tmake_file="$tmake_file i386/t-i386bare"
                install_headers_dir=install-headers-cpio
                ;;
 changequote(,)dnl
@@ -1441,6 +1572,7 @@ changequote([,])dnl
                gnu_ld=yes
                gas=yes
                exeext=.exe
+               float_format=none
                case $host in *pc-msdosdjgpp*)
                        target_alias=djgpp
                        ;;
@@ -1528,6 +1660,7 @@ changequote([,])dnl
                else
                        tmake_file=i386/t-sco5
                fi
+               tmake_file="$tmake_file i386/t-i386bare"
                extra_parts="crti.o crtbegin.o crtend.o crtbeginS.o crtendS.o"
                ;;
 changequote(,)dnl
@@ -1547,6 +1680,7 @@ changequote([,])dnl
                        tmake_file=i386/t-crtstuff
                        extra_parts="crtbegin.o crtend.o"
                fi
+               tmake_file="$tmake_file i386/t-i386bare"
                # The default EAFS filesystem supports long file names.
                # Truncating the target makes $host != $target which
                # makes gcc think it is doing a cross-compile.
@@ -1568,6 +1702,7 @@ changequote([,])dnl
                        extra_parts="crtbegin.o crtend.o"
                        tmake_file=i386/t-crtstuff
                fi
+               tmake_file="$tmake_file i386/t-i386bare"
                truncate_target=yes
                ;;
 changequote(,)dnl
@@ -1580,7 +1715,7 @@ changequote([,])dnl
                        # Only needed if gas does not support -s
                        tm_file="i386/sol2gas.h ${tm_file}"
                fi
-               tmake_file=i386/t-sol2
+               tmake_file="i386/t-i386bare 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} = x; then
@@ -1607,7 +1742,7 @@ changequote([,])dnl
                then
                        tm_file="${tm_file} dbx.h"
                fi
-               tmake_file=i386/t-crtpic
+               tmake_file="i386/t-i386bare i386/t-crtpic"
                xmake_file=x-svr4
                extra_parts="crtbegin.o crtend.o"
               if test x$enable_threads = xyes; then
@@ -1624,7 +1759,7 @@ changequote([,])dnl
                then
                        tm_file="${tm_file} dbx.h"
                fi
-               tmake_file=i386/t-crtpic
+               tmake_file="i386/t-i386bare i386/t-crtpic"
                xmake_file=x-svr4
                extra_parts="crtbegin.o crtend.o"
                ;;
@@ -1634,7 +1769,7 @@ changequote([,])dnl
                xm_file="xm-alloca.h ${xm_file}"
                xm_defines="USG POSIX"
                tm_file=i386/udk.h
-               tmake_file="i386/t-crtpic i386/t-udk"
+               tmake_file="i386/t-i386bare i386/t-crtpic i386/t-udk"
                xmake_file=x-svr4
                extra_parts="crtbegin.o crtend.o"
                install_headers_dir=install-headers-cpio
@@ -1677,6 +1812,7 @@ changequote([,])dnl
                        extra_parts="crtbegin.o crtend.o"
                        tmake_file=i386/t-crtstuff
                fi
+               tmake_file="$tmake_file i386/t-crtpic"
                ;;
        i386-*-vsta)                    # Intel 80386's running VSTa kernel
                xm_file="${xm_file} i386/xm-vsta.h"
@@ -1857,6 +1993,27 @@ changequote([,])dnl
        i960-*-*)                       # Default i960 environment.
                use_collect2=yes
                ;;
+       ia64*-*-elf*)
+               tm_file=ia64/elf.h
+               tmake_file="ia64/t-ia64"
+               target_cpu_default="0"
+               if test x$gas = xyes
+               then
+                       target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
+               fi
+               if test x$gnu_ld = xyes
+               then
+                       target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
+               fi
+               ;;
+       ia64*-*-linux*)
+               tm_file=ia64/linux.h
+               tmake_file="t-linux ia64/t-ia64"
+               target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
+               if test x$enable_threads = xyes; then
+                       thread_file='posix'
+               fi
+               ;;
        m32r-*-elf*)
                extra_parts="crtinit.o crtfini.o"
                ;;
@@ -2968,79 +3125,57 @@ changequote([,])dnl
                tmake_file=rs6000/t-beos
                xmake_file=rs6000/x-beos
                ;;
-       powerpc-*-sysv* | powerpc-*-elf*)
+       powerpc-*-sysv*)
                tm_file=rs6000/sysv4.h
                xm_file="rs6000/xm-sysv4.h"
                xm_defines="USG POSIX"
                extra_headers=ppc-asm.h
-               if test x$gas = xyes
-               then
-                       tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
-               else
-                       tmake_file="rs6000/t-ppc rs6000/t-ppccomm"
-               fi
+               tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
                xmake_file=rs6000/x-sysv4
                ;;
        powerpc-*-eabiaix*)
-               tm_file=rs6000/eabiaix.h
+               tm_file="rs6000/sysv4.h rs6000/eabi.h rs6000/eabiaix.h"
                tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
                extra_headers=ppc-asm.h
                ;;
        powerpc-*-eabisim*)
-               tm_file=rs6000/eabisim.h
+               tm_file="rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
+               tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
+               extra_headers=ppc-asm.h
+               ;;
+       powerpc-*-elf*)
+               tm_file="rs6000/sysv4.h"
                tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
                extra_headers=ppc-asm.h
                ;;
        powerpc-*-eabi*)
-               tm_file=rs6000/eabi.h
-               if test x$gas = xyes
-               then
-                       tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
-               else
-                       tmake_file="rs6000/t-ppc rs6000/t-ppccomm"
-               fi
+               tm_file="rs6000/sysv4.h rs6000/eabi.h"
+               tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
                extra_headers=ppc-asm.h
                ;;
        powerpc-*-rtems*)
-               tm_file=rs6000/rtems.h
-               if test x$gas = xyes
-               then
-                    tmake_file="rs6000/t-ppcgas t-rtems rs6000/t-ppccomm"
-               else
-                    tmake_file="rs6000/t-ppc t-rtems rs6000/t-ppccomm"
-               fi
+               tm_file="rs6000/sysv4.h rs6000/eabi.h rs6000/rtems.h"
+               tmake_file="rs6000/t-ppcgas t-rtems rs6000/t-ppccomm"
                extra_headers=ppc-asm.h
                ;;
        powerpc-*-linux-gnulibc1)
-               tm_file=rs6000/linux.h
+               tm_file="rs6000/sysv4.h rs6000/linux.h"
                xm_file=rs6000/xm-sysv4.h
                out_file=rs6000/rs6000.c
-               if test x$gas = xyes
-               then
-                       tmake_file="rs6000/t-ppcos t-linux t-linux-gnulibc1 rs6000/t-ppccomm"
-               else
-                       tmake_file="rs6000/t-ppc t-linux t-linux-gnulibc1 rs6000/t-ppccomm"
-               fi
+               tmake_file="rs6000/t-ppcos t-linux t-linux-gnulibc1 rs6000/t-ppccomm"
                xmake_file=x-linux
-               extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                extra_headers=ppc-asm.h
                if test x$enable_threads = xyes; then
                        thread_file='posix'
                fi
                ;;
        powerpc-*-linux-gnu*)
-               tm_file=rs6000/linux.h
+               tm_file="rs6000/sysv4.h rs6000/linux.h"
                xm_file="rs6000/xm-sysv4.h"
                xm_defines="USG ${xm_defines}"
                out_file=rs6000/rs6000.c
-               if test x$gas = xyes
-               then
-                       tmake_file="rs6000/t-ppcos t-linux rs6000/t-ppccomm"
-               else
-                       tmake_file="rs6000/t-ppc t-linux rs6000/t-ppccomm"
-               fi
+               tmake_file="rs6000/t-ppcos t-linux rs6000/t-ppccomm"
                xmake_file=x-linux
-               extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
                extra_headers=ppc-asm.h
                if test x$enable_threads = xyes; then
                        thread_file='posix'
@@ -3050,70 +3185,48 @@ changequote([,])dnl
                 cpu_type=rs6000
                xm_file="rs6000/xm-sysv4.h"
                xm_defines="USG POSIX"
-                tm_file=rs6000/vxppc.h
+                tm_file="rs6000/sysv4.h rs6000/vxppc.h"
                 tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
                extra_headers=ppc-asm.h
                thread_file='vxworks'
                 ;;
-       powerpcle-*-sysv* | powerpcle-*-elf*)
-               tm_file=rs6000/sysv4le.h
+        powerpcle-wrs-vxworks*)
+                cpu_type=rs6000
                xm_file="rs6000/xm-sysv4.h"
                xm_defines="USG POSIX"
-               if test x$gas = xyes
-               then
-                       tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
-               else
-                       tmake_file="rs6000/t-ppc rs6000/t-ppccomm"
-               fi
+                tm_file="rs6000/sysv4.h rs6000/sysv4le.h rs6000/vxppc.h"
+                tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
+               extra_headers=ppc-asm.h
+               thread_file='vxworks'
+                ;;
+       powerpcle-*-sysv*)
+               tm_file="rs6000/sysv4.h rs6000/sysv4le.h"
+               xm_file="rs6000/xm-sysv4.h"
+               xm_defines="USG POSIX"
+               tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
                xmake_file=rs6000/x-sysv4
                extra_headers=ppc-asm.h
                ;;
-       powerpcle-*-eabisim*)
-               tm_file=rs6000/eabilesim.h
+       powerpcle-*-elf*)
+               tm_file="rs6000/sysv4.h rs6000/sysv4le.h"
                tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
                extra_headers=ppc-asm.h
                ;;
-       powerpcle-*-eabi*)
-               tm_file=rs6000/eabile.h
-               if test x$gas = xyes
-               then
-                       tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
-               else
-                       tmake_file="rs6000/t-ppc rs6000/t-ppccomm"
-               fi
-               extra_headers=ppc-asm.h
-               ;;
-        powerpcle-*-winnt* )
-                tm_file=rs6000/win-nt.h
-                tmake_file=rs6000/t-winnt
-#               extra_objs=pe.o
-               if test x$enable_threads = xyes; then
-                       thread_file='win32'
-               fi
+       powerpcle-*-eabisim*)
+               tm_file="rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h"
+               tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
                extra_headers=ppc-asm.h
                ;;
-       powerpcle-*-pe | powerpcle-*-cygwin*)
-               tm_file=rs6000/cygwin.h
-               xm_file="rs6000/xm-cygwin.h ${xm_file}"
-               tmake_file=rs6000/t-winnt
-               xmake_file=rs6000/x-cygwin
-#              extra_objs=pe.o
-               if test x$enable_threads = xyes; then
-                       thread_file='win32'
-               fi
-               exeext=.exe
+       powerpcle-*-eabi*)
+               tm_file="rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h"
+               tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
                extra_headers=ppc-asm.h
                ;;
        powerpcle-*-solaris2*)
-               tm_file=rs6000/sol2.h
+               tm_file="rs6000/sysv4.h rs6000/sysv4le.h rs6000/sol2.h"
                xm_file="rs6000/xm-sysv4.h"
                xm_defines="USG POSIX"
-               if test x$gas = xyes
-               then
-                       tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
-               else
-                       tmake_file="rs6000/t-ppc rs6000/t-ppccomm"
-               fi
+               tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
                xmake_file=rs6000/x-sysv4
                extra_headers=ppc-asm.h
                ;;
@@ -3152,8 +3265,9 @@ changequote([,])dnl
                then
                        xmake_file=rs6000/x-aix41-gld
                else
-                       xmake_file=rs6000/x-aix41
+                       tmake_file="rs6000/t-newas rs6000/t-aix41"
                fi
+               xmake_file=rs6000/x-aix41
                float_format=none
                use_collect2=yes
                ;;
@@ -3161,13 +3275,8 @@ changequote(,)dnl
        rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
 changequote([,])dnl
                tm_file=rs6000/aix43.h
-               if test x$host != x$target
-               then
-                       tmake_file=rs6000/t-xaix43
-               else
-                       tmake_file=rs6000/t-aix43
-               fi
-               xmake_file=rs6000/x-aix43
+               tmake_file=rs6000/t-aix43
+               xmake_file=rs6000/x-aix41
                float_format=none
                use_collect2=yes
                ;;
@@ -3175,13 +3284,8 @@ changequote(,)dnl
        rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
 changequote([,])dnl
                tm_file=rs6000/aix43.h
-               if test x$host != x$target
-               then
-                       tmake_file=rs6000/t-xaix43
-               else
-                       tmake_file=rs6000/t-aix43
-               fi
-               xmake_file=rs6000/x-aix43
+               tmake_file=rs6000/t-aix43
+               xmake_file=rs6000/x-aix41
                float_format=none
                use_collect2=yes
                ;;
@@ -3341,7 +3445,9 @@ changequote([,])dnl
                 xmake_file=sparc/x-sysv4
                 extra_parts="crt1.o crti.o crtn.o gmon.o crtbegin.o crtend.o"
                 case $machine in
+changequote(,)dnl
                 *-*-solaris2.[0-4])
+changequote([,])dnl
                         float_format=i128
                 ;;
                 *)
@@ -3485,55 +3591,12 @@ changequote([,])dnl
 #              ;;
 #      tahoe-*-bsd*)                   # tahoe running BSD
 #              ;;
-       thumb-*-coff* | thumbel-*-coff*)
-               tm_file=arm/tcoff.h
-               out_file=arm/thumb.c
-               xm_file=arm/xm-thumb.h
-               md_file=arm/thumb.md
-               tmake_file=arm/t-thumb
-               tm_p_file=arm/thumb-protos.h
-               ;;
-       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
-               tm_p_file=arm/thumb-protos.h
-               ;;
-       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
-               tm_p_file=arm/thumb-protos.h
-               ;;
-       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
-               tm_p_file=arm/thumb-protos.h
-               ;;
-       thumb-wrs-vxworks)
-               tm_file=arm/tcoff.h
-               out_file=arm/thumb.c
-               xm_file=arm/xm-thumb.h
-               md_file=arm/thumb.md
-               tmake_file=arm/t-thumb
-               thread_file='vxworks'
-               tm_p_file=arm/thumb-protos.h
-               ;;
-       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
-               tm_p_file=arm/thumb-protos.h
+
+       thumb*-*-*)
+               AC_MSG_ERROR([
+*** The Thumb targets have been depreciated.  The equivalent
+*** ARM based toolchain can now generated Thumb instructions
+*** when the -mthumb switch is given to the compiler.])
                ;;
 # This hasn't been upgraded to GCC 2.
 #      tron-*-*)
@@ -3721,16 +3784,16 @@ changequote([,])dnl
                then
                        if test x$gnu_ld = xyes
                        then
-                               target_cpu_default2=20
+                               target_cpu_default2="MASK_GAS|MASK_SPLIT_ADDR"
                        else
-                               target_cpu_default2=16
+                               target_cpu_default2="MASK_GAS"
                        fi
                fi
                ;;
        mips*-*-*)
                if test x$gas = xyes
                then
-                       target_cpu_default2=16
+                       target_cpu_default2="MASK_GAS"
                fi
                ;;
        powerpc*-*-* | rs6000-*-*)
@@ -3993,7 +4056,7 @@ do
 
        for file in `eval echo '$'$var`; do
                case $file in
-               auto-config.h)
+               auto-host.h | auto-build.h )
                        ;;
                *)
                        echo '#ifdef IN_GCC' >>$link
@@ -4001,7 +4064,7 @@ do
                esac
                echo "#include \"$file\"" >>$link
                case $file in
-               auto-config.h)
+               auto-host.h | auto-build.h )
                        ;;
                *)
                        echo '#endif' >>$link
@@ -4034,17 +4097,27 @@ changequote([,])dnl
 # Internationalization
 PACKAGE=gcc
 VERSION="$gcc_version"
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE",
+       [Define to the name of the distribution.])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION",
+       [Define to the version of the distribution.])
 AC_SUBST(PACKAGE)
 AC_SUBST(VERSION)
 
 ALL_LINGUAS="en_UK"
 
-# NLS support is still experimental, so disable it by default for now.
+# Enable NLS support by default
 AC_ARG_ENABLE(nls,
-  [  --enable-nls            use Native Language Support (disabled by default)],
-  , enable_nls=no)
+  [  --enable-nls            use Native Language Support (default)],
+  , enable_nls=yes)
+
+# if cross compiling, disable NLS support.
+# It's not worth the trouble, at least for now.
+
+if test "${build}" != "${host}" && test "x$enable_nls" == "xyes"; then
+  AC_MSG_WARN(Disabling NLS support for canadian cross compiler.)
+  enable_nls=no
+fi
 
 AM_GNU_GETTEXT
 XGETTEXT="AWK='$AWK' \$(SHELL) \$(top_srcdir)/exgettext $XGETTEXT"
@@ -4061,7 +4134,9 @@ AC_ARG_ENABLE(win32-registry,
 
 AC_MSG_CHECKING(whether windows registry support is requested)
 if test x$enable_win32_registry != xno; then
-  AC_DEFINE(ENABLE_WIN32_REGISTRY)
+  AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
+[Define to 1 if installation paths should be looked up in Windows32
+   Registry. Ignored on non windows32 hosts.])
   AC_MSG_RESULT(yes)
 else
   AC_MSG_RESULT(no)
@@ -4085,7 +4160,8 @@ 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_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$gcc_cv_win32_registry_key",
+       [Define to be the last portion of registry key on windows hosts.])
   AC_MSG_RESULT($gcc_cv_win32_registry_key)
 fi
 
@@ -4184,6 +4260,24 @@ then
        cross_overrides="${topdir}/cross-make"
 fi
 
+# If this is a cross-compiler that does not
+# have its own set of headers then define
+# inhibit_libc
+
+# If this is using newlib, then define inhibit_libc in
+# LIBGCC2_CFLAGS.  This will cause __eprintf to be left out of
+# libgcc.a, but that's OK because newlib should have its own version of
+# assert.h.
+inhibit_libc=
+if [test x$host != x$target] && [test x$with_headers = x]; then
+       inhibit_libc=-Dinhibit_libc
+else
+       if [test x$with_newlib = xyes]; then
+               inhibit_libc=-Dinhibit_libc
+       fi
+fi
+AC_SUBST(inhibit_libc)
+
 # When building gcc with a cross-compiler, we need to fix a few things.
 # This must come after cross-make as we want all.build to override
 # all.cross.
@@ -4395,7 +4489,9 @@ EOF
                                        :
                                else
                                        gcc_cv_as_subsections="working .subsection -1"
-                                       AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING)
+                                       AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
+[Define if your assembler supports .subsection and .subsection -1 starts
+   emitting at the beginning of your section.])
                                fi
                        fi
                fi
@@ -4404,6 +4500,35 @@ EOF
 fi
 AC_MSG_RESULT($gcc_cv_as_subsections)
 
+AC_MSG_CHECKING(assembler weak support)
+gcc_cv_as_weak=
+if test x$gcc_cv_as != x; then
+       # Check if we have .weak
+       echo "  .weak foobar" > conftest.s
+       if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
+               AC_DEFINE(HAVE_GAS_WEAK, 1,
+                       [Define if your assembler supports .weak.])
+               gcc_cv_as_weak="yes"
+       fi
+       rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
+fi
+AC_MSG_RESULT($gcc_cv_as_weak)
+
+AC_MSG_CHECKING(assembler hidden support)
+gcc_cv_as_hidden=
+if test x$gcc_cv_as != x; then
+       # Check if we have .hidden
+       echo "  .hidden foobar" > conftest.s
+       echo "foobar:" >> conftest.s
+       if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
+               AC_DEFINE(HAVE_GAS_HIDDEN, 1,
+                       [Define if your assembler supports .hidden.])
+               gcc_cv_as_hidden="yes"
+       fi
+       rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
+fi
+AC_MSG_RESULT($gcc_cv_as_hidden)
+
 case "$target" in 
   sparc*-*-*)
     AC_CACHE_CHECK([assembler .register pseudo-op support],
@@ -4421,7 +4546,27 @@ case "$target" in
        fi
     ])
     if test "x$gcc_cv_as_register_pseudo_op" = xyes; then
-       AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP)
+       AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
+               [Define if your assembler supports .register.])
+    fi
+
+    AC_CACHE_CHECK([assembler supports -relax],
+       gcc_cv_as_relax_opt, [
+       gcc_cv_as_relax_opt=unknown
+       if test x$gcc_cv_as != x; then
+           # Check if gas supports -relax
+           echo ".text" > conftest.s
+           if $gcc_cv_as -relax -o conftest.o conftest.s > /dev/null 2>&1; then
+               gcc_cv_as_relax_opt=yes
+           else
+               gcc_cv_as_relax_opt=no
+           fi
+           rm -f conftest.s conftest.o
+       fi
+    ])
+    if test "x$gcc_cv_as_relax_opt" = xyes; then
+       AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
+               [Define if your assembler supports -relax option.])
     fi
 
     case "$tm_file" in
@@ -4453,7 +4598,8 @@ changequote(, )
            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")
+           AC_DEFINE_UNQUOTED(AS_SPARC64_FLAG, "$gcc_cv_as_flags64",
+                       [Define if the assembler supports 64bit sparc.])
        fi
        ;;
     *) gcc_cv_as_flags64=${gcc_cv_as_flags64-no}
@@ -4484,7 +4630,8 @@ changequote([, ])
            fi
        ])
        if test "x$gcc_cv_as_offsetable_lo10" = xyes; then
-           AC_DEFINE(HAVE_AS_OFFSETABLE_LO10)
+           AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
+               [Define if your assembler supports offsetable %lo().])
        fi
     fi
     ;;
@@ -4521,6 +4668,10 @@ if test x"${enable_languages+set}" != xset; then
        else
                enable_languages=all
        fi
+else
+       if test x"${enable_languages}" = x; then
+               AC_MSG_ERROR([--enable-languages needs at least one argument])
+       fi
 fi
 subdirs=
 for lang in ${srcdir}/*/config-lang.in ..
@@ -4603,12 +4754,49 @@ AC_ARG_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)
+[AC_DEFINE(ENABLE_NEW_GXX_ABI, 1,
+       [Define if you want to always select the new-abi for g++.])
 GXX_ABI_FLAG='-fnew-abi'
 echo "Building a new-abi g++ compiler."
 ])
 AC_SUBST(GXX_ABI_FLAG)
 
+# Build a new-libstdc++ system (ie libstdc++-v3)
+AC_MSG_CHECKING([for libstdc++ to install])
+AC_ARG_ENABLE(libstdcxx-v3,
+[  --enable-libstdcxx-v3 
+                         enable libstdc++-v3 for building and installation],
+  [enable_libstdcxx_v3=yes], [enable_libstdcxx_v3=no])
+
+if test x$enable_libstdcxx_v3 = xyes; then
+  AC_MSG_RESULT(v3)
+  ac_esn=1
+else
+  AC_MSG_RESULT(v2)
+  ac_esn=0
+fi
+AC_DEFINE_UNQUOTED(ENABLE_STD_NAMESPACE, $ac_esn,
+  [Define to 1 if you want to enable namespaces (-fhonor-std) by default.])
+
+dnl Very limited version of automake's enable-maintainer-mode
+
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+  dnl maintainer-mode is disabled by default
+  AC_ARG_ENABLE(maintainer-mode,
+[  --enable-maintainer-mode enable make rules and dependencies not useful
+                          (and sometimes confusing) to the casual installer],
+      maintainer_mode=$enableval,
+      maintainer_mode=no)
+
+AC_MSG_RESULT($maintainer_mode)
+
+if test "$maintainer_mode" = "yes"; then
+  MAINT=''
+else
+  MAINT='#'
+fi
+AC_SUBST(MAINT)dnl
+
 # 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.
 
@@ -4640,7 +4828,7 @@ all_boot_languages=
 all_compilers=
 all_stagestuff=
 all_diff_excludes=
-all_outputs='Makefile intl/Makefile po/Makefile.in fixinc/Makefile'
+all_outputs='Makefile intl/Makefile po/Makefile.in fixinc/Makefile gccbug mklibgcc'
 # List of language makefile fragments.
 all_lang_makefiles=
 all_headers=
@@ -4747,16 +4935,6 @@ AC_SUBST(build_canonical)
 AC_SUBST(host_canonical)
 AC_SUBST(target_subdir)
        
-# If this is using newlib, then define inhibit_libc in
-# LIBGCC2_CFLAGS.  This will cause __eprintf to be left out of
-# libgcc.a, but that's OK because newib should have its own version of
-# assert.h.
-inhibit_libc=
-if test x$with_newlib = xyes; then
-       inhibit_libc=-Dinhibit_libc
-fi
-AC_SUBST(inhibit_libc)
-
 # 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
@@ -4819,7 +4997,6 @@ AC_SUBST(build_xm_file_list)
 AC_SUBST(cc_set_by_configure)
 AC_SUBST(quoted_cc_set_by_configure)
 AC_SUBST(cpp_install_dir)
-AC_SUBST(cpp_main)
 AC_SUBST(dep_host_xmake_file)
 AC_SUBST(dep_tmake_file)
 AC_SUBST(extra_c_flags)