OSDN Git Service

Delete remaining references to sparc little-endian support.
[pf3gnuchains/gcc-fork.git] / gcc / config.gcc
index 2a67bc4..2c18655 100644 (file)
 #  configure_default_options
 #                      Set to an initializer for configure_default_options
 #                      in configargs.h, based on --with-cpu et cetera.
+#
+#  native_system_header_dir
+#                      Where system header files are found for this
+#                      target.  This defaults to /usr/include.  If
+#                      the --with-sysroot configure option or the
+#                      --sysroot command line option is used this
+#                      will be relative to the sysroot.
 
 # The following variables are used in each case-construct to build up the
 # outgoing variables:
@@ -238,6 +245,7 @@ default_gnu_indirect_function=no
 target_gtfiles=
 need_64bit_hwint=
 need_64bit_isa=
+native_system_header_dir=/usr/include
 
 # Don't carry these over build->host->target.  Please.
 xm_file=
@@ -245,7 +253,9 @@ md_file=
 
 # Obsolete configurations.
 case ${target} in
-   i[34567]86-*-interix3*              \
+   alpha*-dec-osf5.1*                  \
+ | i[34567]86-*-interix3*              \
+ | mips-sgi-irix6.5                    \
  | mips*-*-openbsd*                    \
  | score-*                             \
  | *-*-solaris2.8*                     \
@@ -278,6 +288,7 @@ case ${target} in
  | *-*-linux*oldld*                    \
  | *-*-rtemsaout*                      \
  | *-*-rtemscoff*                      \
+ | *-*-solaris2                                \
  | *-*-solaris2.[0-7]                  \
  | *-*-solaris2.[0-7].*                        \
  | *-*-sysv*           \
@@ -298,6 +309,7 @@ case ${target} in
 m32c*-*-*)
         cpu_type=m32c
        tmake_file=m32c/t-m32c
+       target_has_targetm_common=no
         ;;
 alpha*-*-*)
        cpu_type=alpha
@@ -318,6 +330,7 @@ avr-*-*)
        cpu_type=avr
        c_target_objs="avr-c.o"
        cxx_target_objs="avr-c.o"
+       extra_options="${extra_options} avr/avr-tables.opt"
        ;;
 bfin*-*)
        cpu_type=bfin
@@ -340,13 +353,15 @@ i[34567]86-*-*)
        cpu_type=i386
        c_target_objs="i386-c.o"
        cxx_target_objs="i386-c.o"
+       need_64bit_hwint=yes
        extra_options="${extra_options} fused-madd.opt"
        extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
                       pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
                       nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
                       immintrin.h x86intrin.h avxintrin.h xopintrin.h
                       ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
-                      abmintrin.h bmiintrin.h tbmintrin.h"
+                      lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
+                      avx2intrin.h fmaintrin.h"
        ;;
 x86_64-*-*)
        cpu_type=i386
@@ -358,7 +373,8 @@ x86_64-*-*)
                       nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
                       immintrin.h x86intrin.h avxintrin.h xopintrin.h
                       ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
-                      abmintrin.h bmiintrin.h tbmintrin.h"
+                      lzcntintrin.h bmiintrin.h tbmintrin.h bmi2intrin.h
+                      avx2intrin.h fmaintrin.h"
        need_64bit_hwint=yes
        ;;
 ia64-*-*)
@@ -414,6 +430,9 @@ score*-*-*)
        ;;
 sparc*-*-*)
        cpu_type=sparc
+       c_target_objs="sparc-c.o"
+       cxx_target_objs="sparc-c.o"
+       extra_headers="visintrin.h"
        need_64bit_hwint=yes
        ;;
 spu*-*-*)
@@ -430,6 +449,14 @@ sh[123456789lbe]*-*-* | sh-*-*)
        cpu_type=sh
        need_64bit_hwint=yes
        ;;
+v850*-*-*)
+       cpu_type=v850
+       ;;
+tic6x-*-*)
+       cpu_type=c6x
+       extra_headers="c6x_intrinsics.h"
+       extra_options="${extra_options} c6x/c6x-tables.opt"
+       ;;
 xtensa*-*-*)
        extra_options="${extra_options} fused-madd.opt"
        ;;
@@ -577,7 +604,8 @@ case ${target} in
     *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu)
       :;;
     *-*-gnu*)
-      tmake_file="$tmake_file t-gnu";;
+      native_system_header_dir=/include
+      ;;
   esac
   # glibc / uclibc / bionic switch.
   # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
@@ -683,12 +711,43 @@ case ${target} in
   tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
   ;;
 *-*-solaris2*)
+  # i?86-*-solaris2* needs to insert headers between cpu default and
+  # Solaris 2 specific ones.
+  sol2_tm_file="dbxelf.h elfos.h ${cpu_type}/sysv4.h sol2.h ${cpu_type}/sol2.h"
+  case ${target} in
+    *-*-solaris2.1[0-9]*)
+      sol2_tm_file="${sol2_tm_file} sol2-10.h"
+      use_gcc_stdint=wrap
+      ;;
+    *)
+      use_gcc_stdint=provide
+      ;;
+  esac
+  if test x$gnu_ld = xyes; then
+    tm_file="usegld.h ${tm_file}"
+  fi
+  if test x$gas = xyes; then
+    tm_file="usegas.h ${tm_file}"
+  fi
+  tm_p_file="${tm_p_file} sol2-protos.h"
+  tmake_file="${tmake_file} t-sol2 t-slibgcc-dummy"
+  c_target_objs="${c_target_objs} sol2-c.o"
+  cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
+  extra_objs="sol2.o sol2-stubs.o"
   extra_options="${extra_options} sol2.opt"
