OSDN Git Service

2008-08-22 Daniel Kraft <d@domob.eu>
[pf3gnuchains/gcc-fork.git] / gcc / config.gcc
index f4f171e..7078b0b 100644 (file)
@@ -204,16 +204,32 @@ xm_file=
 md_file=
 
 # Obsolete configurations.
-#case ${target} in
-# )
-#    if test "x$enable_obsolete" != xyes; then
-#      echo "*** Configuration ${target} is obsolete." >&2
-#      echo "*** Specify --enable-obsolete to build it anyway." >&2
-#      echo "*** Support will be REMOVED in the next major release of GCC," >&2
-#      echo "*** unless a maintainer comes forward." >&2
-#      exit 1
-#    fi;;
-#esac
+case ${target} in
+# Avoid generic cases below matching.
+   h8300-*-rtems* | h8300-*-elf* \
+ | sh-*-elf* | sh-*-symbianelf* | sh-*-linux* | sh-*-netbsdelf* \
+ | sh-*-rtems* | sh-wrs-vxworks) ;;
+   arm-*-coff*         \
+ | armel-*-coff*       \
+ | h8300-*-*           \
+ | i[34567]86-*-aout*  \
+ | i[34567]86-*-coff*  \
+ | m68k-*-aout*                \
+ | m68k-*-coff*                \
+ | sh-*-*              \
+ | mips-sgi-irix[56]*  \
+ | pdp11-*-bsd         \
+ | rs6000-ibm-aix4.[12]* \
+ | powerpc-ibm-aix4.[12]* \
+ )
+    if test "x$enable_obsolete" != xyes; then
+      echo "*** Configuration ${target} is obsolete." >&2
+      echo "*** Specify --enable-obsolete to build it anyway." >&2
+      echo "*** Support will be REMOVED in the next major release of GCC," >&2
+      echo "*** unless a maintainer comes forward." >&2
+      exit 1
+    fi;;
+esac
 
 # Unsupported targets list.  Do not put an entry in this list unless
 # it would otherwise be caught by a more permissive pattern.  The list
@@ -278,17 +294,21 @@ fido-*-*)
         ;;
 i[34567]86-*-*)
        cpu_type=i386
+       c_target_objs="i386-c.o"
+       cxx_target_objs="i386-c.o"
        extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
                       pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
                       nmmintrin.h bmmintrin.h mmintrin-common.h
-                      wmmintrin.h"
+                      wmmintrin.h cross-stdarg.h"
        ;;
 x86_64-*-*)
        cpu_type=i386
+       c_target_objs="i386-c.o"
+       cxx_target_objs="i386-c.o"
        extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
                       pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
                       nmmintrin.h bmmintrin.h mmintrin-common.h
-                      wmmintrin.h"
+                      wmmintrin.h cross-stdarg.h"
        need_64bit_hwint=yes
        ;;
 ia64-*-*)
@@ -314,7 +334,7 @@ powerpc*-*-*)
        extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h"
        need_64bit_hwint=yes
        case x$with_cpu in
-           xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456]|xpower6x|xrs64a|xcell)
+           xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[34567]|xpower6x|xrs64a|xcell)
                cpu_is_64bit=yes
                ;;
        esac
@@ -394,8 +414,8 @@ case ${target} in
   tmake_file="t-darwin ${cpu_type}/t-darwin t-slibgcc-darwin"
   target_gtfiles="\$(srcdir)/config/darwin.c"
   extra_options="${extra_options} darwin.opt"
-  c_target_objs="darwin-c.o"
-  cxx_target_objs="darwin-c.o"
+  c_target_objs="${c_target_objs} darwin-c.o"
+  cxx_target_objs="${cxx_target_objs} darwin-c.o"
   fortran_target_objs="darwin-f.o"
   extra_objs="darwin.o"
   extra_gcc_objs="darwin-driver.o"
@@ -747,7 +767,9 @@ arm*-*-eabi* | arm*-*-symbianelf* )
        tmake_file="arm/t-arm arm/t-arm-elf"
        case ${target} in
        arm*-*-eabi*)
