X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fconfig.gcc;h=273819ac5707ee5c4c7fb97b4ec7e065a096c7e8;hp=b0ed0128ed1ecf32387ed4778c60b90989d6e7ec;hb=9bc320a56d8a4a772e9cdb55dbfb86786fcaabdc;hpb=20be3c56b2a4652040486a5ea4885566ef1b53f2 diff --git a/gcc/config.gcc b/gcc/config.gcc index b0ed0128ed1..273819ac570 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -45,6 +45,16 @@ # default value of $default_use_cxa_atexit is set to # "no" except for targets which are known to be OK. # +# default_gnu_indirect_function +# The default value for the $enable_gnu_indirect_function +# variable. enable_gnu_indirect_function relies +# upon the presence of a non-standard gnu ifunc support +# in the assembler, linker and dynamic linker. +# Since not all libraries provide the dynamic linking +# support, the default value of +# $default_gnu_indirect_function is set to +# "no" except for targets which are known to be OK. +# # gas_flag Either yes or no depending on whether GNU as was # requested. # @@ -101,6 +111,12 @@ # extra_headers List of used header files from the directory # config/${cpu_type}. # +# user_headers_inc_next_pre +# List of header file names of internal gcc header +# files, which should be prefixed by an include_next. +# user_headers_inc_next_post +# List of header file names of internal gcc header +# files, which should be postfixed by an include_next. # use_gcc_tgmath If set, add tgmath.h to the list of used header # files. # @@ -171,6 +187,8 @@ out_file= tmake_file= extra_headers= +user_headers_inc_next_pre= +user_headers_inc_next_post= use_gcc_tgmath=yes use_gcc_stdint=none extra_passes= @@ -197,6 +215,7 @@ thread_file= gas="$gas_flag" gnu_ld="$gnu_ld_flag" default_use_cxa_atexit=no +default_gnu_indirect_function=no target_gtfiles= need_64bit_hwint= need_64bit_isa= @@ -206,21 +225,16 @@ xm_file= md_file= # Obsolete configurations. -case ${target} in - alpha*-dec-osf4* \ - | alpha*-dec-osf5.0* \ - | mips-sgi-irix5* \ - | mips-sgi-irix6.[0-4]* \ - | *-*-solaris2.7* \ - ) - 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 +# ) +# 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 @@ -238,8 +252,8 @@ case ${target} in | *-*-linux*oldld* \ | *-*-rtemsaout* \ | *-*-rtemscoff* \ - | *-*-solaris2.[0-6] \ - | *-*-solaris2.[0-6].* \ + | *-*-solaris2.[0-7] \ + | *-*-solaris2.[0-7].* \ | *-*-sysv* \ | vax-*-vms* \ ) @@ -262,6 +276,7 @@ m32c*-*-*) alpha*-*-*) cpu_type=alpha need_64bit_hwint=yes + extra_options="${extra_options} g.opt" ;; am33_2.0-*-linux*) cpu_type=mn10300 @@ -284,6 +299,7 @@ crisv32-*) cpu_type=cris ;; frv*) cpu_type=frv + extra_options="${extra_options} g.opt" ;; moxie*) cpu_type=moxie ;; @@ -295,42 +311,54 @@ i[34567]86-*-*) cpu_type=i386 c_target_objs="i386-c.o" cxx_target_objs="i386-c.o" + 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" + abmintrin.h bmiintrin.h tbmintrin.h" ;; x86_64-*-*) cpu_type=i386 c_target_objs="i386-c.o" cxx_target_objs="i386-c.o" + 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" + abmintrin.h bmiintrin.h tbmintrin.h" need_64bit_hwint=yes ;; ia64-*-*) extra_headers=ia64intrin.h need_64bit_hwint=yes + extra_options="${extra_options} g.opt fused-madd.opt" ;; hppa*-*-*) cpu_type=pa ;; +lm32*) + extra_options="${extra_options} g.opt" + ;; m32r*-*-*) cpu_type=m32r + extra_options="${extra_options} g.opt" ;; m68k-*-*) extra_headers=math-68881.h ;; +microblaze*-*-*) + cpu_type=microblaze + extra_options="${extra_options} g.opt" + ;; mips*-*-*) cpu_type=mips need_64bit_hwint=yes extra_headers="loongson.h" + extra_options="${extra_options} g.opt" ;; picochip-*-*) cpu_type=picochip @@ -344,12 +372,15 @@ powerpc*-*-*) cpu_is_64bit=yes ;; esac + extra_options="${extra_options} g.opt fused-madd.opt" ;; rs6000*-*-*) need_64bit_hwint=yes + extra_options="${extra_options} g.opt fused-madd.opt" ;; score*-*-*) cpu_type=score + extra_options="${extra_options} g.opt" ;; sparc*-*-*) cpu_type=sparc @@ -362,12 +393,16 @@ spu*-*-*) s390*-*-*) cpu_type=s390 need_64bit_hwint=yes + extra_options="${extra_options} fused-madd.opt" ;; # Note the 'l'; we need to be able to match e.g. "shle" or "shl". sh[123456789lbe]*-*-* | sh-*-*) cpu_type=sh need_64bit_hwint=yes ;; +xtensa*-*-*) + extra_options="${extra_options} fused-madd.opt" + ;; esac tm_file=${cpu_type}/${cpu_type}.h @@ -390,6 +425,9 @@ i[34567]86-*-*) if test "x$enable_cld" = xyes; then tm_defines="${tm_defines} USE_IX86_CLD=1" fi + if test "x$enable_frame_pointer" = xyes; then + tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1" + fi tm_file="vxworks-dummy.h ${tm_file}" ;; x86_64-*-*) @@ -397,6 +435,9 @@ x86_64-*-*) if test "x$enable_cld" = xyes; then tm_defines="${tm_defines} USE_IX86_CLD=1" fi + if test "x$enable_frame_pointer" = xyes; then + tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1" + fi tm_file="vxworks-dummy.h ${tm_file}" ;; esac @@ -408,9 +449,13 @@ case ${target} in ;; esac +# Common C libraries. +tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3" + # Common parts for widely ported systems. case ${target} in *-*-darwin*) + tmake_file="t-darwin ${cpu_type}/t-darwin" tm_file="${tm_file} darwin.h" case ${target} in *-*-darwin9*) @@ -422,7 +467,6 @@ case ${target} in esac tm_file="${tm_file} ${cpu_type}/darwin.h" tm_p_file="${tm_p_file} darwin-protos.h" - tmake_file="t-darwin ${cpu_type}/t-darwin t-slibgcc-darwin" target_gtfiles="\$(srcdir)/config/darwin.c" extra_options="${extra_options} darwin.opt" c_target_objs="${c_target_objs} darwin-c.o" @@ -488,6 +532,7 @@ case ${target} in ;; esac fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h" + extra_options="$extra_options rpath.opt freebsd.opt" case ${target} in *-*-freebsd[345].*) :;; @@ -511,26 +556,46 @@ case ${target} in *-*-gnu*) tmake_file="$tmake_file t-gnu";; esac - # glibc / uclibc switch. uclibc isn't usable for GNU/Hurd and neither for - # GNU/k*BSD. + # glibc / uclibc / bionic switch. + # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD. case $target in *linux*) extra_options="$extra_options linux.opt";; *) tm_defines="$tm_defines OPTION_GLIBC=1";; esac - case ${target} in + case $target in + *-*-*android*) + tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC" + ;; *-*-*uclibc*) - tm_defines="${tm_defines} UCLIBC_DEFAULT=1" + tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC" ;; *) - tm_defines="${tm_defines} UCLIBC_DEFAULT=0" + tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC" ;; esac - # Assume that glibc or uClibc are being used and so __cxa_atexit is provided. + # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit + # is provided. default_use_cxa_atexit=yes use_gcc_tgmath=no use_gcc_stdint=wrap + # Add Android userspace support to Linux targets. + case $target in + *linux*) + tm_file="$tm_file linux-android.h" + extra_options="$extra_options linux-android.opt" + ;; + esac + # Enable compilation for Android by default for *android* targets. + case $target in + *-*-*android*) + tm_defines="$tm_defines ANDROID_DEFAULT=1" + ;; + *) + tm_defines="$tm_defines ANDROID_DEFAULT=0" + ;; + esac ;; *-*-netbsd*) tmake_file="t-slibgcc-elf-ver t-libc-ok t-netbsd t-libgcc-pic" @@ -593,6 +658,9 @@ case ${target} in *-*-uclinux*) use_gcc_stdint=wrap ;; +*-*-solaris2*) + extra_options="${extra_options} sol2.opt" + ;; *-*-vxworks*) tmake_file=t-vxworks xm_defines=POSIX @@ -651,7 +719,7 @@ alpha*-*-openbsd*) target_cpu_default="MASK_GAS" tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee" ;; -alpha*-dec-osf[45]*) +alpha*-dec-osf5.1*) if test x$stabs = xyes then tm_file="${tm_file} dbx.h" @@ -661,23 +729,12 @@ alpha*-dec-osf[45]*) extra_passes="mips-tfile mips-tdump" fi use_collect2=yes - tmake_file="alpha/t-alpha alpha/t-ieee alpha/t-crtfm alpha/t-osf4" - tm_file="${tm_file} alpha/osf.h" + tmake_file="alpha/t-alpha alpha/t-ieee alpha/t-crtfm alpha/t-osf5" + tm_file="${tm_file} alpha/osf5.h" + tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1" + extra_options="${extra_options} rpath.opt" extra_headers=va_list.h use_gcc_stdint=provide - case ${target} in - *-*-osf4*) - # Define TARGET_SUPPORT_ARCH except on 4.0a. - case ${target} in - *-*-osf4.0a) ;; - *) tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1" - esac - ;; - *-*-osf5*) - tm_file="${tm_file} alpha/osf5.h" - tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1" - ;; - esac case ${enable_threads} in "" | yes | posix) thread_file='posix' @@ -688,7 +745,7 @@ alpha*-dec-osf[45]*) 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 vms/t-vms64 alpha/t-vms alpha/t-ieee" + 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 @@ -726,7 +783,7 @@ arm*-*-netbsd*) use_collect2=yes ;; arm*-*-linux*) # ARM GNU/Linux with ELF - tm_file="dbxelf.h elfos.h linux.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" + tm_file="dbxelf.h elfos.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" case $target in arm*b-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" @@ -736,7 +793,14 @@ 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" 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 + *-androideabi) + tmake_file="$tmake_file arm/t-linux-androideabi" + ;; + esac # The BPABI long long divmod functions return a 128-bit value in # registers r0-r3. Correctly modeling that requires the use of # TImode. @@ -757,6 +821,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" 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 @@ -780,12 +845,12 @@ 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" tmake_file="arm/t-arm arm/t-arm-elf" case ${target} in arm*-*-eabi*) - tm_file="$tm_file arm/eabi.h newlib-stdint.h" + tm_file="$tm_file newlib-stdint.h" tmake_file="${tmake_file} arm/t-bpabi" - extra_options="${extra_options} arm/eabi.opt" use_gcc_stdint=wrap ;; arm*-*-symbianelf*) @@ -841,7 +906,7 @@ bfin*-elf*) bfin*-uclinux*) tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h linux.h glibc-stdint.h bfin/uclinux.h" tmake_file=bfin/t-bfin-uclinux - tm_defines="${tm_defines} UCLIBC_DEFAULT=1" + tm_defines="${tm_defines} DEFAULT_LIBC=LIBC_UCLIBC" extra_options="${extra_options} linux.opt" use_collect2=no ;; @@ -852,7 +917,7 @@ bfin*-linux-uclibc*) use_collect2=no ;; bfin*-rtems*) - tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h" + tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h" tmake_file="bfin/t-bfin t-rtems bfin/t-rtems" ;; bfin*-*) @@ -877,7 +942,7 @@ cris-*-elf | cris-*-none) use_gcc_stdint=wrap ;; crisv32-*-linux* | cris-*-linux*) - tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h glibc-stdint.h cris/linux.h" + tm_file="dbxelf.h elfos.h ${tm_file} linux.h glibc-stdint.h cris/linux.h" # We need to avoid using t-linux, so override default tmake_file tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux" extra_options="${extra_options} cris/linux.opt" @@ -896,35 +961,41 @@ crx-*-elf) use_collect2=no ;; fr30-*-elf) - tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}" + tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" tmake_file=fr30/t-fr30 extra_parts="crti.o crtn.o crtbegin.o crtend.o" ;; frv-*-elf) - tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file} frv/frv-abi.h" + tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" + tm_file="${tm_file} ../../libgcc/config/frv/frv-abi.h" tmake_file=frv/t-frv ;; frv-*-*linux*) - tm_file="dbxelf.h elfos.h svr4.h ${tm_file} \ - linux.h glibc-stdint.h frv/linux.h frv/frv-abi.h" + tm_file="dbxelf.h elfos.h ${tm_file} \ + linux.h glibc-stdint.h frv/linux.h" + tm_file="${tm_file} ../../libgcc/config/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 svr4.h ${tm_file}" + tm_file="dbxelf.h elfos.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" ;; moxie-*-uclinux*) gas=yes gnu_ld=yes - tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h glibc-stdint.h moxie/uclinux.h" + tm_file="dbxelf.h elfos.h ${tm_file} 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" - tm_defines="${tm_defines} UCLIBC_DEFAULT=1" + tm_defines="${tm_defines} DEFAULT_LIBC=LIBC_UCLIBC" extra_options="${extra_options} linux.opt" ;; +moxie-*-rtems*) + tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp 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" @@ -935,7 +1006,7 @@ h8300-*-elf*) ;; hppa*64*-*-linux*) target_cpu_default="MASK_PA_11|MASK_PA_20" - tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h svr4.h linux.h \ + tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h linux.h \ glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \ pa/pa64-linux.h" tmake_file="${tmake_file} pa/t-linux64" @@ -944,7 +1015,7 @@ hppa*64*-*-linux*) ;; hppa*-*-linux*) target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS" - tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h pa/pa-linux.h \ + tm_file="${tm_file} dbxelf.h elfos.h linux.h glibc-stdint.h pa/pa-linux.h \ pa/pa32-regs.h pa/pa32-linux.h" tmake_file="${tmake_file} pa/t-linux t-slibgcc-libgcc" # Set the libgcc version number @@ -994,6 +1065,10 @@ hppa[12]*-*-hpux10*) fi use_collect2=yes gas=yes + if test "x$with_dwarf2" != x; then + echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2 + dwarf2=no + fi ;; hppa*64*-*-hpux11*) target_cpu_default="MASK_PA_11|MASK_PA_20" @@ -1064,6 +1139,7 @@ hppa[12]*-*-hpux11*) else tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" fi + extra_parts="libgcc_stub.a" case x${enable_threads} in x | xyes | xposix ) thread_file=posix @@ -1081,21 +1157,21 @@ hppa[12]*-*-hpux11*) tm_file="${tm_file} hpux-stdint.h" ;; esac + if test "x$with_dwarf2" != x; then + echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2 + dwarf2=no + fi ;; i[34567]86-*-darwin*) need_64bit_hwint=yes need_64bit_isa=yes - - # This is so that '.../configure && make' doesn't fail due to - # config.guess deciding that the configuration is i386-*-darwin* and - # then this file using that to set --with-cpu=i386 which has no -m64 - # support. - with_cpu=${with_cpu:-generic} - tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm" + # 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" ;; x86_64-*-darwin*) - with_cpu=${with_cpu:-generic} - tmake_file="${tmake_file} t-darwin ${cpu_type}/t-darwin64 t-slibgcc-darwin i386/t-crtpc i386/t-crtfm" + with_cpu=${with_cpu:-core2} + tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc-darwin i386/t-crtpc i386/t-crtfm" tm_file="${tm_file} ${cpu_type}/darwin64.h" ;; i[34567]86-*-elf*) @@ -1145,6 +1221,8 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h" case ${target} in i[34567]86-*-linux*) + # 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_defines="${tm_defines} TARGET_BI_ARCH=1" @@ -1152,7 +1230,7 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i need_64bit_hwint=yes need_64bit_isa=yes case X"${with_cpu}" in - Xgeneric|Xatom|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3) + Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3) ;; X) if test x$with_cpu_64 = x; then @@ -1161,7 +1239,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 nocona x86-64 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 bdver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2 exit 1 ;; esac @@ -1180,6 +1258,8 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h \ i386/x86-64.h i386/linux64.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" ;; esac @@ -1236,12 +1316,28 @@ i[34567]86-*-rtems*) ;; i[34567]86-*-solaris2*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h" + # 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 + *-*-solaris2.[89]*) + # Solaris 8 and 9/x86 cannot execute SSE/SSE2 instructions by + # default. + with_arch_32=${with_arch_32:-pentiumpro} + ;; + *) + with_arch_32=${with_arch_32:-pentium4} + ;; + esac + 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 @@ -1272,7 +1368,7 @@ i[34567]86-*-solaris2*) need_64bit_isa=yes use_gcc_stdint=wrap case X"${with_cpu}" in - Xgeneric|Xatom|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3) + Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3) ;; X) if test x$with_cpu_64 = x; then @@ -1281,7 +1377,7 @@ i[34567]86-*-solaris2*) ;; *) echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 - echo "generic atom core2 nocona x86-64 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 bdver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2 exit 1 ;; esac @@ -1325,9 +1421,8 @@ i[34567]86-*-pe | i[34567]86-*-cygwin*) target_gtfiles="\$(srcdir)/config/i386/winnt.c" extra_options="${extra_options} i386/cygming.opt" extra_objs="winnt.o winnt-stubs.o" - c_target_objs="${c_target_objs} cygwin2.o msformat-c.o" - cxx_target_objs="${cxx_target_objs} cygwin2.o winnt-cxx.o msformat-c.o" - extra_gcc_objs=cygwin1.o + c_target_objs="${c_target_objs} msformat-c.o" + cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o" if test x$enable_threads = xyes; then thread_file='posix' fi @@ -1347,11 +1442,13 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) # This makes the logic if mingw's or the w64 feature set has to be used case ${target} in *-w64-*) + user_headers_inc_next_post="${user_headers_inc_next_post} float.h" + user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h" tm_file="${tm_file} i386/mingw-w64.h" if test x$enable_targets = xall; then tm_defines="${tm_defines} TARGET_BI_ARCH=1" case X"${with_cpu}" in - Xgeneric|Xatom|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3) + Xgeneric|Xatom|Xcore2|Xcorei7|Xcorei7-avx|Xnocona|Xx86-64|Xbdver1|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3) ;; X) if test x$with_cpu_64 = x; then @@ -1360,7 +1457,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 nocona x86-64 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 bdver1 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2 exit 1 ;; esac @@ -1376,11 +1473,14 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) else tmake_eh_file="i386/t-sjlj-eh" fi - tmake_file="${tmake_file} ${tmake_eh_file} i386/t-cygming" + tmake_file="${tmake_file} ${tmake_eh_file} i386/t-cygming t-dfprules" case ${target} in - *-w64-*) + x86_64-w64-*) tmake_file="${tmake_file} i386/t-mingw-w64" ;; + i[34567]86-w64-*) + tmake_file="${tmake_file} i386/t-mingw-w32" + ;; *) tmake_file="${tmake_file} i386/t-mingw32" ;; @@ -1422,6 +1522,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*) i[34567]86-*-interix3*) tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h i386/i386-interix3.h interix.h interix3.h" tmake_file="${tmake_file} i386/t-interix" + extra_options="${extra_options} rpath.opt" extra_objs=winnt.o target_gtfiles="\$(srcdir)/config/i386/winnt.c" if test x$enable_threads = xyes ; then @@ -1452,7 +1553,7 @@ ia64*-*-freebsd*) extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" ;; ia64*-*-linux*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h" + tm_file="${tm_file} dbxelf.h elfos.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" @@ -1461,7 +1562,7 @@ ia64*-*-linux*) extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" ;; ia64*-*-hpux*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h ia64/sysv4.h ia64/hpux.h" + tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h" tmake_file="ia64/t-ia64 ia64/t-hpux" target_cpu_default="MASK_GNU_AS" case x$enable_threads in @@ -1479,7 +1580,7 @@ ia64*-*-hpux*) 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 vms/t-vms64 ia64/t-ia64 ia64/t-vms" + tmake_file="vms/t-vms ia64/t-ia64 ia64/t-vms" xmake_file=vms/x-vms target_cpu_default="0" if test x$gas = xyes @@ -1491,7 +1592,7 @@ ia64-hp-*vms*) extra_options="${extra_options} vms/vms.opt" ;; iq2000*-*-elf*) - tm_file="svr4.h elfos.h newlib-stdint.h iq2000/iq2000.h" + tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h" tmake_file=iq2000/t-iq2000 out_file=iq2000/iq2000.c md_file=iq2000/iq2000.md @@ -1500,25 +1601,30 @@ 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" ;; +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} t-rtems" + ;; lm32-*-uclinux*) tm_file="dbxelf.h elfos.h ${tm_file} linux.h lm32/uclinux-elf.h" tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp" ;; m32r-*-elf*) - tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}" + tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" extra_parts="crtinit.o crtfini.o" ;; m32rle-*-elf*) - tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h m32r/little.h ${tm_file}" + tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}" extra_parts="crtinit.o crtfini.o m32rx/crtinit.o m32rx/crtfini.o" ;; m32r-*-rtems*) - tm_file="dbxelf.h elfos.h svr4.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h" + tm_file="dbxelf.h elfos.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h" tmake_file="m32r/t-m32r t-rtems" extra_parts="crtinit.o crtfini.o" ;; m32r-*-linux*) - tm_file="dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h" + tm_file="dbxelf.h elfos.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h" # We override the tmake_file for linux -- why? tmake_file="t-slibgcc-elf-ver m32r/t-linux" gnu_ld=yes @@ -1527,7 +1633,7 @@ m32r-*-linux*) fi ;; m32rle-*-linux*) - tm_file="dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h" + tm_file="dbxelf.h elfos.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h" # We override the tmake_file for linux -- why? tmake_file="t-slibgcc-elf-ver m32r/t-linux" gnu_ld=yes @@ -1615,8 +1721,8 @@ m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux # ABI. default_m68k_cpu=68020 default_cf_cpu=5206 - tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h" - tm_defines="${tm_defines} MOTOROLA=1 UCLIBC_DEFAULT=1" + tm_file="${tm_file} dbxelf.h elfos.h linux.h glibc-stdint.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h" + tm_defines="${tm_defines} MOTOROLA=1 DEFAULT_LIBC=LIBC_UCLIBC" extra_options="${extra_options} linux.opt" tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs" ;; @@ -1626,7 +1732,7 @@ m68k-*-linux*) # Motorola m68k's running GNU/Linux default_m68k_cpu=68020 default_cf_cpu=5475 with_arch=${with_arch:-m68k} - tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h" + tm_file="${tm_file} dbxelf.h elfos.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h" extra_options="${extra_options} m68k/ieee.opt" tm_defines="${tm_defines} MOTOROLA=1" tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs" @@ -1645,7 +1751,7 @@ m68k-*-rtems*) extra_parts="crtbegin.o crtend.o" ;; mcore-*-elf) - tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h" + tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h" tmake_file=mcore/t-mcore inhibit_libc=true ;; @@ -1656,7 +1762,7 @@ mcore-*-pe*) use_gcc_stdint=wrap ;; mep-*-*) - tm_file="dbxelf.h elfos.h svr4.h ${tm_file}" + tm_file="dbxelf.h elfos.h ${tm_file}" tmake_file=mep/t-mep extra_parts="crtbegin.o crtend.o" c_target_objs="mep-pragma.o" @@ -1667,35 +1773,30 @@ mep-*-*) fi use_gcc_stdint=wrap ;; -mips-sgi-irix[56]*) - tm_file="elfos.h ${tm_file} mips/iris.h" - tmake_file="mips/t-iris mips/t-slibgcc-irix" +microblaze*-linux*) + tm_file="${tm_file} dbxelf.h linux.h microblaze/linux.h" + c_target_objs="${c_target_objs} microblaze-c.o" + cxx_target_objs="${cxx_target_objs} microblaze-c.o" + tmake_file="${tmake_file} t-slibgcc-elf-ver t-slibgcc-nolc-override t-linux microblaze/t-microblaze" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o crtbeginT.o" + ;; +microblaze*-*-*) + tm_file="${tm_file} dbxelf.h" + c_target_objs="${c_target_objs} microblaze-c.o" + cxx_target_objs="${cxx_target_objs} microblaze-c.o" + tmake_file="${tmake_file} microblaze/t-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" target_cpu_default="MASK_ABICALLS" - case ${target} in - *-*-irix5*) - tm_file="${tm_file} mips/iris5.h" - use_gcc_stdint=provide - ;; - - *-*-irix6*) - tm_file="${tm_file} mips/iris6.h" - tmake_file="${tmake_file} mips/t-iris6" - tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32" - case ${target} in - *-*-irix6.[0-4]*) - use_gcc_stdint=provide - ;; - *-*-irix6.5*) - # Only IRIX Development Foundation 1.3 for IRIX 6.5 - # provides stdint.h. - use_gcc_stdint=wrap - ;; - esac - ;; - esac + 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. + use_gcc_stdint=wrap if test "x$stabs" = xyes then - tm_file="${tm_file} dbx.h mips/dbxmdebug.h" + tm_file="${tm_file} dbx.h" fi if test "x$gnu_ld" = xyes then @@ -1710,7 +1811,7 @@ mips*-*-netbsd*) # NetBSD/mips, either endian. tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h" ;; mips64*-*-linux* | mipsisa64*-*-linux*) - tm_file="dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h ${tm_file} mips/linux.h mips/linux64.h" + tm_file="dbxelf.h elfos.h linux.h glibc-stdint.h ${tm_file} mips/linux.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 @@ -1726,12 +1827,13 @@ mips64*-*-linux* | mipsisa64*-*-linux*) tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65" ;; esac + extra_parts="$extra_parts crtfastmath.o" gnu_ld=yes gas=yes test x$with_llsc != x || with_llsc=yes ;; mips*-*-linux*) # Linux MIPS, either endian. - tm_file="dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h ${tm_file} mips/linux.h" + tm_file="dbxelf.h elfos.h linux.h glibc-stdint.h ${tm_file} mips/linux.h" tmake_file="${tmake_file} mips/t-libgcc-mips16" case ${target} in mipsisa32r2*) @@ -1740,6 +1842,7 @@ mips*-*-linux*) # Linux MIPS, either endian. mipsisa32*) tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32" esac + extra_parts="$extra_parts crtfastmath.o" test x$with_llsc != x || with_llsc=yes ;; mips*-*-openbsd*) @@ -1755,6 +1858,7 @@ mips*-*-openbsd*) mips*-sde-elf*) tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/sde.h" tmake_file="mips/t-sde mips/t-libgcc-mips16" + extra_options="${extra_options} mips/sde.opt" case "${with_newlib}" in yes) # newlib / libgloss. @@ -1763,7 +1867,6 @@ mips*-sde-elf*) # MIPS toolkit libraries. tm_file="$tm_file mips/sdemtk.h" tmake_file="$tmake_file mips/t-sdemtk" - extra_options="$extra_options mips/sdemtk.opt" case ${enable_threads} in "" | yes | mipssde) thread_file='mipssde' @@ -1858,7 +1961,7 @@ mips*-*-rtems*) tmake_file="mips/t-elf mips/t-libgcc-mips16 t-rtems mips/t-rtems" ;; mips-wrs-vxworks) - tm_file="elfos.h ${tm_file} svr4.h mips/elf.h vx-common.h vxworks.h mips/vxworks.h" + tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h" tmake_file="${tmake_file} mips/t-vxworks" ;; mipstx39-*-elf* | mipstx39el-*-elf*) @@ -1871,7 +1974,7 @@ mmix-knuth-mmixware) use_gcc_stdint=wrap ;; mn10300-*-*) - tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}" + tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" if test x$stabs = xyes then tm_file="${tm_file} dbx.h" @@ -1886,6 +1989,7 @@ pdp11-*-*) picochip-*) tm_file="${tm_file} newlib-stdint.h" use_gcc_stdint=wrap + tmake_file="picochip/t-picochip t-pnt16-warn" ;; # port not yet contributed #powerpc-*-openbsd*) @@ -1906,12 +2010,14 @@ powerpc-*-darwin*) *-darwin[0-6]*) ;; esac + tmake_file="${tmake_file} t-slibgcc-darwin" extra_headers=altivec.h ;; powerpc64-*-darwin*) - tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h" extra_options="${extra_options} ${cpu_type}/darwin.opt" - # We're omitting t-darwin8 to avoid building any multilibs + extra_parts="crt2.o" + tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc-darwin" + tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h" extra_headers=altivec.h ;; powerpc*-*-freebsd*) @@ -2128,10 +2234,10 @@ rx-*-elf*) tmake_file="${tmake_file} rx/t-rx" ;; s390-*-linux*) - tm_file="s390/s390.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h s390/linux.h" + tm_file="s390/s390.h dbxelf.h elfos.h linux.h glibc-stdint.h s390/linux.h" ;; s390x-*-linux*) - tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h s390/linux.h" + tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h linux.h glibc-stdint.h s390/linux.h" tm_p_file=s390/s390-protos.h md_file=s390/s390.md extra_modes=s390/s390-modes.def @@ -2139,7 +2245,7 @@ s390x-*-linux*) tmake_file="${tmake_file} s390/t-linux64" ;; s390x-ibm-tpf*) - tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h s390/tpf.h" + tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h" tm_p_file=s390/s390-protos.h md_file=s390/s390.md extra_modes=s390/s390-modes.def @@ -2183,12 +2289,7 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ case ${with_endian} in little*) tm_file="sh/little.h ${tm_file}" ;; esac - tm_file="${tm_file} dbxelf.h elfos.h" - case ${target} in - sh*-*-netbsd*) ;; - *) tm_file="${tm_file} svr4.h" ;; - esac - tm_file="${tm_file} sh/elf.h" + tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h" case ${target} in sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux" tm_file="${tm_file} linux.h glibc-stdint.h sh/linux.h" ;; @@ -2227,6 +2328,9 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ sh64*) tmake_file="${tmake_file} sh/t-sh64" tm_file="${tm_file} sh/sh64.h" + if test x$with_newlib = xyes; then + tm_file="${tm_file} newlib-stdint.h" + fi extra_headers="shmedia.h ushmedia.h sshmedia.h" ;; *-*-symbianelf*) @@ -2306,7 +2410,7 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_` tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"' tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1" - sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^sh/m/i' -e 's/ sh/ m/gi' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-` + sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-` for sh_multilib in ${sh_multilibs}; do case ${sh_multilib} in m1 | m2 | m2e | m3 | m3e | \ @@ -2339,30 +2443,24 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \ ;; sh-*-rtems*) tmake_file="sh/t-sh sh/t-elf t-rtems sh/t-rtems" - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h" + tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h" ;; sh-wrs-vxworks) tmake_file="$tmake_file sh/t-sh sh/t-elf sh/t-vxworks" - tm_file="${tm_file} elfos.h svr4.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h" - ;; -sparc-*-netbsdelf*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h" - extra_options="${extra_options} sparc/long-double-switch.opt" - ;; -sparc64-*-openbsd*) - tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h" - tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h" - extra_options="${extra_options} sparc/little-endian.opt" - gas=yes gnu_ld=yes - with_cpu=ultrasparc + tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h" ;; sparc-*-elf*) - tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h svr4.h sparc/sysv4.h sparc/sp-elf.h" + tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h" tmake_file="sparc/t-elf sparc/t-crtfm" extra_parts="crti.o crtn.o crtbegin.o crtend.o" ;; -sparc-*-linux*) # SPARC's running GNU/Linux, libc6 - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h glibc-stdint.h" +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="crti.o crtn.o crtbegin.o crtend.o" + ;; +sparc-*-linux*) + tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h linux.h glibc-stdint.h" extra_options="${extra_options} sparc/long-double-switch.opt" tmake_file="${tmake_file} sparc/t-linux" if test x$enable_targets = xall; then @@ -2373,13 +2471,12 @@ sparc-*-linux*) # SPARC's running GNU/Linux, libc6 fi tmake_file="${tmake_file} sparc/t-crtfm" ;; -sparc-*-rtems*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h" - tmake_file="sparc/t-elf sparc/t-crtfm t-rtems" - extra_parts="crti.o crtn.o crtbegin.o crtend.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} sparc/long-double-switch.opt" ;; sparc*-*-solaris2*) - tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h" + 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" @@ -2403,7 +2500,7 @@ sparc*-*-solaris2*) 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} sparc/sol2-gld.h sparc/sol2-gld-bi.h" + 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" @@ -2430,15 +2527,26 @@ sparc*-*-solaris2*) esac ;; sparc-wrs-vxworks) - tm_file="${tm_file} elfos.h svr4.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h" + tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h" tmake_file="${tmake_file} sparc/t-vxworks" ;; sparc64-*-elf*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h" + 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" ;; +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" + ;; +sparc64-*-linux*) + tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h linux.h glibc-stdint.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" + ;; 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" @@ -2449,17 +2557,19 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*) *) echo "$with_cpu not supported for freebsd target"; exit 1 ;; esac ;; -sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux - tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h glibc-stdint.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" - ;; sparc64-*-netbsd*) tm_file="sparc/biarch64.h ${tm_file}" - tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h" + tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h" extra_options="${extra_options} sparc/long-double-switch.opt" tmake_file="${tmake_file} sparc/t-netbsd64" ;; +sparc64-*-openbsd*) + tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h" + tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h" + extra_options="${extra_options} sparc/little-endian.opt" + gas=yes gnu_ld=yes + with_cpu=ultrasparc + ;; spu-*-elf*) tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h" tmake_file="spu/t-spu-elf" @@ -2470,10 +2580,11 @@ spu-*-elf*) ;; v850e1-*-*) target_cpu_default="TARGET_CPU_v850e1" - tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h v850/v850.h" + 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 @@ -2487,10 +2598,11 @@ v850e1-*-*) ;; v850e-*-*) target_cpu_default="TARGET_CPU_v850e" - tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h v850/v850.h" + 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 @@ -2504,7 +2616,7 @@ v850e-*-*) ;; v850-*-*) target_cpu_default="TARGET_CPU_generic" - tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}" + tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" tmake_file=v850/t-v850 if test x$stabs = xyes then @@ -2516,7 +2628,7 @@ v850-*-*) use_gcc_stdint=wrap ;; vax-*-linux*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h vax/elf.h vax/linux.h" + tm_file="${tm_file} dbxelf.h elfos.h linux.h vax/elf.h vax/linux.h" tmake_file="${tmake_file} vax/t-linux" ;; vax-*-netbsdelf*) @@ -2543,11 +2655,11 @@ xstormy16-*-elf) extra_parts="crtbegin.o crtend.o" ;; xtensa*-*-elf*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h newlib-stdint.h xtensa/elf.h" + tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h" tmake_file="xtensa/t-xtensa xtensa/t-elf" ;; xtensa*-*-linux*) - tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h xtensa/linux.h" + tm_file="${tm_file} dbxelf.h elfos.h linux.h glibc-stdint.h xtensa/linux.h" tmake_file="${tmake_file} xtensa/t-xtensa xtensa/t-linux" ;; am33_2.0-*-linux*) @@ -2558,13 +2670,13 @@ am33_2.0-*-linux*) use_collect2=no ;; m32c-*-rtems*) - tm_file="dbxelf.h elfos.h svr4.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h" + tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h" tmake_file="${tmake_file} t-rtems" c_target_objs="m32c-pragma.o" cxx_target_objs="m32c-pragma.o" ;; m32c-*-elf*) - tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}" + tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" c_target_objs="m32c-pragma.o" cxx_target_objs="m32c-pragma.o" ;; @@ -2641,6 +2753,10 @@ case ${target} in ;; i686-*-* | i786-*-*) case ${target_noncanonical} in + bdver1-*) + arch=bdver1 + cpu=bdver1 + ;; amdfam10-*|barcelona-*) arch=amdfam10 cpu=amdfam10 @@ -2699,6 +2815,14 @@ case ${target} in arch=core2 cpu=core2 ;; + corei7-*) + arch=corei7 + cpu=corei7 + ;; + corei7_avx-*) + arch=corei7-avx + cpu=corei7-avx + ;; pentium_m-*) arch=pentium-m cpu=pentium-m @@ -2718,6 +2842,10 @@ case ${target} in ;; x86_64-*-*) case ${target_noncanonical} in + bdver1-*) + arch=bdver1 + cpu=bdver1 + ;; amdfam10-*|barcelona-*) arch=amdfam10 cpu=amdfam10 @@ -2742,6 +2870,10 @@ case ${target} in arch=core2 cpu=core2 ;; + corei7-*) + arch=corei7 + cpu=corei7 + ;; *) arch=x86-64 cpu=generic @@ -2880,6 +3012,9 @@ if test x$with_fpmath != x; then case ${target} in i[34567]86-*-* | x86_64-*-*) case ${with_fpmath} in + avx) + tm_file="${tm_file} i386/avxmath.h" + ;; sse) tm_file="${tm_file} i386/ssemath.h" ;; @@ -3124,8 +3259,8 @@ case "${target}" in ;; "" | x86-64 | generic | native \ | k8 | k8-sse3 | athlon64 | athlon64-sse3 | opteron \ - | opteron-sse3 | athlon-fx | amdfam10 | barcelona \ - | nocona | core2 | atom) + | opteron-sse3 | athlon-fx | bdver1 | amdfam10 \ + | barcelona | nocona | core2 | corei7 | corei7-avx | atom) # OK ;; *) @@ -3243,7 +3378,7 @@ case "${target}" in | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \ | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \ | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \ - | a2 | e300c[23] | 854[08] | e500mc | e500mc64 \ + | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | titan\ | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell) # OK ;; @@ -3261,7 +3396,7 @@ case "${target}" in for which in arch tune; do eval "val=\$with_$which" case ${val} in - "" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10) + "" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196) # OK ;; *) @@ -3399,7 +3534,9 @@ 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-*-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" ;; i[34567]86-*-solaris2*) @@ -3408,6 +3545,9 @@ case ${target} in 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" ;;