+  case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
+    "":yes:* | yes:yes:* )
+      thread_file=posix
+      ;;
+  esac
   ;;
 *-*-*vms*)
   extra_options="${extra_options} vms/vms.opt"
   xmake_file=vms/x-vms
   tmake_file="vms/t-vms"
+  extra_objs="vms.o"
+  target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
+  tm_p_file="${tm_p_file} vms/vms-protos.h"
   if test x$gnu_ld != xyes; then
     # Build wrappers for native case.
     extra_programs="ld\$(exeext) ar\$(exeext)"
@@ -714,29 +773,19 @@ case ${target} in
 esac
 
 case ${target} in
-# Support site-specific machine types.
-*local*)
-       rest=`echo ${target} | sed -e "s/$cpu_type-//"`
-       tm_file=${cpu_type}/$rest.h
-       if test -f $srcdir/config/${cpu_type}/xm-$rest.h
-       then xm_file=${cpu_type}/xm-$rest.h
-       fi
-       if test -f $srcdir/config/${cpu_type}/t-$rest
-       then tmake_file=${cpu_type}/t-$rest
-       fi
-       ;;
 alpha*-*-linux*)
        tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
        extra_options="${extra_options} alpha/elf.opt"
        target_cpu_default="MASK_GAS"
-       tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee alpha/t-linux"
+       tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee alpha/t-linux"
+       extra_parts="${extra_parts} crtfastmath.o"
        ;;
 alpha*-*-freebsd*)
        tm_file="${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
        extra_options="${extra_options} alpha/elf.opt"
        target_cpu_default="MASK_GAS"
-       tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee"
-       extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
+       tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee"
+       extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o crtfastmath.o"
        ;;
 alpha*-*-netbsd*)
        tm_file="${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h"
@@ -831,8 +880,8 @@ arm*-*-linux*)                      # ARM GNU/Linux with ELF
            tmake_file="$tmake_file arm/t-linux"
            ;;
        esac
+       with_tls=${with_tls:-gnu}
        tm_file="$tm_file arm/aout.h arm/arm.h"
-       tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
        ;;
 arm*-*-uclinux*)               # ARM ucLinux
        tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
@@ -850,12 +899,10 @@ arm*-*-uclinux*)          # ARM ucLinux
            default_use_cxa_atexit=yes
        esac
        tm_file="$tm_file arm/aout.h arm/arm.h"
-       tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
        ;;
 arm*-*-ecos-elf)
        tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/ecos-elf.h"
        tmake_file="arm/t-arm arm/t-arm-elf"
-       tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
        ;;
 arm*-*-eabi* | arm*-*-symbianelf* )
        # The BPABI long long divmod functions return a 128-bit value in
@@ -881,17 +928,14 @@ arm*-*-eabi* | arm*-*-symbianelf* )
          ;;
        esac
        tm_file="${tm_file} arm/aout.h arm/arm.h"
-       tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
        ;;
 arm*-*-rtems*)
        tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h newlib-stdint.h"
        tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems"
-       tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
        ;;
 arm*-*-elf)
        tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h"
        tmake_file="arm/t-arm arm/t-arm-elf"
-       tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
        ;;
 arm*-wince-pe*)
        tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h arm/pe.h arm/wince-pe.h"
@@ -900,16 +944,18 @@ arm*-wince-pe*)
        extra_objs="pe.o"
        ;;
 avr-*-rtems*)
-       tm_file="avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
+       tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
+       libgcc_tm_file="$libgcc_tm_file avr/avr-lib.h"
        tmake_file="avr/t-avr t-rtems avr/t-rtems"
        extra_gcc_objs="driver-avr.o avr-devices.o"
-       extra_objs="avr-devices.o"
+       extra_objs="avr-devices.o avr-log.o"
        ;;
 avr-*-*)
-       tm_file="avr/avr.h dbxelf.h newlib-stdint.h"
+       tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h newlib-stdint.h"
+       libgcc_tm_file="$libgcc_tm_file avr/avr-lib.h"
        use_gcc_stdint=wrap
        extra_gcc_objs="driver-avr.o avr-devices.o"
-       extra_objs="avr-devices.o"
+       extra_objs="avr-devices.o avr-log.o"
        ;;
 bfin*-elf*)
        tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
@@ -987,26 +1033,28 @@ moxie-*-elf)
        gnu_ld=yes
        tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
        extra_parts="crti.o crtn.o crtbegin.o crtend.o"
-       tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp"
+       tmake_file="${tmake_file} moxie/t-moxie"
        ;;
 moxie-*-uclinux*)
        gas=yes
        gnu_ld=yes
        tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
        extra_parts="crti.o crtn.o crtbegin.o crtend.o"
-       tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp"
+       tmake_file="${tmake_file} moxie/t-moxie"
        ;;
 moxie-*-rtems*)
-       tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp t-rtems"
+       tmake_file="${tmake_file} moxie/t-moxie t-rtems"
        tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
        ;;
 h8300-*-rtems*)
        tmake_file="h8300/t-h8300 h8300/t-elf t-rtems h8300/t-rtems"
        tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h"
+       libgcc_tm_file="$libgcc_tm_file h8300/h8300-lib.h"
        ;;
 h8300-*-elf*)
        tmake_file="h8300/t-h8300 h8300/t-elf"
        tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
