X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fconfig.gcc;h=503a60bf633f745daaf7adbdf081212e352cac93;hp=e168a2e9740b3efa775fef09b0b56faee22a4d5d;hb=5efd9b45c3936d9707b975a0a3145a9e1aa8faeb;hpb=7c69b636e86fa2d36a731fd25aafc6fa797686d3 diff --git a/gcc/config.gcc b/gcc/config.gcc index e168a2e9740..503a60bf633 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -6,7 +6,7 @@ #GCC is free software; you can redistribute it and/or modify it under #the terms of the GNU General Public License as published by the Free -#Software Foundation; either version 2, or (at your option) any later +#Software Foundation; either version 3, or (at your option) any later #version. #GCC is distributed in the hope that it will be useful, but WITHOUT @@ -15,9 +15,8 @@ #for more details. #You should have received a copy of the GNU General Public License -#along with GCC; see the file COPYING. If not, write to the Free -#Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA -#02110-1301, USA. +#along with GCC; see the file COPYING3. If not see +#. # This is the GCC target-specific configuration file # where a configuration type is mapped to different system-specific @@ -25,6 +24,9 @@ # configure script. Putting it in a separate shell file lets us skip # running autoconf when modifying target-specific information. +# When you change the cases in the OS or target switches, consider +# updating ../libgcc/config.host also. + # This file switches on the shell variable ${target}, and also uses the # following shell variables: # @@ -95,6 +97,9 @@ # extra_headers List of used header files from the directory # config/${cpu_type}. # +# use_gcc_tgmath If set, add tgmath.h to the list of used header +# files. +# # extra_passes List of extra executables compiled for this target # machine, used for compiling from source to object. # @@ -153,6 +158,7 @@ out_file= tmake_file= extra_headers= +use_gcc_tgmath=yes extra_passes= extra_parts= extra_programs= @@ -252,7 +258,7 @@ strongarm*-*-*) ;; arm*-*-*) cpu_type=arm - extra_headers="mmintrin.h" + extra_headers="mmintrin.h arm_neon.h" ;; bfin*-*) cpu_type=bfin @@ -262,6 +268,10 @@ ep9312*-*-*) ;; frv*) cpu_type=frv ;; +fido-*-*) + cpu_type=m68k + extra_headers=math-68881.h + ;; xscale-*-*) cpu_type=arm extra_headers="mmintrin.h" @@ -269,12 +279,14 @@ xscale-*-*) i[34567]86-*-*) cpu_type=i386 extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h - pmmintrin.h tmmintrin.h" + pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h + nmmintrin.h" ;; x86_64-*-*) cpu_type=i386 extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h - pmmintrin.h tmmintrin.h" + pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h + nmmintrin.h" need_64bit_hwint=yes ;; ia64-*-*) @@ -384,6 +396,7 @@ case ${target} in c_target_objs="darwin-c.o" cxx_target_objs="darwin-c.o" extra_objs="darwin.o" + extra_gcc_objs="darwin-driver.o" default_use_cxa_atexit=yes case ${enable_threads} in "" | yes | posix) thread_file='posix' ;; @@ -483,6 +496,7 @@ case ${target} in esac # Assume that glibc or uClibc are being used and so __cxa_atexit is provided. default_use_cxa_atexit=yes + use_gcc_tgmath=no ;; *-*-gnu*) # On the Hurd, the setup is just about the same on @@ -506,6 +520,7 @@ case ${target} in esac # Assume that glibc is being used and so __cxa_atexit is provided. default_use_cxa_atexit=yes + use_gcc_tgmath=no ;; *-*-netbsd*) tmake_file="t-slibgcc-elf-ver t-libc-ok t-netbsd t-libgcc-pic" @@ -566,9 +581,9 @@ case ${target} in ;; *-*-vxworks*) tmake_file=t-vxworks - tm_file="${tm_file} elfos.h svr4.h" xm_defines=POSIX extra_options="${extra_options} vxworks.opt" + extra_objs=vxworks.o case ${enable_threads} in no) ;; "" | yes | vxworks) thread_file='vxworks' ;; @@ -690,7 +705,7 @@ arm-semi-aof | armel-semi-aof) tmake_file="arm/t-arm arm/t-semi" ;; arm-wrs-vxworks) - tm_file="dbxelf.h elfos.h svr4.h vxworks.h arm/elf.h arm/aout.h arm/arm.h arm/vxworks.h" + tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h" tmake_file="${tmake_file} arm/t-arm arm/t-vxworks" ;; arm*-*-freebsd*|strongarm*-*-freebsd*) @@ -728,8 +743,20 @@ arm*-*-linux*) # ARM GNU/Linux with ELF tm_file="$tm_file arm/aout.h arm/arm.h" ;; arm*-*-uclinux*) # ARM ucLinux - tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h arm/uclinux-elf.h" + tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h arm/uclinux-elf.h" tmake_file="arm/t-arm arm/t-arm-elf" + case ${target} in + arm*-*-uclinux-*eabi) + tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h" + tmake_file="$tmake_file arm/t-bpabi" + # The BPABI long long divmod functions return a 128-bit value in + # registers r0-r3. Correctly modeling that requires the use of + # TImode. + need_64bit_hwint=yes + # The EABI requires the use of __cxa_atexit. + default_use_cxa_atexit=yes + esac + tm_file="$tm_file arm/aout.h arm/arm.h" ;; arm*-*-ecos-elf) tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/ecos-elf.h" @@ -795,9 +822,18 @@ bfin*-elf*) ;; bfin*-uclinux*) tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/uclinux.h" - tmake_file=bfin/t-bfin-elf + tmake_file=bfin/t-bfin-uclinux use_collect2=no ;; +bfin*-linux-uclibc*) + tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h linux.h bfin/linux.h" + tmake_file="t-slibgcc-elf-ver bfin/t-bfin-linux" + use_collect2=no + ;; +bfin*-rtems*) + tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h" + tmake_file="bfin/t-bfin t-rtems bfin/t-rtems" + ;; bfin*-*) tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h" tmake_file=bfin/t-bfin @@ -1022,13 +1058,12 @@ i[34567]86-*-darwin*) # config.guess deciding that the configuration is i386-*-darwin* and # then this file using that to set --with-cpu=i386 which has no -m64 # support. - with_arch=${with_arch:-nocona} with_cpu=${with_cpu:-generic} + tmake_file="${tmake_file} i386/t-fprules-softfp64 soft-fp/t-softfp i386/t-crtpc i386/t-crtfm" ;; x86_64-*-darwin*) - with_arch=${with_arch:-nocona} with_cpu=${with_cpu:-generic} - tmake_file="t-darwin ${cpu_type}/t-darwin64 t-slibgcc-darwin" + 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" tm_file="${tm_file} ${cpu_type}/darwin64.h" ;; i[34567]86-*-elf*) @@ -1060,6 +1095,7 @@ i[34567]86-*-freebsd*) ;; x86_64-*-freebsd*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h" + tmake_file="${tmake_file} i386/t-crtstuff" ;; i[34567]86-*-netbsdelf*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h" @@ -1072,6 +1108,7 @@ i[34567]86-*-netbsd*) ;; x86_64-*-netbsd*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h" + tmake_file="${tmake_file} i386/t-crtstuff" ;; 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" @@ -1099,19 +1136,19 @@ 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" + tmake_file="${tmake_file} i386/t-linux64 i386/t-fprules-softfp64 soft-fp/t-softfp" need_64bit_hwint=yes # FIXME: -m64 for i[34567]86-*-* should be allowed just # like -m32 for x86_64-*-*. case X"${with_cpu}" in - Xgeneric|Xnocona|Xx86-64|Xk8|Xopteron|Xathlon64|Xathlon-fx) + Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx) ;; X) with_cpu=generic ;; *) echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 - echo "generic nocona x86-64 k8 opteron athlon64 athlon-fx" 1>&2 + echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2 exit 1 ;; esac @@ -1122,7 +1159,7 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu) i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} i386/linux.h knetbsd-gnu.h i386/knetbsd-gnu.h" ;; i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} i386/linux.h kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;; esac - tmake_file="${tmake_file} i386/t-crtstuff i386/t-crtfm t-dfprules" + tmake_file="${tmake_file} i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules" ;; 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 svr4.h linux.h \ @@ -1131,7 +1168,7 @@ 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-crtfm t-dfprules" + 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" ;; i[34567]86-*-gnu*) ;; @@ -1228,19 +1265,19 @@ i[34567]86-*-solaris2*) *-*-solaris2.1[0-9]*) tm_file="${tm_file} i386/x86-64.h i386/sol2-10.h" tm_defines="${tm_defines} TARGET_BI_ARCH=1" - tmake_file="$tmake_file i386/t-sol2-10" + tmake_file="$tmake_file i386/t-crtstuff i386/t-sol2-10" need_64bit_hwint=yes # FIXME: -m64 for i[34567]86-*-* should be allowed just # like -m32 for x86_64-*-*. case X"${with_cpu}" in - Xgeneric|Xnocona|Xx86-64|Xk8|Xopteron|Xathlon64|Xathlon-fx) + Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx) ;; X) with_cpu=generic ;; *) echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 - echo "generic nocona x86-64 k8 opteron athlon64 athlon-fx" 1>&2 + echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2 exit 1 ;; esac @@ -1292,14 +1329,14 @@ i[34567]86-*-sysv4*) # Intel 80386's running system V.4 use_fixproto=yes ;; i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae) - tm_file="${tm_file} i386/sysv4.h i386/unix.h i386/att.h vx-common.h" + tm_file="${tm_file} i386/unix.h i386/att.h elfos.h svr4.h vx-common.h" case ${target} in *-vxworksae*) - tm_file="${tm_file} vxworksae.h i386/vxworksae.h" + tm_file="${tm_file} vxworksae.h i386/vx-common.h i386/vxworksae.h" tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae" ;; *) - tm_file="${tm_file} vxworks.h i386/vxworks.h" + tm_file="${tm_file} vxworks.h i386/vx-common.h i386/vxworks.h" tmake_file="${tmake_file} i386/t-vxworks" ;; esac @@ -1318,7 +1355,7 @@ i[34567]86-*-pe | i[34567]86-*-cygwin*) thread_file='posix' fi ;; -i[34567]86-*-mingw32*) +i[34567]86-*-mingw32* | x86_64-*-mingw32*) 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" @@ -1403,7 +1440,7 @@ ia64*-*-hpux*) tmake_file="ia64/t-ia64 ia64/t-hpux" target_cpu_default="MASK_GNU_AS" case x$enable_threads in - xyes | xposix ) + x | xyes | xposix ) thread_file=posix ;; esac @@ -1471,53 +1508,96 @@ m68hc12-*-*|m6812-*-*) use_fixproto=yes ;; m68k-*-aout*) - tmake_file=m68k/t-m68kbare - tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kemb.h m68k/m68k-aout.h libgloss.h" + default_m68k_cpu=68020 + default_cf_cpu=5206 + tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-mlibs" + tm_file="${tm_file} m68k/m68k-none.h m68k/m68kemb.h m68k/m68k-aout.h libgloss.h" ;; m68k-*-coff*) - tmake_file=m68k/t-m68kbare - tm_defines="${tm_defines} MOTOROLA USE_GAS" - tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kemb.h dbxcoff.h m68k/coff.h dbx.h" + default_m68k_cpu=68020 + default_cf_cpu=5206 + tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-mlibs" + tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" + tm_file="${tm_file} m68k/m68k-none.h m68k/m68kemb.h dbxcoff.h m68k/coff.h dbx.h" use_fixproto=yes ;; -m68020-*-elf* | m68k-*-elf*) - tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h" - tm_defines="${tm_defines} MOTOROLA USE_GAS" - tmake_file=m68k/t-m68kelf - extra_parts="crtbegin.o crtend.o" - ;; -m68010-*-netbsdelf* | m68k*-*-netbsdelf*) - tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h" - tm_defines="${tm_defines} MOTOROLA USE_GAS" +m68020-*-elf* | m68k-*-elf* | fido-*-elf*) case ${target} in - m68010*) - target_cpu_default="0" + fido-*-elf*) + # Check that $with_cpu makes sense. + case $with_cpu in + "" | "fidoa") + ;; + *) + echo "Cannot accept --with-cpu=$with_cpu" + exit 1 + ;; + esac + with_cpu=fidoa ;; *) - target_cpu_default="MASK_68020|MASK_68881|MASK_BITFIELD" + default_m68k_cpu=68020 + default_cf_cpu=5206 ;; esac + tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h" + tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" + tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf" + # Add multilibs for targets other than fido. + case ${target} in + fido-*-elf*) + ;; + *) + tmake_file="$tmake_file m68k/t-mlibs" + ;; + esac + extra_parts="crtbegin.o crtend.o" + ;; +m68010-*-netbsdelf* | m68k*-*-netbsdelf*) + default_m68k_cpu=68020 + default_cf_cpu=5475 + tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h" + tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" ;; m68k*-*-openbsd*) + default_m68k_cpu=68020 + default_cf_cpu=5475 # needed to unconfuse gdb - tm_defines="${tm_defines} OBSD_OLD_GAS TARGET_DEFAULT=(MASK_68020|MASK_68881|MASK_BITFIELD)" - tm_file="m68k/m68k.h openbsd.h m68k/openbsd.h" + tm_defines="${tm_defines} OBSD_OLD_GAS" + tm_file="${tm_file} openbsd.h m68k/openbsd.h" tmake_file="t-libc-ok t-openbsd m68k/t-openbsd" # we need collect2 until our bug is fixed... use_collect2=yes ;; -m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc - tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/uclinux.h" - tm_defines="${tm_defines} MOTOROLA USE_GAS" - tmake_file=m68k/t-uclinux +m68k-*-uclinuxoldabi*) # Motorola m68k/ColdFire running uClinux + # with uClibc, using the original + # m68k-elf-based ABI + default_m68k_cpu=68020 + default_cf_cpu=5206 + tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/uclinux-oldabi.h" + tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" + tmake_file="m68k/t-floatlib m68k/t-uclinux" + use_fixproto=no + ;; +m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux + # with uClibc, using the new GNU/Linux-style + # ABI. + default_m68k_cpu=68020 + default_cf_cpu=5206 + tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h" + tm_defines="${tm_defines} MOTOROLA=1 USE_GAS UCLIBC_DEFAULT=1" + extra_options="${extra_options} linux.opt" + tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs" use_fixproto=no ;; m68k-*-linux*) # Motorola m68k's running GNU/Linux # with ELF format using glibc 2 # aka the GNU/Linux C library 6. - tm_file="m68k/m68k.h dbxelf.h elfos.h svr4.h linux.h m68k/linux.h" + default_m68k_cpu=68020 + default_cf_cpu=5475 + tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h m68k/linux.h" extra_options="${extra_options} m68k/ieee.opt" - tm_defines="${tm_defines} MOTOROLA USE_GAS" + tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" # if not configured with --enable-sjlj-exceptions, bump the # libgcc version number if test x$sjlj != x1; then @@ -1525,9 +1605,11 @@ m68k-*-linux*) # Motorola m68k's running GNU/Linux fi ;; m68k-*-rtems*) - tmake_file="m68k/t-m68kbare m68k/t-crtstuff t-rtems m68k/t-rtems" - tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h" - tm_defines="${tm_defines} MOTOROLA USE_GAS" + default_m68k_cpu=68020 + default_cf_cpu=5206 + tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff t-rtems m68k/t-rtems m68k/t-mlibs" + tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h" + tm_defines="${tm_defines} MOTOROLA=1 USE_GAS" extra_parts="crtbegin.o crtend.o" ;; mcore-*-elf) @@ -1563,9 +1645,9 @@ mips-sgi-irix[56]*) then tm_defines="${tm_defines} IRIX_USING_GNU_LD" fi -# if test x$enable_threads = xyes; then -# thread_file='irix' -# fi + case ${enable_threads}:${have_pthread_h} in + "":yes | yes:yes ) thread_file=posix ;; + esac use_fixproto=yes ;; mips*-*-netbsd*) # NetBSD/mips, either endian. @@ -1598,24 +1680,50 @@ mips*-*-openbsd*) *) tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=MASK_BIG_ENDIAN";; esac ;; -mipsisa32-*-elf* | mipsisa32el-*-elf*) - tm_file="elfos.h ${tm_file} mips/elf.h" - tmake_file=mips/t-isa3264 - tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_EABI" - use_fixproto=yes - ;; -mipsisa32r2-*-elf* | mipsisa32r2el-*-elf*) - tm_file="elfos.h ${tm_file} mips/elf.h" - tmake_file=mips/t-isa3264 - tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_EABI" - use_fixproto=yes +mips*-sde-elf*) + tm_file="elfos.h ${tm_file} mips/elf.h mips/sde.h" + tmake_file="mips/t-sde mips/t-libgcc-mips16" + case ${target} in + mipsisa32r2*) + tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32" + ;; + mipsisa32*) + tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32" + ;; + mipsisa64*) + tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32" + ;; + esac ;; +mipsisa32-*-elf* | mipsisa32el-*-elf* | \ +mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \ mipsisa64-*-elf* | mipsisa64el-*-elf*) tm_file="elfos.h ${tm_file} mips/elf.h" - tmake_file=mips/t-isa3264 - target_cpu_default="MASK_64BIT|MASK_FLOAT64" - tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_EABI" - use_fixproto=yes + tmake_file="mips/t-isa3264 mips/t-libgcc-mips16" + case ${target} in + mipsisa32r2*) + tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33" + ;; + mipsisa32*) + tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32" + ;; + mipsisa64*) + tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64" + ;; + esac + case ${target} in + mipsisa32*-*-elfoabi*) + tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32" + tm_file="${tm_file} mips/elfoabi.h" + ;; + mipsisa64*-*-elfoabi*) + tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64" + tm_file="${tm_file} mips/elfoabi.h" + ;; + *-*-elf*) + tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI" + ;; + esac ;; mipsisa64sr71k-*-elf*) tm_file="elfos.h ${tm_file} mips/elf.h" @@ -1626,19 +1734,19 @@ mipsisa64sr71k-*-elf*) ;; mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*) tm_file="elfos.h ${tm_file} mips/elf.h" - tmake_file="mips/t-elf mips/t-sb1" + tmake_file="mips/t-elf mips/t-libgcc-mips16 mips/t-sb1" target_cpu_default="MASK_64BIT|MASK_FLOAT64" tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64" use_fixproto=yes ;; mips-*-elf* | mipsel-*-elf*) tm_file="elfos.h ${tm_file} mips/elf.h" - tmake_file=mips/t-elf + tmake_file="mips/t-elf mips/t-libgcc-mips16" use_fixproto=yes ;; mips64-*-elf* | mips64el-*-elf*) tm_file="elfos.h ${tm_file} mips/elf.h" - tmake_file=mips/t-elf + tmake_file="mips/t-elf mips/t-libgcc-mips16" target_cpu_default="MASK_64BIT|MASK_FLOAT64" tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" use_fixproto=yes @@ -1650,30 +1758,28 @@ mips64vr-*-elf* | mips64vrel-*-elf*) ;; mips64orion-*-elf* | mips64orionel-*-elf*) tm_file="elfos.h ${tm_file} mips/elforion.h mips/elf.h" - tmake_file=mips/t-elf + tmake_file="mips/t-elf mips/t-libgcc-mips16" target_cpu_default="MASK_64BIT|MASK_FLOAT64" tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" use_fixproto=yes ;; mips*-*-rtems*) tm_file="elfos.h ${tm_file} mips/elf.h mips/rtems.h rtems.h" - tmake_file="mips/t-elf t-rtems mips/t-rtems" + tmake_file="mips/t-elf mips/t-libgcc-mips16 t-rtems mips/t-rtems" ;; mips-wrs-vxworks) - # We want vxworks.h after mips/elf.h, which unfortunately means we - # have to redo the tm_file list from scratch. - tm_file="elfos.h mips/mips.h svr4.h mips/elf.h vxworks.h mips/vxworks.h" + tm_file="elfos.h ${tm_file} svr4.h mips/elf.h vx-common.h vxworks.h mips/vxworks.h" tmake_file="${tmake_file} mips/t-vxworks" ;; mips-wrs-windiss) # Instruction-level simulator for VxWorks. xm_defines=POSIX tm_file="elfos.h mips/mips.h svr4.h mips/elf.h windiss.h mips/windiss.h" - tmake_file="${tmake_file} mips/t-elf" + tmake_file="${tmake_file} mips/t-elf mips/t-libgcc-mips16" thread_file= ;; mipstx39-*-elf* | mipstx39el-*-elf*) tm_file="elfos.h ${tm_file} mips/r3900.h mips/elf.h" - tmake_file=mips/t-r3900 + tmake_file="mips/t-r3900 mips/t-libgcc-mips16" use_fixproto=yes ;; mmix-knuth-mmixware) @@ -1863,9 +1969,7 @@ powerpc-*-gnu*) fi ;; powerpc-wrs-vxworks|powerpc-wrs-vxworksae) - # We want vxworks.h after rs6000/sysv4.h, which unfortunately - # means we have to redo the tm_file list from scratch. - tm_file="rs6000/rs6000.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" + tm_file="${tm_file} elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppccomm rs6000/t-vxworks" extra_options="${extra_options} rs6000/sysv4.opt" extra_headers=ppc-asm.h @@ -2111,7 +2215,7 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \ sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \ sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \ - sh4-single-only | sh4-single | sh4-nofpu | sh4 | \ + sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \ sh3e | sh3 | sh2e | sh2 | sh1) ;; "") sh_cpu_default=${sh_cpu_target} ;; *) echo "with_cpu=$with_cpu not supported"; exit 1 ;; @@ -2137,7 +2241,7 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ for sh_multilib in ${sh_multilibs}; do case ${sh_multilib} in sh1 | sh2 | sh2e | sh3 | sh3e | \ - sh4 | sh4-single | sh4-single-only | sh4-nofpu | \ + sh4 | sh4-single | sh4-single-only | sh4-nofpu | sh4-300 |\ sh4a | sh4a-single | sh4a-single-only | sh4a-nofpu | sh4al | \ sh2a | sh2a-single | sh2a-single-only | sh2a-nofpu | \ sh5-64media | sh5-64media-nofpu | \ @@ -2167,7 +2271,7 @@ sh-*-rtems*) ;; sh-wrs-vxworks) tmake_file="$tmake_file sh/t-sh sh/t-elf sh/t-vxworks" - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/embed-elf.h sh/vxworks.h" + tm_file="${tm_file} elfos.h svr4.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h" ;; sh-*-*) tm_file="${tm_file} dbxcoff.h sh/coff.h" @@ -2301,6 +2405,10 @@ sparc-*-sysv4*) extra_parts="crtbegin.o crtend.o" use_fixproto=yes ;; +sparc-wrs-vxworks) + tm_file="${tm_file} elfos.h svr4.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h" + tmake_file="${tmake_file} sparc/t-vxworks" + ;; sparc64-*-elf*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h" extra_options="${extra_options} sparc/little-endian.opt" @@ -2549,6 +2657,9 @@ if test x$with_cpu = x ; then ;; i686-*-* | i786-*-*) case ${target_noncanonical} in + amdfam10-*|barcelona-*) + with_cpu=amdfam10 + ;; k8-*|opteron-*|athlon_64-*) with_cpu=k8 ;; @@ -2558,6 +2669,9 @@ if test x$with_cpu = x ; then athlon_tbird-*|athlon-*) with_cpu=athlon ;; + geode-*) + with_cpu=geode + ;; pentium2-*) with_cpu=pentium2 ;; @@ -2573,6 +2687,9 @@ if test x$with_cpu = x ; then nocona-*) with_cpu=nocona ;; + core2-*) + with_cpu=core2 + ;; pentium_m-*) with_cpu=pentium-m ;; @@ -2586,12 +2703,18 @@ if test x$with_cpu = x ; then ;; x86_64-*-*) case ${target_noncanonical} in + amdfam10-*|barcelona-*) + with_cpu=amdfam10 + ;; k8-*|opteron-*|athlon_64-*) with_cpu=k8 ;; nocona-*) with_cpu=nocona ;; + core2-*) + with_cpu=core2 + ;; *) with_cpu=generic ;; @@ -2618,6 +2741,22 @@ if test x$with_cpu = x ; then frv550-*-*linux*) with_cpu=fr550 ;; + m680[012]0-*-*) + with_cpu=`echo ${target} | sed 's/-.*$//'` + ;; + m68k*-*-*) + case "$with_arch" in + "cf") + with_cpu=${default_cf_cpu} + ;; + "" | "m68k") + with_cpu=m${default_m68k_cpu} + ;; + esac + ;; + mips*-*-vxworks) + with_arch=mips2 + ;; sparc*-*-*) with_cpu="`echo ${target} | sed 's/-.*$//'`" ;; @@ -2718,7 +2857,7 @@ case "${target}" in case "$with_fpu" in "" \ - | fpa | fpe2 | fpe3 | maverick | vfp ) + | fpa | fpe2 | fpe3 | maverick | vfp | vfp3 | neon ) # OK ;; *) @@ -2766,18 +2905,44 @@ case "${target}" in esac ;; - m68k*-linux*) - supported_defaults="cpu" - case "$with_cpu" in - "" | "m68020" | "m68030" | "m68040" | "m68060" | "m68020-40" | "m68020-60") - # OK + fido-*-* | m680[012]0-*-* | m68k*-*-*) + supported_defaults="arch cpu" + case "$with_arch" in + "" | "m68k"| "cf") + m68k_arch_family="$with_arch" ;; *) - echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2 - echo "m68020 m68030 m68040 m68060 m68020-40 m68020-60" 1>&2 + echo "Invalid --with-arch=$with_arch" 1>&2 exit 1 ;; esac + + # We always have a $with_cpu setting here. + case "$with_cpu" in + "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060") + m68k_cpu_ident=$with_cpu + ;; + "m68020-40") + m68k_cpu_ident=m68020 + tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40" + ;; + "m68020-60") + m68k_cpu_ident=m68020 + tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60" + ;; + *) + # We need the C identifier rather than the string. + m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \ + 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \ + $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \ + ${srcdir}/config/m68k/m68k-devices.def` + if [ x"$m68k_cpu_ident" = x ] ; then + echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2 + exit 1 + fi + with_cpu="mcpu=$with_cpu" + ;; + esac ;; hppa*-*-* | parisc*-*-*) @@ -2813,7 +2978,7 @@ case "${target}" in | i586 | pentium | pentium-mmx | winchip-c6 | winchip2 \ | c3 | c3-2 | i686 | pentiumpro | pentium2 | pentium3 \ | pentium4 | k6 | k6-2 | k6-3 | athlon | athlon-tbird \ - | athlon-4 | athlon-xp | athlon-mp \ + | athlon-4 | athlon-xp | athlon-mp | geode \ | prescott | pentium-m | pentium4m | pentium3m) case "${target}" in x86_64-*-*) @@ -2823,7 +2988,7 @@ case "${target}" in esac # OK ;; - "" | k8 | opteron | athlon64 | athlon-fx | nocona | generic) + "" | amdfam10 | barcelona | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | generic) # OK ;; *) @@ -2923,7 +3088,7 @@ case "${target}" in for which in arch tune; do eval "val=\$with_$which" case ${val} in - "" | g5 | g6 | z900 | z990 | z9-109) + "" | g5 | g6 | z900 | z990 | z9-109 | z9-ec) # OK ;; *) @@ -2993,6 +3158,23 @@ case "${target}" in esac ;; + spu-*-*) + supported_defaults="arch tune" + + for which in arch tune; do + eval "val=\$with_$which" + case ${val} in + "" | cell | celledp) + # OK + ;; + *) + echo "Unknown cpu used in --with-$which=$val." 1>&2 + exit 1 + ;; + esac + done + ;; + v850*-*-*) supported_defaults=cpu case ${with_cpu} in @@ -3026,37 +3208,6 @@ case ${target} in fi ;; - m68k*-linux*) - case "x$with_cpu" in - x) - # The most generic - target_cpu_default2="(MASK_68020|MASK_68881|MASK_BITFIELD)" - ;; - xm68020) - target_cpu_default2="(MASK_68020|MASK_68881|MASK_BITFIELD)" - ;; - xm68030) - target_cpu_default2="(MASK_68030|MASK_68020|MASK_68881|MASK_BITFIELD)" - ;; - xm68040) - target_cpu_default2="(MASK_68040|MASK_68040_ONLY|MASK_68020|MASK_68881|MASK_BITFIELD)" - ;; - xm68060) - target_cpu_default2="(MASK_68060|MASK_68040_ONLY|MASK_68020|MASK_68881|MASK_BITFIELD)" - ;; - xm68020-40) - target_cpu_default2="(MASK_BITFIELD|MASK_68881|MASK_68020|MASK_68040)" - ;; - xm68020-60) - target_cpu_default2="(MASK_BITFIELD|MASK_68881|MASK_68020|MASK_68040|MASK_68060)" - ;; - *) - echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2 - exit 1 - ;; - esac - ;; - hppa*-*-* | parisc*-*-*) target_cpu_default2="MASK_BIG_SWITCH" if test x$gas = xyes @@ -3065,6 +3216,13 @@ case ${target} in fi ;; + fido*-*-* | m680[012]0-*-* | m68k*-*-*) + target_cpu_default2=$m68k_cpu_ident + if [ x"$m68k_arch_family" != x ]; then + tmake_file="m68k/t-$m68k_arch_family $tmake_file" + fi + ;; + mips*-*-*) if test x$gnu_ld = xyes then