+         tm_file="$tm_file arm/eabi.h"
          tmake_file="${tmake_file} arm/t-bpabi"
+         extra_options="${extra_options} arm/eabi.opt"
          ;;
        arm*-*-symbianelf*)
          tm_file="${tm_file} arm/symbian.h"
@@ -1006,20 +1028,20 @@ i[34567]86-*-darwin*)
        # then this file using that to set --with-cpu=i386 which has no -m64
        # support.
        with_cpu=${with_cpu:-generic}
-       tmake_file="${tmake_file} i386/t-fprules-softfp64 soft-fp/t-softfp i386/t-crtpc i386/t-crtfm"
+       tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm"
        ;;
 x86_64-*-darwin*)
        with_cpu=${with_cpu:-generic}
-       tmake_file="t-darwin ${cpu_type}/t-darwin64 t-slibgcc-darwin i386/t-fprules-softfp64 soft-fp/t-softfp i386/t-crtpc i386/t-crtfm"
+       tmake_file="${tmake_file} t-darwin ${cpu_type}/t-darwin64 t-slibgcc-darwin i386/t-crtpc i386/t-crtfm"
        tm_file="${tm_file} ${cpu_type}/darwin64.h"
        ;;
 i[34567]86-*-elf*)
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h"
-       tmake_file="i386/t-i386elf t-svr4"
+       tmake_file="${tmake_file} i386/t-i386elf t-svr4"
        ;;
 x86_64-*-elf*)
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h i386/x86-64.h"
-       tmake_file="i386/t-i386elf t-svr4"
+       tmake_file="${tmake_file} i386/t-i386elf t-svr4"
        ;;
 i[34567]86-*-aout*)
        tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h i386/i386-aout.h"
@@ -1036,7 +1058,7 @@ i[34567]86-*-netbsdelf*)
        ;;
 i[34567]86-*-netbsd*)
        tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h netbsd.h netbsd-aout.h i386/netbsd.h"
-       tmake_file=t-netbsd
+       tmake_file="${tmake_file} t-netbsd"
        extra_parts=""
        use_collect2=yes
        ;;
@@ -1047,7 +1069,7 @@ x86_64-*-netbsd*)
 i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
        tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h"
        # needed to unconfuse gdb
-       tmake_file="t-libc-ok t-openbsd i386/t-openbsd"
+       tmake_file="${tmake_file} t-libc-ok t-openbsd i386/t-openbsd"
        # we need collect2 until our bug is fixed...
        use_collect2=yes
        ;;
@@ -1069,7 +1091,7 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu)
                if test x$enable_targets = xall; then
                        tm_file="${tm_file} i386/x86-64.h i386/linux64.h"
                        tm_defines="${tm_defines} TARGET_BI_ARCH=1"
-                       tmake_file="${tmake_file} i386/t-linux64 i386/t-fprules-softfp64 soft-fp/t-softfp"
+                       tmake_file="${tmake_file} i386/t-linux64"
                        need_64bit_hwint=yes
                        case X"${with_cpu}" in
                        Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx)
@@ -1101,14 +1123,14 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
        x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.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 i386/t-fprules-softfp64 soft-fp/t-softfp t-dfprules"
+       tmake_file="${tmake_file} i386/t-linux64 i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules"
        ;;
 i[34567]86-*-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"
-       tmake_file=i386/t-djgpp
+       tmake_file="${tmake_file} i386/t-djgpp"
        extra_options="${extra_options} i386/djgpp.opt"
        gnu_ld=yes
        gas=yes
@@ -1116,7 +1138,7 @@ i[34567]86-pc-msdosdjgpp*)
 i[34567]86-*-lynxos*)
        xm_defines=POSIX
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
-       tmake_file="i386/t-crtstuff t-lynx"
+       tmake_file="${tmake_file} i386/t-crtstuff t-lynx"
        extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
        extra_options="${extra_options} lynx.opt"
        thread_file=lynx