+       libgcc_tm_file="$libgcc_tm_file h8300/h8300-lib.h"
        ;;
 hppa*64*-*-linux*)
        target_cpu_default="MASK_PA_11|MASK_PA_20"
@@ -1176,26 +1224,25 @@ hppa[12]*-*-hpux11*)
        fi
        ;;
 i[34567]86-*-darwin*)
-       need_64bit_hwint=yes
        need_64bit_isa=yes
        # Baseline choice for a machine that allows m64 support.
        with_cpu=${with_cpu:-core2}
-       tmake_file="${tmake_file} t-slibgcc-dummy i386/t-crtpc i386/t-crtfm"
+       tmake_file="${tmake_file} t-slibgcc-dummy"
        libgcc_tm_file="$libgcc_tm_file i386/darwin-lib.h"
        ;;
 x86_64-*-darwin*)
        with_cpu=${with_cpu:-core2}
-       tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc-dummy i386/t-crtpc i386/t-crtfm"
+       tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc-dummy"
        tm_file="${tm_file} ${cpu_type}/darwin64.h"
        libgcc_tm_file="$libgcc_tm_file i386/darwin-lib.h"
        ;;
 i[34567]86-*-elf*)
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
-       tmake_file="${tmake_file} i386/t-i386elf t-svr4"
+       tmake_file="${tmake_file} i386/t-i386elf i386/t-crtstuff t-svr4"
        ;;
 x86_64-*-elf*)
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
-       tmake_file="${tmake_file} i386/t-i386elf t-svr4"
+       tmake_file="${tmake_file} i386/t-i386elf i386/t-crtstuff t-svr4"
        ;;
 i[34567]86-*-freebsd*)
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
@@ -1242,10 +1289,25 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i
                        tm_file="${tm_file} i386/x86-64.h i386/gnu-user64.h i386/linux64.h"
                        tm_defines="${tm_defines} TARGET_BI_ARCH=1"
                        tmake_file="${tmake_file} i386/t-linux64"
-                       need_64bit_hwint=yes
+                       x86_multilibs="${with_multilib_list}"
+                       if test "$x86_multilibs" = "default"; then
+                               x86_multilibs="m64,m32"
+                       fi
+                       x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
+                       for x86_multilib in ${x86_multilibs}; do
+                               case ${x86_multilib} in
+                               m32 | m64 | mx32)
+                                       TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
+                                       ;;
+                               *)
+                                       echo "--with-multilib-list=${x86_with_multilib} not supported."
+                                       exit 1
+                               esac
+                       done
+                       TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
                        need_64bit_isa=yes
                        case X"${with_cpu}" in
-                       Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver1|Xbtver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
+                       Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver2|Xbdver1|Xbtver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
                                ;;
                        X)
                                if test x$with_cpu_64 = x; then
@@ -1254,7 +1316,7 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i
                                ;;
                        *)
                                echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
-                               echo "generic atom core2 corei7 corei7-avx nocona x86-64 bdver1 btver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2
+                               echo "generic atom core2 corei7 corei7-avx nocona x86-64 bdver2 bdver1 btver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2
                                exit 1
                                ;;
                        esac
@@ -1262,29 +1324,62 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i
                        tm_file="${tm_file} i386/gnu-user.h i386/linux.h"
                fi
                ;;
-       i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h" ;;
-       i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;;
-       i[34567]86-*-kopensolaris*-gnu) tm_file="${tm_file} i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h" ;;
-       i[34567]86-*-gnu*) tm_file="$tm_file i386/gnu-user.h gnu.h i386/gnu.h";;
+       i[34567]86-*-knetbsd*-gnu)
+               tm_file="${tm_file} i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h"
+               ;;
+       i[34567]86-*-kfreebsd*-gnu)
+               tm_file="${tm_file} i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
+               ;;
+       i[34567]86-*-kopensolaris*-gnu)
+               tm_file="${tm_file} i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
+               ;;
+       i[34567]86-*-gnu*)
+               tm_file="$tm_file i386/gnu-user.h gnu.h i386/gnu.h"
+               ;;
        esac
-       tmake_file="${tmake_file} i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules"
+       tmake_file="${tmake_file} i386/t-crtstuff"
+       # This is a hack to avoid a configuration mismatch
+       # until the toplevel libgcc move is complete.
+       extra_parts="${extra_parts} crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
        ;;
 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
                 i386/x86-64.h i386/gnu-user64.h"
        case ${target} in
        x86_64-*-linux*)
-         tm_file="${tm_file} linux.h i386/linux64.h"
-         default_gnu_indirect_function=glibc-2011 ;;
-       x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h" ;;
-       x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;;
+               tm_file="${tm_file} linux.h i386/linux64.h"
+               # Assume modern glibc
+               default_gnu_indirect_function=yes
+               ;;
+       x86_64-*-kfreebsd*-gnu)
+               tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
+               ;;
+       x86_64-*-knetbsd*-gnu)
+               tm_file="${tm_file} knetbsd-gnu.h"
+               ;;
        esac
