X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gcc%2Fconfig.gcc;h=8099ed790b3b798d2e2b039aba46f7fe0d5175a0;hb=d67ce16aa503636361fee66cb0c5db610e41c002;hp=5ae4f970efea3cf39825d03500bf310fa0ae890d;hpb=183c38a4f948112f4e930a579e9fb7bbb0075f1f;p=gcc.git diff --git a/gcc/config.gcc b/gcc/config.gcc index 5ae4f970efe..8099ed790b3 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -84,12 +84,21 @@ # build-directory files by prefixing them with "./". # All other files should relative to $srcdir/config. # +# libgcc_tm_file A list of target macro files used only for code +# built for the target, not the host. These files +# are relative to $srcdir/../libgcc/config and +# must not have the same names as files in +# $srcdir/config. +# # tm_p_file Location of file with declarations for functions # in $out_file. # # 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". # @@ -183,8 +192,15 @@ # # gnu_ld Set to yes or no depending on whether the target # system normally uses GNU ld. +# +# 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= @@ -200,8 +216,11 @@ extra_options= 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= # Set this to force installation and use of collect2. use_collect2= # Set this to override the default target model. @@ -225,16 +244,22 @@ xm_file= md_file= # Obsolete configurations. -#case ${target} in -# ) -# if test "x$enable_obsolete" != xyes; then -# echo "*** Configuration ${target} is obsolete." >&2 -# echo "*** Specify --enable-obsolete to build it anyway." >&2 -# echo "*** Support will be REMOVED in the next major release of GCC," >&2 -# echo "*** unless a maintainer comes forward." >&2 -# exit 1 -# fi;; -#esac +case ${target} in + alpha*-dec-osf5.1* \ + | i[34567]86-*-interix3* \ + | mips-sgi-irix6.5 \ + | mips*-*-openbsd* \ + | score-* \ + | *-*-solaris2.8* \ + ) + if test "x$enable_obsolete" != xyes; then + echo "*** Configuration ${target} is obsolete." >&2 + echo "*** Specify --enable-obsolete to build it anyway." >&2 + echo "*** Support will be REMOVED in the next major release of GCC," >&2 + echo "*** unless a maintainer comes forward." >&2 + exit 1 + fi;; +esac # Unsupported targets list. Do not put an entry in this list unless # it would otherwise be caught by a more permissive pattern. The list @@ -242,16 +267,20 @@ md_file= case ${target} in i[34567]86-go32-* \ | i[34567]86-*-go32* \ + | m68k-*-uclinuxoldabi* \ | mips64orion*-*-rtems* \ | pdp11-*-bsd \ | sparc-hal-solaris2* \ | thumb-*-* \ + | *-*-freebsd[12] | *-*-freebsd[12].* \ + | *-*-freebsd*aout* \ | *-*-linux*aout* \ | *-*-linux*coff* \ | *-*-linux*libc1* \ | *-*-linux*oldld* \ | *-*-rtemsaout* \ | *-*-rtemscoff* \ + | *-*-solaris2 \ | *-*-solaris2.[0-7] \ | *-*-solaris2.[0-7].* \ | *-*-sysv* \ @@ -272,6 +301,7 @@ case ${target} in m32c*-*-*) cpu_type=m32c tmake_file=m32c/t-m32c + target_has_targetm_common=no ;; alpha*-*-*) cpu_type=alpha @@ -286,11 +316,13 @@ arm*-*-*) extra_headers="mmintrin.h arm_neon.h" c_target_objs="arm-c.o" cxx_target_objs="arm-c.o" + extra_options="${extra_options} arm/arm-tables.opt" ;; 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 @@ -302,22 +334,26 @@ frv*) cpu_type=frv extra_options="${extra_options} g.opt" ;; moxie*) cpu_type=moxie + target_has_targetm_common=no ;; fido-*-*) cpu_type=m68k extra_headers=math-68881.h + extra_options="${extra_options} m68k/m68k-tables.opt" ;; 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 @@ -329,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-*-*) @@ -349,6 +386,7 @@ m32r*-*-*) ;; m68k-*-*) extra_headers=math-68881.h + extra_options="${extra_options} m68k/m68k-tables.opt" ;; microblaze*-*-*) cpu_type=microblaze @@ -358,7 +396,7 @@ mips*-*-*) cpu_type=mips need_64bit_hwint=yes extra_headers="loongson.h" - extra_options="${extra_options} g.opt" + extra_options="${extra_options} g.opt mips/mips-tables.opt" ;; picochip-*-*) cpu_type=picochip @@ -372,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 @@ -384,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*-*-*) @@ -400,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" ;; @@ -472,6 +521,7 @@ case ${target} in c_target_objs="${c_target_objs} darwin-c.o" cxx_target_objs="${cxx_target_objs} darwin-c.o" fortran_target_objs="darwin-f.o" + target_has_targetcm=yes extra_objs="darwin.o" extra_gcc_objs="darwin-driver.o" default_use_cxa_atexit=yes @@ -480,15 +530,6 @@ case ${target} in "" | yes | posix) thread_file='posix' ;; esac ;; -*-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*) - # This is the place-holder for the generic a.out configuration - # of FreeBSD. No actual configuration resides here since - # there was only ever a bare-bones ix86 configuration for - # a.out and it exists solely in the machine-specific section. - # This place-holder must exist to avoid dropping into - # the generic ELF configuration of FreeBSD (i.e. it must be - # ordered before that section). - ;; *-*-freebsd*) # This is the generic ELF configuration of FreeBSD. Later # machine-specific sections may refine and add to this @@ -543,6 +584,7 @@ case ${target} in use_gcc_stdint=wrap ;; *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu) + extra_options="$extra_options gnu-user.opt" extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" gas=yes gnu_ld=yes @@ -561,8 +603,6 @@ case ${target} in case $target in *linux*) extra_options="$extra_options linux.opt";; - *) - tm_defines="$tm_defines SINGLE_LIBC";; esac case $target in *-*-*android*) @@ -657,11 +697,53 @@ case ${target} in use_gcc_stdint=wrap ;; *-*-uclinux*) + extra_options="$extra_options gnu-user.opt" use_gcc_stdint=wrap 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)" + tmake_file="$tmake_file vms/t-vmsnative" + fi ;; *-*-vxworks*) tmake_file=t-vxworks @@ -682,35 +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" - ;; -alpha*-*-gnu*) - tm_file="$tm_file alpha/elf.h alpha/linux.h alpha/linux-elf.h gnu.h glibc-stdint.h alpha/gnu.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" + 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" @@ -732,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" @@ -746,34 +814,22 @@ alpha*-dec-osf5.1*) case ${enable_threads} in "" | yes | posix) thread_file='posix' - tmake_file="${tmake_file} alpha/t-osf-pthread" ;; esac ;; alpha64-dec-*vms*) tm_file="${tm_file} alpha/vms.h alpha/vms64.h" xm_file="alpha/xm-vms.h vms/xm-vms64.h" - tmake_file="alpha/t-alpha vms/t-vms alpha/t-vms alpha/t-ieee" - xmake_file=vms/x-vms - exeext=.exe - install_headers_dir=install-headers-cp - extra_options="${extra_options} vms/vms.opt" + tmake_file="${tmake_file} alpha/t-alpha vms/t-vms64 alpha/t-vms alpha/t-ieee" ;; alpha*-dec-*vms*) tm_file="${tm_file} alpha/vms.h" xm_file="alpha/xm-vms.h" - tmake_file="alpha/t-alpha vms/t-vms alpha/t-vms alpha/t-ieee" - xmake_file=vms/x-vms - exeext=.exe - install_headers_dir=install-headers-cp - extra_options="${extra_options} vms/vms.opt" - ;; -arc-*-elf*) - tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" - extra_parts="crtinit.o crtfini.o" + tmake_file="${tmake_file} alpha/t-alpha alpha/t-vms alpha/t-ieee" ;; arm-wrs-vxworks) tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h" + extra_options="${extra_options} arm/vxworks.opt" tmake_file="${tmake_file} arm/t-arm arm/t-vxworks" ;; arm*-*-freebsd*) @@ -785,13 +841,6 @@ arm*-*-netbsdelf*) extra_options="${extra_options} netbsd.opt netbsd-elf.opt" tmake_file="${tmake_file} arm/t-arm arm/t-netbsd" ;; -arm*-*-netbsd*) - tm_file="arm/aout.h arm/arm.h netbsd.h netbsd-aout.h arm/netbsd.h" - extra_options="${extra_options} netbsd.opt" - tmake_file="t-netbsd arm/t-arm arm/t-netbsd" - extra_parts="" - use_collect2=yes - ;; arm*-*-linux*) # ARM GNU/Linux with ELF tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" case $target in @@ -803,7 +852,7 @@ arm*-*-linux*) # ARM GNU/Linux with ELF case ${target} in arm*-*-linux-*eabi) tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h" - tm_file="$tm_file ../../libgcc/config/arm/bpabi-lib.h" + libgcc_tm_file="$libgcc_tm_file arm/bpabi-lib.h" tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc" # Define multilib configuration for arm-linux-androideabi. case ${target} in @@ -822,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" @@ -831,7 +880,7 @@ arm*-*-uclinux*) # ARM ucLinux case ${target} in arm*-*-uclinux*eabi) tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h" - tm_file="$tm_file ../../libgcc/config/arm/bpabi-lib.h" + libgcc_tm_file="$libgcc_tm_file arm/bpabi-lib.h" tmake_file="$tmake_file arm/t-bpabi" # The BPABI long long divmod functions return a 128-bit value in # registers r0-r3. Correctly modeling that requires the use of @@ -841,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 @@ -855,7 +902,7 @@ arm*-*-eabi* | arm*-*-symbianelf* ) need_64bit_hwint=yes default_use_cxa_atexit=yes tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h" - tm_file="$tm_file ../../libgcc/config/arm/bpabi-lib.h" + libgcc_tm_file="$libgcc_tm_file arm/bpabi-lib.h" tmake_file="arm/t-arm arm/t-arm-elf" case ${target} in arm*-*-eabi*) @@ -865,23 +912,21 @@ arm*-*-eabi* | arm*-*-symbianelf* ) ;; arm*-*-symbianelf*) tm_file="${tm_file} arm/symbian.h" + libgcc_tm_file="$libgcc_tm_file arm/symbian-lib.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} arm/t-symbian" ;; 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,24 +934,19 @@ arm*-wince-pe*) extra_options="${extra_options} arm/pe.opt" extra_objs="pe.o" ;; -arm-*-pe*) - tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h arm/pe.h newlib-stdint.h" - tmake_file="arm/t-arm arm/t-pe" - use_gcc_stdint=wrap - extra_options="${extra_options} arm/pe.opt" - 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" @@ -963,11 +1003,6 @@ crisv32-*-linux* | cris-*-linux*) ;; esac ;; -crx-*-elf) - tm_file="elfos.h newlib-stdint.h ${tm_file}" - extra_parts="crtbegin.o crtend.o" - use_collect2=no - ;; fr30-*-elf) tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" tmake_file=fr30/t-fr30 @@ -975,40 +1010,42 @@ fr30-*-elf) ;; frv-*-elf) tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" - tm_file="${tm_file} ../../libgcc/config/frv/frv-abi.h" + libgcc_tm_file="${libgcc_tm_file} frv/frv-abi.h" tmake_file=frv/t-frv ;; frv-*-*linux*) tm_file="dbxelf.h elfos.h ${tm_file} \ gnu-user.h linux.h glibc-stdint.h frv/linux.h" - tm_file="${tm_file} ../../libgcc/config/frv/frv-abi.h" + libgcc_tm_file="${libgcc_tm_file} frv/frv-abi.h" tmake_file="${tmake_file} frv/t-frv frv/t-linux" ;; moxie-*-elf) gas=yes gnu_ld=yes - tm_file="dbxelf.h elfos.h ${tm_file}" + 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" @@ -1043,7 +1080,7 @@ hppa[12]*-*-hpux10*) esac tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \ pa/pa-hpux.h pa/pa-hpux10.h" - extra_options="${extra_options} pa/pa-hpux.opt" + extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt" case ${target} in *-*-hpux10.[1-9]*) tm_file="${tm_file} pa/pa-hpux1010.h" @@ -1086,10 +1123,14 @@ hppa*64*-*-hpux11*) pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \ pa/pa-hpux11.h" case ${target} in - *-*-hpux11.[1-9]*) + *-*-hpux11.[12]*) tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h" extra_options="${extra_options} pa/pa-hpux1111.opt" ;; + *-*-hpux11.[3-9]*) + tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h" + extra_options="${extra_options} pa/pa-hpux1131.opt" + ;; *) tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h" ;; @@ -1134,10 +1175,14 @@ hppa[12]*-*-hpux11*) extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \ hpux11.opt" case ${target} in - *-*-hpux11.[1-9]*) + *-*-hpux11.[12]*) tm_file="${tm_file} pa/pa-hpux1111.h" extra_options="${extra_options} pa/pa-hpux1111.opt" ;; + *-*-hpux11.[3-9]*) + tm_file="${tm_file} pa/pa-hpux1131.h" + extra_options="${extra_options} pa/pa-hpux1131.opt" + ;; esac tmake_file="pa/t-pa-hpux11 pa/t-pa-hpux pa/t-hpux-shlib" # Set the libgcc version number @@ -1170,27 +1215,29 @@ 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" + tmake_file="${tmake_file} i386/t-crtstuff" ;; x86_64-*-freebsd*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h" @@ -1200,13 +1247,6 @@ i[34567]86-*-netbsdelf*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h" extra_options="${extra_options} netbsd.opt netbsd-elf.opt" ;; -i[34567]86-*-netbsd*) - tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h netbsd.h netbsd-aout.h i386/netbsd.h" - extra_options="${extra_options} netbsd.opt" - tmake_file="${tmake_file} t-netbsd" - extra_parts="" - use_collect2=yes - ;; x86_64-*-netbsd*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h" extra_options="${extra_options} netbsd.opt netbsd-elf.opt" @@ -1230,19 +1270,35 @@ i[34567]86-*-openbsd*) i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-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 gnu-user.h linux.h glibc-stdint.h" + tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h" case ${target} in i[34567]86-*-linux*) + tm_file="${tm_file} linux.h" # Assume modern glibc default_gnu_indirect_function=yes if test x$enable_targets = xall; then - tm_file="${tm_file} i386/x86-64.h i386/linux64.h" + 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 @@ -1251,35 +1307,69 @@ 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 else - tm_file="${tm_file} i386/linux.h" + tm_file="${tm_file} i386/gnu-user.h 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" ;; - i[34567]86-*-kopensolaris*-gnu) tm_file="${tm_file} i386/linux.h kopensolaris-gnu.h i386/kopensolaris-gnu.h" ;; - i[34567]86-*-gnu*) tm_file="$tm_file i386/linux.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 linux.h glibc-stdint.h \ - i386/x86-64.h i386/linux64.h" + 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*) - default_gnu_indirect_function=glibc-2011 ;; - x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} 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 - tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h" + tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h" tmake_file="${tmake_file} i386/t-djgpp" extra_options="${extra_options} i386/djgpp.opt" gnu_ld=yes @@ -1296,38 +1386,19 @@ 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 - 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" tmake_file="${tmake_file} i386/t-nto" gnu_ld=yes gas=yes ;; i[34567]86-*-rtems*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h i386/rtemself.h rtems.h 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 @@ -1343,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 @@ -1389,22 +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 - ;; - "":*:yes | yes:*:yes ) - thread_file=solaris - ;; esac ;; i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae) @@ -1420,7 +1448,7 @@ i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae) ;; esac ;; -i[34567]86-*-pe | i[34567]86-*-cygwin*) +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 i386/cygwin-stdint.h" xm_file=i386/xm-cygwin.h # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h @@ -1435,7 +1463,7 @@ i[34567]86-*-pe | 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" @@ -1447,16 +1475,19 @@ i[34567]86-*-pe | i[34567]86-*-cygwin*) use_gcc_stdint=wrap ;; i[34567]86-*-mingw* | x86_64-*-mingw*) - tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/mingw32.h" + tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h" xm_file=i386/xm-mingw32.h case ${target} in x86_64-*-* | *-w64-*) - need_64bit_hwint=yes need_64bit_isa=yes ;; *) ;; esac + if test x$enable_threads = xposix ; then + tm_file="${tm_file} i386/mingw-pthread.h" + fi + tm_file="${tm_file} i386/mingw32.h" # This makes the logic if mingw's or the w64 feature set has to be used case ${target} in *-w64-*) @@ -1466,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 @@ -1475,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 @@ -1497,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" @@ -1525,15 +1556,12 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) use_gcc_stdint=wrap case ${enable_threads} in "" | yes | win32) thread_file='win32' - tmake_file="${tmake_file} i386/t-gthr-win32" - ;; - esac - case ${target} in - x86_64-*-mingw*) - tmake_file="${tmake_file} i386/t-crtfm" - ;; - *) - ;; + tmake_file="${tmake_file} i386/t-gthr-win32" + ;; + posix) + thread_file='posix' + tmake_file="i386/t-mingw-pthread ${tmake_file}" + ;; esac case ${target} in *mingw32crt*) @@ -1579,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" ;; @@ -1600,20 +1625,22 @@ ia64*-*-hpux*) extra_options="${extra_options} ia64/ilp32.opt hpux11.opt" use_gcc_stdint=wrap tm_file="${tm_file} hpux-stdint.h" + case ${target} in + *-*-hpux11.3*) + tm_file="${tm_file} ia64/hpux-unix2003.h" + ;; + esac ;; ia64-hp-*vms*) tm_file="${tm_file} elfos.h ia64/sysv4.h ia64/elf.h ia64/vms.h ia64/vms64.h" xm_file="vms/xm-vms.h vms/xm-vms64.h" - tmake_file="vms/t-vms ia64/t-ia64 ia64/t-vms" - xmake_file=vms/x-vms + tmake_file="${tmake_file} vms/t-vms64 ia64/t-ia64 ia64/t-vms" target_cpu_default="0" if test x$gas = xyes then target_cpu_default="${target_cpu_default}|MASK_GNU_AS" fi - exeext=.exe - install_headers_dir=install-headers-cp - extra_options="${extra_options} vms/vms.opt" + extra_options="${extra_options} ia64/vms.opt" ;; iq2000*-*-elf*) tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h" @@ -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}" @@ -1665,24 +1692,6 @@ m32rle-*-linux*) thread_file='posix' fi ;; -# m68hc11 and m68hc12 share the same machine description. -m68hc11-*-*|m6811-*-*) - tm_file="dbxelf.h elfos.h usegas.h newlib-stdint.h m68hc11/m68hc11.h" - tm_p_file="m68hc11/m68hc11-protos.h" - md_file="m68hc11/m68hc11.md" - out_file="m68hc11/m68hc11.c" - tmake_file="m68hc11/t-m68hc11" - use_gcc_stdint=wrap - ;; -m68hc12-*-*|m6812-*-*) - tm_file="m68hc11/m68hc12.h dbxelf.h elfos.h usegas.h newlib-stdint.h m68hc11/m68hc11.h" - tm_p_file="m68hc11/m68hc11-protos.h" - md_file="m68hc11/m68hc11.md" - out_file="m68hc11/m68hc11.c" - tmake_file="m68hc11/t-m68hc11" - extra_options="${extra_options} m68hc11/m68hc11.opt" - use_gcc_stdint=wrap - ;; m68k-*-elf* | fido-*-elf*) case ${target} in fido-*-elf*) @@ -1733,21 +1742,13 @@ m68k*-*-openbsd*) # we need collect2 until our bug is fixed... use_collect2=yes ;; -m68k-*-uclinuxoldabi*) # Motorola m68k/ColdFire running uClinux - # with uClibc, using the original - # m68k-elf-based ABI - default_m68k_cpu=68020 - default_cf_cpu=5206 - tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/uclinux-oldabi.h glibc-stdint.h" - tm_defines="${tm_defines} MOTOROLA=1" - tmake_file="m68k/t-floatlib m68k/t-uclinux" - ;; m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux # with uClibc, using the new GNU/Linux-style # ABI. default_m68k_cpu=68020 default_cf_cpu=5206 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h" + extra_options="${extra_options} m68k/uclinux.opt" tm_defines="${tm_defines} MOTOROLA=1" tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs" ;; @@ -1780,12 +1781,6 @@ mcore-*-elf) tmake_file=mcore/t-mcore inhibit_libc=true ;; -mcore-*-pe*) - tm_file="svr3.h dbxcoff.h newlib-stdint.h ${tm_file} mcore/mcore-pe.h" - tmake_file=mcore/t-mcore-pe - inhibit_libc=true - use_gcc_stdint=wrap - ;; mep-*-*) tm_file="dbxelf.h elfos.h ${tm_file}" tmake_file=mep/t-mep @@ -1813,8 +1808,8 @@ 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" - extra_options="${extra_options} rpath.opt" + 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" # Only IRIX Development Foundation 1.3 for IRIX 6.5 provides stdint.h. @@ -1837,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 @@ -1859,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" @@ -2020,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" @@ -2037,19 +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*) +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-fprules-fpbit rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" + 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*) @@ -2067,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" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx" + extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt" + 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*) @@ -2135,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" ;; @@ -2148,35 +2146,14 @@ powerpc-*-linux* | powerpc64-*-linux*) tm_file="rs6000/secureplt.h ${tm_file}" fi ;; -powerpc64-*-gnu*) - tm_file="${tm_file} elfos.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/default64.h rs6000/linux64.h rs6000/gnu.h glibc-stdint.h" - extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt" - tmake_file="t-slibgcc-elf-ver t-slibgcc-libgcc t-gnu" - ;; -powerpc-*-gnu-gnualtivec*) - tm_file="${cpu_type}/${cpu_type}.h elfos.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h glibc-stdint.h" - extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-slibgcc-libgcc 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 freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/gnu.h glibc-stdint.h" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-slibgcc-libgcc 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-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 *-vxworksae*) - tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h" + tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h" tmake_file="${tmake_file} rs6000/t-vxworksae" ;; *-vxworks*) @@ -2196,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 ;; @@ -2257,11 +2234,15 @@ rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*) extra_headers=altivec.h ;; rx-*-elf*) - tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} ../../libgcc/config/rx/rx-abi.h" + tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" + 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" @@ -2282,12 +2263,13 @@ s390x-ibm-tpf*) extra_options="${extra_options} s390/tpf.opt" ;; score-*-elf) + gas=yes + gnu_ld=yes tm_file="dbxelf.h elfos.h score/elf.h score/score.h newlib-stdint.h" - tmake_file=score/t-score-elf - extra_objs="score7.o score3.o" + extra_parts="crti.o crtn.o crtbegin.o crtend.o" + tmake_file="${tmake_file} score/t-score-elf" ;; sh-*-elf* | sh[12346l]*-*-elf* | \ -sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ sh-*-linux* | sh[2346lbe]*-*-linux* | \ sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ sh64-*-netbsd* | sh64l*-*-netbsd*) @@ -2364,13 +2346,6 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ fi extra_headers="shmedia.h ushmedia.h sshmedia.h" ;; - *-*-symbianelf*) - tmake_file="sh/t-symbian" - tm_file="sh/symbian-pre.h sh/little.h ${tm_file} sh/symbian-post.h" - c_target_objs="symbian-base.o symbian-c.o" - cxx_target_objs="symbian-base.o symbian-cxx.o" - extra_parts="crt1.o crti.o crtn.o crtbegin.o crtend.o crtbeginS.o crtendS.o" - ;; *-*-elf*) tm_file="${tm_file} newlib-stdint.h" ;; @@ -2484,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 @@ -2521,101 +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 - ;; - "":*:yes | yes:*:yes ) - thread_file=solaris - ;; - 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" @@ -2624,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" @@ -2633,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" @@ -2684,18 +2614,12 @@ v850-*-*) ;; vax-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h" + extra_options="${extra_options} vax/elf.opt" tmake_file="${tmake_file} vax/t-linux" ;; vax-*-netbsdelf*) tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h" - extra_options="${extra_options} netbsd.opt netbsd-elf.opt" - ;; -vax-*-netbsd*) - tm_file="${tm_file} netbsd.h netbsd-aout.h vax/netbsd.h" - extra_options="${extra_options} netbsd.opt" - tmake_file=t-netbsd - extra_parts="" - use_collect2=yes + extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt" ;; vax-*-openbsd*) tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-pthread.h vax/openbsd.h" @@ -2714,6 +2638,7 @@ xstormy16-*-elf) ;; xtensa*-*-elf*) tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h" + extra_options="${extra_options} xtensa/elf.opt" tmake_file="xtensa/t-xtensa xtensa/t-elf" ;; xtensa*-*-linux*) @@ -2722,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 @@ -2747,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" @@ -2755,6 +2680,19 @@ powerpc*-*-* | rs6000-*-*) tm_file="${tm_file} rs6000/option-defaults.h" esac +if [ "$target_has_targetcm" = "no" ]; then + c_target_objs="$c_target_objs default-c.o" + 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 @@ -2771,6 +2709,16 @@ cpu= arch_without_sse2=no arch_without_64bit=no case ${target} in + i386-*-freebsd*) + if test $fbsd_major -ge 6; then + arch=i486 + else + arch=i386 + fi + cpu=generic + arch_without_sse2=yes + arch_without_64bit=yes + ;; i386-*-*) arch=i386 cpu=i386 @@ -2811,6 +2759,10 @@ case ${target} in ;; i686-*-* | i786-*-*) case ${target_noncanonical} in + bdver2-*) + arch=bdver2 + cpu=bdver2 + ;; bdver1-*) arch=bdver1 cpu=bdver1 @@ -2904,6 +2856,10 @@ case ${target} in ;; x86_64-*-*) case ${target_noncanonical} in + bdver2-*) + arch=bdver2 + cpu=bdver2 + ;; bdver1-*) arch=bdver1 cpu=bdver1 @@ -3110,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 @@ -3137,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" @@ -3220,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 @@ -3328,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 ;; *) @@ -3516,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 ;; *) @@ -3554,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 ;; *) @@ -3597,30 +3585,26 @@ case ${target} in fido*-*-* | m68k*-*-*) target_cpu_default2=$m68k_cpu_ident + tmake_file="m68k/t-opts $tmake_file" if [ x"$m68k_arch_family" != x ]; then tmake_file="m68k/t-$m68k_arch_family $tmake_file" fi ;; i[34567]86-*-darwin* | x86_64-*-darwin*) - tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp" ;; i[34567]86-*-linux* | x86_64-*-linux* | \ 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*-*-*) @@ -3684,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`