OSDN Git Service

Delete remaining references to sparc little-endian support.
[pf3gnuchains/gcc-fork.git] / gcc / config.gcc
index 02cc556..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=
@@ -352,7 +360,8 @@ i[34567]86-*-*)
                       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
@@ -364,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-*-*)
@@ -420,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*-*-*)
@@ -591,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.
@@ -718,8 +732,8 @@ case ${target} in
   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"
-  extra_objs="sol2.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:* )
@@ -868,7 +882,6 @@ arm*-*-linux*)                      # ARM GNU/Linux with ELF
        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"
@@ -886,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
@@ -917,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"
@@ -937,15 +945,17 @@ arm*-wince-pe*)
        ;;
 avr-*-rtems*)
        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="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"
@@ -1023,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"
@@ -1226,11 +1238,11 @@ x86_64-*-darwin*)
        ;;
 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"
@@ -1367,7 +1379,7 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
 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
@@ -1537,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
@@ -1604,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"
        ;;
@@ -1650,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}"
@@ -1859,7 +1869,6 @@ mips*-*-linux*)                           # Linux MIPS, either endian.
        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"
-               tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
        fi
        case ${target} in
         mipsisa32r2*)
@@ -2020,7 +2029,7 @@ 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*)
@@ -2047,8 +2056,8 @@ powerpc64-*-darwin*)
        ;;
 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*)
@@ -2066,42 +2075,42 @@ 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"
@@ -2134,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" ;;
@@ -2149,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
@@ -2174,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
        ;;
@@ -2236,7 +2245,7 @@ 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*)
@@ -2268,7 +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"
+        tmake_file="${tmake_file} score/t-score-elf"
         ;;
 sh-*-elf* | sh[12346l]*-*-elf* | \
   sh-*-linux* | sh[2346lbe]*-*-linux* | \
@@ -2460,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
@@ -2500,36 +2509,38 @@ 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} ${sol2_tm_file} sol2-bi.h"
        case ${target} in
            sparc64-*-* | sparcv9-*-*)
-               tm_file="sparc/sol2-64.h ${tm_file}"
+               tm_file="sparc/default-64.h ${tm_file}"
                ;;
            *)
                test x$with_cpu != x || with_cpu=v9
                ;;
        esac
-       tmake_file="${tmake_file} sparc/t-sol2-64"
+       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"
+       tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux sparc/t-linux64"
        extra_parts="${extra_parts} crtfastmath.o"
        ;;
 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
@@ -2541,25 +2552,28 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*)
                *) 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"
@@ -2570,7 +2584,6 @@ tic6x-*-elf)
        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"
-       tmake_file="${tmake_file} c6x/t-c6x-softfp soft-fp/t-softfp"
        use_collect2=no
        ;;
 tic6x-*-uclinux)
@@ -2580,7 +2593,6 @@ tic6x-*-uclinux)
        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"
-       tmake_file="${tmake_file} c6x/t-c6x-softfp soft-fp/t-softfp"
        use_collect2=no
        ;;
 v850*-*-*)
@@ -2646,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
@@ -2671,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"
@@ -3065,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
@@ -3296,7 +3313,7 @@ case "${target}" in
                        | k8 | k8-sse3 | athlon64 | athlon64-sse3 | opteron \
                        | opteron-sse3 | athlon-fx | bdver2 | bdver1 | btver1 \
                        | amdfam10 | barcelona | nocona | core2 | corei7 \
-                       | corei7-avx | atom)
+                       | corei7-avx | core-avx-i | core-avx2 | atom)
                                # OK
                                ;;
                        *)
@@ -3483,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
                                ;;
                        *)
@@ -3585,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* | x86_64-*-solaris2.1[0-9]*)
-               tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
                ;;
        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*-*-*)