-       tmake_file="${tmake_file} i386/t-linux64 i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules"
+       tmake_file="${tmake_file} i386/t-linux64 i386/t-crtstuff"
+       x86_multilibs="${with_multilib_list}"
+       if test "$x86_multilibs" = "default"; then
+               x86_multilibs="m64,m32"
+       fi
+       x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
+       for x86_multilib in ${x86_multilibs}; do
+               case ${x86_multilib} in
+               m32 | m64 | mx32)
+                       TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
+                       ;;
+               *)
+                       echo "--with-multilib-list=${x86_with_multilib} not supported."
+                       exit 1
+               esac
+       done
+       TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
        ;;
 i[34567]86-pc-msdosdjgpp*)
        xm_file=i386/xm-djgpp.h
        tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
-       tmake_file="${tmake_file} i386/t-djgpp"
+       native_system_header_dir=/dev/env/DJDIR/include
        extra_options="${extra_options} i386/djgpp.opt"
        gnu_ld=yes
        gas=yes
@@ -1300,26 +1395,6 @@ i[34567]86-*-lynxos*)
        gnu_ld=yes
        gas=yes
        ;;
-i[3456x]86-*-netware*)
-       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h tm-dwarf2.h i386/netware.h"
-       tmake_file="${tmake_file} i386/t-netware"
-       extra_objs=netware.o
-       extra_options="${extra_options} i386/netware.opt"
-       case /${with_ld} in
-       */nwld)
-               extra_objs="$extra_objs nwld.o"
-               tm_file="${tm_file} i386/nwld.h"
-               tmake_file="${tmake_file} i386/t-nwld t-slibgcc-dummy"
-               extra_parts="crt0.o libgcc.def libc.def libcpre.def posixpre.def"
-               ;;
-       esac
-       case x${enable_threads} in
-       x | xyes | xposix) thread_file='posix';;
-       xnks) thread_file='nks';;
-       xno) ;;
-       *) echo 'Unknown thread configuration for NetWare' >&2; exit 1;;
-       esac
-       ;;
 i[34567]86-*-nto-qnx*)
        tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
        extra_options="${extra_options} i386/nto.opt"
@@ -1331,8 +1406,8 @@ i[34567]86-*-rtems*)
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h i386/rtemself.h rtems.h newlib-stdint.h"
        tmake_file="${tmake_file} i386/t-rtems t-rtems"
        ;;
-i[34567]86-*-solaris2*)
-       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/sysv4.h sol2.h"
+i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
+       tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file}"
        # Set default arch_32 to pentium4, tune_32 to generic like the other
        # i386 targets, although config.guess defaults to i386-pc-solaris2*.
        case ${target} in
@@ -1348,38 +1423,12 @@ i[34567]86-*-solaris2*)
        with_tune_32=${with_tune_32:-generic}
        case ${target} in
        *-*-solaris2.1[0-9]*)
-               tm_file="${tm_file} sol2-10.h"
-               ;;
-       esac
-       tm_file="${tm_file} i386/sol2.h"
-       if test x$gnu_ld = xyes; then
-               tm_file="${tm_file} sol2-gld.h"
-       fi
-       if test x$gas = xyes; then
-               tm_file="${tm_file} i386/sol2-gas.h"
-       fi
-       tmake_file="${tmake_file} t-sol2 t-slibgcc-dummy"
-       c_target_objs="${c_target_objs} sol2-c.o"
-       cxx_target_objs="${cxx_target_objs} sol2-c.o"
-       extra_objs="sol2.o"
-       tm_p_file="${tm_p_file} sol2-protos.h"
-       if test x$gnu_ld = xyes; then
-               tm_defines="${tm_defines} TARGET_GNU_LD=1"
-       fi
-       if test x$gas = xyes; then
-               tm_file="usegas.h ${tm_file}"
-       fi
-       tm_file="$tm_file tm-dwarf2.h"
-       case ${target} in
-       *-*-solaris2.1[0-9]*)
-               tm_file="${tm_file} i386/x86-64.h i386/sol2-10.h"
+               tm_file="${tm_file} i386/x86-64.h i386/sol2-bi.h sol2-bi.h"
                tm_defines="${tm_defines} TARGET_BI_ARCH=1"
-               tmake_file="$tmake_file i386/t-sol2-10"
-               need_64bit_hwint=yes
+               tmake_file="$tmake_file i386/t-sol2-64"
                need_64bit_isa=yes
-               use_gcc_stdint=wrap
                case X"${with_cpu}" in
-               Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver1|Xbtver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
+               Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver2|Xbdver1|Xbtver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
                        ;;
                X)
                        if test x$with_cpu_64 = x; then
@@ -1388,19 +1437,11 @@ i[34567]86-*-solaris2*)
                        ;;
                *)
                        echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
-                       echo "generic atom core2 corei7 corei7-avx nocona x86-64 bdver1 btver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2
+                       echo "generic atom core2 corei7 corei7-avx nocona x86-64 bdver2 bdver1 btver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2
                        exit 1
                        ;;
                esac
                ;;
-       *)
-               use_gcc_stdint=provide
-               ;;
-       esac
-       case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
-         "":yes:* | yes:yes:* )
-               thread_file=posix
-               ;;
        esac
        ;;
 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
@@ -1431,7 +1472,7 @@ i[34567]86-*-cygwin*)
        else
                tmake_dlldir_file="i386/t-dlldir-x"
        fi
-       tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-cygming i386/t-cygwin t-dfprules"
+       tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-cygming i386/t-cygwin"
        target_gtfiles="\$(srcdir)/config/i386/winnt.c"
        extra_options="${extra_options} i386/cygming.opt"
        extra_objs="winnt.o winnt-stubs.o"