@@ -1125,7 +1147,7 @@ i[34567]86-*-lynxos*)
        ;;
 i[3456x]86-*-netware*)
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h tm-dwarf2.h i386/netware.h"
-       tmake_file=i386/t-netware
+       tmake_file="${tmake_file} i386/t-netware"
        extra_objs=netware.o
        case /${with_ld} in
        */nwld)
@@ -1144,14 +1166,14 @@ i[3456x]86-*-netware*)
        ;;
 i[34567]86-*-nto-qnx*)
        tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h svr4.h i386/unix.h i386/nto.h"
-       tmake_file=i386/t-nto
+       tmake_file="${tmake_file} i386/t-nto"
        gnu_ld=yes
        gas=yes
        ;;
 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"
        extra_parts="crtbegin.o crtend.o crti.o crtn.o"
-       tmake_file="i386/t-rtems-i386 i386/t-crtstuff t-rtems"
+       tmake_file="${tmake_file} i386/t-rtems-i386 i386/t-crtstuff t-rtems"
        ;;
 i[34567]86-*-solaris2*)
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h"
@@ -1161,9 +1183,9 @@ i[34567]86-*-solaris2*)
                ;;
        esac
        tm_file="${tm_file} i386/sol2.h"
-       tmake_file="t-sol2 i386/t-sol2 t-svr4"
-       c_target_objs="sol2-c.o"
-       cxx_target_objs="sol2-c.o"
+       tmake_file="${tmake_file} t-sol2 i386/t-sol2 t-svr4"
+       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
@@ -1229,12 +1251,12 @@ i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
 i[34567]86-*-pe | i[34567]86-*-cygwin*)
        tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h"
        xm_file=i386/xm-cygwin.h
-       tmake_file="i386/t-cygwin i386/t-cygming"
+       tmake_file="${tmake_file} i386/t-cygwin i386/t-cygming"
        target_gtfiles="\$(srcdir)/config/i386/winnt.c"
        extra_options="${extra_options} i386/cygming.opt"
        extra_objs="winnt.o winnt-stubs.o"
-       c_target_objs="cygwin2.o msformat-c.o"
-       cxx_target_objs="cygwin2.o winnt-cxx.o msformat-c.o"
+       c_target_objs="${c_target_objs} cygwin2.o msformat-c.o"
+       cxx_target_objs="${cxx_target_objs} cygwin2.o winnt-cxx.o msformat-c.o"
        extra_gcc_objs=cygwin1.o
        if test x$enable_threads = xyes; then
                thread_file='posix'
@@ -1243,12 +1265,12 @@ i[34567]86-*-pe | i[34567]86-*-cygwin*)
 i[34567]86-*-mingw* | x86_64-*-mingw*)
        tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/mingw32.h"
        xm_file=i386/xm-mingw32.h
-       tmake_file="i386/t-cygming i386/t-mingw32"
+       tmake_file="${tmake_file} i386/t-cygming i386/t-mingw32"
        target_gtfiles="\$(srcdir)/config/i386/winnt.c"
        extra_options="${extra_options} i386/cygming.opt"
        extra_objs="winnt.o winnt-stubs.o"
-       c_target_objs="msformat-c.o"
-       cxx_target_objs="winnt-cxx.o msformat-c.o"
+       c_target_objs="${c_target_objs} msformat-c.o"
+       cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
        default_use_cxa_atexit=yes
        case ${enable_threads} in
          "" | yes | win32)
@@ -1273,7 +1295,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
        ;;
 i[34567]86-*-interix3*)
        tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h i386/i386-interix3.h interix.h interix3.h"
-       tmake_file="i386/t-interix"
+       tmake_file="${tmake_file} i386/t-interix"
        extra_objs=winnt.o
        target_gtfiles="\$(srcdir)/config/i386/winnt.c"
        if test x$enable_threads = xyes ; then
@@ -1459,9 +1481,11 @@ m68k-*-linux*)           # Motorola m68k's running GNU/Linux
                                # aka the GNU/Linux C library 6.
        default_m68k_cpu=68020
        default_cf_cpu=5475
-       tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h m68k/linux.h"
+       with_arch=${with_arch:-m68k}
+       tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h m68k/linux.h ./sysroot-suffix.h"
        extra_options="${extra_options} m68k/ieee.opt"
        tm_defines="${tm_defines} MOTOROLA=1"
