X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gcc%2Fconfig.gcc;h=8099ed790b3b798d2e2b039aba46f7fe0d5175a0;hb=d67ce16aa503636361fee66cb0c5db610e41c002;hp=f87f1251561159cd6ced5999d88a8763b7dbc2f0;hpb=80cf2e08cc4ae44ac8d15d62191a867f2a60b162;p=gcc.git diff --git a/gcc/config.gcc b/gcc/config.gcc index f87f1251561..8099ed790b3 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -96,6 +96,9 @@ # out_file The name of the machine description C support # file, if different from "$cpu_type/$cpu_type.c". # +# common_out_file The name of the source file for code shared between +# the compiler proper and the driver. +# # md_file The name of the machine-description file, if # different from "$cpu_type/$cpu_type.md". # @@ -192,8 +195,12 @@ # # target_has_targetcm Set to yes or no depending on whether the target # has its own definition of targetcm. +# +# target_has_targetm_common Set to yes or no depending on whether the +# target has its own definition of targetm_common. out_file= +common_out_file= tmake_file= extra_headers= user_headers_inc_next_pre= @@ -210,6 +217,7 @@ c_target_objs= cxx_target_objs= fortran_target_objs= target_has_targetcm=no +target_has_targetm_common=yes tm_defines= xm_defines= libgcc_tm_file= @@ -237,7 +245,10 @@ md_file= # Obsolete configurations. case ${target} in - i[34567]86-*-interix3* \ + alpha*-dec-osf5.1* \ + | i[34567]86-*-interix3* \ + | mips-sgi-irix6.5 \ + | mips*-*-openbsd* \ | score-* \ | *-*-solaris2.8* \ ) @@ -269,6 +280,7 @@ case ${target} in | *-*-linux*oldld* \ | *-*-rtemsaout* \ | *-*-rtemscoff* \ + | *-*-solaris2 \ | *-*-solaris2.[0-7] \ | *-*-solaris2.[0-7].* \ | *-*-sysv* \ @@ -289,6 +301,7 @@ case ${target} in m32c*-*-*) cpu_type=m32c tmake_file=m32c/t-m32c + target_has_targetm_common=no ;; alpha*-*-*) cpu_type=alpha @@ -309,6 +322,7 @@ avr-*-*) cpu_type=avr c_target_objs="avr-c.o" cxx_target_objs="avr-c.o" + extra_options="${extra_options} avr/avr-tables.opt" ;; bfin*-*) cpu_type=bfin @@ -320,6 +334,7 @@ frv*) cpu_type=frv extra_options="${extra_options} g.opt" ;; moxie*) cpu_type=moxie + target_has_targetm_common=no ;; fido-*-*) cpu_type=m68k @@ -330,13 +345,15 @@ i[34567]86-*-*) cpu_type=i386 c_target_objs="i386-c.o" cxx_target_objs="i386-c.o" + need_64bit_hwint=yes extra_options="${extra_options} fused-madd.opt" extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h immintrin.h x86intrin.h avxintrin.h xopintrin.h ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h - abmintrin.h bmiintrin.h tbmintrin.h" + lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h + avx2intrin.h fmaintrin.h" ;; x86_64-*-*) cpu_type=i386 @@ -348,7 +365,8 @@ x86_64-*-*) nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h immintrin.h x86intrin.h avxintrin.h xopintrin.h ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h - abmintrin.h bmiintrin.h tbmintrin.h" + lzcntintrin.h bmiintrin.h tbmintrin.h bmi2intrin.h + avx2intrin.h fmaintrin.h" need_64bit_hwint=yes ;; ia64-*-*) @@ -392,11 +410,11 @@ powerpc*-*-*) cpu_is_64bit=yes ;; esac - extra_options="${extra_options} g.opt fused-madd.opt" + extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt" ;; rs6000*-*-*) need_64bit_hwint=yes - extra_options="${extra_options} g.opt fused-madd.opt" + extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt" ;; score*-*-*) cpu_type=score @@ -404,6 +422,9 @@ score*-*-*) ;; sparc*-*-*) cpu_type=sparc + c_target_objs="sparc-c.o" + cxx_target_objs="sparc-c.o" + extra_headers="visintrin.h" need_64bit_hwint=yes ;; spu*-*-*) @@ -420,6 +441,14 @@ sh[123456789lbe]*-*-* | sh-*-*) cpu_type=sh need_64bit_hwint=yes ;; +v850*-*-*) + cpu_type=v850 + ;; +tic6x-*-*) + cpu_type=c6x + extra_headers="c6x_intrinsics.h" + extra_options="${extra_options} c6x/c6x-tables.opt" + ;; xtensa*-*-*) extra_options="${extra_options} fused-madd.opt" ;; @@ -673,12 +702,43 @@ case ${target} in tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC" ;; *-*-solaris2*) + # i?86-*-solaris2* needs to insert headers between cpu default and + # Solaris 2 specific ones. + sol2_tm_file="dbxelf.h elfos.h ${cpu_type}/sysv4.h sol2.h ${cpu_type}/sol2.h" + case ${target} in + *-*-solaris2.1[0-9]*) + sol2_tm_file="${sol2_tm_file} sol2-10.h" + use_gcc_stdint=wrap + ;; + *) + use_gcc_stdint=provide + ;; + esac + if test x$gnu_ld = xyes; then + tm_file="usegld.h ${tm_file}" + fi + if test x$gas = xyes; then + tm_file="usegas.h ${tm_file}" + fi + tm_p_file="${tm_p_file} sol2-protos.h" + tmake_file="${tmake_file} t-sol2 t-slibgcc-dummy" + c_target_objs="${c_target_objs} sol2-c.o" + cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o" + extra_objs="sol2.o sol2-stubs.o" extra_options="${extra_options} sol2.opt" + case ${enable_threads}:${have_pthread_h}:${have_thread_h} in + "":yes:* | yes:yes:* ) + thread_file=posix + ;; + esac ;; *-*-*vms*) extra_options="${extra_options} vms/vms.opt" xmake_file=vms/x-vms tmake_file="vms/t-vms" + extra_objs="vms.o" + target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c" + tm_p_file="${tm_p_file} vms/vms-protos.h" if test x$gnu_ld != xyes; then # Build wrappers for native case. extra_programs="ld\$(exeext) ar\$(exeext)" @@ -704,29 +764,19 @@ case ${target} in esac case ${target} in -# Support site-specific machine types. -*local*) - rest=`echo ${target} | sed -e "s/$cpu_type-//"` - tm_file=${cpu_type}/$rest.h - if test -f $srcdir/config/${cpu_type}/xm-$rest.h - then xm_file=${cpu_type}/xm-$rest.h - fi - if test -f $srcdir/config/${cpu_type}/t-$rest - then tmake_file=${cpu_type}/t-$rest - fi - ;; alpha*-*-linux*) tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h" extra_options="${extra_options} alpha/elf.opt" target_cpu_default="MASK_GAS" - tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee alpha/t-linux" + tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee alpha/t-linux" + extra_parts="${extra_parts} crtfastmath.o" ;; alpha*-*-freebsd*) tm_file="${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h" extra_options="${extra_options} alpha/elf.opt" target_cpu_default="MASK_GAS" - tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee" - extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o" + tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee" + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o crtfastmath.o" ;; alpha*-*-netbsd*) tm_file="${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h" @@ -748,12 +798,14 @@ alpha*-dec-osf5.1*) then tm_file="${tm_file} dbx.h" fi - if test x$gas != xyes + # mips-tfile and mips-tdump are only used with the native assembler + # and require the Tru64 UNIX , so only build native. + if test x$gas != xyes && test x${host} = x${target} then extra_passes="mips-tfile mips-tdump" fi use_collect2=yes - tmake_file="alpha/t-alpha alpha/t-ieee alpha/t-crtfm alpha/t-osf5" + tmake_file="t-slibgcc-dummy" tm_file="${tm_file} alpha/osf5.h" tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1" extra_options="${extra_options} rpath.opt alpha/osf5.opt" @@ -762,7 +814,6 @@ alpha*-dec-osf5.1*) case ${enable_threads} in "" | yes | posix) thread_file='posix' - tmake_file="${tmake_file} alpha/t-osf-pthread" ;; esac ;; @@ -820,8 +871,8 @@ arm*-*-linux*) # ARM GNU/Linux with ELF tmake_file="$tmake_file arm/t-linux" ;; esac + with_tls=${with_tls:-gnu} tm_file="$tm_file arm/aout.h arm/arm.h" - tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" ;; arm*-*-uclinux*) # ARM ucLinux tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h" @@ -839,12 +890,10 @@ arm*-*-uclinux*) # ARM ucLinux default_use_cxa_atexit=yes esac tm_file="$tm_file arm/aout.h arm/arm.h" - tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" ;; arm*-*-ecos-elf) tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/ecos-elf.h" tmake_file="arm/t-arm arm/t-arm-elf" - tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" ;; arm*-*-eabi* | arm*-*-symbianelf* ) # The BPABI long long divmod functions return a 128-bit value in @@ -870,17 +919,14 @@ arm*-*-eabi* | arm*-*-symbianelf* ) ;; esac tm_file="${tm_file} arm/aout.h arm/arm.h" - tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" ;; arm*-*-rtems*) tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h newlib-stdint.h" tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems" - tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" ;; arm*-*-elf) tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h" tmake_file="arm/t-arm arm/t-arm-elf" - tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp" ;; arm*-wince-pe*) tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h arm/pe.h arm/wince-pe.h" @@ -889,16 +935,18 @@ arm*-wince-pe*) extra_objs="pe.o" ;; avr-*-rtems*) - tm_file="avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h" + tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h" + libgcc_tm_file="$libgcc_tm_file avr/avr-lib.h" tmake_file="avr/t-avr t-rtems avr/t-rtems" extra_gcc_objs="driver-avr.o avr-devices.o" - extra_objs="avr-devices.o" + extra_objs="avr-devices.o avr-log.o" ;; avr-*-*) - tm_file="avr/avr.h dbxelf.h newlib-stdint.h" + tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h newlib-stdint.h" + libgcc_tm_file="$libgcc_tm_file avr/avr-lib.h" use_gcc_stdint=wrap extra_gcc_objs="driver-avr.o avr-devices.o" - extra_objs="avr-devices.o" + extra_objs="avr-devices.o avr-log.o" ;; bfin*-elf*) tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h" @@ -976,26 +1024,28 @@ moxie-*-elf) gnu_ld=yes tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" extra_parts="crti.o crtn.o crtbegin.o crtend.o" - tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp" + tmake_file="${tmake_file} moxie/t-moxie" ;; moxie-*-uclinux*) gas=yes gnu_ld=yes tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h" extra_parts="crti.o crtn.o crtbegin.o crtend.o" - tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp" + tmake_file="${tmake_file} moxie/t-moxie" ;; moxie-*-rtems*) - tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp t-rtems" + tmake_file="${tmake_file} moxie/t-moxie t-rtems" tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h" ;; h8300-*-rtems*) tmake_file="h8300/t-h8300 h8300/t-elf t-rtems h8300/t-rtems" tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h" + libgcc_tm_file="$libgcc_tm_file h8300/h8300-lib.h" ;; h8300-*-elf*) tmake_file="h8300/t-h8300 h8300/t-elf" tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h" + libgcc_tm_file="$libgcc_tm_file h8300/h8300-lib.h" ;; hppa*64*-*-linux*) target_cpu_default="MASK_PA_11|MASK_PA_20" @@ -1165,24 +1215,25 @@ hppa[12]*-*-hpux11*) fi ;; i[34567]86-*-darwin*) - need_64bit_hwint=yes need_64bit_isa=yes # Baseline choice for a machine that allows m64 support. with_cpu=${with_cpu:-core2} - tmake_file="${tmake_file} t-slibgcc-darwin i386/t-crtpc i386/t-crtfm" + tmake_file="${tmake_file} t-slibgcc-dummy" + libgcc_tm_file="$libgcc_tm_file i386/darwin-lib.h" ;; x86_64-*-darwin*) with_cpu=${with_cpu:-core2} - tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc-darwin i386/t-crtpc i386/t-crtfm" + tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc-dummy" tm_file="${tm_file} ${cpu_type}/darwin64.h" + libgcc_tm_file="$libgcc_tm_file i386/darwin-lib.h" ;; i[34567]86-*-elf*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h" - tmake_file="${tmake_file} i386/t-i386elf t-svr4" + tmake_file="${tmake_file} i386/t-i386elf i386/t-crtstuff t-svr4" ;; x86_64-*-elf*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h" - tmake_file="${tmake_file} i386/t-i386elf t-svr4" + tmake_file="${tmake_file} i386/t-i386elf i386/t-crtstuff t-svr4" ;; i[34567]86-*-freebsd*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h" @@ -1229,10 +1280,25 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i tm_file="${tm_file} i386/x86-64.h i386/gnu-user64.h i386/linux64.h" tm_defines="${tm_defines} TARGET_BI_ARCH=1" tmake_file="${tmake_file} i386/t-linux64" - need_64bit_hwint=yes + x86_multilibs="${with_multilib_list}" + if test "$x86_multilibs" = "default"; then + x86_multilibs="m64,m32" + fi + x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'` + for x86_multilib in ${x86_multilibs}; do + case ${x86_multilib} in + m32 | m64 | mx32) + TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}" + ;; + *) + echo "--with-multilib-list=${x86_with_multilib} not supported." + exit 1 + esac + done + TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'` need_64bit_isa=yes case X"${with_cpu}" in - Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver1|Xbtver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3) + Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver2|Xbdver1|Xbtver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3) ;; X) if test x$with_cpu_64 = x; then @@ -1241,7 +1307,7 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i ;; *) echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 - echo "generic atom core2 corei7 corei7-avx nocona x86-64 bdver1 btver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2 + echo "generic atom core2 corei7 corei7-avx nocona x86-64 bdver2 bdver1 btver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2 exit 1 ;; esac @@ -1249,24 +1315,57 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i tm_file="${tm_file} i386/gnu-user.h i386/linux.h" fi ;; - i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h" ;; - i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;; - i[34567]86-*-kopensolaris*-gnu) tm_file="${tm_file} i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h" ;; - i[34567]86-*-gnu*) tm_file="$tm_file i386/gnu-user.h gnu.h i386/gnu.h";; + i[34567]86-*-knetbsd*-gnu) + tm_file="${tm_file} i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h" + ;; + i[34567]86-*-kfreebsd*-gnu) + tm_file="${tm_file} i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h" + ;; + i[34567]86-*-kopensolaris*-gnu) + tm_file="${tm_file} i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h" + ;; + i[34567]86-*-gnu*) + tm_file="$tm_file i386/gnu-user.h gnu.h i386/gnu.h" + ;; esac - tmake_file="${tmake_file} i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules" + tmake_file="${tmake_file} i386/t-crtstuff" + # This is a hack to avoid a configuration mismatch + # until the toplevel libgcc move is complete. + extra_parts="${extra_parts} crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" ;; x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \ i386/x86-64.h i386/gnu-user64.h" case ${target} in x86_64-*-linux*) - tm_file="${tm_file} linux.h i386/linux64.h" - default_gnu_indirect_function=glibc-2011 ;; - x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;; - x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;; + tm_file="${tm_file} linux.h i386/linux64.h" + # Assume modern glibc + default_gnu_indirect_function=yes + ;; + x86_64-*-kfreebsd*-gnu) + tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h" + ;; + x86_64-*-knetbsd*-gnu) + tm_file="${tm_file} knetbsd-gnu.h" + ;; esac - tmake_file="${tmake_file} i386/t-linux64 i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules" + tmake_file="${tmake_file} i386/t-linux64 i386/t-crtstuff" + x86_multilibs="${with_multilib_list}" + if test "$x86_multilibs" = "default"; then + x86_multilibs="m64,m32" + fi + x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'` + for x86_multilib in ${x86_multilibs}; do + case ${x86_multilib} in + m32 | m64 | mx32) + TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}" + ;; + *) + echo "--with-multilib-list=${x86_with_multilib} not supported." + exit 1 + esac + done + TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'` ;; i[34567]86-pc-msdosdjgpp*) xm_file=i386/xm-djgpp.h @@ -1287,26 +1386,6 @@ i[34567]86-*-lynxos*) gnu_ld=yes gas=yes ;; -i[3456x]86-*-netware*) - tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h tm-dwarf2.h i386/netware.h" - tmake_file="${tmake_file} i386/t-netware" - extra_objs=netware.o - extra_options="${extra_options} i386/netware.opt" - case /${with_ld} in - */nwld) - extra_objs="$extra_objs nwld.o" - tm_file="${tm_file} i386/nwld.h" - tmake_file="${tmake_file} i386/t-nwld" - extra_parts="crt0.o libgcc.def libc.def libcpre.def posixpre.def" - ;; - esac - case x${enable_threads} in - x | xyes | xposix) thread_file='posix';; - xnks) thread_file='nks';; - xno) ;; - *) echo 'Unknown thread configuration for NetWare' >&2; exit 1;; - esac - ;; i[34567]86-*-nto-qnx*) tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h" extra_options="${extra_options} i386/nto.opt" @@ -1316,11 +1395,10 @@ i[34567]86-*-nto-qnx*) ;; i[34567]86-*-rtems*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h i386/rtemself.h rtems.h newlib-stdint.h" - extra_parts="crtbegin.o crtend.o crti.o crtn.o" - tmake_file="${tmake_file} i386/t-rtems-i386 i386/t-crtstuff t-rtems" + tmake_file="${tmake_file} i386/t-rtems t-rtems" ;; -i[34567]86-*-solaris2*) - tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/sysv4.h sol2.h" +i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*) + tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file}" # Set default arch_32 to pentium4, tune_32 to generic like the other # i386 targets, although config.guess defaults to i386-pc-solaris2*. case ${target} in @@ -1336,44 +1414,12 @@ i[34567]86-*-solaris2*) with_tune_32=${with_tune_32:-generic} case ${target} in *-*-solaris2.1[0-9]*) - tm_file="${tm_file} sol2-10.h" - ;; - esac - tm_file="${tm_file} i386/sol2.h" - if test x$gnu_ld = xyes; then - tm_file="${tm_file} sol2-gld.h" - fi - if test x$gas = xyes; then - tm_file="${tm_file} i386/sol2-gas.h" - fi - tmake_file="${tmake_file} t-sol2 t-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 - tmake_file="$tmake_file t-slibgcc-elf-ver" - tm_defines="${tm_defines} TARGET_GNU_LD=1" - else - tmake_file="$tmake_file t-slibgcc-sld" - fi - if test x$gas = xyes; then - tm_file="usegas.h ${tm_file}" - fi - tm_file="$tm_file tm-dwarf2.h" - case ${target} in - *-*-solaris2.1[0-9]*) - tm_file="${tm_file} i386/x86-64.h i386/sol2-10.h" + tm_file="${tm_file} i386/x86-64.h i386/sol2-bi.h sol2-bi.h" tm_defines="${tm_defines} TARGET_BI_ARCH=1" - tmake_file="$tmake_file i386/t-sol2-10" - # i386/t-crtstuff only affects libgcc. Its inclusion - # depends on a runtime test and is thus performed in - # libgcc/configure.ac instead. - need_64bit_hwint=yes + tmake_file="$tmake_file i386/t-sol2-64" need_64bit_isa=yes - use_gcc_stdint=wrap case X"${with_cpu}" in - Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver1|Xbtver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3) + Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver2|Xbdver1|Xbtver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3) ;; X) if test x$with_cpu_64 = x; then @@ -1382,19 +1428,11 @@ i[34567]86-*-solaris2*) ;; *) echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 - echo "generic atom core2 corei7 corei7-avx nocona x86-64 bdver1 btver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2 + echo "generic atom core2 corei7 corei7-avx nocona x86-64 bdver2 bdver1 btver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2 exit 1 ;; esac ;; - *) - use_gcc_stdint=provide - ;; - esac - case ${enable_threads}:${have_pthread_h}:${have_thread_h} in - "":yes:* | yes:yes:* ) - thread_file=posix - ;; esac ;; i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae) @@ -1425,7 +1463,7 @@ i[34567]86-*-cygwin*) else tmake_dlldir_file="i386/t-dlldir-x" fi - tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-cygming i386/t-cygwin t-dfprules" + tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-cygming i386/t-cygwin" target_gtfiles="\$(srcdir)/config/i386/winnt.c" extra_options="${extra_options} i386/cygming.opt" extra_objs="winnt.o winnt-stubs.o" @@ -1441,7 +1479,6 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) xm_file=i386/xm-mingw32.h case ${target} in x86_64-*-* | *-w64-*) - need_64bit_hwint=yes need_64bit_isa=yes ;; *) @@ -1460,7 +1497,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) if test x$enable_targets = xall; then tm_defines="${tm_defines} TARGET_BI_ARCH=1" case X"${with_cpu}" in - Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver1|Xbtver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3) + Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver2|Xbdver1|Xbtver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3) ;; X) if test x$with_cpu_64 = x; then @@ -1469,7 +1506,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) ;; *) echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 - echo "generic atom core2 corei7 Xcorei7-avx nocona x86-64 bdver1 btver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2 + echo "generic atom core2 corei7 Xcorei7-avx nocona x86-64 bdver2 bdver1 btver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2 exit 1 ;; esac @@ -1491,7 +1528,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) else tmake_dlldir_file="i386/t-dlldir-x" fi - tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-cygming t-dfprules" + tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-cygming" case ${target} in x86_64-w64-*) tmake_file="${tmake_file} i386/t-mingw-w64" @@ -1526,13 +1563,6 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) tmake_file="i386/t-mingw-pthread ${tmake_file}" ;; esac - case ${target} in - x86_64-*-mingw*) - tmake_file="${tmake_file} i386/t-crtfm" - ;; - *) - ;; - esac case ${target} in *mingw32crt*) tm_file="${tm_file} i386/crtdll.h" @@ -1577,9 +1607,6 @@ ia64*-*-freebsd*) ia64*-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h" tmake_file="${tmake_file} ia64/t-ia64 t-libunwind ia64/t-glibc" - if test x$with_system_libunwind != xyes ; then - tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind" - fi target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" ;; @@ -1623,16 +1650,16 @@ iq2000*-*-elf*) ;; lm32-*-elf*) tm_file="dbxelf.h elfos.h ${tm_file}" - tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp" + tmake_file="${tmake_file} lm32/t-lm32" ;; lm32-*-rtems*) tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h" - tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp" + tmake_file="${tmake_file} lm32/t-lm32" tmake_file="${tmake_file} t-rtems" ;; lm32-*-uclinux*) tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h" - tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp" + tmake_file="${tmake_file} lm32/t-lm32" ;; m32r-*-elf*) tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" @@ -1781,7 +1808,7 @@ microblaze*-*-*) ;; mips-sgi-irix6.5*) tm_file="elfos.h ${tm_file} mips/iris6.h" - tmake_file="mips/t-iris mips/t-iris6 mips/t-slibgcc-irix" + tmake_file="mips/t-irix6 t-slibgcc-dummy" extra_options="${extra_options} rpath.opt mips/iris6.opt" target_cpu_default="MASK_ABICALLS" tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32" @@ -1805,7 +1832,7 @@ mips*-*-netbsd*) # NetBSD/mips, either endian. extra_options="${extra_options} netbsd.opt netbsd-elf.opt" ;; mips64*-*-linux* | mipsisa64*-*-linux*) - tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/linux.h mips/linux64.h" + tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/gnu-user64.h mips/linux64.h" tmake_file="${tmake_file} mips/t-linux64 mips/t-libgcc-mips16" tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32" case ${target} in @@ -1827,8 +1854,12 @@ mips64*-*-linux* | mipsisa64*-*-linux*) test x$with_llsc != x || with_llsc=yes ;; mips*-*-linux*) # Linux MIPS, either endian. - tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/linux.h" + tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h" tmake_file="${tmake_file} mips/t-libgcc-mips16" + if test x$enable_targets = xall; then + tm_file="${tm_file} mips/gnu-user64.h mips/linux64.h" + tmake_file="${tmake_file} mips/t-linux64" + fi case ${target} in mipsisa32r2*) tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33" @@ -1988,12 +2019,11 @@ picochip-*) ;; # port not yet contributed #powerpc-*-openbsd*) -# tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit " +# tmake_file="${tmake_file} rs6000/t-fprules" # extra_headers= # ;; powerpc-*-darwin*) extra_options="${extra_options} rs6000/darwin.opt" - extra_parts="crt2.o" case ${target} in *-darwin1[0-9]* | *-darwin[8-9]*) tmake_file="${tmake_file} rs6000/t-darwin8" @@ -2005,20 +2035,19 @@ powerpc-*-darwin*) *-darwin[0-6]*) ;; esac - tmake_file="${tmake_file} t-slibgcc-darwin" + tmake_file="${tmake_file} t-slibgcc-dummy" extra_headers=altivec.h ;; powerpc64-*-darwin*) extra_options="${extra_options} ${cpu_type}/darwin.opt" - extra_parts="crt2.o" - tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc-darwin" + tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc-dummy" tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h" extra_headers=altivec.h ;; powerpc-*-freebsd*) tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h rs6000/freebsd.h" - tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm rs6000/t-freebsd" - tmake_file="${tmake_file} t-slibgcc-libgcc rs6000/t-fprules-softfp soft-fp/t-softfp" + tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" + tmake_file="${tmake_file} t-slibgcc-libgcc" extra_options="${extra_options} rs6000/sysv4.opt" ;; powerpc-*-netbsd*) @@ -2036,47 +2065,47 @@ powerpc-*-eabispe*) powerpc-*-eabisimaltivec*) tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h rs6000/eabialtivec.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm" use_gcc_stdint=wrap ;; powerpc-*-eabisim*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" use_gcc_stdint=wrap ;; powerpc-*-elf*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" ;; powerpc-*-eabialtivec*) tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabialtivec.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm" use_gcc_stdint=wrap ;; powerpc-xilinx-eabi*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/singlefp.h rs6000/xfpu.h rs6000/xilinx.h" extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx" use_gcc_stdint=wrap ;; powerpc-*-eabi*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" use_gcc_stdint=wrap ;; powerpc-*-rtems*) tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/rtems.h rtems.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-rtems t-rtems rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-rtems t-rtems rs6000/t-ppccomm" ;; powerpc-*-linux* | powerpc64-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h rs6000/sysv4.h" extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="t-dfprules rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" maybe_biarch=yes case ${target} in powerpc64-*-linux*spe* | powerpc64-*-linux*paired*) @@ -2104,7 +2133,7 @@ powerpc-*-linux* | powerpc64-*-linux*) tm_file="${tm_file} rs6000/linux.h glibc-stdint.h" ;; esac - tmake_file="${tmake_file} t-slibgcc-libgcc rs6000/t-fprules-softfp soft-fp/t-softfp" + tmake_file="${tmake_file} t-slibgcc-libgcc" case ${target} in powerpc*-*-linux*altivec*) tm_file="${tm_file} rs6000/linuxaltivec.h" ;; @@ -2119,7 +2148,7 @@ powerpc-*-linux* | powerpc64-*-linux*) ;; powerpc-wrs-vxworks|powerpc-wrs-vxworksae) tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h" - tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppccomm rs6000/t-vxworks" + tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks" extra_options="${extra_options} rs6000/sysv4.opt" extra_headers=ppc-asm.h case ${target} in @@ -2144,18 +2173,18 @@ powerpc-*-lynxos*) ;; powerpcle-*-elf*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" ;; powerpcle-*-eabisim*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" use_gcc_stdint=wrap ;; powerpcle-*-eabi*) tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/e500.h" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" + tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" extra_options="${extra_options} rs6000/sysv4.opt" use_gcc_stdint=wrap ;; @@ -2206,11 +2235,14 @@ rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*) ;; rx-*-elf*) tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" - libgcc_tm_file="${libgcc_tm_file} rx/rx-abi.h" + libgcc_tm_file="${libgcc_tm_file} rx/rx-abi.h rx/rx-lib.h" tmake_file="${tmake_file} rx/t-rx" ;; s390-*-linux*) tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h" + if test x$enable_targets = xall; then + tmake_file="${tmake_file} s390/t-linux64" + fi ;; s390x-*-linux*) tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h" @@ -2235,8 +2267,7 @@ score-*-elf) gnu_ld=yes tm_file="dbxelf.h elfos.h score/elf.h score/score.h newlib-stdint.h" extra_parts="crti.o crtn.o crtbegin.o crtend.o" - tmake_file="${tmake_file} score/t-score-elf score/t-score-softfp soft-fp/t-softfp" - extra_objs="score7.o" + tmake_file="${tmake_file} score/t-score-elf" ;; sh-*-elf* | sh[12346l]*-*-elf* | \ sh-*-linux* | sh[2346lbe]*-*-linux* | \ @@ -2428,35 +2459,32 @@ sparc-*-elf*) tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h" case ${target} in *-leon-*) - tmake_file="sparc/t-leon" + tmake_file="sparc/t-sparc sparc/t-leon" ;; *-leon[3-9]*) - tmake_file="sparc/t-leon3" + tmake_file="sparc/t-sparc sparc/t-leon3" ;; *) - tmake_file="sparc/t-elf" + tmake_file="sparc/t-sparc sparc/t-elf" ;; esac - tmake_file="${tmake_file} sparc/t-crtfm" - extra_parts="crtbegin.o crtend.o" ;; sparc-*-rtems*) tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h" - tmake_file="sparc/t-elf sparc/t-crtfm t-rtems" - extra_parts="crtbegin.o crtend.o" + tmake_file="sparc/t-sparc sparc/t-elf t-rtems" ;; sparc-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h" extra_options="${extra_options} sparc/long-double-switch.opt" case ${target} in *-leon-*) - tmake_file="${tmake_file} sparc/t-leon" + tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon" ;; *-leon[3-9]*) - tmake_file="${tmake_file} sparc/t-leon3" + tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3" ;; *) - tmake_file="${tmake_file} sparc/t-linux" + tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux" ;; esac if test x$enable_targets = xall; then @@ -2465,98 +2493,63 @@ sparc-*-linux*) else tm_file="${tm_file} sparc/linux.h" fi - tmake_file="${tmake_file} sparc/t-crtfm" + extra_parts="${extra_parts} crtfastmath.o" ;; sparc-*-netbsdelf*) tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h" extra_options="${extra_options} netbsd.opt netbsd-elf.opt" extra_options="${extra_options} sparc/long-double-switch.opt" + tmake_file="${tmake_file} sparc/t-sparc" ;; sparc*-*-solaris2*) - tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sol2.h" - case ${target} in - *-*-solaris2.1[0-9]*) - tm_file="${tm_file} sol2-10.h" - use_gcc_stdint=wrap - ;; - *) - use_gcc_stdint=provide - ;; - esac - tm_file="${tm_file} sparc/sol2.h" + tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sol2-bi.h" case ${target} in sparc64-*-* | sparcv9-*-*) - tm_file="${tm_file} sparc/sol2-64.h" + tm_file="sparc/default-64.h ${tm_file}" ;; *) test x$with_cpu != x || with_cpu=v9 ;; esac - tm_file="${tm_file} sparc/sol2-bi.h" - if test x$gas = xyes; then - tm_file="${tm_file} sparc/sol2-gas.h sparc/sol2-gas-bi.h" - fi - if test x$gnu_ld = xyes; then - tm_file="${tm_file} sol2-gld.h sparc/sol2-gld-bi.h" - fi - tm_file="${tm_file} tm-dwarf2.h" - tmake_file="t-sol2 sparc/t-sol2 sparc/t-sol2-64 sparc/t-crtfm" - if test x$gnu_ld = xyes; then - tmake_file="$tmake_file t-slibgcc-elf-ver" - else - tmake_file="$tmake_file t-slibgcc-sld" - fi - if test x$gas = xyes; then - tm_file="usegas.h ${tm_file}" - fi - c_target_objs="sol2-c.o" - cxx_target_objs="sol2-c.o" - extra_objs="sol2.o" - tm_p_file="${tm_p_file} sol2-protos.h" - extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o" - case ${enable_threads}:${have_pthread_h}:${have_thread_h} in - "":yes:* | yes:yes:* ) - thread_file=posix - ;; - esac + tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2-64" ;; sparc-wrs-vxworks) tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h" - tmake_file="${tmake_file} sparc/t-vxworks" + tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks" ;; sparc64-*-elf*) tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h" extra_options="${extra_options} sparc/little-endian.opt" - tmake_file="${tmake_file} sparc/t-crtfm" - extra_parts="crtbegin.o crtend.o" + tmake_file="${tmake_file} sparc/t-sparc" ;; sparc64-*-rtems*) tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h" extra_options="${extra_options} sparc/little-endian.opt" - tmake_file="${tmake_file} sparc/t-crtfm t-rtems" - extra_parts="crtbegin.o crtend.o" + tmake_file="${tmake_file} sparc/t-sparc t-rtems" ;; sparc64-*-linux*) - tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/linux64.h" + tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default-64.h sparc/linux64.h" extra_options="${extra_options} sparc/long-double-switch.opt" - tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm" + tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux sparc/t-linux64" + extra_parts="${extra_parts} crtfastmath.o" ;; sparc64-*-freebsd*|ultrasparc-*-freebsd*) tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h" extra_options="${extra_options} sparc/long-double-switch.opt" - tmake_file="${tmake_file} sparc/t-crtfm" case "x$with_cpu" in xultrasparc) ;; x) with_cpu=ultrasparc ;; *) echo "$with_cpu not supported for freebsd target"; exit 1 ;; esac + extra_parts="${extra_parts} crtfastmath.o" + tmake_file="${tmake_file} sparc/t-sparc" ;; sparc64-*-netbsd*) tm_file="sparc/biarch64.h ${tm_file}" tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h" extra_options="${extra_options} netbsd.opt netbsd-elf.opt" extra_options="${extra_options} sparc/long-double-switch.opt" - tmake_file="${tmake_file} sparc/t-netbsd64" + tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64" ;; sparc64-*-openbsd*) tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h" @@ -2565,6 +2558,7 @@ sparc64-*-openbsd*) extra_options="${extra_options} sparc/little-endian.opt" gas=yes gnu_ld=yes with_cpu=ultrasparc + tmake_file="${tmake_file} sparc/t-sparc" ;; spu-*-elf*) tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h" @@ -2574,46 +2568,41 @@ spu-*-elf*) c_target_objs="${c_target_objs} spu-c.o" cxx_target_objs="${cxx_target_objs} spu-c.o" ;; -v850e1-*-*) - target_cpu_default="TARGET_CPU_v850e1" - tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h" - tm_p_file=v850/v850-protos.h - tmake_file=v850/t-v850e - md_file=v850/v850.md - extra_modes=v850/v850-modes.def - out_file=v850/v850.c - extra_options="${extra_options} v850/v850.opt" - if test x$stabs = xyes - then - tm_file="${tm_file} dbx.h" - fi +tic6x-*-elf) + tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h" + tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h" + libgcc_tm_file="${libgcc_tm_file} c6x/c6x-abi.h" + tmake_file="c6x/t-c6x c6x/t-c6x-elf" use_collect2=no - c_target_objs="v850-c.o" - cxx_target_objs="v850-c.o" - use_gcc_stdint=wrap ;; -v850e-*-*) - target_cpu_default="TARGET_CPU_v850e" - tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h" - tm_p_file=v850/v850-protos.h - tmake_file=v850/t-v850e - md_file=v850/v850.md - extra_modes=v850/v850-modes.def - out_file=v850/v850.c - extra_options="${extra_options} v850/v850.opt" - if test x$stabs = xyes - then - tm_file="${tm_file} dbx.h" - fi +tic6x-*-uclinux) + tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h" + tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h" + tm_file="${tm_file} ./sysroot-suffix.h" + libgcc_tm_file="${libgcc_tm_file} c6x/c6x-abi.h" + tmake_file="t-slibgcc-elf-ver t-sysroot-suffix" + tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux" use_collect2=no - c_target_objs="v850-c.o" - cxx_target_objs="v850-c.o" - use_gcc_stdint=wrap ;; -v850-*-*) - target_cpu_default="TARGET_CPU_generic" - tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" - tmake_file=v850/t-v850 +v850*-*-*) + case ${target} in + v850e2v3-*-*) + target_cpu_default="TARGET_CPU_v850e2v3" + ;; + v850e2-*-*) + target_cpu_default="TARGET_CPU_v850e2" + ;; + v850e1-*-* | v850es-*-*) + target_cpu_default="TARGET_CPU_v850e1" + ;; + v850e-*-*) + target_cpu_default="TARGET_CPU_v850e" + ;; + v850-*-*) + target_cpu_default="TARGET_CPU_generic" + ;; + esac + tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h" if test x$stabs = xyes then tm_file="${tm_file} dbx.h" @@ -2658,7 +2647,6 @@ xtensa*-*-linux*) ;; am33_2.0-*-linux*) tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h" - tmake_file="${tmake_file} mn10300/t-linux" gas=yes gnu_ld=yes extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" use_collect2=no @@ -2683,6 +2671,7 @@ esac case ${target} in i[34567]86-*-linux* | x86_64-*-linux*) tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386" + libgcc_tm_file="${libgcc_tm_file} i386/value-unwind.h" ;; i[34567]86-*-* | x86_64-*-*) tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386" @@ -2696,6 +2685,14 @@ if [ "$target_has_targetcm" = "no" ]; then cxx_target_objs="$cxx_target_objs default-c.o" fi +if [ "$common_out_file" = "" ]; then + if [ "$target_has_targetm_common" = "yes" ]; then + common_out_file="$cpu_type/$cpu_type-common.c" + else + common_out_file="default-common.c" + fi +fi + # Support for --with-cpu and related options (and a few unrelated options, # too). case ${with_cpu} in @@ -2762,6 +2759,10 @@ case ${target} in ;; i686-*-* | i786-*-*) case ${target_noncanonical} in + bdver2-*) + arch=bdver2 + cpu=bdver2 + ;; bdver1-*) arch=bdver1 cpu=bdver1 @@ -2855,6 +2856,10 @@ case ${target} in ;; x86_64-*-*) case ${target_noncanonical} in + bdver2-*) + arch=bdver2 + cpu=bdver2 + ;; bdver1-*) arch=bdver1 cpu=bdver1 @@ -3061,6 +3066,11 @@ if test x$with_schedule = x; then esac fi +# Support --enable-initfini-array. +if test x$enable_initfini_array = xyes; then + tm_file="${tm_file} initfini-array.h" +fi + # Validate and mark as valid any --with options supported # by this target. In order to use a particular --with option # you must list it in supported_defaults; validating the value @@ -3088,7 +3098,7 @@ case "${target}" in ;; arm*-*-*) - supported_defaults="arch cpu float tune fpu abi mode" + supported_defaults="arch cpu float tune fpu abi mode tls" for which in cpu tune; do # See if it matches any of the entries in arm-cores.def eval "val=\$with_$which" @@ -3171,6 +3181,17 @@ case "${target}" in ;; esac + case "$with_tls" in + "" \ + | gnu | gnu2) + # OK + ;; + *) + echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2 + exit 1 + ;; + esac + if test "x$with_arch" != x && test "x$with_cpu" != x; then echo "Warning: --with-arch overrides --with-cpu=$with_cpu" 1>&2 fi @@ -3279,8 +3300,9 @@ case "${target}" in ;; "" | x86-64 | generic | native \ | k8 | k8-sse3 | athlon64 | athlon64-sse3 | opteron \ - | opteron-sse3 | athlon-fx | bdver1 | btver1 | amdfam10 \ - | barcelona | nocona | core2 | corei7 | corei7-avx | atom) + | opteron-sse3 | athlon-fx | bdver2 | bdver1 | btver1 \ + | amdfam10 | barcelona | nocona | core2 | corei7 \ + | corei7-avx | core-avx-i | core-avx2 | atom) # OK ;; *) @@ -3467,7 +3489,8 @@ case "${target}" in | v8 | supersparc | hypersparc | leon \ | sparclite | f930 | f934 | sparclite86x \ | sparclet | tsc701 \ - | v9 | ultrasparc | ultrasparc3 | niagara | niagara2) + | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \ + | niagara3 | niagara4) # OK ;; *) @@ -3505,10 +3528,24 @@ case "${target}" in done ;; + tic6x-*-*) + supported_defaults="arch" + + case ${with_arch} in + "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x) + # OK + ;; + *) + echo "Unknown arch used in --with-arch=$with_arch." 1>&2 + exit 1 + ;; + esac + ;; + v850*-*-*) supported_defaults=cpu case ${with_cpu} in - "" | v850e | v850e1) + "" | v850e | v850e1 | v850e2 | v850es | v850e2v3) # OK ;; *) @@ -3555,24 +3592,19 @@ case ${target} in ;; i[34567]86-*-darwin* | x86_64-*-darwin*) - tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp" ;; i[34567]86-*-linux* | x86_64-*-linux* | \ i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \ i[34567]86-*-gnu*) - tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp i386/t-linux" + tmake_file="${tmake_file} i386/t-linux" ;; - i[34567]86-*-solaris2*) - tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp" + i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*) ;; i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*) - tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp" ;; i[34567]86-*-freebsd* | x86_64-*-freebsd*) - tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp" ;; ia64*-*-linux*) - tmake_file="${tmake_file} ia64/t-fprules-softfp soft-fp/t-softfp" ;; mips*-*-*) @@ -3636,20 +3668,21 @@ case ${target} in ;; v850*-*-*) - # FIXME: The v850 is "special" in that it does not support - # runtime CPU selection, only --with-cpu. case "x$with_cpu" in x) ;; - xv850e) + xv850e | xv850e1 | xv850e2 | xv850e2v3) target_cpu_default2="TARGET_CPU_$with_cpu" ;; + xv850es) + target_cpu_default2="TARGET_CPU_v850e1" + ;; esac ;; esac t= -all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu divide llsc mips-plt synci" +all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu divide llsc mips-plt synci tls" for option in $all_defaults do eval "val=\$with_"`echo $option | sed s/-/_/g`