@@ -1447,7 +1488,6 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
        xm_file=i386/xm-mingw32.h
        case ${target} in
                x86_64-*-* | *-w64-*)
-                       need_64bit_hwint=yes
                        need_64bit_isa=yes
                        ;;
                *)
@@ -1466,7 +1506,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
                        if test x$enable_targets = xall; then
                                tm_defines="${tm_defines} TARGET_BI_ARCH=1"
                                case X"${with_cpu}" in
-                               Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver1|Xbtver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
+                               Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver2|Xbdver1|Xbtver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
                                        ;;
                                X)
                                        if test x$with_cpu_64 = x; then
@@ -1475,7 +1515,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
                                        ;;
                                *)
                                        echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
-                                       echo "generic atom core2 corei7 Xcorei7-avx nocona x86-64 bdver1 btver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2
+                                       echo "generic atom core2 corei7 Xcorei7-avx nocona x86-64 bdver2 bdver1 btver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2
                                        exit 1
                                        ;;
                                esac
@@ -1497,7 +1537,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
        else
                tmake_dlldir_file="i386/t-dlldir-x"
        fi
-       tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-cygming t-dfprules"
+       tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-cygming"
         case ${target} in
                x86_64-w64-*)
                                tmake_file="${tmake_file} i386/t-mingw-w64"
@@ -1509,6 +1549,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
                                tmake_file="${tmake_file} i386/t-mingw32"
                        ;;
        esac
+        native_system_header_dir=/mingw/include
        target_gtfiles="\$(srcdir)/config/i386/winnt.c"
        extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
        case ${target} in
@@ -1533,13 +1574,6 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
            ;;
        esac
        case ${target} in
-               x86_64-*-mingw*)
-                       tmake_file="${tmake_file} i386/t-crtfm"
-                       ;;
-               *)
-                       ;;
-       esac
-       case ${target} in
                *mingw32crt*)
                        tm_file="${tm_file} i386/crtdll.h"
                        ;;
@@ -1583,9 +1617,6 @@ ia64*-*-freebsd*)
 ia64*-*-linux*)
        tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
        tmake_file="${tmake_file} ia64/t-ia64 t-libunwind ia64/t-glibc"
-       if test x$with_system_libunwind != xyes ; then
-               tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind"
-       fi
        target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
        extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
        ;;
@@ -1629,16 +1660,16 @@ iq2000*-*-elf*)
         ;;
 lm32-*-elf*)
         tm_file="dbxelf.h elfos.h ${tm_file}"
-       tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp"
+       tmake_file="${tmake_file} lm32/t-lm32"
         ;;
 lm32-*-rtems*)
        tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
-       tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp"
+       tmake_file="${tmake_file} lm32/t-lm32"
        tmake_file="${tmake_file} t-rtems"
          ;;
 lm32-*-uclinux*)
         tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
-       tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp"
+       tmake_file="${tmake_file} lm32/t-lm32"
         ;;
 m32r-*-elf*)
        tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
@@ -1811,7 +1842,7 @@ mips*-*-netbsd*)                  # NetBSD/mips, either endian.
        extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
        ;;
 mips64*-*-linux* | mipsisa64*-*-linux*)
-       tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/linux.h mips/linux64.h"
+       tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/gnu-user64.h mips/linux64.h"
        tmake_file="${tmake_file} mips/t-linux64 mips/t-libgcc-mips16"
        tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
        case ${target} in
@@ -1833,8 +1864,12 @@ mips64*-*-linux* | mipsisa64*-*-linux*)
        test x$with_llsc != x || with_llsc=yes
        ;;
 mips*-*-linux*)                                # Linux MIPS, either endian.
-        tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/linux.h"
+        tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h"
        tmake_file="${tmake_file} mips/t-libgcc-mips16"
+       if test x$enable_targets = xall; then
+               tm_file="${tm_file} mips/gnu-user64.h mips/linux64.h"
+               tmake_file="${tmake_file} mips/t-linux64"
+       fi
        case ${target} in
         mipsisa32r2*)
                tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
@@ -1994,12 +2029,11 @@ picochip-*)
         ;;
 # port not yet contributed
 #powerpc-*-openbsd*)
-#      tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit "
+#      tmake_file="${tmake_file} rs6000/t-fprules"
 #      extra_headers=
 #      ;;
 powerpc-*-darwin*)
        extra_options="${extra_options} rs6000/darwin.opt"
-       extra_parts="crt2.o"
        case ${target} in
          *-darwin1[0-9]* | *-darwin[8-9]*)
            tmake_file="${tmake_file} rs6000/t-darwin8"
@@ -2016,15 +2050,14 @@ powerpc-*-darwin*)
        ;;
 powerpc64-*-darwin*)
        extra_options="${extra_options} ${cpu_type}/darwin.opt"
-       extra_parts="crt2.o"
        tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc-dummy"
        tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
        extra_headers=altivec.h
        ;;
 powerpc-*-freebsd*)
        tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h rs6000/freebsd.h"
-       tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm rs6000/t-freebsd"
-       tmake_file="${tmake_file} t-slibgcc-libgcc rs6000/t-fprules-softfp soft-fp/t-softfp"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
+       tmake_file="${tmake_file} t-slibgcc-libgcc"
        extra_options="${extra_options} rs6000/sysv4.opt"
        ;;
 powerpc-*-netbsd*)
@@ -2042,47 +2075,47 @@ powerpc-*-eabispe*)
 powerpc-*-eabisimaltivec*)
        tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h rs6000/eabialtivec.h"
        extra_options="${extra_options} rs6000/sysv4.opt"