+       tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
        # if not configured with --enable-sjlj-exceptions, bump the
        # libgcc version number
        if test x$sjlj != x1; then
@@ -1518,15 +1542,18 @@ mips*-*-netbsd*)                        # NetBSD/mips, either endian.
        target_cpu_default="MASK_ABICALLS"
        tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
        ;;
-mips64*-*-linux*)
+mips64*-*-linux* | mipsisa64*-*-linux*)
        tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h mips/linux64.h"
-       tmake_file="${tmake_file} mips/t-linux64"
+       tmake_file="${tmake_file} mips/t-linux64 mips/t-libgcc-mips16"
        tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
        case ${target} in
                mips64el-st-linux-gnu)
                        tm_file="${tm_file} mips/st.h"
                        tmake_file="${tmake_file} mips/t-st"
                        ;;
+               mipsisa64r2*-*-linux*)
+                       tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
+                       ;;
        esac
        gnu_ld=yes
        gas=yes
@@ -1534,6 +1561,7 @@ mips64*-*-linux*)
        ;;
 mips*-*-linux*)                                # Linux MIPS, either endian.
         tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h"
+       tmake_file="${tmake_file} mips/t-libgcc-mips16"
        case ${target} in
         mipsisa32r2*)
                tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
@@ -2321,11 +2349,11 @@ xstormy16-*-elf)
        tmake_file="stormy16/t-stormy16"
        extra_parts="crtbegin.o crtend.o"
        ;;
-xtensa-*-elf*)
+xtensa*-*-elf*)
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h xtensa/elf.h"
        tmake_file="xtensa/t-xtensa xtensa/t-elf"
        ;;
-xtensa-*-linux*)
+xtensa*-*-linux*)
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h xtensa/linux.h"
        tmake_file="${tmake_file} xtensa/t-xtensa xtensa/t-linux"
        ;;
@@ -2349,10 +2377,10 @@ esac
 
 case ${target} in
 i[34567]86-*-linux* | x86_64-*-linux*)
-       tmake_file="${tmake_file} i386/t-pmm_malloc"
+       tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
        ;;
 i[34567]86-*-* | x86_64-*-*)
-       tmake_file="${tmake_file} i386/t-gmm_malloc"
+       tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
        ;;
 esac
 
@@ -2751,7 +2779,7 @@ case "${target}" in
                ;;
 
        mips*-*-*)
-               supported_defaults="abi arch float tune divide llsc"
+               supported_defaults="abi arch float tune divide llsc mips-plt"
 
                case ${with_float} in
                "" | soft | hard)
@@ -2798,6 +2826,21 @@ case "${target}" in
                        exit 1
                        ;;
                esac
+
+               case ${with_mips_plt} in
+               yes)
+                       with_mips_plt=plt
+                       ;;
+               no)
+                       with_mips_plt=no-plt
+                       ;;
+               "")
+                       ;;
+               *)
+                       echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
+                       exit 1
+                       ;;
+               esac
                ;;
 
        powerpc*-*-* | rs6000-*-*)
@@ -2815,7 +2858,7 @@ case "${target}" in
                                eval "with_$which=405"
                                ;;
                        "" | common \
-                       | power | power[23456] | power6x | powerpc | powerpc64 \
+                       | power | power[234567] | power6x | powerpc | powerpc64 \
                        | rios | rios1 | rios2 | rsc | rsc1 | rs64a \
                        | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
                        | 505 | 601 | 602 | 603 | 603e | ec603e | 604 \
@@ -2973,6 +3016,13 @@ case ${target} in
                fi
                ;;
 
+       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*)
+               tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp i386/t-linux"
+               ;;
+
        mips*-*-*)
                if test x$gnu_ld = xyes
                then
@@ -3043,10 +3093,10 @@ 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"
+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"
 for option in $all_defaults
 do
-       eval "val=\$with_$option"
+       eval "val=\$with_"`echo $option | sed s/-/_/g`
        if test -n "$val"; then
                case " $supported_defaults " in
                *" $option "*)