X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fconfig.gcc;h=28d6f27458b621add223875822867ed2b7a4e6cf;hp=dde53d7a6cf32596bc3d2e6319b5f2f0d0714ccf;hb=374e1815a3e7f4a6cd915c2773a171da87f11995;hpb=b52054f19112d130687e99f561538ef47b295b21 diff --git a/gcc/config.gcc b/gcc/config.gcc index dde53d7a6cf..28d6f27458b 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1,5 +1,5 @@ # GCC target-specific configuration file. -# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 # Free Software Foundation, Inc. #This file is part of GCC. @@ -25,6 +25,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: # @@ -34,9 +37,14 @@ # threads support was requested. # # default_use_cxa_atexit -# "no" by default, can be set to "yes" if a target -# wishes to use __cxa_atexit() by default if the -# $enable___cxa_atexit variable is not set. +# The default value for the $enable___cxa_atexit +# variable. enable___cxa_atexit needs to be set to +# "yes" for the correct operation of C++ destructors +# but it relies upon the presence of a non-standard C +# library function called __cxa_atexit. +# Since not all C libraries provide __cxa_atexit the +# default value of $default_use_cxa_atexit is set to +# "no" except for targets which are known to be OK. # # gas_flag Either yes or no depending on whether GNU as was # requested. @@ -263,11 +271,13 @@ xscale-*-*) ;; i[34567]86-*-*) cpu_type=i386 - extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h pmmintrin.h" + extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h + pmmintrin.h tmmintrin.h" ;; x86_64-*-*) cpu_type=i386 - extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h pmmintrin.h" + extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h + pmmintrin.h tmmintrin.h" need_64bit_hwint=yes ;; ia64-*-*) @@ -296,7 +306,7 @@ powerpc*-*-*) extra_headers="ppc-asm.h altivec.h spe.h" need_64bit_hwint=yes case x$with_cpu in - xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345]|xrs64a) + xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456]|xpower6x|xrs64a) cpu_is_64bit=yes ;; esac @@ -304,6 +314,9 @@ powerpc*-*-*) rs6000*-*-*) need_64bit_hwint=yes ;; +score*-*-*) + cpu_type=score + ;; sparc64*-*-*) cpu_type=sparc need_64bit_hwint=yes @@ -311,6 +324,10 @@ sparc64*-*-*) sparc*-*-*) cpu_type=sparc ;; +spu*-*-*) + cpu_type=spu + need_64bit_hwint=yes + ;; s390*-*-*) cpu_type=s390 need_64bit_hwint=yes @@ -357,14 +374,20 @@ esac case ${target} in *-*-darwin*) tm_file="${tm_file} darwin.h" + case ${target} in + *-*-darwin9*) + tm_file="${tm_file} darwin9.h" + ;; + esac + tm_file="${tm_file} ${cpu_type}/darwin.h" tm_p_file="${tm_p_file} darwin-protos.h" - tmake_file="t-darwin t-slibgcc-darwin" + 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" - extra_parts="crt2.o" extra_objs="darwin.o" + default_use_cxa_atexit=yes case ${enable_threads} in "" | yes | posix) thread_file='posix' ;; esac @@ -433,7 +456,7 @@ case ${target} in ;; esac ;; - *) + *) echo 'Unknown thread configuration for FreeBSD' exit 1 ;; @@ -446,12 +469,23 @@ case ${target} in *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu) # Must come before *-*-gnu* (because of *-*-linux-gnu* systems). extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" + extra_options="${extra_options} linux.opt" gas=yes gnu_ld=yes case ${enable_threads} in "" | yes | posix) thread_file='posix' ;; esac tmake_file="t-slibgcc-elf-ver t-linux" + case ${target} in + *-*-*uclibc*) + tm_defines="${tm_defines} UCLIBC_DEFAULT=1" + ;; + *) + tm_defines="${tm_defines} UCLIBC_DEFAULT=0" + ;; + esac + # Assume that glibc or uClibc are being used and so __cxa_atexit is provided. + default_use_cxa_atexit=yes ;; *-*-gnu*) # On the Hurd, the setup is just about the same on @@ -473,6 +507,8 @@ case ${target} in tm_file="${cpu_type}/${cpu_type}.h i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h gnu.h ${tm_file}" ;; esac + # Assume that glibc is being used and so __cxa_atexit is provided. + default_use_cxa_atexit=yes ;; *-*-netbsd*) tmake_file="t-slibgcc-elf-ver t-libc-ok t-netbsd t-libgcc-pic" @@ -533,14 +569,18 @@ case ${target} in ;; *-*-vxworks*) tmake_file=t-vxworks - tm_file="${tm_file} elfos.h svr4.h vxworks.h" + tm_file="${tm_file} elfos.h svr4.h" + xm_defines=POSIX + extra_options="${extra_options} vxworks.opt" case ${enable_threads} in no) ;; "" | yes | vxworks) thread_file='vxworks' ;; *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;; esac - use_collect2=yes - xm_defines=POSIX + ;; +*-*-elf) + # Assume that newlib is being used and so __cxa_atexit is provided. + default_use_cxa_atexit=yes ;; esac @@ -568,7 +608,7 @@ alpha*-*-unicosmk*) alpha*-*-linux*) tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h" target_cpu_default="MASK_GAS" - tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee" + tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee alpha/t-linux" ;; alpha*-*-gnu*) target_cpu_default="MASK_GAS" @@ -586,7 +626,7 @@ alpha*-*-netbsd*) tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee" ;; alpha*-*-openbsd*) - tm_defines="OBSD_NO_DYNAMIC_LIBRARIES OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT" + tm_defines="${tm_defines} OBSD_NO_DYNAMIC_LIBRARIES OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT" tm_file="alpha/alpha.h openbsd.h alpha/openbsd.h" # default x-alpha is only appropriate for dec-osf. target_cpu_default="MASK_GAS" @@ -610,12 +650,12 @@ alpha*-dec-osf[45]*) # Define TARGET_SUPPORT_ARCH except on 4.0a. case ${target} in *-*-osf4.0a) ;; - *) tm_defines="TARGET_SUPPORT_ARCH=1" + *) tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1" esac ;; *-*-osf5*) tm_file="${tm_file} alpha/osf5.h" - tm_defines="TARGET_SUPPORT_ARCH=1" + tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1" ;; esac case ${enable_threads} in @@ -671,10 +711,24 @@ arm*-*-netbsd*) use_collect2=yes ;; arm*-*-linux*) # ARM GNU/Linux with ELF - tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/aout.h arm/arm.h" - tmake_file="${tmake_file} arm/t-arm arm/t-linux" - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" - gnu_ld=yes + tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" + tmake_file="${tmake_file} t-linux arm/t-arm" + case ${target} in + arm*-*-linux-*eabi) + tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h" + tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi" + # 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 + ;; + *) + tmake_file="$tmake_file arm/t-linux" + ;; + esac + 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" @@ -685,7 +739,7 @@ arm*-*-ecos-elf) tmake_file="arm/t-arm arm/t-arm-elf" ;; arm*-*-eabi* | arm*-*-symbianelf* ) - # The BPABI long long divmod functions return a 128-bit value in + # 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 @@ -700,7 +754,7 @@ arm*-*-eabi* | arm*-*-symbianelf* ) tm_file="${tm_file} arm/symbian.h" # We do not include t-bpabi for Symbian OS because the system # provides its own implementation of the BPABI functions. - tmake_file="${tmake_file} t-slibgcc-elf-ver arm/t-symbian" + tmake_file="${tmake_file} arm/t-symbian" ;; esac tm_file="${tm_file} arm/aout.h arm/arm.h" @@ -747,6 +801,10 @@ bfin*-uclinux*) tmake_file=bfin/t-bfin-elf 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 @@ -832,10 +890,11 @@ hppa*-*-linux* | parisc*-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h pa/pa-linux.h \ pa/pa32-regs.h pa/pa32-linux.h" tmake_file="${tmake_file} pa/t-linux" - # if not configured with --enable-sjlj-exceptions, bump the - # libgcc version number - if test x$sjlj != x1; then - tmake_file="$tmake_file pa/t-slibgcc-elf-ver" + # Set the libgcc version number + if test x$sjlj = x1; then + tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" + else + tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" fi ;; # port not yet contributed. @@ -875,7 +934,7 @@ hppa[12]*-*-hpux10*) extra_options="${extra_options} pa/pa-hpux1010.opt" ;; esac - tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib" + tmake_file="pa/t-pa-hpux10 pa/t-pa-hpux pa/t-hpux-shlib" case ${enable_threads} in "") if test x$have_pthread_h = xyes ; then @@ -886,8 +945,15 @@ hppa[12]*-*-hpux10*) tmake_file="${tmake_file} pa/t-dce-thr" ;; esac + # Set the libgcc version number + if test x$sjlj = x1; then + tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" + else + tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" + fi use_collect2=yes use_fixproto=yes + gas=yes ;; hppa*64*-*-hpux11*) target_cpu_default="MASK_PA_11|MASK_PA_20" @@ -895,16 +961,9 @@ hppa*64*-*-hpux11*) then target_cpu_default="${target_cpu_default}|MASK_GNU_LD" fi - if test x$gas = xyes - then - tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \ - pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \ - pa/pa-hpux11.h" - else - tm_file="pa/pa64-start.h ${tm_file} dbxelf.h pa/elf.h \ - pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \ - pa/pa-hpux11.h" - fi + tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \ + pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \ + pa/pa-hpux11.h" case ${target} in *-*-hpux11.[1-9]*) tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h" @@ -918,12 +977,20 @@ hppa*64*-*-hpux11*) pa/pa-hpux1010.opt pa/pa64-hpux.opt" need_64bit_hwint=yes tmake_file="pa/t-pa64 pa/t-pa-hpux pa/t-hpux-shlib" - extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o" + # Set the libgcc version number + if test x$sjlj = x1; then + tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" + else + tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" + fi + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \ + libgcc_stub.a" case x${enable_threads} in - xyes | xposix ) - thread_file=posix + x | xyes | xposix ) + thread_file=posix ;; esac + gas=yes ;; hppa[12]*-*-hpux11*) case ${target} in @@ -940,16 +1007,36 @@ hppa[12]*-*-hpux11*) extra_options="${extra_options} pa/pa-hpux1111.opt" ;; esac - tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib" + tmake_file="pa/t-pa-hpux11 pa/t-pa-hpux pa/t-hpux-shlib" + # Set the libgcc version number + if test x$sjlj = x1; then + tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" + else + tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" + fi case x${enable_threads} in - xyes | xposix ) - thread_file=posix + x | xyes | xposix ) + thread_file=posix ;; esac use_collect2=yes + gas=yes ;; i[34567]86-*-darwin*) - tm_file="${tm_file} i386/darwin.h" + need_64bit_hwint=yes + + # This is so that '.../configure && make' doesn't fail due to + # 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} + ;; +x86_64-*-darwin*) + with_arch=${with_arch:-nocona} + with_cpu=${with_cpu:-generic} + tmake_file="t-darwin ${cpu_type}/t-darwin64 t-slibgcc-darwin" + 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" @@ -961,7 +1048,6 @@ i[34567]86-sequent-ptx4* | i[34567]86-sequent-sysv4*) then tm_file="${tm_file} usegas.h" fi - xm_defines="SMALL_ARG_MAX" tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ptx4.h i386/ptx4-i.h" tmake_file=t-svr4 extra_parts="crtbegin.o crtend.o" @@ -1014,12 +1100,36 @@ i[34567]86-*-coff*) i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu) # Intel 80386's running GNU/* # with ELF format using glibc 2 - tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h" + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h" case ${target} in - i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h i386/knetbsd-gnu.h" ;; - i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;; + i[34567]86-*-linux*) + 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" + 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) + ;; + 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 + exit 1 + ;; + esac + else + tm_file="${tm_file} i386/linux.h" + fi + ;; + 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" + tmake_file="${tmake_file} i386/t-crtstuff 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 \ @@ -1028,7 +1138,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" + tmake_file="${tmake_file} i386/t-linux64 i386/t-crtfm t-dfprules" ;; i[34567]86-*-gnu*) ;; @@ -1092,11 +1202,14 @@ i[34567]86-*-sco3.2v5*) # 80386 running SCO Open Server 5 use_fixproto=yes ;; i[34567]86-*-solaris2*) - xm_defines="SMALL_ARG_MAX" tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h" case ${target} in *-*-solaris2.[0-6] | *-*-solaris2.[0-6].*) - tm_file="${tm_file} sol26.h" + tm_file="${tm_file} sol2-6.h" + ;; + *-*-solaris2.1[0-9]*) + tm_file="${tm_file} sol2-10.h" + ;; esac tm_file="${tm_file} i386/sol2.h" tmake_file="t-sol2 i386/t-sol2 t-svr4" @@ -1110,6 +1223,9 @@ i[34567]86-*-solaris2*) else tmake_file="$tmake_file t-slibgcc-sld" fi + if test x$gas = xyes; then + tm_file="usegas.h ${tm_file}" + fi case ${target} in *-*-solaris2.[789] | *-*-solaris2.1[0-9]*) tm_file="$tm_file tm-dwarf2.h" @@ -1121,7 +1237,21 @@ i[34567]86-*-solaris2*) tm_defines="${tm_defines} TARGET_BI_ARCH=1" tmake_file="$tmake_file i386/t-sol2-10" need_64bit_hwint=yes - # Solaris 2.10 provides crt1.o, crti.o, crtn.o, and gcrt1.o as + # 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) + ;; + 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 + exit 1 + ;; + esac + # Solaris 2.10 provides crt1.o, crti.o, crtn.o, and gcrt1.o as # part of the base system. extra_parts="gmon.o crtbegin.o crtend.o" ;; @@ -1159,7 +1289,6 @@ i[34567]86-*-sysv5*) # Intel x86 on System V Release 5 use_fixproto=yes ;; i[34567]86-*-sysv4*) # Intel 80386's running system V.4 - xm_defines="SMALL_ARG_MAX" tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h i386/sysv4-cpp.h" if test x$stabs = xyes then @@ -1169,9 +1298,18 @@ i[34567]86-*-sysv4*) # Intel 80386's running system V.4 extra_parts="crtbegin.o crtend.o" use_fixproto=yes ;; -i[4567]86-wrs-vxworks) - tm_file="${tm_file} i386/sysv4.h i386/unix.h i386/vxworks.h" - tmake_file="${tmake_file} i386/t-vxworks" +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" + case ${target} in + *-vxworksae*) + tm_file="${tm_file} vxworksae.h i386/vxworksae.h" + tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae" + ;; + *) + tm_file="${tm_file} vxworks.h i386/vxworks.h" + tmake_file="${tmake_file} i386/t-vxworks" + ;; + esac ;; 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" @@ -1179,9 +1317,9 @@ i[34567]86-*-pe | i[34567]86-*-cygwin*) 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 + extra_objs="winnt.o winnt-stubs.o" c_target_objs=cygwin2.o - cxx_target_objs=cygwin2.o + cxx_target_objs="cygwin2.o winnt-cxx.o" extra_gcc_objs=cygwin1.o if test x$enable_threads = xyes; then thread_file='posix' @@ -1193,9 +1331,14 @@ i[34567]86-*-mingw32*) 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 + extra_objs="winnt.o winnt-stubs.o" + cxx_target_objs=winnt-cxx.o + default_use_cxa_atexit=yes case ${enable_threads} in - "" | yes | win32) thread_file='win32' ;; + "" | yes | win32) + thread_file='win32' + tmake_file="${tmake_file} i386/t-gthr-win32" + ;; esac case ${target} in *mingw32crt*) @@ -1340,32 +1483,31 @@ m68k-*-aout*) ;; m68k-*-coff*) tmake_file=m68k/t-m68kbare - tm_defines="MOTOROLA USE_GAS" + 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" 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="MOTOROLA USE_GAS" + tm_defines="${tm_defines} MOTOROLA USE_GAS" tmake_file=m68k/t-m68kelf extra_parts="crtbegin.o crtend.o" - use_fixproto=yes ;; m68010-*-netbsdelf* | m68k*-*-netbsdelf*) tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h" - tm_defines="MOTOROLA USE_GAS" + tm_defines="${tm_defines} MOTOROLA USE_GAS" case ${target} in m68010*) - target_cpu_default="0" + target_cpu_default="MASK_68010" ;; *) - target_cpu_default="MASK_68020|MASK_68881|MASK_BITFIELD" + target_cpu_default="MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD" ;; esac ;; m68k*-*-openbsd*) # needed to unconfuse gdb - tm_defines="OBSD_OLD_GAS TARGET_DEFAULT=(MASK_68020|MASK_68881|MASK_BITFIELD)" + tm_defines="${tm_defines} OBSD_OLD_GAS TARGET_DEFAULT=(MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)" tm_file="m68k/m68k.h openbsd.h m68k/openbsd.h" tmake_file="t-libc-ok t-openbsd m68k/t-openbsd" # we need collect2 until our bug is fixed... @@ -1373,7 +1515,7 @@ m68k*-*-openbsd*) ;; 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="MOTOROLA USE_GAS" + tm_defines="${tm_defines} MOTOROLA USE_GAS" tmake_file=m68k/t-uclinux use_fixproto=no ;; @@ -1382,7 +1524,7 @@ m68k-*-linux*) # Motorola m68k's running GNU/Linux # aka the GNU/Linux C library 6. tm_file="m68k/m68k.h dbxelf.h elfos.h svr4.h linux.h m68k/linux.h" extra_options="${extra_options} m68k/ieee.opt" - tm_defines="MOTOROLA USE_GAS" + tm_defines="${tm_defines} MOTOROLA USE_GAS" # if not configured with --enable-sjlj-exceptions, bump the # libgcc version number if test x$sjlj != x1; then @@ -1392,7 +1534,7 @@ m68k-*-linux*) # Motorola m68k's running GNU/Linux 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="MOTOROLA USE_GAS" + tm_defines="${tm_defines} MOTOROLA USE_GAS" extra_parts="crtbegin.o crtend.o" ;; mcore-*-elf) @@ -1417,7 +1559,7 @@ mips-sgi-irix[56]*) *-*-irix6*) tm_file="${tm_file} mips/iris6.h" tmake_file="${tmake_file} mips/t-iris6" - tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32" + tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32" ;; esac if test "x$stabs" = xyes @@ -1440,7 +1582,7 @@ mips*-*-netbsd*) # NetBSD/mips, either endian. mips64*-*-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" - tm_defines="MIPS_ABI_DEFAULT=ABI_N32" + tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32" gnu_ld=yes gas=yes ;; @@ -1449,16 +1591,16 @@ mips*-*-linux*) # Linux MIPS, either endian. case ${target} in mipsisa32*-*) target_cpu_default="MASK_SOFT_FLOAT" - tm_defines="MIPS_ISA_DEFAULT=32" + tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32" ;; esac ;; mips*-*-openbsd*) - tm_defines="OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_OBJECT OBSD_HAS_CORRECT_SPECS" + tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_OBJECT OBSD_HAS_CORRECT_SPECS" target_cpu_default="MASK_ABICALLS" tm_file="mips/mips.h openbsd.h mips/openbsd.h mips/sdb.h" case ${target} in - mips*el-*-openbsd*) + mips*el-*-openbsd*) tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=0";; *) tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=MASK_BIG_ENDIAN";; esac @@ -1466,34 +1608,34 @@ mips*-*-openbsd*) mipsisa32-*-elf* | mipsisa32el-*-elf*) tm_file="elfos.h ${tm_file} mips/elf.h" tmake_file=mips/t-isa3264 - tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_EABI" + 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="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_EABI" + tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_EABI" use_fixproto=yes ;; 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="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_EABI" + tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_EABI" use_fixproto=yes ;; mipsisa64sr71k-*-elf*) tm_file="elfos.h ${tm_file} mips/elf.h" tmake_file=mips/t-sr71k target_cpu_default="MASK_64BIT|MASK_FLOAT64" - tm_defines="MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI" + tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI" use_fixproto=yes ;; mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*) tm_file="elfos.h ${tm_file} mips/elf.h" - tmake_file=mips/t-elf + tmake_file="mips/t-elf mips/t-sb1" target_cpu_default="MASK_64BIT|MASK_FLOAT64" - tm_defines="MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64" + 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*) @@ -1505,7 +1647,7 @@ mips64-*-elf* | mips64el-*-elf*) tm_file="elfos.h ${tm_file} mips/elf.h" tmake_file=mips/t-elf target_cpu_default="MASK_64BIT|MASK_FLOAT64" - tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" + tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" use_fixproto=yes ;; mips64vr-*-elf* | mips64vrel-*-elf*) @@ -1517,7 +1659,7 @@ mips64orion-*-elf* | mips64orionel-*-elf*) tm_file="elfos.h ${tm_file} mips/elforion.h mips/elf.h" tmake_file=mips/t-elf target_cpu_default="MASK_64BIT|MASK_FLOAT64" - tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" + tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" use_fixproto=yes ;; mips*-*-rtems*) @@ -1553,9 +1695,9 @@ mn10300-*-*) use_collect2=no use_fixproto=yes ;; -ms1-*-elf) +mt-*-elf) tm_file="dbxelf.h elfos.h svr4.h ${tm_file}" - tmake_file="${tmake_file} ms1/t-ms1" + tmake_file="${tmake_file} mt/t-mt" ;; ns32k-*-netbsdelf*) echo "GCC does not yet support the ${target} target"; exit 1 @@ -1576,7 +1718,7 @@ pdp11-*-*) ;; # port not yet contributed #powerpc-*-openbsd*) -# tmake_file="${tmake_file} rs6000/t-fprules " +# tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit " # extra_headers= # ;; powerpc64-*-linux*) @@ -1588,26 +1730,25 @@ powerpc64-*-linux*) tm_file="rs6000/secureplt.h ${tm_file}" fi extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt" - tmake_file="rs6000/t-fprules ${tmake_file} rs6000/t-ppccomm rs6000/t-linux64" + tmake_file="t-dfprules rs6000/t-fprules ${tmake_file} rs6000/t-ppccomm rs6000/t-linux64 rs6000/t-fprules-softfp soft-fp/t-softfp" ;; powerpc64-*-gnu*) tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux64.h rs6000/gnu.h" extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt" - tmake_file="rs6000/t-fprules t-slibgcc-elf-ver t-gnu rs6000/t-linux64" + tmake_file="rs6000/t-fprules t-slibgcc-elf-ver t-gnu rs6000/t-linux64 rs6000/t-fprules-softfp soft-fp/t-softfp" ;; powerpc-*-beos*) tm_file="${tm_file} rs6000/aix.h rs6000/beos.h rs6000/xcoff.h" - tmake_file="rs6000/t-fprules rs6000/t-beos" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-beos" extra_headers= use_fixproto=yes ;; powerpc-*-darwin*) - tm_file="${tm_file} rs6000/darwin.h" - tmake_file="${tmake_file} rs6000/t-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" + tmake_file="${tmake_file} rs6000/t-darwin8" tm_file="${tm_file} rs6000/darwin8.h" ;; *-darwin7*) @@ -1618,9 +1759,15 @@ powerpc-*-darwin*) esac extra_headers=altivec.h ;; +powerpc64-*-darwin*) + tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h" + extra_options="${extra_options} ${cpu_type}/darwin.opt" + # We're omitting t-darwin8 to avoid building any multilibs + 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" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" ;; powerpc-*-netbsd*) @@ -1630,7 +1777,7 @@ powerpc-*-netbsd*) ;; powerpc-*-chorusos*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h chorus.h" - tmake_file="rs6000/t-fprules rs6000/t-ppcos rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" case ${enable_threads} in yes | posix) @@ -1640,55 +1787,55 @@ powerpc-*-chorusos*) use_fixproto=yes ;; powerpc-*-eabispe*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabispe.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabispe.h" extra_options="${extra_options} rs6000/sysv4.opt" tmake_file="rs6000/t-spe rs6000/t-ppccomm" ;; powerpc-*-eabisimaltivec*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.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-ppcendian rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm" ;; powerpc-*-eabisim*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.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-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" ;; powerpc-*-elf*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" use_fixproto=yes ;; powerpc-*-eabialtivec*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.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-ppcendian rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm" ;; powerpc-*-eabi*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" ;; powerpc-*-rtems*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/rtems.h rtems.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.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-rtems t-rtems rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-rtems t-rtems rs6000/t-ppccomm" ;; powerpc-*-linux*altivec*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" ;; powerpc-*-linux*spe*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h rs6000/e500.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" ;; powerpc-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" + tmake_file="t-dfprules rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" case ${enable_targets}:${cpu_is_64bit} in *powerpc64* | all:* | *:yes) if test x$cpu_is_64bit = xyes; then @@ -1709,35 +1856,43 @@ powerpc-*-linux*) powerpc-*-gnu-gnualtivec*) tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm" if test x$enable_threads = xyes; then thread_file='posix' fi ;; powerpc-*-gnu*) tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/gnu.h" - tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" if test x$enable_threads = xyes; then thread_file='posix' fi ;; -powerpc-wrs-vxworks*) +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} vxworks.h rs6000/vxworks.h" - tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks" + 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 + case ${target} in + *-vxworksae*) + tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h" + tmake_file="${tmake_file} rs6000/t-vxworksae" + ;; + *-vxworks*) + tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h" + ;; + esac ;; -powerpc-wrs-windiss*) # Instruction-level simulator for VxWorks. +powerpc-wrs-windiss*) # Instruction-level simulator for VxWorks. tm_file="${tm_file} elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/windiss.h" - tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" - thread_file="" + thread_file="" use_fixproto=yes - ;; + ;; powerpc-*-lynxos*) xm_defines=POSIX tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h" @@ -1751,39 +1906,39 @@ powerpc-*-lynxos*) ;; powerpcle-*-sysv*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h" - tmake_file="rs6000/t-fprules rs6000/t-ppcos rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" use_fixproto=yes ;; powerpcle-*-elf*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h" - tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" use_fixproto=yes ;; powerpcle-*-eabisim*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h" - tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.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" extra_options="${extra_options} rs6000/sysv4.opt" ;; powerpcle-*-eabi*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h" - tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.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" extra_options="${extra_options} rs6000/sysv4.opt" ;; powerpc-*-kaos*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h kaos.h rs6000/kaos-ppc.h" - tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" ;; powerpcle-*-kaos*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h kaos.h rs6000/kaos-ppc.h" - tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" ;; rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*) tm_file="${tm_file} rs6000/aix.h rs6000/aix41.h rs6000/xcoff.h" - tmake_file="rs6000/t-fprules rs6000/t-newas" + tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-newas" extra_options="${extra_options} rs6000/aix41.opt" use_collect2=yes extra_headers= @@ -1815,7 +1970,7 @@ rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) ;; s390-*-linux*) tm_file="s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h" - tmake_file="${tmake_file} s390/t-crtstuff" + tmake_file="${tmake_file} t-dfprules s390/t-crtstuff s390/t-linux" ;; s390x-*-linux*) tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h" @@ -1823,7 +1978,7 @@ s390x-*-linux*) md_file=s390/s390.md extra_modes=s390/s390-modes.def out_file=s390/s390.c - tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux64" + tmake_file="${tmake_file} t-dfprules s390/t-crtstuff s390/t-linux s390/t-linux64" ;; s390x-ibm-tpf*) tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h s390/tpf.h" @@ -1836,6 +1991,11 @@ s390x-ibm-tpf*) thread_file='tpf' extra_options="${extra_options} s390/tpf.opt" ;; +score-*-elf) + tm_file="dbxelf.h elfos.h score/elf.h score/score.h" + tmake_file=score/t-score-elf + extra_objs="score-mdaux.o" + ;; sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ sh-*-linux* | sh[346lbe]*-*-linux* | \ @@ -1873,7 +2033,18 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ sh*-*-kaos*) tm_file="${tm_file} sh/embed-elf.h kaos.h sh/kaos-sh.h" ;; sh*-*-netbsd*) tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h" ;; - *) tm_file="${tm_file} sh/embed-elf.h" ;; + sh*-superh-elf) if test x$with_libgloss != xno; then + with_libgloss=yes + tm_file="${tm_file} sh/newlib.h" + fi + tm_file="${tm_file} sh/embed-elf.h sh/superh.h" + tmake_file="${tmake_file} sh/t-superh" + extra_options="${extra_options} sh/superh.opt" ;; + *) if test x$with_newlib = xyes \ + && test x$with_libgloss = xyes; then + tm_file="${tm_file} sh/newlib.h" + fi + tm_file="${tm_file} sh/embed-elf.h" ;; esac case ${target} in sh5*-*-netbsd*) @@ -1902,7 +2073,7 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ tm_file="sh/symbian-pre.h sh/little.h ${tm_file} sh/symbian-post.h" extra_objs="symbian.o" extra_parts="crt1.o crti.o crtn.o crtbegin.o crtend.o crtbeginS.o crtendS.o" - ;; + ;; esac # sed el/eb endian suffixes away to avoid confusion with sh[23]e case `echo ${target} | sed 's/e[lb]-/-/'` in @@ -1927,6 +2098,20 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ sh2*) sh_cpu_target=sh2 ;; *) sh_cpu_target=sh1 ;; esac + # did the user say --without-fp ? + if test x$with_fp = xno; then + case ${sh_cpu_target} in + sh5-*media) sh_cpu_target=${sh_cpu_target}-nofpu ;; + sh4al | sh1) ;; + sh4a* ) sh_cpu_target=sh4a-nofpu ;; + sh4*) sh_cpu_target=sh4-nofpu ;; + sh3*) sh_cpu_target=sh3 ;; + sh2a*) sh_cpu_target=sh2a-nofpu ;; + sh2*) sh_cpu_target=sh2 ;; + *) echo --without-fp not available for $target: ignored + esac + tm_defines="$tm_defines STRICT_NOFPU=1" + fi sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`" case $sh_cpu_default in sh5-64media-nofpu | sh5-64media | \ @@ -1941,6 +2126,7 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ sh_multilibs=${with_multilib_list} if test x${sh_multilibs} = x ; then case ${target} in + sh64-superh-linux* | \ sh[1234]*) sh_multilibs=${sh_cpu_target} ;; sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;; sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;; @@ -1948,10 +2134,13 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;; *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;; esac + if test x$with_fp = xno; then + sh_multilibs="`echo $sh_multilibs|sed -e s/m4/sh4-nofpu/ -e s/,m4-[^,]*//g -e s/,m[23]e// -e s/m2a,m2a-single/m2a-nofpu/ -e s/m5-..m....,//g`" + fi fi - target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr a-z- A-Z_` + target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_` tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"' - sh_multilibs=`echo $sh_multilibs,$sh_cpu_default | sed -e 's/[ ,/][ ,]*/ /g' -e 's/ $//' -e s/^m/sh/ -e 's/ m/ sh/g' | tr A-Z_ a-z-` + sh_multilibs=`echo $sh_multilibs,$sh_cpu_default | sed -e 's/[ ,/][ ,]*/ /g' -e 's/ $//' -e 's/^m/sh/' -e 's/ m/ sh/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-` for sh_multilib in ${sh_multilibs}; do case ${sh_multilib} in sh1 | sh2 | sh2e | sh3 | sh3e | \ @@ -1962,7 +2151,7 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ sh5-32media | sh5-32media-nofpu | \ sh5-compact | sh5-compact-nofpu) tmake_file="${tmake_file} sh/t-mlib-${sh_multilib}" - tm_defines="$tm_defines SUPPORT_`echo $sh_multilib|tr a-z- A-Z_`=1" + tm_defines="$tm_defines SUPPORT_`echo $sh_multilib|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1" ;; *) echo "with_multilib_list=${sh_multilib} not supported." @@ -1970,7 +2159,7 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ ;; esac done - if test x${enable_incomplete_targets} == xyes ; then + if test x${enable_incomplete_targets} = xyes ; then tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1 SUPPORT_SH5_32MEDIA=1 SUPPORT_SH5_32MEDIA_NOFPU=1 SUPPORT_SH5_64MEDIA=1 SUPPORT_SH5_64MEDIA_NOFPU=1" fi use_fixproto=yes @@ -2010,7 +2199,7 @@ sparc-*-elf*) sparc-*-linux*) # SPARC's running GNU/Linux, libc6 tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h" extra_options="${extra_options} sparc/long-double-switch.opt" - tmake_file="${tmake_file} sparc/t-crtfm" + tmake_file="${tmake_file} sparc/t-linux sparc/t-crtfm" ;; sparc-*-rtems*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h" @@ -2018,7 +2207,13 @@ sparc-*-rtems*) extra_parts="crti.o crtn.o crtbegin.o crtend.o" ;; sparc64-*-solaris2* | sparcv9-*-solaris2*) - tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h sparc/sol2.h sparc/sol2-64.h sparc/sol2-bi.h" + tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h" + case ${target} in + *-*-solaris2.1[0-9]*) + tm_file="${tm_file} sol2-10.h" + ;; + esac + tm_file="${tm_file} sparc/sol2.h sparc/sol2-64.h sparc/sol2-bi.h" if test x$gnu_ld = xyes; then tm_file="${tm_file} sparc/sol2-gld.h sparc/sol2-gld-bi.h" fi @@ -2047,7 +2242,11 @@ sparc-*-solaris2*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h" case ${target} in *-*-solaris2.[0-6] | *-*-solaris2.[0-6].*) - tm_file="${tm_file} sol26.h" + tm_file="${tm_file} sol2-6.h" + ;; + *-*-solaris2.1[0-9]*) + tm_file="${tm_file} sol2-10.h" + ;; esac tm_file="${tm_file} sparc/sol2.h" if test x$gnu_ld = xyes; then @@ -2079,6 +2278,7 @@ sparc-*-solaris2*) tm_file="${tm_file} tm-dwarf2.h" tmake_file="$tmake_file sparc/t-sol2-64" need_64bit_hwint=yes + test x$with_cpu != x || with_cpu=v9 ;; esac c_target_objs="sol2-c.o" @@ -2129,7 +2329,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*) sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux64.h" extra_options="${extra_options} sparc/long-double-switch.opt" - tmake_file="${tmake_file} sparc/t-linux64 sparc/t-crtfm" + tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm" ;; sparc64-*-netbsd*) tm_file="sparc/biarch64.h ${tm_file}" @@ -2137,6 +2337,14 @@ sparc64-*-netbsd*) extra_options="${extra_options} sparc/long-double-switch.opt" tmake_file="${tmake_file} sparc/t-netbsd64" ;; +spu-*-elf*) + tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h" + tmake_file="spu/t-spu-elf" + extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.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" + ;; strongarm-*-elf*) tm_file="arm/strongarm-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" tmake_file="arm/t-arm arm/t-strongarm-elf" @@ -2321,6 +2529,9 @@ if test x$with_cpu = x ; then # A Cirrus ARM variant. with_cpu="ep9312" ;; + i386-*-*) + with_cpu=i386 + ;; i486-*-*) with_cpu=i486 ;; @@ -2372,13 +2583,26 @@ if test x$with_cpu = x ; then pentium_m-*) with_cpu=pentium-m ;; - *) + pentiumpro-*) with_cpu=pentiumpro ;; + *) + with_cpu=generic + ;; esac ;; x86_64-*-*) - with_cpu=k8 + case ${target_noncanonical} in + k8-*|opteron-*|athlon_64-*) + with_cpu=k8 + ;; + nocona-*) + with_cpu=nocona + ;; + *) + with_cpu=generic + ;; + esac ;; alphaev6[78]*-*-*) with_cpu=ev67 @@ -2403,9 +2627,6 @@ if test x$with_cpu = x ; then ;; sparc*-*-*) with_cpu="`echo ${target} | sed 's/-.*$//'`" - if [ x$with_cpu = xsparc64 ]; then - with_cpu=v9 - fi ;; esac fi @@ -2456,7 +2677,7 @@ case "${target}" in ;; arm*-*-*) - supported_defaults="arch cpu float tune fpu abi" + supported_defaults="arch cpu float tune fpu abi mode" for which in cpu tune; do # See if it matches any of the entries in arm-cores.def eval "val=\$with_$which" @@ -2524,6 +2745,17 @@ case "${target}" in ;; esac + case "$with_mode" in + "" \ + | arm | thumb ) + #OK + ;; + *) + echo "Unknown mode used in --with-mode=$with_mode" + 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 @@ -2584,13 +2816,21 @@ case "${target}" in for which in arch cpu tune; do eval "val=\$with_$which" case ${val} in - "" | i386 | i486 \ + i386 | i486 \ | 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 | k8 | opteron \ - | athlon64 | athlon-fx | prescott | pentium-m \ - | pentium4m | pentium3m| nocona) + | athlon-4 | athlon-xp | athlon-mp \ + | prescott | pentium-m | pentium4m | pentium3m) + case "${target}" in + x86_64-*-*) + echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2 + exit 1 + ;; + esac + # OK + ;; + "" | k8 | opteron | athlon64 | athlon-fx | nocona | generic) # OK ;; *) @@ -2634,6 +2874,25 @@ case "${target}" in esac ;; + mt-*-*) + supported_defaults="arch" + + case "$with_arch" in + "" \ + | ms1-64-001 \ + | ms1-16-002 \ + | ms1-16-003 \ + | ms2 \ + | "") + # OK + ;; + *) + echo "Unknown arch used in --with-arch=$with_arch" 1>&2 + exit 1 + ;; + esac + ;; + powerpc*-*-* | rs6000-*-*) supported_defaults="cpu float tune" @@ -2649,7 +2908,7 @@ case "${target}" in eval "with_$which=405" ;; "" | common \ - | power | power[2345] | powerpc | powerpc64 \ + | power | power[23456] | power6x | powerpc | powerpc64 \ | rios | rios1 | rios2 | rsc | rsc1 | rs64a \ | 401 | 403 | 405 | 405fp | 440 | 440fp | 505 \ | 601 | 602 | 603 | 603e | ec603e | 604 \ @@ -2694,7 +2953,7 @@ case "${target}" in sh[123456ble]-*-* | sh-*-*) supported_defaults="cpu" - case "`echo $with_cpu | tr A-Z_ a-z- | sed s/sh/m/`" in + case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu ) # OK ;; @@ -2720,7 +2979,7 @@ case "${target}" in "" | sparc | sparcv9 | sparc64 | sparc86x \ | v7 | cypress | v8 | supersparc | sparclite | f930 \ | f934 | hypersparc | sparclite86x | sparclet | tsc701 \ - | v9 | ultrasparc | ultrasparc3) + | v9 | ultrasparc | ultrasparc3 | niagara) # OK ;; *) @@ -2778,25 +3037,25 @@ case ${target} in case "x$with_cpu" in x) # The most generic - target_cpu_default2="(MASK_68020|MASK_68881|MASK_BITFIELD)" + target_cpu_default2="(MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)" ;; xm68020) - target_cpu_default2="(MASK_68020|MASK_68881|MASK_BITFIELD)" + target_cpu_default2="(MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)" ;; xm68030) - target_cpu_default2="(MASK_68030|MASK_68020|MASK_68881|MASK_BITFIELD)" + target_cpu_default2="(MASK_68030|MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)" ;; xm68040) - target_cpu_default2="(MASK_68040|MASK_68040_ONLY|MASK_68020|MASK_68881|MASK_BITFIELD)" + target_cpu_default2="(MASK_68040|MASK_68040_ONLY|MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)" ;; xm68060) - target_cpu_default2="(MASK_68060|MASK_68040_ONLY|MASK_68020|MASK_68881|MASK_BITFIELD)" + target_cpu_default2="(MASK_68060|MASK_68040_ONLY|MASK_68020|MASK_68010|MASK_68881|MASK_BITFIELD)" ;; xm68020-40) - target_cpu_default2="(MASK_BITFIELD|MASK_68881|MASK_68020|MASK_68040)" + target_cpu_default2="(MASK_BITFIELD|MASK_68881|MASK_68020|MASK_68010|MASK_68040)" ;; xm68020-60) - target_cpu_default2="(MASK_BITFIELD|MASK_68881|MASK_68020|MASK_68040|MASK_68060)" + target_cpu_default2="(MASK_BITFIELD|MASK_68881|MASK_68020|MASK_68010|MASK_68040|MASK_68060)" ;; *) echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2 @@ -2850,6 +3109,11 @@ case ${target} in fi ;; + sh[123456ble]*-*-* | sh-*-*) + c_target_objs="${c_target_objs} sh-c.o" + cxx_target_objs="${cxx_target_objs} sh-c.o" + ;; + sparc*-*-*) # Some standard aliases. case x$with_cpu in @@ -2888,6 +3152,7 @@ do ;; *) echo "This target does not support --with-$option." 2>&1 + echo "Valid --with options are: $supported_defaults" 2>&1 exit 1 ;; esac