-       tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
        use_gcc_stdint=wrap
        ;;
 powerpc-*-eabisim*)
        tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h"
        extra_options="${extra_options} rs6000/sysv4.opt"
-       tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
        use_gcc_stdint=wrap
        ;;
 powerpc-*-elf*)
        tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
        extra_options="${extra_options} rs6000/sysv4.opt"
-       tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
        ;;
 powerpc-*-eabialtivec*)
        tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabialtivec.h"
        extra_options="${extra_options} rs6000/sysv4.opt"
-       tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
        use_gcc_stdint=wrap
        ;;
 powerpc-xilinx-eabi*)
        tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/singlefp.h rs6000/xfpu.h rs6000/xilinx.h"
        extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
-       tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
        use_gcc_stdint=wrap
        ;;
 powerpc-*-eabi*)
        tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h"
        extra_options="${extra_options} rs6000/sysv4.opt"
-       tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
        use_gcc_stdint=wrap
        ;;
 powerpc-*-rtems*)
        tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/rtems.h rtems.h"
        extra_options="${extra_options} rs6000/sysv4.opt"
-       tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-rtems t-rtems rs6000/t-ppccomm"
+       tmake_file="rs6000/t-fprules rs6000/t-rtems t-rtems rs6000/t-ppccomm"
        ;;
 powerpc-*-linux* | powerpc64-*-linux*)
        tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h rs6000/sysv4.h"
        extra_options="${extra_options} rs6000/sysv4.opt"
-       tmake_file="t-dfprules rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
        maybe_biarch=yes
        case ${target} in
            powerpc64-*-linux*spe* | powerpc64-*-linux*paired*)
@@ -2110,7 +2143,7 @@ powerpc-*-linux* | powerpc64-*-linux*)
                tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
                ;;
        esac
-       tmake_file="${tmake_file} t-slibgcc-libgcc rs6000/t-fprules-softfp soft-fp/t-softfp"
+       tmake_file="${tmake_file} t-slibgcc-libgcc"
        case ${target} in
            powerpc*-*-linux*altivec*)
                tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
@@ -2125,7 +2158,7 @@ powerpc-*-linux* | powerpc64-*-linux*)
        ;;
 powerpc-wrs-vxworks|powerpc-wrs-vxworksae)
        tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
-       tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppccomm rs6000/t-vxworks"
+       tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
        extra_options="${extra_options} rs6000/sysv4.opt"
        extra_headers=ppc-asm.h
        case ${target} in
@@ -2150,18 +2183,18 @@ powerpc-*-lynxos*)
        ;;
 powerpcle-*-elf*)
        tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
-       tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
        extra_options="${extra_options} rs6000/sysv4.opt"
        ;;
 powerpcle-*-eabisim*)
        tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h"
-       tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
        extra_options="${extra_options} rs6000/sysv4.opt"
        use_gcc_stdint=wrap
        ;;
 powerpcle-*-eabi*)
        tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/e500.h"
-       tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
+       tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
        extra_options="${extra_options} rs6000/sysv4.opt"
        use_gcc_stdint=wrap
        ;;
@@ -2212,11 +2245,14 @@ rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
        ;;
 rx-*-elf*)
        tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
-       libgcc_tm_file="${libgcc_tm_file} rx/rx-abi.h"
+       libgcc_tm_file="${libgcc_tm_file} rx/rx-abi.h rx/rx-lib.h"
        tmake_file="${tmake_file} rx/t-rx"
        ;;
 s390-*-linux*)
        tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
+       if test x$enable_targets = xall; then
+               tmake_file="${tmake_file} s390/t-linux64"
+       fi
        ;;
 s390x-*-linux*)
        tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
@@ -2241,8 +2277,7 @@ score-*-elf)
        gnu_ld=yes
         tm_file="dbxelf.h elfos.h score/elf.h score/score.h newlib-stdint.h"
        extra_parts="crti.o crtn.o crtbegin.o crtend.o"
-        tmake_file="${tmake_file} score/t-score-elf score/t-score-softfp soft-fp/t-softfp"
-        extra_objs="score7.o"
+        tmake_file="${tmake_file} score/t-score-elf"
         ;;
 sh-*-elf* | sh[12346l]*-*-elf* | \
   sh-*-linux* | sh[2346lbe]*-*-linux* | \
@@ -2434,32 +2469,32 @@ sparc-*-elf*)
        tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
        case ${target} in
            *-leon-*)
-               tmake_file="sparc/t-leon"
+               tmake_file="sparc/t-sparc sparc/t-leon"
                ;;
            *-leon[3-9]*)
-               tmake_file="sparc/t-leon3"
+               tmake_file="sparc/t-sparc sparc/t-leon3"
                ;;
            *)
-               tmake_file="sparc/t-elf"
+               tmake_file="sparc/t-sparc sparc/t-elf"
                ;;
        esac
        ;;
 sparc-*-rtems*)
        tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
-       tmake_file="sparc/t-elf t-rtems"
+       tmake_file="sparc/t-sparc sparc/t-elf t-rtems"
        ;;
 sparc-*-linux*)
        tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h"
        extra_options="${extra_options} sparc/long-double-switch.opt"
        case ${target} in
            *-leon-*)
-               tmake_file="${tmake_file} sparc/t-leon"
+               tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
                ;;
            *-leon[3-9]*)
