# GCC target-specific configuration file.
# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-# 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
#This file is part of GCC.
# the --with-sysroot configure option or the
# --sysroot command line option is used this
# will be relative to the sysroot.
+# target_type_format_char
+# The default character to be used for formatting
+# the attribute in a
+# .type symbol_name, ${t_t_f_c}<property>
+# directive.
# The following variables are used in each case-construct to build up the
# outgoing variables:
need_64bit_hwint=
need_64bit_isa=
native_system_header_dir=/usr/include
+target_type_format_char='@'
# Don't carry these over build->host->target. Please.
xm_file=
# Obsolete configurations.
case ${target} in
+ # Avoid special cases that are not obsolete
+ arm*-*-*eabi* \
+ )
+ ;;
alpha*-dec-osf5.1* \
- | i[34567]86-*-interix3* \
+ | arm*-*-ecos-elf \
+ | arm*-*-elf \
+ | arm*-*-freebsd* \
+ | arm*-*-linux* \
+ | arm*-*-rtemself* \
+ | arm*-*-uclinux* \
+ | arm*-wince-pe* \
| mips-sgi-irix6.5 \
| mips*-*-openbsd* \
+ | picochip-* \
| score-* \
| *-*-solaris2.8* \
)
arm*-*-*)
cpu_type=arm
extra_headers="mmintrin.h arm_neon.h"
+ target_type_format_char='%'
c_target_objs="arm-c.o"
cxx_target_objs="arm-c.o"
extra_options="${extra_options} arm/arm-tables.opt"
immintrin.h x86intrin.h avxintrin.h xopintrin.h
ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
- avx2intrin.h fmaintrin.h"
+ avx2intrin.h fmaintrin.h f16cintrin.h"
;;
x86_64-*-*)
cpu_type=i386
immintrin.h x86intrin.h avxintrin.h xopintrin.h
ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
lzcntintrin.h bmiintrin.h tbmintrin.h bmi2intrin.h
- avx2intrin.h fmaintrin.h"
+ avx2intrin.h fmaintrin.h f16cintrin.h"
need_64bit_hwint=yes
;;
ia64-*-*)
xtensa*-*-*)
extra_options="${extra_options} fused-madd.opt"
;;
+tilegx*-*-*)
+ cpu_type=tilegx
+ need_64bit_hwint=yes
+ ;;
+tilepro-*-*)
+ cpu_type=tilepro
+ need_64bit_hwint=yes
+ ;;
esac
tm_file=${cpu_type}/${cpu_type}.h
*-*-openbsd2.*|*-*-openbsd3.[012])
tm_defines="${tm_defines} HAS_LIBC_R=1" ;;
esac
+ case ${target} in
+ *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
+ default_use_cxa_atexit=yes
+ ;;
+ esac
;;
*-*-rtems*)
case ${enable_threads} in
extra_objs="vms.o"
target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
tm_p_file="${tm_p_file} vms/vms-protos.h"
+ c_target_objs="vms-c.o"
+ cxx_target_objs="vms-c.o"
if test x$gnu_ld != xyes; then
# Build wrappers for native case.
extra_programs="ld\$(exeext) ar\$(exeext)"
case ${target} in
alpha*-*-linux*)
tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
+ tmake_file="${tmake_file} alpha/t-linux"
extra_options="${extra_options} alpha/elf.opt"
target_cpu_default="MASK_GAS"
;;
esac
;;
alpha64-dec-*vms*)
- tm_file="${tm_file} alpha/vms.h alpha/vms64.h"
+ tm_file="${tm_file} vms/vms.h vms/vms64.h alpha/vms.h"
xm_file="alpha/xm-vms.h vms/xm-vms64.h"
tmake_file="${tmake_file} vms/t-vms64 alpha/t-vms"
;;
alpha*-dec-*vms*)
- tm_file="${tm_file} alpha/vms.h"
+ tm_file="${tm_file} vms/vms.h alpha/vms.h"
xm_file="alpha/xm-vms.h"
tmake_file="${tmake_file} alpha/t-vms"
;;
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
- arm*b-*)
+ arm*b-*-linux*)
tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
;;
esac
tmake_file="${tmake_file} arm/t-arm"
case ${target} in
- arm*-*-linux-*eabi)
+ arm*-*-linux-*eabi*)
tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
# Define multilib configuration for arm-linux-androideabi.
tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
tmake_file="arm/t-arm arm/t-arm-elf"
case ${target} in
- arm*-*-uclinux*eabi)
+ arm*-*-uclinux*eabi*)
tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h"
tmake_file="$tmake_file arm/t-bpabi"
# The BPABI long long divmod functions return a 128-bit value in
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"
;;
-arm*-*-eabi* | arm*-*-symbianelf* )
+arm*-*-rtemself*)
+ 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"
+ ;;
+arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
# The BPABI long long divmod functions return a 128-bit value in
# registers r0-r3. Correctly modeling that requires the use of
# TImode.
tmake_file="${tmake_file} arm/t-bpabi"
use_gcc_stdint=wrap
;;
+ arm*-*-rtems*)
+ tm_file="${tm_file} rtems.h arm/rtems-eabi.h newlib-stdint.h"
+ tmake_file="${tmake_file} arm/t-bpabi t-rtems arm/t-rtems-eabi"
+ ;;
arm*-*-symbianelf*)
tm_file="${tm_file} arm/symbian.h"
# We do not include t-bpabi for Symbian OS because the system
esac
tm_file="${tm_file} arm/aout.h arm/arm.h"
;;
-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"
- ;;
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"
;;
avr-*-rtems*)
tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
- tmake_file="avr/t-avr t-rtems avr/t-rtems"
+ tmake_file="avr/t-avr avr/t-multilib t-rtems avr/t-rtems"
extra_gcc_objs="driver-avr.o avr-devices.o"
extra_objs="avr-devices.o avr-log.o"
;;
avr-*-*)
- tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h newlib-stdint.h"
+ tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h avr/avr-stdint.h"
+ if test x${with_avrlibc} = xyes; then
+ tm_file="${tm_file} ${cpu_type}/avrlibc.h"
+ tm_defines="${tm_defines} WITH_AVRLIBC"
+ fi
+ tmake_file="avr/t-avr avr/t-multilib"
use_gcc_stdint=wrap
extra_gcc_objs="driver-avr.o avr-devices.o"
extra_objs="avr-devices.o avr-log.o"
use_collect2=no
use_gcc_stdint=wrap
;;
+cr16-*-elf)
+ tm_file="elfos.h ${tm_file}"
+ tmake_file="${tmake_file} cr16/t-cr16 "
+ use_collect2=no
+ ;;
crisv32-*-elf | crisv32-*-none)
tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
tmake_file="cris/t-cris"
;;
esac
;;
+epiphany-*-elf )
+ tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+ tmake_file="epiphany/t-epiphany"
+ extra_options="${extra_options} fused-madd.opt"
+ extra_objs="$extra_objs mode-switch-use.o resolve-sw-modes.o"
+ tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
+ extra_headers="epiphany_intrinsics.h"
+ ;;
fr30-*-elf)
tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
;;
target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
tm_file="${tm_file} dbxelf.h elfos.h gnu-user.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"
;;
# port not yet contributed.
#hppa*-*-openbsd*)
extra_objs="winnt.o winnt-stubs.o"
c_target_objs="${c_target_objs} msformat-c.o"
cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
+ gas=yes
+ gnu_ld=yes
default_use_cxa_atexit=yes
use_gcc_stdint=wrap
case ${enable_threads} in
;;
esac
;;
-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"
+i[34567]86-*-interix[3-9]*)
+ tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h"
tmake_file="${tmake_file} i386/t-interix"
- extra_options="${extra_options} rpath.opt interix.opt"
- extra_objs=winnt.o
+ extra_options="${extra_options} rpath.opt i386/interix.opt"
+ extra_objs="winnt.o winnt-stubs.o"
target_gtfiles="\$(srcdir)/config/i386/winnt.c"
if test x$enable_threads = xyes ; then
thread_file='posix'
;;
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"
+ tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
;;
ia64*-*-hpux*)
esac
;;
ia64-hp-*vms*)
- tm_file="${tm_file} elfos.h ia64/sysv4.h ia64/elf.h ia64/vms.h ia64/vms64.h"
+ tm_file="${tm_file} elfos.h ia64/sysv4.h ia64/elf.h vms/vms.h vms/vms64.h ia64/vms.h"
xm_file="vms/xm-vms.h vms/xm-vms64.h"
tmake_file="${tmake_file} vms/t-vms64 ia64/t-ia64"
target_cpu_default="0"
tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
tmake_file="${tmake_file} lm32/t-lm32"
tmake_file="${tmake_file} t-rtems"
+ tmake_file="${tmake_file} lm32/t-rtems"
;;
lm32-*-uclinux*)
tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
c_target_objs="${c_target_objs} microblaze-c.o"
cxx_target_objs="${cxx_target_objs} microblaze-c.o"
;;
+microblaze*-*-rtems*)
+ tm_file="${tm_file} dbxelf.h"
+ tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.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"
+ tmake_file="${tmake_file} t-rtems microblaze/t-rtems"
+ ;;
microblaze*-*-*)
tm_file="${tm_file} dbxelf.h"
c_target_objs="${c_target_objs} microblaze-c.o"
mips-sgi-irix6.5*)
tm_file="elfos.h ${tm_file} mips/iris6.h"
tmake_file="mips/t-irix6 t-slibgcc"
+ c_target_objs="irix6-c.o"
+ cxx_target_objs="irix6-c.o"
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"
tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
extra_headers=altivec.h
;;
-powerpc-*-freebsd*)
- tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h rs6000/freebsd.h"
- tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
+powerpc*-*-freebsd*)
+ tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
extra_options="${extra_options} rs6000/sysv4.opt"
+ tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
+ case ${target} in
+ powerpc64*)
+ tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
+ tmake_file="${tmake_file} rs6000/t-freebsd64"
+ extra_options="${extra_options} rs6000/linux64.opt"
+ ;;
+ *)
+ tm_file="${tm_file} rs6000/freebsd.h"
+ ;;
+ esac
;;
powerpc-*-netbsd*)
tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
;;
*)
tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
+ tmake_file="$tmake_file rs6000/t-linux"
;;
esac
case ${target} in
use_gcc_stdint=wrap
extra_headers=altivec.h
;;
+rl78-*-elf*)
+ tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
+ target_has_targetm_common=no
+ c_target_objs="rl78-c.o"
+ cxx_target_objs="rl78-c.o"
+ tmake_file="${tmake_file} rl78/t-rl78"
+ ;;
rx-*-elf*)
tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
tmake_file="${tmake_file} rx/t-rx"
sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
- sh*-*-linux*) sh_multilibs=m1,m3e,m4 ;;
+ sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
*) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
esac
;;
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-sparc sparc/t-elf t-rtems"
+ tmake_file="sparc/t-sparc sparc/t-elf sparc/t-rtems t-rtems"
;;
sparc-*-linux*)
- tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h"
+ tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
extra_options="${extra_options} sparc/long-double-switch.opt"
case ${target} in
*-leon-*)
tmake_file="${tmake_file} sparc/t-linux64"
else
tm_file="${tm_file} sparc/linux.h"
+ tmake_file="${tmake_file} sparc/t-linux"
fi
;;
sparc-*-netbsdelf*)
tmake_file="${tmake_file} sparc/t-sparc"
;;
sparc*-*-solaris2*)
- tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sol2-bi.h"
+ tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sol2-bi.h sparc/tso.h"
case ${target} in
sparc64-*-* | sparcv9-*-*)
tm_file="sparc/default-64.h ${tm_file}"
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}"
- tmake_file="${tmake_file} sparc/t-sparc t-rtems"
+ tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64 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/default-64.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 sparc/tso.h"
extra_options="${extra_options} sparc/long-double-switch.opt"
tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
;;
tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
use_collect2=no
;;
+tilegx-*-linux*)
+ tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
+ tmake_file="${tmake_file} tilegx/t-tilegx"
+ extra_objs="mul-tables.o"
+ c_target_objs="tilegx-c.o"
+ cxx_target_objs="tilegx-c.o"
+ extra_headers="feedback.h"
+ ;;
+tilepro-*-linux*)
+ tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
+ tmake_file="${tmake_file} tilepro/t-tilepro"
+ extra_objs="mul-tables.o"
+ c_target_objs="tilepro-c.o"
+ cxx_target_objs="tilepro-c.o"
+ extra_headers="feedback.h"
+ ;;
+v850-*-rtems*)
+ target_cpu_default="TARGET_CPU_generic"
+ tm_file="dbxelf.h elfos.h v850/v850.h"
+ tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
+ tmake_file="${tmake_file} v850/t-v850"
+ tmake_file="${tmake_file} t-rtems v850/t-rtems"
+ use_collect2=no
+ c_target_objs="v850-c.o"
+ cxx_target_objs="v850-c.o"
+ ;;
v850*-*-*)
case ${target} in
v850e2v3-*-*)
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
case "$with_fpu" in
"" \
- | fpa | fpe2 | fpe3 | maverick | vfp | vfp3 | vfpv3 \
+ | vfp | vfp3 | vfpv3 \
| vfpv3-fp16 | vfpv3-d16 | vfpv3-d16-fp16 | vfpv3xd \
| vfpv3xd-fp16 | neon | neon-fp16 | vfpv4 | vfpv4-d16 \
| fpv4-sp-d16 | neon-vfpv4)
# OK
;;
+ fpa | fpe2 | fpe3 | maverick)
+ if test "x$enable_obsolete" != xyes; then
+ echo "*** Configuration option --with-fpu=${with_fpu} 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
+ exit 1
+ fi
+ ;;
*)
echo "Unknown fpu used in --with-fpu=$with_fpu" 2>&1
exit 1
i[34567]86-*-darwin* | x86_64-*-darwin*)
;;
- i[34567]86-*-linux* | x86_64-*-linux* | \
- i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
- i[34567]86-*-gnu*)
+ i[34567]86-*-linux* | x86_64-*-linux*)
+ tmake_file="$tmake_file i386/t-linux"
+ ;;
+ i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
+ tmake_file="$tmake_file i386/t-kfreebsd"
+ ;;
+ i[34567]86-*-gnu*)
+ tmake_file="$tmake_file i386/t-gnu"
;;
i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
;;