-               tmake_file="${tmake_file} sparc/t-leon3"
+               tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
                ;;
            *)
-               tmake_file="${tmake_file} sparc/t-linux"
+               tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux"
                ;;
        esac
        if test x$enable_targets = xall; then
@@ -2468,107 +2503,98 @@ sparc-*-linux*)
        else
                tm_file="${tm_file} sparc/linux.h"
        fi
-       tmake_file="${tmake_file} sparc/t-crtfm"
+       extra_parts="${extra_parts} crtfastmath.o"
        ;;
 sparc-*-netbsdelf*)
        tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
        extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
        extra_options="${extra_options} sparc/long-double-switch.opt"
+       tmake_file="${tmake_file} sparc/t-sparc"
        ;;
 sparc*-*-solaris2*)
-       tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sol2.h"
-       case ${target} in
-           *-*-solaris2.1[0-9]*)
-               tm_file="${tm_file} sol2-10.h"
-               use_gcc_stdint=wrap
-               ;;
-           *)
-               use_gcc_stdint=provide
-               ;;
-       esac
-       tm_file="${tm_file} sparc/sol2.h"
+       tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sol2-bi.h"
        case ${target} in
            sparc64-*-* | sparcv9-*-*)
-               tm_file="${tm_file} sparc/sol2-64.h"
+               tm_file="sparc/default-64.h ${tm_file}"
                ;;
            *)
                test x$with_cpu != x || with_cpu=v9
                ;;
        esac
-       tm_file="${tm_file} sparc/sol2-bi.h"
-       if test x$gas = xyes; then
-               tm_file="${tm_file} sparc/sol2-gas.h sparc/sol2-gas-bi.h"
-       fi
-       if test x$gnu_ld = xyes; then
-               tm_file="${tm_file} sol2-gld.h sparc/sol2-gld-bi.h"
-       fi
-       tm_file="${tm_file} tm-dwarf2.h"
-       tmake_file="t-sol2 t-slibgcc-dummy sparc/t-sol2-64"
-       if test x$gas = xyes; then
-               tm_file="usegas.h ${tm_file}"
-       fi
-       c_target_objs="sol2-c.o"
-       cxx_target_objs="sol2-c.o"
-       extra_objs="sol2.o"
-       tm_p_file="${tm_p_file} sol2-protos.h"
-       case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
-         "":yes:* | yes:yes:* )
-               thread_file=posix
-               ;;
-       esac
+       tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2-64"
        ;;
 sparc-wrs-vxworks)
        tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
-       tmake_file="${tmake_file} sparc/t-vxworks"
+       tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
        ;;
 sparc64-*-elf*)
        tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
-       extra_options="${extra_options} sparc/little-endian.opt"
+       extra_options="${extra_options}"
+       tmake_file="${tmake_file} sparc/t-sparc"
        ;;
 sparc64-*-rtems*)
        tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
-       extra_options="${extra_options} sparc/little-endian.opt"
-       tmake_file="${tmake_file} t-rtems"
+       extra_options="${extra_options}"
+       tmake_file="${tmake_file} sparc/t-sparc t-rtems"
        ;;
 sparc64-*-linux*)
-       tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/linux64.h"
+       tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default-64.h sparc/linux64.h"
        extra_options="${extra_options} sparc/long-double-switch.opt"
-       tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm"
+       tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux sparc/t-linux64"
+       extra_parts="${extra_parts} crtfastmath.o"
        ;;
 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
        tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
        extra_options="${extra_options} sparc/long-double-switch.opt"
-       tmake_file="${tmake_file} sparc/t-crtfm"
        case "x$with_cpu" in
                xultrasparc) ;;
                x) with_cpu=ultrasparc ;;
                *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
        esac
+       extra_parts="${extra_parts} crtfastmath.o"
+       tmake_file="${tmake_file} sparc/t-sparc"
        ;;
 sparc64-*-netbsd*)
        tm_file="sparc/biarch64.h ${tm_file}"
        tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
        extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
        extra_options="${extra_options} sparc/long-double-switch.opt"
-       tmake_file="${tmake_file} sparc/t-netbsd64"
+       tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
        ;;
 sparc64-*-openbsd*)
        tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
        tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
        extra_options="${extra_options} openbsd.opt"
-       extra_options="${extra_options} sparc/little-endian.opt"
+       extra_options="${extra_options}"
        gas=yes gnu_ld=yes
        with_cpu=ultrasparc
+       tmake_file="${tmake_file} sparc/t-sparc"
        ;;
 spu-*-elf*)
        tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
        tmake_file="spu/t-spu-elf"
+        native_system_header_dir=/include
        extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
        extra_modes=spu/spu-modes.def
        c_target_objs="${c_target_objs} spu-c.o"
        cxx_target_objs="${cxx_target_objs} spu-c.o"
        ;;
-
+tic6x-*-elf)
+       tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
+       tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
+       libgcc_tm_file="${libgcc_tm_file} c6x/c6x-abi.h"
+       tmake_file="c6x/t-c6x c6x/t-c6x-elf"
+       use_collect2=no
+       ;;
+tic6x-*-uclinux)
+       tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
+       tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
+       tm_file="${tm_file} ./sysroot-suffix.h"
+       libgcc_tm_file="${libgcc_tm_file} c6x/c6x-abi.h"
+       tmake_file="t-slibgcc-elf-ver t-sysroot-suffix"
+       tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
+       use_collect2=no
+       ;;
 v850*-*-*)
        case ${target} in
        v850e2v3-*-*)
@@ -2588,12 +2614,6 @@ v850*-*-*)
                ;;
        esac
        tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
-       tm_p_file=v850/v850-protos.h
-       tmake_file=v850/t-v850
-       md_file=v850/v850.md
-       extra_modes=v850/v850-modes.def
-       out_file=v850/v850.c
-       extra_options="v850/v850.opt"
        if test x$stabs = xyes
        then
                tm_file="${tm_file} dbx.h"
@@ -2638,7 +2658,6 @@ xtensa*-*-linux*)
        ;;
 am33_2.0-*-linux*)
        tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
-       tmake_file="${tmake_file} mn10300/t-linux"
        gas=yes gnu_ld=yes
        extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
        use_collect2=no
@@ -2663,6 +2682,7 @@ esac
 case ${target} in
 i[34567]86-*-linux* | x86_64-*-linux*)
        tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
+       libgcc_tm_file="${libgcc_tm_file} i386/value-unwind.h"
        ;;
 i[34567]86-*-* | x86_64-*-*)
        tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
@@ -2750,6 +2770,10 @@ case ${target} in
     ;;
   i686-*-* | i786-*-*)
     case ${target_noncanonical} in
+      bdver2-*)
+        arch=bdver2
+        cpu=bdver2
+        ;;
       bdver1-*)
        arch=bdver1
        cpu=bdver1
@@ -2843,6 +2867,10 @@ case ${target} in
     ;;
   x86_64-*-*)
     case ${target_noncanonical} in
+      bdver2-*)
+        arch=bdver2
+        cpu=bdver2
+        ;;
       bdver1-*)
        arch=bdver1
        cpu=bdver1
@@ -3049,6 +3077,11 @@ if test x$with_schedule = x; then
        esac
 fi
 
+# Support --enable-initfini-array.
+if test x$enable_initfini_array = xyes; then
+  tm_file="${tm_file} initfini-array.h"
+fi
+
 # Validate and mark as valid any --with options supported
 # by this target.  In order to use a particular --with option
 # you must list it in supported_defaults; validating the value
@@ -3076,7 +3109,7 @@ case "${target}" in
                ;;
 
        arm*-*-*)
-               supported_defaults="arch cpu float tune fpu abi mode"
+               supported_defaults="arch cpu float tune fpu abi mode tls"
                for which in cpu tune; do
                        # See if it matches any of the entries in arm-cores.def
                        eval "val=\$with_$which"
@@ -3159,6 +3192,17 @@ case "${target}" in
                        ;;
                esac
 
+               case "$with_tls" in
+               "" \
+               | gnu | gnu2)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
+                       exit 1
+                       ;;
+               esac
+
                if test "x$with_arch" != x && test "x$with_cpu" != x; then
                        echo "Warning: --with-arch overrides --with-cpu=$with_cpu" 1>&2
                fi
@@ -3267,8 +3311,9 @@ case "${target}" in
                                ;;
                        "" | x86-64 | generic | native \
                        | k8 | k8-sse3 | athlon64 | athlon64-sse3 | opteron \
-                       | opteron-sse3 | athlon-fx | bdver1 | btver1 | amdfam10 \
-                       | barcelona | nocona | core2 | corei7 | corei7-avx | atom)
+                       | opteron-sse3 | athlon-fx | bdver2 | bdver1 | btver1 \
+                       | amdfam10 | barcelona | nocona | core2 | corei7 \
+                       | corei7-avx | core-avx-i | core-avx2 | atom)
                                # OK
                                ;;
                        *)
@@ -3455,7 +3500,8 @@ case "${target}" in
                        | v8 | supersparc | hypersparc | leon \
                        | sparclite | f930 | f934 | sparclite86x \
                        | sparclet | tsc701 \
-                       | v9 | ultrasparc | ultrasparc3 | niagara | niagara2)
+                       | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
+                       | niagara3 | niagara4)
                                # OK
                                ;;
                        *)
@@ -3493,6 +3539,20 @@ case "${target}" in
                done
                ;;
 
+       tic6x-*-*)
+               supported_defaults="arch"
+
+               case ${with_arch} in
+               "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown arch used in --with-arch=$with_arch." 1>&2
+                       exit 1
+                       ;;
+               esac
+               ;;
+
        v850*-*-*)
                supported_defaults=cpu
                case ${with_cpu} in
@@ -3543,24 +3603,19 @@ case ${target} in
                ;;
 
        i[34567]86-*-darwin* | x86_64-*-darwin*)
-               tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
                ;;
        i[34567]86-*-linux* | x86_64-*-linux* | \
          i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
          i[34567]86-*-gnu*)
-               tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp i386/t-linux"
+               tmake_file="${tmake_file} i386/t-linux"
                ;;
-       i[34567]86-*-solaris2*)
-               tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
+       i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
                ;;
        i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
-               tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
                ;;
        i[34567]86-*-freebsd* | x86_64-*-freebsd*)
-               tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
                ;;
        ia64*-*-linux*)
-               tmake_file="${tmake_file} ia64/t-fprules-softfp soft-fp/t-softfp"
                ;;
 
        mips*-*-*)
@@ -3638,7 +3693,7 @@ case ${target} in
 esac
 
 t=
-all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu divide llsc mips-plt synci"
+all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu divide llsc mips-plt synci tls"
 for option in $all_defaults
 do
        eval "val=\$with_"`echo $option | sed s/-/_/g`