1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2015 Free Software Foundation, Inc.
4 #This file is part of GCC.
6 #GCC is free software; you can redistribute it and/or modify it under
7 #the terms of the GNU General Public License as published by the Free
8 #Software Foundation; either version 3, or (at your option) any later
11 #GCC is distributed in the hope that it will be useful, but WITHOUT
12 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 #FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 #You should have received a copy of the GNU General Public License
17 #along with GCC; see the file COPYING3. If not see
18 #<http://www.gnu.org/licenses/>.
20 # This is the GCC target-specific configuration file
21 # where a configuration type is mapped to different system-specific
22 # definitions and files. This is invoked by the autoconf-generated
23 # configure script. Putting it in a separate shell file lets us skip
24 # running autoconf when modifying target-specific information.
26 # When you change the cases in the OS or target switches, consider
27 # updating ../libgcc/config.host also.
29 # This file switches on the shell variable ${target}, and also uses the
30 # following shell variables:
32 # with_* Various variables as set by configure.
34 # enable_threads Either the name, yes or no depending on whether
35 # threads support was requested.
37 # default_use_cxa_atexit
38 # The default value for the $enable___cxa_atexit
39 # variable. enable___cxa_atexit needs to be set to
40 # "yes" for the correct operation of C++ destructors
41 # but it relies upon the presence of a non-standard C
42 # library function called __cxa_atexit.
43 # Since not all C libraries provide __cxa_atexit the
44 # default value of $default_use_cxa_atexit is set to
45 # "no" except for targets which are known to be OK.
47 # default_gnu_indirect_function
48 # The default value for the $enable_gnu_indirect_function
49 # variable. enable_gnu_indirect_function relies
50 # upon the presence of a non-standard gnu ifunc support
51 # in the assembler, linker and dynamic linker.
52 # Since not all libraries provide the dynamic linking
53 # support, the default value of
54 # $default_gnu_indirect_function is set to
55 # "no" except for targets which are known to be OK.
57 # gas_flag Either yes or no depending on whether GNU as was
60 # gnu_ld_flag Either yes or no depending on whether GNU ld was
63 # This file sets the following shell variables for use by the
64 # autoconf-generated configure script:
66 # cpu_type The name of the cpu, if different from the first
67 # chunk of the canonical target name.
69 # tm_defines List of target macros to define for all compilations.
71 # tm_file A list of target macro files, if different from
72 # "$cpu_type/$cpu_type.h". Usually it's constructed
73 # per target in a way like this:
74 # tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h"
75 # Note that the preferred order is:
76 # - specific target header "${cpu_type}/${cpu_type.h}"
77 # - generic headers like dbxelf.h elfos.h, etc.
78 # - specializing target headers like ${cpu_type.h}/elf.h
79 # This helps to keep OS specific stuff out of the CPU
80 # defining header ${cpu_type}/${cpu_type.h}.
82 # It is possible to include automatically-generated
83 # build-directory files by prefixing them with "./".
84 # All other files should relative to $srcdir/config.
86 # tm_p_file Location of file with declarations for functions
89 # out_file The name of the machine description C support
90 # file, if different from "$cpu_type/$cpu_type.c".
92 # common_out_file The name of the source file for code shared between
93 # the compiler proper and the driver.
95 # md_file The name of the machine-description file, if
96 # different from "$cpu_type/$cpu_type.md".
98 # tmake_file A list of machine-description-specific
99 # makefile-fragments, if different from
100 # "$cpu_type/t-$cpu_type".
102 # extra_modes The name of the file containing a list of extra
103 # machine modes, if necessary and different from
104 # "$cpu_type/$cpu_type-modes.def".
106 # extra_objs List of extra objects that should be linked into
107 # the compiler proper (cc1, cc1obj, cc1plus)
108 # depending on target.
110 # extra_gcc_objs List of extra objects that should be linked into
111 # the compiler driver (gcc) depending on target.
113 # extra_headers List of used header files from the directory
114 # config/${cpu_type}.
116 # user_headers_inc_next_pre
117 # List of header file names of internal gcc header
118 # files, which should be prefixed by an include_next.
119 # user_headers_inc_next_post
120 # List of header file names of internal gcc header
121 # files, which should be postfixed by an include_next.
122 # use_gcc_tgmath If set, add tgmath.h to the list of used header
125 # use_gcc_stdint If "wrap", install a version of stdint.h that
126 # wraps the system's copy for hosted compilations;
127 # if "provide", provide a version of systems without
128 # such a system header; otherwise "none", do not
129 # provide such a header at all.
131 # extra_programs List of extra executables compiled for this target
132 # machine, used when linking.
134 # extra_options List of target-dependent .opt files.
136 # c_target_objs List of extra target-dependent objects that be
137 # linked into the C compiler only.
139 # cxx_target_objs List of extra target-dependent objects that be
140 # linked into the C++ compiler only.
142 # fortran_target_objs List of extra target-dependent objects that be
143 # linked into the fortran compiler only.
145 # target_gtfiles List of extra source files with type information.
147 # xm_defines List of macros to define when compiling for the
150 # xm_file List of files to include when compiling for the
153 # use_collect2 Set to yes or no, depending on whether collect2
156 # target_cpu_default Set to override the default target model.
158 # gdb_needs_out_file_path
159 # Set to yes if gdb needs a dir command with
160 # `dirname $out_file`.
162 # thread_file Set to control which thread package to use.
164 # gas Set to yes or no depending on whether the target
165 # system normally uses GNU as.
167 # configure_default_options
168 # Set to an initializer for configure_default_options
169 # in configargs.h, based on --with-cpu et cetera.
171 # native_system_header_dir
172 # Where system header files are found for this
173 # target. This defaults to /usr/include. If
174 # the --with-sysroot configure option or the
175 # --sysroot command line option is used this
176 # will be relative to the sysroot.
177 # target_type_format_char
178 # The default character to be used for formatting
180 # .type symbol_name, ${t_t_f_c}<property>
183 # The following variables are used in each case-construct to build up the
184 # outgoing variables:
186 # gnu_ld Set to yes or no depending on whether the target
187 # system normally uses GNU ld.
189 # target_has_targetcm Set to yes or no depending on whether the target
190 # has its own definition of targetcm.
192 # target_has_targetm_common Set to yes or no depending on whether the
193 # target has its own definition of targetm_common.
199 user_headers_inc_next_pre=
200 user_headers_inc_next_post=
210 target_has_targetcm=no
211 target_has_targetm_common=yes
214 # Set this to force installation and use of collect2.
216 # Set this to override the default target model.
218 # Set this if gdb needs a dir command with `dirname $out_file`
219 gdb_needs_out_file_path=
220 # Set this to control which thread package will be used.
222 # Reinitialize these from the flag values every loop pass, since some
223 # configure entries modify them.
225 gnu_ld="$gnu_ld_flag"
226 default_use_cxa_atexit=no
227 default_gnu_indirect_function=no
230 native_system_header_dir=/usr/include
231 target_type_format_char='@'
233 # Don't carry these over build->host->target. Please.
237 # Obsolete configurations.
239 # Currently there are no obsolete targets.
242 if test "x$enable_obsolete" != xyes; then
243 echo "*** Configuration ${target} is obsolete." >&2
244 echo "*** Specify --enable-obsolete to build it anyway." >&2
245 echo "*** Support will be REMOVED in the next major release of GCC," >&2
246 echo "*** unless a maintainer comes forward." >&2
251 # Unsupported targets list. Do not put an entry in this list unless
252 # it would otherwise be caught by a more permissive pattern. The list
253 # should be in alphabetical order.
255 # Avoid special cases that are not obsolete
264 | i[34567]86-go32-* \
265 | i[34567]86-*-go32* \
266 | m68k-*-uclinuxoldabi* \
267 | mips64orion*-*-rtems* \
269 | sparc-hal-solaris2* \
271 | *-*-freebsd[12] | *-*-freebsd[12].* \
272 | *-*-freebsd*aout* \
280 | *-*-solaris2.[0-9] \
281 | *-*-solaris2.[0-9].* \
285 echo "*** Configuration ${target} not supported" 1>&2
290 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
291 # updated in each machine entry. Also set default extra_headers for some
294 cpu_type=`echo ${target} | sed 's/-.*$//'`
299 tmake_file=m32c/t-m32c
300 target_has_targetm_common=no
304 extra_headers="arm_neon.h arm_acle.h"
305 extra_objs="aarch64-builtins.o aarch-common.o"
306 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c"
307 target_has_targetm_common=yes
311 extra_options="${extra_options} g.opt"
321 extra_objs="arm-builtins.o aarch-common.o"
322 extra_headers="mmintrin.h arm_neon.h arm_acle.h"
323 target_type_format_char='%'
324 c_target_objs="arm-c.o"
325 cxx_target_objs="arm-c.o"
326 extra_options="${extra_options} arm/arm-tables.opt"
327 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
331 c_target_objs="avr-c.o"
332 cxx_target_objs="avr-c.o"
341 extra_options="${extra_options} g.opt"
343 moxie*) cpu_type=moxie
344 target_has_targetm_common=no
348 extra_headers=math-68881.h
349 extra_options="${extra_options} m68k/m68k-tables.opt"
353 c_target_objs="i386-c.o"
354 cxx_target_objs="i386-c.o"
355 extra_options="${extra_options} fused-madd.opt"
356 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
357 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
358 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
359 immintrin.h x86intrin.h avxintrin.h xopintrin.h
360 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
361 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
362 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
363 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
364 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
365 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
366 shaintrin.h clflushoptintrin.h xsavecintrin.h
367 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
368 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
369 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
370 avx512vbmivlintrin.h clwbintrin.h pcommitintrin.h"
374 c_target_objs="i386-c.o"
375 cxx_target_objs="i386-c.o"
376 extra_options="${extra_options} fused-madd.opt"
377 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
378 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
379 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
380 immintrin.h x86intrin.h avxintrin.h xopintrin.h
381 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
382 lzcntintrin.h bmiintrin.h tbmintrin.h bmi2intrin.h
383 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
384 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
385 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
386 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
387 shaintrin.h clflushoptintrin.h xsavecintrin.h
388 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
389 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
390 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
391 avx512vbmivlintrin.h clwbintrin.h pcommitintrin.h"
394 extra_headers=ia64intrin.h
395 extra_options="${extra_options} g.opt fused-madd.opt"
401 extra_options="${extra_options} g.opt"
405 extra_options="${extra_options} g.opt"
408 extra_headers=math-68881.h
409 extra_options="${extra_options} m68k/m68k-tables.opt"
413 extra_options="${extra_options} g.opt"
417 extra_headers="loongson.h"
418 extra_options="${extra_options} g.opt mips/mips-tables.opt"
422 extra_headers="nds32_intrinsic.h"
423 extra_objs="nds32-cost.o nds32-intrinsic.o nds32-isr.o nds32-md-auxiliary.o nds32-pipelines-auxiliary.o nds32-predicates.o nds32-memory-manipulation.o nds32-fp-as-gp.o"
427 extra_options="${extra_options} g.opt"
434 extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h"
436 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500)
440 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
443 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
447 c_target_objs="sparc-c.o"
448 cxx_target_objs="sparc-c.o"
449 extra_headers="visintrin.h"
456 extra_options="${extra_options} fused-madd.opt"
457 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h"
459 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
460 sh[123456789lbe]*-*-* | sh-*-*)
462 extra_options="${extra_options} fused-madd.opt"
463 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
470 extra_headers="c6x_intrinsics.h"
471 extra_options="${extra_options} c6x/c6x-tables.opt"
474 extra_options="${extra_options} fused-madd.opt"
484 tm_file=${cpu_type}/${cpu_type}.h
485 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
487 tm_p_file=${cpu_type}/${cpu_type}-protos.h
490 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
492 extra_modes=${cpu_type}/${cpu_type}-modes.def
494 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
496 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
501 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
504 if test "x$with_multilib_list" = xilp32; then
505 tm_file="aarch64/biarchilp32.h ${tm_file}"
507 tm_file="aarch64/biarchlp64.h ${tm_file}"
511 tm_file="aarch64/biarchilp32.h ${tm_file}"
514 tm_file="aarch64/biarchlp64.h ${tm_file}"
517 echo "Unknown ABI used in --with-abi=$with_abi"
522 if test "x$with_abi" != x; then
523 echo "This target does not support --with-abi."
526 if test "x$enable_cld" = xyes; then
527 tm_defines="${tm_defines} USE_IX86_CLD=1"
529 if test "x$enable_frame_pointer" = xyes; then
530 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
532 tm_file="vxworks-dummy.h ${tm_file}"
537 if test "x$with_multilib_list" = xmx32; then
538 tm_file="i386/biarchx32.h ${tm_file}"
540 tm_file="i386/biarch64.h ${tm_file}"
544 tm_file="i386/biarch64.h ${tm_file}"
547 tm_file="i386/biarchx32.h ${tm_file}"
550 echo "Unknown ABI used in --with-abi=$with_abi"
553 if test "x$enable_cld" = xyes; then
554 tm_defines="${tm_defines} USE_IX86_CLD=1"
556 if test "x$enable_frame_pointer" = xyes; then
557 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
559 tm_file="vxworks-dummy.h ${tm_file}"
562 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
563 tm_file="vxworks-dummy.h ${tm_file}"
565 mips*-*-* | sh*-*-* | sparc*-*-*)
566 tm_file="vxworks-dummy.h ${tm_file}"
570 # On a.out targets, we need to use collect2.
577 # Common C libraries.
578 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3"
580 # 32-bit x86 processors supported by --with-arch=. Each processor
581 # MUST be separated by exactly one space.
582 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
583 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
584 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
585 pentium4 pentium4m pentiumpro prescott"
587 # 64-bit x86 processors supported by --with-arch=. Each processor
588 # MUST be separated by exactly one space.
589 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
590 bdver3 bdver4 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \
591 core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \
592 sandybridge ivybridge haswell broadwell bonnell silvermont knl x86-64 \
595 # Additional x86 processors supported by --with-cpu=. Each processor
596 # MUST be separated by exactly one space.
597 x86_cpus="generic intel"
599 # Common parts for widely ported systems.
602 tmake_file="t-darwin ${cpu_type}/t-darwin"
603 tm_file="${tm_file} darwin.h"
606 tm_file="${tm_file} darwin9.h"
608 *-*-darwin[12][0-9]*)
609 tm_file="${tm_file} darwin9.h darwin10.h"
612 tm_file="${tm_file} ${cpu_type}/darwin.h"
613 tm_p_file="${tm_p_file} darwin-protos.h"
614 target_gtfiles="\$(srcdir)/config/darwin.c"
615 extra_options="${extra_options} darwin.opt"
616 c_target_objs="${c_target_objs} darwin-c.o"
617 cxx_target_objs="${cxx_target_objs} darwin-c.o"
618 fortran_target_objs="darwin-f.o"
619 target_has_targetcm=yes
620 extra_objs="darwin.o"
621 extra_gcc_objs="darwin-driver.o"
622 default_use_cxa_atexit=yes
624 case ${enable_threads} in
625 "" | yes | posix) thread_file='posix' ;;
631 tmake_file="t-slibgcc"
632 case ${enable_threads} in
637 # Let these non-posix thread selections fall through if requested
640 echo 'Unknown thread configuration for DragonFly BSD'
644 extra_options="$extra_options rpath.opt dragonfly.opt"
645 default_use_cxa_atexit=yes
649 # This is the generic ELF configuration of FreeBSD. Later
650 # machine-specific sections may refine and add to this
653 # Due to tm_file entry ordering issues that vary between cpu
654 # architectures, we only define fbsd_tm_file to allow the
655 # machine-specific section to dictate the final order of all
656 # entries of tm_file with the minor exception that components
657 # of the tm_file set here will always be of the form:
659 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
661 # The machine-specific section should not tamper with this
662 # ordering but may order all other entries of tm_file as it
663 # pleases around the provided core setting.
666 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
667 if test "$fbsd_major" = ""; then
668 echo "Specify the major version number of the targeted FreeBSD release"
669 echo "like this: --target=amd64-unknown-freebsd10.1"
672 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
673 tmake_file="t-slibgcc"
674 case ${enable_threads} in
676 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
682 echo 'Unknown thread configuration for FreeBSD'
686 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
687 extra_options="$extra_options rpath.opt freebsd.opt"
692 default_use_cxa_atexit=yes;;
696 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
697 extra_options="$extra_options gnu-user.opt"
700 case ${enable_threads} in
701 "" | yes | posix) thread_file='posix' ;;
703 tmake_file="t-slibgcc"
705 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu)
708 native_system_header_dir=/include
711 # Linux C libraries selection switch: glibc / uclibc / bionic.
712 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
715 tm_p_file="${tm_p_file} linux-protos.h"
716 tmake_file="${tmake_file} t-linux"
717 extra_objs="${extra_objs} linux.o"
718 extra_options="${extra_options} linux.opt"
723 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
726 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
729 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
732 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
734 default_use_cxa_atexit=yes
737 # Enable compilation for Android by default for *android* targets.
740 tm_defines="$tm_defines ANDROID_DEFAULT=1"
743 tm_defines="$tm_defines ANDROID_DEFAULT=0"
746 c_target_objs="${c_target_objs} glibc-c.o"
747 cxx_target_objs="${cxx_target_objs} glibc-c.o"
748 tmake_file="${tmake_file} t-glibc"
749 target_has_targetcm=yes
752 tmake_file="t-slibgcc"
756 # NetBSD 2.0 and later get POSIX threads enabled by default.
757 # Allow them to be explicitly enabled on any other version.
758 case ${enable_threads} in
761 *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
763 tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
769 tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
773 # NetBSD 2.0 and later provide __cxa_atexit(), which we use by
774 # default (unless overridden by --disable-__cxa_atexit).
776 *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
777 default_use_cxa_atexit=yes
782 tmake_file="t-openbsd"
783 case ${enable_threads} in
789 *-*-openbsd2.*|*-*-openbsd3.[012])
790 tm_defines="${tm_defines} HAS_LIBC_R=1" ;;
793 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
794 default_use_cxa_atexit=yes
799 case ${enable_threads} in
800 "" | yes | rtems) thread_file='rtems' ;;
801 posix) thread_file='posix' ;;
804 echo 'Unknown thread configuration for RTEMS'
808 tmake_file="${tmake_file} t-rtems"
809 extra_options="${extra_options} rtems.opt"
810 default_use_cxa_atexit=yes
814 extra_options="$extra_options gnu-user.opt"
816 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
822 # i?86-*-solaris2* needs to insert headers between cpu default and
823 # Solaris 2 specific ones.
824 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
825 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
826 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
828 if test x$gnu_ld = xyes; then
829 tm_file="usegld.h ${tm_file}"
831 if test x$gas = xyes; then
832 tm_file="usegas.h ${tm_file}"
834 tm_p_file="${tm_p_file} sol2-protos.h"
835 tmake_file="${tmake_file} t-sol2 t-slibgcc"
836 c_target_objs="${c_target_objs} sol2-c.o"
837 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
838 extra_objs="sol2.o sol2-stubs.o"
839 extra_options="${extra_options} sol2.opt"
840 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
841 "":yes:* | yes:yes:* )
847 extra_options="${extra_options} vms/vms.opt"
849 tmake_file="vms/t-vms t-slibgcc"
851 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
852 tm_p_file="${tm_p_file} vms/vms-protos.h"
853 xm_file="vms/xm-vms.h"
854 c_target_objs="vms-c.o"
855 cxx_target_objs="vms-c.o"
856 fortran_target_objs="vms-f.o"
857 use_gcc_stdint=provide
858 tm_file="${tm_file} vms/vms-stdint.h"
859 if test x$gnu_ld != xyes; then
860 # Build wrappers for native case.
861 extra_programs="ld\$(exeext) ar\$(exeext)"
862 tmake_file="$tmake_file vms/t-vmsnative"
868 extra_options="${extra_options} vxworks.opt"
869 extra_objs="$extra_objs vxworks.o"
870 case ${enable_threads} in
872 "" | yes | vxworks) thread_file='vxworks' ;;
873 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
877 # Assume that newlib is being used and so __cxa_atexit is provided.
878 default_use_cxa_atexit=yes
885 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
886 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
887 tmake_file="${tmake_file} aarch64/t-aarch64"
891 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
894 aarch64_multilibs="${with_multilib_list}"
895 if test "$aarch64_multilibs" = "default"; then
896 aarch64_multilibs="lp64,ilp32"
898 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
899 for aarch64_multilib in ${aarch64_multilibs}; do
900 case ${aarch64_multilib} in
902 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
905 echo "--with-multilib-list=${aarch64_multilib} not supported."
909 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
912 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
913 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
914 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
917 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
920 aarch64_multilibs="${with_multilib_list}"
921 if test "$aarch64_multilibs" = "default"; then
922 # TODO: turn on ILP32 multilib build after its support is mature.
923 # aarch64_multilibs="lp64,ilp32"
924 aarch64_multilibs="lp64"
926 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
927 for aarch64_multilib in ${aarch64_multilibs}; do
928 case ${aarch64_multilib} in
930 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
933 echo "--with-multilib-list=${aarch64_multilib} not supported."
937 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
940 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
941 tmake_file="${tmake_file} alpha/t-linux"
942 extra_options="${extra_options} alpha/elf.opt"
945 tm_file="elfos.h ${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
946 extra_options="${extra_options} alpha/elf.opt"
949 tm_file="elfos.h ${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h"
950 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
954 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
955 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
956 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
957 # default x-alpha is only appropriate for dec-osf.
960 tm_file="${tm_file} vms/vms.h alpha/vms.h"
961 tmake_file="${tmake_file} alpha/t-vms"
964 extra_headers="arc-simd.h"
965 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
966 tmake_file="arc/t-arc-newlib arc/t-arc"
967 case x"${with_cpu}" in
968 xarc600|xarc601|xarc700)
969 target_cpu_default="TARGET_CPU_$with_cpu"
972 if test x${with_endian} = x; then
974 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
975 *) with_endian=little ;;
978 case ${with_endian} in
980 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
982 case ${with_endian} in
983 big*) tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
986 arc*-*-linux-uclibc*)
987 extra_headers="arc-simd.h"
988 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file}"
989 tmake_file="${tmake_file} arc/t-arc-uClibc arc/t-arc"
990 tm_defines="${tm_defines} TARGET_SDATA_DEFAULT=0"
991 tm_defines="${tm_defines} TARGET_MMEDIUM_CALLS_DEFAULT=1"
992 case x"${with_cpu}" in
993 xarc600|xarc601|xarc700)
994 target_cpu_default="TARGET_CPU_$with_cpu"
997 if test x${with_endian} = x; then
999 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1000 *) with_endian=little ;;
1003 case ${with_endian} in
1005 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1007 case ${with_endian} in
1008 big*) tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
1012 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1013 extra_options="${extra_options} arm/vxworks.opt"
1014 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1016 arm*-*-freebsd*) # ARM FreeBSD EABI
1017 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1020 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1023 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1024 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1027 tm_defines="${tm_defines} TARGET_FREEBSD_ARMv6=1"
1032 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1035 with_tls=${with_tls:-gnu}
1038 tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1039 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1040 tmake_file="${tmake_file} arm/t-arm"
1042 arm*-*-linux-*) # ARM GNU/Linux with ELF
1043 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"
1044 extra_options="${extra_options} linux-android.opt"
1047 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1050 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1051 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1052 # Define multilib configuration for arm-linux-androideabi.
1055 tmake_file="$tmake_file arm/t-linux-androideabi"
1058 # The EABI requires the use of __cxa_atexit.
1059 default_use_cxa_atexit=yes
1060 with_tls=${with_tls:-gnu}
1062 arm*-*-uclinux*eabi*) # ARM ucLinux
1063 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1064 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1065 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1066 # The EABI requires the use of __cxa_atexit.
1067 default_use_cxa_atexit=yes
1069 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
1072 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1074 default_use_cxa_atexit=yes
1075 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1076 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1079 tm_file="$tm_file newlib-stdint.h"
1080 tmake_file="${tmake_file} arm/t-bpabi"
1084 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1085 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1088 tm_file="${tm_file} arm/symbian.h"
1089 # We do not include t-bpabi for Symbian OS because the system
1090 # provides its own implementation of the BPABI functions.
1091 tmake_file="${tmake_file} arm/t-symbian"
1094 tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
1097 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
1098 tm_defines="${tm_defines} WITH_RTEMS"
1099 tmake_file="${tmake_file} avr/t-avr avr/t-multilib avr/t-rtems"
1100 extra_gcc_objs="driver-avr.o avr-devices.o"
1101 extra_objs="avr-devices.o avr-log.o"
1104 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1105 if test x${with_avrlibc} != xno; then
1106 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1107 tm_defines="${tm_defines} WITH_AVRLIBC"
1109 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1111 extra_gcc_objs="driver-avr.o avr-devices.o"
1112 extra_objs="avr-devices.o avr-log.o"
1115 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1116 tmake_file=bfin/t-bfin-elf
1120 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1121 tmake_file=bfin/t-bfin-uclinux
1124 bfin*-linux-uclibc*)
1125 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/linux.h ./linux-sysroot-suffix.h"
1126 tmake_file="bfin/t-bfin-linux t-slibgcc t-linux"
1130 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1131 tmake_file="${tmake_file} bfin/t-rtems"
1134 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1139 tm_file="elfos.h ${tm_file}"
1140 tmake_file="${tmake_file} cr16/t-cr16 "
1143 crisv32-*-elf | crisv32-*-none)
1144 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1145 tmake_file="cris/t-cris"
1146 target_cpu_default=32
1148 extra_options="${extra_options} cris/elf.opt"
1151 cris-*-elf | cris-*-none)
1152 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1153 tmake_file="cris/t-cris cris/t-elfmulti"
1155 extra_options="${extra_options} cris/elf.opt"
1158 crisv32-*-linux* | cris-*-linux*)
1159 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1160 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1161 extra_options="${extra_options} cris/linux.opt"
1164 target_cpu_default=10
1167 target_cpu_default=32
1172 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1173 tmake_file="epiphany/t-epiphany"
1174 extra_options="${extra_options} fused-madd.opt"
1175 extra_objs="$extra_objs mode-switch-use.o resolve-sw-modes.o"
1176 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1177 extra_headers="epiphany_intrinsics.h"
1180 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1183 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1184 tmake_file=frv/t-frv
1187 tm_file="dbxelf.h elfos.h ${tm_file} \
1188 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1189 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1194 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1195 tmake_file="${tmake_file} moxie/t-moxie"
1200 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1201 tmake_file="${tmake_file} moxie/t-moxie"
1204 tmake_file="${tmake_file} moxie/t-moxie"
1205 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1210 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1211 tmake_file="${tmake_file} moxie/t-moxiebox"
1214 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-rtems"
1215 tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h"
1218 tmake_file="h8300/t-h8300"
1219 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1222 target_cpu_default="MASK_PA_11|MASK_PA_20"
1223 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1224 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1229 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1230 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1231 pa/pa32-regs.h pa/pa32-linux.h"
1232 tmake_file="${tmake_file} pa/t-linux"
1235 target_cpu_default="MASK_PA_11"
1236 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1237 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1238 extra_options="${extra_options} openbsd.opt"
1242 hppa[12]*-*-hpux10*)
1244 hppa1.1-*-* | hppa2*-*-*)
1245 target_cpu_default="MASK_PA_11"
1248 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1249 pa/pa-hpux.h pa/pa-hpux10.h"
1250 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1253 tm_file="${tm_file} pa/pa-hpux1010.h"
1254 extra_options="${extra_options} pa/pa-hpux1010.opt"
1257 use_gcc_stdint=provide
1258 tm_file="${tm_file} hpux-stdint.h"
1259 tmake_file="t-slibgcc"
1260 case ${enable_threads} in
1262 if test x$have_pthread_h = xyes ; then
1263 tmake_file="${tmake_file} pa/t-dce-thr"
1267 tmake_file="${tmake_file} pa/t-dce-thr"
1272 if test "x$with_dwarf2" != x; then
1273 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1278 target_cpu_default="MASK_PA_11|MASK_PA_20"
1279 if test x$gnu_ld = xyes
1281 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1283 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1284 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1288 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1289 extra_options="${extra_options} pa/pa-hpux1111.opt"
1292 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1293 extra_options="${extra_options} pa/pa-hpux1131.opt"
1296 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1299 extra_options="${extra_options} pa/pa-hpux.opt \
1300 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1301 tmake_file="t-slibgcc"
1302 case x${enable_threads} in
1310 use_gcc_stdint=provide
1311 tm_file="${tm_file} hpux-stdint.h"
1315 tm_file="${tm_file} hpux-stdint.h"
1319 hppa[12]*-*-hpux11*)
1321 hppa1.1-*-* | hppa2*-*-*)
1322 target_cpu_default="MASK_PA_11"
1325 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1326 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1327 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1331 tm_file="${tm_file} pa/pa-hpux1111.h"
1332 extra_options="${extra_options} pa/pa-hpux1111.opt"
1335 tm_file="${tm_file} pa/pa-hpux1131.h"
1336 extra_options="${extra_options} pa/pa-hpux1131.opt"
1339 tmake_file="t-slibgcc"
1340 case x${enable_threads} in
1349 use_gcc_stdint=provide
1350 tm_file="${tm_file} hpux-stdint.h"
1354 tm_file="${tm_file} hpux-stdint.h"
1357 if test "x$with_dwarf2" != x; then
1358 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1362 i[34567]86-*-darwin*)
1364 # Baseline choice for a machine that allows m64 support.
1365 with_cpu=${with_cpu:-core2}
1366 tmake_file="${tmake_file} t-slibgcc"
1369 with_cpu=${with_cpu:-core2}
1370 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1371 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1374 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1377 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1380 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1383 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rdos.h i386/rdos64.h"
1384 tmake_file="i386/t-i386elf t-svr4"
1386 i[34567]86-*-dragonfly*)
1387 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1388 tmake_file="${tmake_file} i386/t-crtstuff"
1390 x86_64-*-dragonfly*)
1391 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/x86-64.h i386/dragonfly.h"
1392 tmake_file="${tmake_file} i386/t-crtstuff"
1394 i[34567]86-*-freebsd*)
1395 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1398 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"
1400 i[34567]86-*-netbsdelf*)
1401 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
1402 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1405 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"
1406 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1408 i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
1409 tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h"
1410 extra_options="${extra_options} openbsd.opt"
1411 # needed to unconfuse gdb
1412 tmake_file="${tmake_file} t-openbsd i386/t-openbsd"
1413 # we need collect2 until our bug is fixed...
1416 i[34567]86-*-openbsd*)
1417 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1418 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1419 extra_options="${extra_options} openbsd.opt"
1424 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1425 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1426 extra_options="${extra_options} openbsd.opt"
1430 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1431 # Intel 80386's running GNU/*
1432 # with ELF format using glibc 2
1433 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1435 i[34567]86-*-linux*)
1436 tm_file="${tm_file} linux.h linux-android.h"
1437 extra_options="${extra_options} linux-android.opt"
1438 # Assume modern glibc if not targeting Android nor uclibc.
1440 *-*-*android*|*-*-*uclibc*)
1443 default_gnu_indirect_function=yes
1446 if test x$enable_targets = xall; then
1447 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1448 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1449 tmake_file="${tmake_file} i386/t-linux64"
1450 x86_multilibs="${with_multilib_list}"
1451 if test "$x86_multilibs" = "default"; then
1452 x86_multilibs="m64,m32"
1454 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1455 for x86_multilib in ${x86_multilibs}; do
1456 case ${x86_multilib} in
1458 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1461 echo "--with-multilib-list=${x86_with_multilib} not supported."
1465 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1467 if test x$with_cpu = x; then
1468 if test x$with_cpu_64 = x; then
1472 case " $x86_cpus $x86_archs $x86_64_archs " in
1476 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1477 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1483 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1486 i[34567]86-*-knetbsd*-gnu)
1487 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h"
1489 i[34567]86-*-kfreebsd*-gnu)
1490 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1492 i[34567]86-*-kopensolaris*-gnu)
1493 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1496 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1500 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
1501 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1502 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1505 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1506 extra_options="${extra_options} linux-android.opt"
1507 # Assume modern glibc if not targeting Android nor uclibc.
1509 *-*-*android*|*-*-*uclibc*)
1512 default_gnu_indirect_function=yes
1516 x86_64-*-kfreebsd*-gnu)
1517 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1519 x86_64-*-knetbsd*-gnu)
1520 tm_file="${tm_file} knetbsd-gnu.h"
1523 tmake_file="${tmake_file} i386/t-linux64"
1524 x86_multilibs="${with_multilib_list}"
1525 if test "$x86_multilibs" = "default"; then
1528 x86_multilibs="mx32"
1531 x86_multilibs="m64,m32"
1535 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1536 for x86_multilib in ${x86_multilibs}; do
1537 case ${x86_multilib} in
1539 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1542 echo "--with-multilib-list=${x86_with_multilib} not supported."
1546 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1548 i[34567]86-pc-msdosdjgpp*)
1549 xm_file=i386/xm-djgpp.h
1550 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1551 native_system_header_dir=/dev/env/DJDIR/include
1552 extra_options="${extra_options} i386/djgpp.opt"
1557 i[34567]86-*-lynxos*)
1559 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1560 tmake_file="${tmake_file} t-lynx"
1561 extra_options="${extra_options} lynx.opt"
1566 i[34567]86-*-nto-qnx*)
1567 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1568 extra_options="${extra_options} i386/nto.opt"
1572 i[34567]86-*-rtems*)
1573 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"
1574 tmake_file="${tmake_file} i386/t-rtems"
1576 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1577 # Set default arch_32 to pentium4, tune_32 to generic like the other
1578 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1579 with_arch_32=${with_arch_32:-pentium4}
1580 with_tune_32=${with_tune_32:-generic}
1581 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1582 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1583 tmake_file="$tmake_file i386/t-sol2"
1585 if test x$with_cpu = x; then
1586 if test x$with_cpu_64 = x; then
1590 case " $x86_cpus $x86_archs $x86_64_archs " in
1594 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1595 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1601 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
1602 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h vx-common.h"
1605 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1606 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1609 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1610 tmake_file="${tmake_file} i386/t-vxworks"
1614 i[34567]86-*-cygwin*)
1615 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"
1616 xm_file=i386/xm-cygwin.h
1617 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1618 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1619 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1620 extra_objs="winnt.o winnt-stubs.o"
1621 c_target_objs="${c_target_objs} msformat-c.o"
1622 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1623 if test x$enable_threads = xyes; then
1626 default_use_cxa_atexit=yes
1631 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h i386/cygwin-w64.h i386/cygwin-stdint.h"
1632 xm_file=i386/xm-cygwin.h
1633 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1634 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1635 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1636 extra_objs="winnt.o winnt-stubs.o"
1637 c_target_objs="${c_target_objs} msformat-c.o"
1638 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1639 if test x$enable_threads = xyes; then
1642 default_use_cxa_atexit=yes
1644 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1646 i[34567]86-*-mingw* | x86_64-*-mingw*)
1647 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1648 xm_file=i386/xm-mingw32.h
1649 c_target_objs="${c_target_objs} winnt-c.o"
1650 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1651 target_has_targetcm="yes"
1653 x86_64-*-* | *-w64-*)
1659 if test x$enable_threads = xposix ; then
1660 tm_file="${tm_file} i386/mingw-pthread.h"
1662 tm_file="${tm_file} i386/mingw32.h"
1663 # This makes the logic if mingw's or the w64 feature set has to be used
1666 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1667 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1668 tm_file="${tm_file} i386/mingw-w64.h"
1669 if test x$enable_targets = xall; then
1670 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1671 if test x$with_cpu = x; then
1672 if test x$with_cpu_64 = x; then
1676 case " $x86_cpus $x86_archs $x86_64_archs " in
1680 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1681 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1691 tm_file="${tm_file} i386/mingw-stdint.h"
1692 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1695 tmake_file="${tmake_file} i386/t-mingw-w64"
1698 tmake_file="${tmake_file} i386/t-mingw-w32"
1701 native_system_header_dir=/mingw/include
1702 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1703 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1706 extra_options="${extra_options} i386/mingw-w64.opt"
1711 extra_objs="winnt.o winnt-stubs.o"
1712 c_target_objs="${c_target_objs} msformat-c.o"
1713 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1716 default_use_cxa_atexit=yes
1718 case ${enable_threads} in
1728 tm_file="${tm_file} i386/crtdll.h"
1730 *mingw32msv* | *mingw*)
1734 i[34567]86-*-interix[3-9]*)
1735 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h"
1736 tmake_file="${tmake_file} i386/t-interix"
1737 extra_options="${extra_options} rpath.opt i386/interix.opt"
1738 extra_objs="winnt.o winnt-stubs.o"
1739 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1740 if test x$enable_threads = xyes ; then
1743 if test x$stabs = xyes ; then
1744 tm_file="${tm_file} dbxcoff.h"
1748 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1749 tmake_file="ia64/t-ia64"
1750 target_cpu_default="0"
1751 if test x$gas = xyes
1753 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1755 if test x$gnu_ld = xyes
1757 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1761 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1762 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1763 tmake_file="${tmake_file} ia64/t-ia64"
1766 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1767 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1768 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1771 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1772 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1773 target_cpu_default="MASK_GNU_AS"
1774 case x$enable_threads in
1780 c_target_objs="ia64-c.o"
1781 cxx_target_objs="ia64-c.o"
1782 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1784 tm_file="${tm_file} hpux-stdint.h"
1787 tm_file="${tm_file} ia64/hpux-unix2003.h"
1792 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1793 tmake_file="${tmake_file} ia64/t-ia64"
1794 target_cpu_default="0"
1795 if test x$gas = xyes
1797 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1799 extra_options="${extra_options} ia64/vms.opt"
1802 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1803 out_file=iq2000/iq2000.c
1804 md_file=iq2000/iq2000.md
1807 tm_file="dbxelf.h elfos.h ${tm_file}"
1808 tmake_file="${tmake_file} lm32/t-lm32"
1811 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1812 tmake_file="${tmake_file} lm32/t-lm32"
1813 tmake_file="${tmake_file} lm32/t-rtems"
1816 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1817 tmake_file="${tmake_file} lm32/t-lm32"
1820 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1823 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1826 tm_file="dbxelf.h elfos.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h"
1827 tmake_file="${tmake_file} m32r/t-m32r"
1830 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1831 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1833 if test x$enable_threads = xyes; then
1838 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1839 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1841 if test x$enable_threads = xyes; then
1845 m68k-*-elf* | fido-*-elf*)
1848 # Check that $with_cpu makes sense.
1853 echo "Cannot accept --with-cpu=$with_cpu"
1860 default_m68k_cpu=68020
1864 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h newlib-stdint.h m68k/m68kemb.h m68k/m68020-elf.h"
1865 tm_defines="${tm_defines} MOTOROLA=1"
1866 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1867 # Add multilibs for targets other than fido.
1872 tmake_file="$tmake_file m68k/t-mlibs"
1877 default_m68k_cpu=68020
1879 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
1880 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1881 tm_defines="${tm_defines} MOTOROLA=1"
1884 default_m68k_cpu=68020
1886 # needed to unconfuse gdb
1887 tm_defines="${tm_defines} OBSD_OLD_GAS"
1888 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1889 extra_options="${extra_options} openbsd.opt"
1890 tmake_file="t-openbsd m68k/t-openbsd"
1891 # we need collect2 until our bug is fixed...
1894 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
1895 # with uClibc, using the new GNU/Linux-style
1897 default_m68k_cpu=68020
1899 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"
1900 extra_options="${extra_options} m68k/uclinux.opt"
1901 tm_defines="${tm_defines} MOTOROLA=1"
1902 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1904 m68k-*-linux*) # Motorola m68k's running GNU/Linux
1905 # with ELF format using glibc 2
1906 # aka the GNU/Linux C library 6.
1907 default_m68k_cpu=68020
1909 with_arch=${with_arch:-m68k}
1910 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
1911 extra_options="${extra_options} m68k/ieee.opt"
1912 tm_defines="${tm_defines} MOTOROLA=1"
1913 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
1916 default_m68k_cpu=68020
1918 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
1919 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h newlib-stdint.h"
1920 tm_defines="${tm_defines} MOTOROLA=1"
1923 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
1924 tmake_file=mcore/t-mcore
1928 tm_file="dbxelf.h elfos.h ${tm_file}"
1929 tmake_file=mep/t-mep
1930 c_target_objs="mep-pragma.o"
1931 cxx_target_objs="mep-pragma.o"
1932 if test -d "${srcdir}/../newlib/libc/include" &&
1933 test "x$with_headers" = x; then
1941 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1944 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1947 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
1948 tm_file="${tm_file} glibc-stdint.h"
1949 c_target_objs="${c_target_objs} microblaze-c.o"
1950 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1951 tmake_file="${tmake_file} microblaze/t-microblaze"
1952 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
1954 microblaze*-*-rtems*)
1957 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1960 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1963 tm_file="${tm_file} dbxelf.h"
1964 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
1965 c_target_objs="${c_target_objs} microblaze-c.o"
1966 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1967 tmake_file="${tmake_file} microblaze/t-microblaze"
1968 tmake_file="${tmake_file} microblaze/t-rtems"
1973 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1976 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1979 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
1980 c_target_objs="${c_target_objs} microblaze-c.o"
1981 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1982 tmake_file="${tmake_file} microblaze/t-microblaze"
1984 mips*-*-netbsd*) # NetBSD/mips, either endian.
1985 target_cpu_default="MASK_ABICALLS"
1986 tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
1987 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1990 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h mips/mti-linux.h"
1991 extra_options="${extra_options} linux-android.opt"
1992 tmake_file="${tmake_file} mips/t-img-linux"
1993 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
1998 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h mips/mti-linux.h"
1999 extra_options="${extra_options} linux-android.opt"
2000 tmake_file="${tmake_file} mips/t-mti-linux"
2001 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2005 mips*-*-linux*) # Linux MIPS, either endian.
2006 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h"
2007 extra_options="${extra_options} linux-android.opt"
2010 default_mips_arch=mips32r6
2013 default_mips_arch=mips32r2
2016 default_mips_arch=mips32
2018 mips64el-st-linux-gnu)
2019 default_mips_abi=n32
2020 tm_file="${tm_file} mips/st.h"
2021 tmake_file="${tmake_file} mips/t-st"
2022 enable_mips_multilibs="yes"
2024 mips64octeon*-*-linux*)
2025 default_mips_abi=n32
2026 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2027 target_cpu_default=MASK_SOFT_FLOAT_ABI
2028 enable_mips_multilibs="yes"
2030 mipsisa64r6*-*-linux*)
2031 default_mips_abi=n32
2032 default_mips_arch=mips64r6
2033 enable_mips_multilibs="yes"
2035 mipsisa64r2*-*-linux*)
2036 default_mips_abi=n32
2037 default_mips_arch=mips64r2
2038 enable_mips_multilibs="yes"
2040 mips64*-*-linux* | mipsisa64*-*-linux*)
2041 default_mips_abi=n32
2042 enable_mips_multilibs="yes"
2045 if test x$enable_targets = xall; then
2046 enable_mips_multilibs="yes"
2048 if test x$enable_mips_multilibs = xyes; then
2049 tmake_file="${tmake_file} mips/t-linux64"
2053 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2054 tmake_file="mips/t-mti-elf"
2055 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2058 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2059 tmake_file="mips/t-img-elf"
2060 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2063 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2064 tmake_file="mips/t-sde"
2065 extra_options="${extra_options} mips/sde.opt"
2066 case "${with_newlib}" in
2068 # newlib / libgloss.
2071 # MIPS toolkit libraries.
2072 tm_file="$tm_file mips/sdemtk.h"
2073 tmake_file="$tmake_file mips/t-sdemtk"
2074 case ${enable_threads} in
2076 thread_file='mipssde'
2083 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2086 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2089 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2092 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2095 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2098 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2102 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2103 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2104 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2105 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2106 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2107 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2108 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2109 tmake_file="mips/t-isa3264"
2112 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2115 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2118 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2121 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2124 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2127 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2131 mipsisa32*-*-elfoabi*)
2132 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2133 tm_file="${tm_file} mips/elfoabi.h"
2135 mipsisa64*-*-elfoabi*)
2136 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2137 tm_file="${tm_file} mips/elfoabi.h"
2140 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2144 mipsisa64sr71k-*-elf*)
2145 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2146 tmake_file=mips/t-sr71k
2147 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2149 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2150 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2151 tmake_file="mips/t-elf mips/t-sb1"
2152 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2154 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2155 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2156 tmake_file="mips/t-elf"
2158 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2159 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2160 tmake_file="mips/t-elf"
2161 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2163 mips64-*-elf* | mips64el-*-elf*)
2164 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2165 tmake_file="mips/t-elf"
2166 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2168 mips64vr-*-elf* | mips64vrel-*-elf*)
2169 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2170 tmake_file=mips/t-vr
2171 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2173 mips64orion-*-elf* | mips64orionel-*-elf*)
2174 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2175 tmake_file="mips/t-elf"
2176 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2179 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2180 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2183 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2184 tmake_file="${tmake_file} mips/t-vxworks"
2186 mipstx39-*-elf* | mipstx39el-*-elf*)
2187 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2188 tmake_file="mips/t-r3900"
2190 mmix-knuth-mmixware)
2191 tm_file="${tm_file} newlib-stdint.h"
2195 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2196 if test x$stabs = xyes
2198 tm_file="${tm_file} dbx.h"
2204 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2205 c_target_objs="msp430-c.o"
2206 cxx_target_objs="msp430-c.o"
2207 tmake_file="${tmake_file} msp430/t-msp430"
2210 target_cpu_default="0"
2211 tm_defines="${tm_defines}"
2212 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2213 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2216 target_cpu_default="0|MASK_BIG_ENDIAN"
2217 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2218 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2219 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2222 tm_file="elfos.h ${tm_file}"
2223 tmake_file="${tmake_file} nios2/t-nios2"
2226 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2229 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2230 extra_options="${extra_options} nios2/elf.opt"
2233 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2234 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2239 tm_file="${tm_file} newlib-stdint.h"
2240 tmake_file="nvptx/t-nvptx"
2241 if test x$enable_as_accelerator = xyes; then
2242 extra_programs="${extra_programs} mkoffload\$(exeext)"
2243 tm_file="${tm_file} nvptx/offload.h"
2247 tm_file="${tm_file} newlib-stdint.h"
2250 # port not yet contributed
2251 #powerpc-*-openbsd*)
2252 # tmake_file="${tmake_file} rs6000/t-fprules"
2256 extra_options="${extra_options} rs6000/darwin.opt"
2258 *-darwin1[0-9]* | *-darwin[8-9]*)
2259 tmake_file="${tmake_file} rs6000/t-darwin8"
2260 tm_file="${tm_file} rs6000/darwin8.h"
2263 tm_file="${tm_file} rs6000/darwin7.h"
2268 tmake_file="${tmake_file} t-slibgcc"
2269 extra_headers=altivec.h
2271 powerpc64-*-darwin*)
2272 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2273 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2274 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2275 extra_headers=altivec.h
2277 powerpc*-*-freebsd*)
2278 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2279 extra_options="${extra_options} rs6000/sysv4.opt"
2280 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2283 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2284 tmake_file="${tmake_file} rs6000/t-freebsd64"
2285 extra_options="${extra_options} rs6000/linux64.opt"
2288 tm_file="${tm_file} rs6000/freebsd.h"
2293 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2294 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2295 tmake_file="${tmake_file} rs6000/t-netbsd"
2296 extra_options="${extra_options} rs6000/sysv4.opt"
2299 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabispe.h"
2300 extra_options="${extra_options} rs6000/sysv4.opt"
2301 tmake_file="rs6000/t-spe rs6000/t-ppccomm"
2304 powerpc-*-eabisimaltivec*)
2305 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"
2306 extra_options="${extra_options} rs6000/sysv4.opt"
2307 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2311 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"
2312 extra_options="${extra_options} rs6000/sysv4.opt"
2313 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2317 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2318 extra_options="${extra_options} rs6000/sysv4.opt"
2319 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2321 powerpc-*-eabialtivec*)
2322 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"
2323 extra_options="${extra_options} rs6000/sysv4.opt"
2324 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2327 powerpc-xilinx-eabi*)
2328 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"
2329 extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
2330 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2334 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"
2335 extra_options="${extra_options} rs6000/sysv4.opt"
2336 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2340 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"
2341 extra_options="${extra_options} rs6000/sysv4.opt"
2342 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2345 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2346 extra_options="${extra_options} rs6000/sysv4.opt"
2347 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2348 extra_objs="$extra_objs rs6000-linux.o"
2351 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2353 case ${target}:${with_cpu} in
2354 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2356 maybe_biarch=${cpu_is_64bit}
2357 case ${enable_targets} in
2358 *powerpc64*) maybe_biarch=yes ;;
2361 powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
2362 echo "*** Configuration ${target} not supported" 1>&2
2365 powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
2369 case ${target}:${enable_targets}:${maybe_biarch} in
2370 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2371 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2372 | powerpcle-*:*powerpc64le*:yes)
2373 if test x$cpu_is_64bit = xyes; then
2374 tm_file="${tm_file} rs6000/default64.h"
2376 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2377 tmake_file="$tmake_file rs6000/t-linux64"
2380 tmake_file="$tmake_file rs6000/t-linux64le"
2381 case ${enable_targets} in
2382 all | *powerpc64-* | *powerpc-*)
2383 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2386 case ${enable_targets} in
2387 all | *powerpc64le-* | *powerpcle-*)
2388 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2391 extra_options="${extra_options} rs6000/linux64.opt"
2394 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2395 extra_options="${extra_options} rs6000/linux64.opt"
2396 tmake_file="${tmake_file} rs6000/t-linux"
2399 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2400 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2404 powerpc*-*-linux*ppc476*)
2405 tm_file="${tm_file} rs6000/476.h"
2406 extra_options="${extra_options} rs6000/476.opt" ;;
2407 powerpc*-*-linux*altivec*)
2408 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2409 powerpc*-*-linux*spe*)
2410 tm_file="${tm_file} rs6000/linuxspe.h rs6000/e500.h" ;;
2411 powerpc*-*-linux*paired*)
2412 tm_file="${tm_file} rs6000/750cl.h" ;;
2414 if test x${enable_secureplt} = xyes; then
2415 tm_file="rs6000/secureplt.h ${tm_file}"
2418 powerpc-wrs-vxworks|powerpc-wrs-vxworksae|powerpc-wrs-vxworksmils)
2419 tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2420 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2421 extra_options="${extra_options} rs6000/sysv4.opt"
2422 extra_headers=ppc-asm.h
2425 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksmils.h"
2426 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2429 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h"
2430 tmake_file="${tmake_file} rs6000/t-vxworksae"
2433 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h"
2439 tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2440 tmake_file="t-lynx rs6000/t-lynx"
2441 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2447 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2448 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2449 extra_options="${extra_options} rs6000/sysv4.opt"
2451 powerpcle-*-eabisim*)
2452 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"
2453 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2454 extra_options="${extra_options} rs6000/sysv4.opt"
2458 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"
2459 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2460 extra_options="${extra_options} rs6000/sysv4.opt"
2463 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2464 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2465 tmake_file="rs6000/t-aix43 t-slibgcc"
2466 extra_options="${extra_options} rs6000/aix64.opt"
2469 use_gcc_stdint=provide
2472 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2473 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2474 extra_options="${extra_options} rs6000/aix64.opt"
2475 tmake_file="rs6000/t-aix43 t-slibgcc"
2481 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2482 tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2483 tmake_file="rs6000/t-aix52 t-slibgcc"
2484 extra_options="${extra_options} rs6000/aix64.opt"
2490 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2491 tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2492 tmake_file="rs6000/t-aix52 t-slibgcc"
2493 extra_options="${extra_options} rs6000/aix64.opt"
2497 extra_headers=altivec.h
2499 rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
2500 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2501 tmake_file="rs6000/t-aix52 t-slibgcc"
2502 extra_options="${extra_options} rs6000/aix64.opt"
2506 extra_headers=altivec.h
2509 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2510 target_has_targetm_common=no
2511 c_target_objs="rl78-c.o"
2512 cxx_target_objs="rl78-c.o"
2513 tmake_file="${tmake_file} rl78/t-rl78"
2516 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2517 tmake_file="${tmake_file} rx/t-rx"
2520 default_gnu_indirect_function=yes
2521 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2522 if test x$enable_targets = xall; then
2523 tmake_file="${tmake_file} s390/t-linux64"
2527 default_gnu_indirect_function=yes
2528 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2529 tm_p_file="linux-protos.h s390/s390-protos.h"
2530 md_file=s390/s390.md
2531 extra_modes=s390/s390-modes.def
2532 out_file=s390/s390.c
2533 tmake_file="${tmake_file} s390/t-linux64"
2536 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2537 tm_p_file=s390/s390-protos.h
2538 md_file=s390/s390.md
2539 extra_modes=s390/s390-modes.def
2540 out_file=s390/s390.c
2542 extra_options="${extra_options} s390/tpf.opt"
2544 sh-*-elf* | sh[12346l]*-*-elf* | \
2545 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2546 sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
2547 sh64-*-netbsd* | sh64l*-*-netbsd*)
2548 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2549 if test x${with_endian} = x; then
2551 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2552 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2553 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2554 shl* | sh64l* | sh*-*-linux* | \
2555 sh5l* | sh-superh-elf) with_endian=little,big ;;
2556 sh[1234]*-*-*) with_endian=big ;;
2557 *) with_endian=big,little ;;
2560 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2561 # First word : the default endian.
2562 # Second word: the secondary endian (optional).
2563 case ${with_endian} in
2564 big) TM_ENDIAN_CONFIG=mb ;;
2565 little) TM_ENDIAN_CONFIG=ml ;;
2566 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2567 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2568 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2570 case ${with_endian} in
2571 little*) tm_file="sh/little.h ${tm_file}" ;;
2573 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2575 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2576 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2578 tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h"
2579 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2582 sh*-superh-elf) if test x$with_libgloss != xno; then
2584 tm_file="${tm_file} sh/newlib.h"
2586 tm_file="${tm_file} sh/embed-elf.h"
2587 tm_file="${tm_file} sh/superh.h"
2588 extra_options="${extra_options} sh/superh.opt" ;;
2589 *) if test x$with_newlib = xyes \
2590 && test x$with_libgloss = xyes; then
2591 tm_file="${tm_file} sh/newlib.h"
2593 tm_file="${tm_file} sh/embed-elf.h" ;;
2597 # SHmedia, 32-bit ABI
2598 tmake_file="${tmake_file} sh/t-sh64"
2601 # SHmedia, 64-bit ABI
2602 tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5-64"
2607 tmake_file="${tmake_file} sh/t-sh64"
2608 tm_file="${tm_file} sh/sh64.h"
2609 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2612 tmake_file="${tmake_file} sh/t-sh64"
2613 tm_file="${tm_file} sh/sh64.h"
2614 if test x$with_newlib = xyes; then
2615 tm_file="${tm_file} newlib-stdint.h"
2617 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2620 tm_file="${tm_file} newlib-stdint.h"
2623 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2624 case `echo ${target} | sed 's/e[lb]-/-/'` in
2625 sh64*-*-netbsd*) sh_cpu_target=sh5-64media ;;
2626 sh64* | sh5*-*-netbsd*) sh_cpu_target=sh5-32media ;;
2627 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2628 sh4a_single*) sh_cpu_target=sh4a-single ;;
2629 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2630 sh4al) sh_cpu_target=sh4al ;;
2631 sh4a*) sh_cpu_target=sh4a ;;
2632 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2633 sh4_single*) sh_cpu_target=sh4-single ;;
2634 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2635 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2636 sh3e*) sh_cpu_target=sh3e ;;
2637 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2638 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2639 sh2a_single*) sh_cpu_target=sh2a-single ;;
2640 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2641 sh2a*) sh_cpu_target=sh2a ;;
2642 sh2e*) sh_cpu_target=sh2e ;;
2643 sh2*) sh_cpu_target=sh2 ;;
2644 *) sh_cpu_target=sh1 ;;
2646 # did the user say --without-fp ?
2647 if test x$with_fp = xno; then
2648 case ${sh_cpu_target} in
2649 sh5-*media) sh_cpu_target=${sh_cpu_target}-nofpu ;;
2651 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2652 sh4*) sh_cpu_target=sh4-nofpu ;;
2653 sh3*) sh_cpu_target=sh3 ;;
2654 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2655 sh2*) sh_cpu_target=sh2 ;;
2656 *) echo --without-fp not available for $target: ignored
2658 tm_defines="$tm_defines STRICT_NOFPU=1"
2660 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2661 case $sh_cpu_default in
2662 sh5-64media-nofpu | sh5-64media | \
2663 sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
2664 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2665 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2666 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2667 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2668 "") sh_cpu_default=${sh_cpu_target} ;;
2669 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2671 sh_multilibs=${with_multilib_list}
2672 if test "$sh_multilibs" = "default" ; then
2674 sh64-superh-linux* | \
2675 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2676 sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
2677 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2678 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2679 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2680 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2682 if test x$with_fp = xno; then
2683 sh_multilibs="`echo $sh_multilibs|sed -e s/m4/sh4-nofpu/ -e s/,m4-[^,]*//g -e s/,m[23]e// -e s/m2a,m2a-single/m2a-nofpu/ -e s/m5-..m....,//g`"
2686 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2687 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2688 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2689 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2690 for sh_multilib in ${sh_multilibs}; do
2691 case ${sh_multilib} in
2692 m1 | m2 | m2e | m3 | m3e | \
2693 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2694 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2695 m2a | m2a-single | m2a-single-only | m2a-nofpu | \
2696 m5-64media | m5-64media-nofpu | \
2697 m5-32media | m5-32media-nofpu | \
2698 m5-compact | m5-compact-nofpu)
2699 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2700 # It is passed to MULTIILIB_OPTIONS verbatim.
2701 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2702 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2704 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2705 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2706 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2708 echo "with_multilib_list=${sh_multilib} not supported."
2713 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2714 if test x${enable_incomplete_targets} = xyes ; then
2715 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1 SUPPORT_SH5_32MEDIA=1 SUPPORT_SH5_32MEDIA_NOFPU=1 SUPPORT_SH5_64MEDIA=1 SUPPORT_SH5_64MEDIA_NOFPU=1"
2717 tm_file="$tm_file ./sysroot-suffix.h"
2718 tmake_file="$tmake_file t-sysroot-suffix"
2721 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2722 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2725 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2726 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2729 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2732 tmake_file="sparc/t-sparc sparc/t-leon"
2735 tmake_file="sparc/t-sparc sparc/t-leon3"
2738 tmake_file="sparc/t-sparc sparc/t-elf"
2743 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2744 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2747 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2748 extra_options="${extra_options} sparc/long-double-switch.opt"
2751 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2754 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2757 tmake_file="${tmake_file} sparc/t-sparc"
2760 if test x$enable_targets = xall; then
2761 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2762 tmake_file="${tmake_file} sparc/t-linux64"
2764 tm_file="${tm_file} sparc/linux.h"
2765 tmake_file="${tmake_file} sparc/t-linux"
2769 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2770 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2771 extra_options="${extra_options} sparc/long-double-switch.opt"
2772 tmake_file="${tmake_file} sparc/t-sparc"
2775 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2777 sparc64-*-* | sparcv9-*-*)
2778 tm_file="sparc/default-64.h ${tm_file}"
2781 test x$with_cpu != x || with_cpu=v9
2784 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2787 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2788 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2791 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2792 extra_options="${extra_options}"
2793 tmake_file="${tmake_file} sparc/t-sparc"
2796 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2797 extra_options="${extra_options}"
2798 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2801 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"
2802 extra_options="${extra_options} sparc/long-double-switch.opt"
2803 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2805 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2806 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2807 extra_options="${extra_options} sparc/long-double-switch.opt"
2808 case "x$with_cpu" in
2810 x) with_cpu=ultrasparc ;;
2811 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2813 tmake_file="${tmake_file} sparc/t-sparc"
2816 tm_file="sparc/biarch64.h ${tm_file}"
2817 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2818 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2819 extra_options="${extra_options} sparc/long-double-switch.opt"
2820 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2823 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2824 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2825 extra_options="${extra_options} openbsd.opt"
2826 extra_options="${extra_options}"
2829 tmake_file="${tmake_file} sparc/t-sparc"
2832 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2833 tmake_file="spu/t-spu-elf"
2834 native_system_header_dir=/include
2835 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2836 extra_modes=spu/spu-modes.def
2837 c_target_objs="${c_target_objs} spu-c.o"
2838 cxx_target_objs="${cxx_target_objs} spu-c.o"
2841 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
2842 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
2843 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
2847 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
2848 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
2849 tm_file="${tm_file} ./sysroot-suffix.h"
2850 tmake_file="t-sysroot-suffix t-slibgcc"
2851 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
2855 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
2856 tmake_file="${tmake_file} tilegx/t-tilegx"
2857 extra_objs="${extra_objs} mul-tables.o"
2858 c_target_objs="${c_target_objs} tilegx-c.o"
2859 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
2860 extra_headers="feedback.h"
2863 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2868 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
2869 tmake_file="${tmake_file} tilepro/t-tilepro"
2870 extra_objs="${extra_objs} mul-tables.o"
2871 c_target_objs="${c_target_objs} tilepro-c.o"
2872 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
2873 extra_headers="feedback.h"
2876 target_cpu_default="TARGET_CPU_generic"
2877 tm_file="dbxelf.h elfos.h v850/v850.h"
2878 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
2879 tmake_file="${tmake_file} v850/t-v850"
2880 tmake_file="${tmake_file} v850/t-rtems"
2882 c_target_objs="v850-c.o"
2883 cxx_target_objs="v850-c.o"
2888 target_cpu_default="TARGET_CPU_v850e3v5"
2891 target_cpu_default="TARGET_CPU_v850e2v3"
2894 target_cpu_default="TARGET_CPU_v850e2"
2896 v850e1-*-* | v850es-*-*)
2897 target_cpu_default="TARGET_CPU_v850e1"
2900 target_cpu_default="TARGET_CPU_v850e"
2903 target_cpu_default="TARGET_CPU_generic"
2906 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
2907 if test x$stabs = xyes
2909 tm_file="${tm_file} dbx.h"
2912 c_target_objs="v850-c.o"
2913 cxx_target_objs="v850-c.o"
2917 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
2918 extra_options="${extra_options} vax/elf.opt"
2921 tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
2922 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
2925 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-pthread.h vax/openbsd.h"
2926 extra_options="${extra_options} openbsd.opt"
2930 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
2931 tmake_file="visium/t-visium visium/t-crtstuff"
2934 # For historical reasons, the target files omit the 'x'.
2935 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
2936 tm_p_file=stormy16/stormy16-protos.h
2937 md_file=stormy16/stormy16.md
2938 out_file=stormy16/stormy16.c
2939 extra_options=stormy16/stormy16.opt
2940 tmake_file="stormy16/t-stormy16"
2943 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
2944 extra_options="${extra_options} xtensa/elf.opt"
2947 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
2948 tmake_file="${tmake_file} xtensa/t-xtensa"
2951 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
2956 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
2957 c_target_objs="m32c-pragma.o"
2958 cxx_target_objs="m32c-pragma.o"
2961 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2962 c_target_objs="m32c-pragma.o"
2963 cxx_target_objs="m32c-pragma.o"
2966 echo "*** Configuration ${target} not supported" 1>&2
2972 i[34567]86-*-linux* | x86_64-*-linux*)
2973 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
2975 i[34567]86-*-* | x86_64-*-*)
2976 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
2978 powerpc*-*-* | rs6000-*-*)
2979 tm_file="${tm_file} rs6000/option-defaults.h"
2982 # Build mkoffload tool
2984 *-intelmic-* | *-intelmicemul-*)
2985 tmake_file="${tmake_file} i386/t-intelmic"
2986 tm_file="${tm_file} i386/intelmic-offload.h"
2990 if [ "$target_has_targetcm" = "no" ]; then
2991 c_target_objs="$c_target_objs default-c.o"
2992 cxx_target_objs="$cxx_target_objs default-c.o"
2995 if [ "$common_out_file" = "" ]; then
2996 if [ "$target_has_targetm_common" = "yes" ]; then
2997 common_out_file="$cpu_type/$cpu_type-common.c"
2999 common_out_file="default-common.c"
3003 # Support for --with-cpu and related options (and a few unrelated options,
3007 echo "--with-cpu must be passed a value" 1>&2
3012 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3013 # to generic if there is no processor scheduler model for the target.
3016 arch_without_sse2=no
3017 arch_without_64bit=no
3020 if test $fbsd_major -ge 6; then
3026 arch_without_sse2=yes
3027 arch_without_64bit=yes
3032 arch_without_sse2=yes
3033 arch_without_64bit=yes
3038 arch_without_sse2=yes
3039 arch_without_64bit=yes
3042 arch_without_sse2=yes
3043 arch_without_64bit=yes
3044 case ${target_noncanonical} in
3057 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3067 i686-*-* | i786-*-*)
3068 case ${target_noncanonical} in
3093 amdfam10-*|barcelona-*)
3097 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3101 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3105 athlon_xp-*|athlon_mp-*|athlon_4-*)
3108 arch_without_sse2=yes
3109 arch_without_64bit=yes
3111 athlon_tbird-*|athlon-*)
3114 arch_without_sse2=yes
3119 arch_without_sse2=yes
3124 arch_without_sse2=yes
3126 pentium3-*|pentium3m-*)
3129 arch_without_sse2=yes
3131 pentium4-*|pentium4m-*)
3170 arch_without_sse2=yes
3175 arch_without_sse2=yes
3176 arch_without_64bit=yes
3181 case ${target_noncanonical} in
3206 amdfam10-*|barcelona-*)
3210 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3214 k8-*|opteron-*|athlon_64-*)
3246 # If there is no $with_cpu option, try to infer one from ${target}.
3247 # This block sets nothing except for with_cpu.
3248 if test x$with_cpu = x ; then
3250 i[34567]86-*-*|x86_64-*-*)
3268 frv-*-*linux* | frv400-*-*linux*)
3275 case "$with_arch" in
3277 with_cpu=${default_cf_cpu}
3280 with_cpu=m${default_m68k_cpu}
3285 if test x$enable_e500_double = xyes; then
3303 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3309 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3311 i[34567]86-*-*|x86_64-*-*)
3312 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3313 if test x$with_cpu_32 = x; then
3314 with_cpu_32=$with_cpu
3316 if test x$with_cpu_64 = x; then
3317 with_cpu_64=$with_cpu
3325 # Support for --with-arch and related options (and a few unrelated options,
3327 case ${with_arch} in
3329 echo "--with-arch must be passed a value" 1>&2
3334 # If there is no $with_arch option, try to infer one from ${target}.
3335 # This block sets nothing except for with_arch.
3336 if test x$with_arch = x ; then
3338 i[34567]86-*-darwin*|x86_64-*-darwin*)
3339 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3340 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3343 # --with-fpmath sets the default ISA to SSE2, which is the same
3344 # ISA supported by Pentium 4.
3345 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3354 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3362 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3364 i[34567]86-*-darwin*|x86_64-*-darwin*)
3365 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3366 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3368 i[34567]86-*-*|x86_64-*-*)
3369 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3370 if test x$with_arch_32 = x; then
3371 with_arch_32=$with_arch
3373 if test x$with_arch_64 = x; then
3374 if test $arch_without_64bit = yes; then
3375 # Set the default 64bit arch to x86-64 if the default arch
3376 # doesn't support 64bit.
3379 with_arch_64=$with_arch
3383 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3384 # Set the default 64bit arch to x86-64 if the default arch
3385 # doesn't support 64bit and we need 64bit ISA.
3386 with_arch_32=$with_arch
3394 # Infer a default setting for --with-float.
3395 if test x$with_float = x; then
3397 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3398 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3399 # comply with IEEE 754.
3405 # Infer a default setting for --with-fpu.
3406 if test x$with_fpu = x; then
3408 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3409 # The R5900 FPU only supports single precision.
3415 # Support --with-fpmath.
3416 if test x$with_fpmath != x; then
3418 i[34567]86-*-* | x86_64-*-*)
3419 case ${with_fpmath} in
3421 tm_file="${tm_file} i386/avxmath.h"
3424 tm_file="${tm_file} i386/ssemath.h"
3427 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3433 echo "--with-fpmath isn't supported for $target." 1>&2
3439 # Similarly for --with-schedule.
3440 if test x$with_schedule = x; then
3443 # Override default PA8000 scheduling model.
3444 with_schedule=7100LC
3449 # Infer a default setting for --with-llsc.
3450 if test x$with_llsc = x; then
3452 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3453 # The R5900 doesn't support LL(D) and SC(D).
3457 # The kernel emulates LL and SC where necessary.
3463 # Validate and mark as valid any --with options supported
3464 # by this target. In order to use a particular --with option
3465 # you must list it in supported_defaults; validating the value
3466 # is optional. This case statement should set nothing besides
3467 # supported_defaults.
3472 supported_defaults="abi cpu arch"
3473 for which in cpu arch; do
3475 eval "val=\$with_$which"
3476 base_val=`echo $val | sed -e 's/\+.*//'`
3477 ext_val=`echo $val | sed -e 's/[a-z0-9\-]\+//'`
3479 if [ $which = arch ]; then
3480 def=aarch64-arches.def
3481 pattern=AARCH64_ARCH
3483 def=aarch64-cores.def
3484 pattern=AARCH64_CORE
3487 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3489 # Find the base CPU or ARCH id in aarch64-cores.def or
3490 # aarch64-arches.def
3491 if [ x"$base_val" = x ] \
3492 || grep "^$pattern(\"$base_val\"," \
3493 ${srcdir}/config/aarch64/$def \
3496 if [ $which = arch ]; then
3497 base_id=`grep "^$pattern(\"$base_val\"," \
3498 ${srcdir}/config/aarch64/$def | \
3499 sed -e 's/^[^,]*,[ ]*//' | \
3501 # Extract the architecture flags from aarch64-arches.def
3502 ext_mask=`grep "^$pattern(\"$base_val\"," \
3503 ${srcdir}/config/aarch64/$def | \
3507 base_id=`grep "^$pattern(\"$base_val\"," \
3508 ${srcdir}/config/aarch64/$def | \
3509 sed -e 's/^[^,]*,[ ]*//' | \
3513 while [ x"$ext_val" != x ]
3515 ext_val=`echo $ext_val | sed -e 's/\+//'`
3516 ext=`echo $ext_val | sed -e 's/\+.*//'`
3517 base_ext=`echo $ext | sed -e 's/^no//'`
3519 if [ x"$base_ext" = x ] \
3520 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3521 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3524 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3525 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3526 sed -e 's/^[^,]*,[ ]*//' | \
3528 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3529 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3530 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3531 sed -e 's/,.*$//' | \
3534 if [ $ext = $base_ext ]; then
3536 ext_mask="("$ext_mask") | ("$ext_on")"
3538 # Removing extension
3539 ext_mask="("$ext_mask") & ~("$ext_off")"
3544 echo "Unknown extension used in --with-$which=$val" 1>&2
3547 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3550 ext_mask="(("$ext_mask") << 6)"
3551 if [ x"$base_id" != x ]; then
3552 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3556 echo "Unknown $which used in --with-$which=$val" 1>&2
3563 supported_defaults="cpu tune"
3564 for which in cpu tune; do
3565 eval "val=\$with_$which"
3568 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3569 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3573 echo "Unknown CPU used in --with-$which=$val" 1>&2
3580 arc*-*-*) # was: arc*-*-linux-uclibc)
3581 supported_defaults="cpu"
3583 arc600|arc601|arc700)
3585 *) echo "Unknown cpu type"
3592 supported_defaults="arch cpu float tune fpu abi mode tls"
3593 for which in cpu tune; do
3594 # See if it matches any of the entries in arm-cores.def
3595 eval "val=\$with_$which"
3596 if [ x"$val" = x ] \
3597 || grep "^ARM_CORE(\"$val\"," \
3598 ${srcdir}/config/arm/arm-cores.def \
3601 new_val=`grep "^ARM_CORE(\"$val\"," \
3602 ${srcdir}/config/arm/arm-cores.def | \
3603 sed -e 's/^[^,]*,[ ]*//' | \
3605 eval "target_${which}_cname=$new_val"
3606 echo "For $val real value is $new_val"
3609 echo "Unknown CPU used in --with-$which=$val" 1>&2
3614 # See if it matches any of the entries in arm-arches.def
3615 if [ x"$with_arch" = x ] \
3616 || grep "^ARM_ARCH(\"$with_arch\"," \
3617 ${srcdir}/config/arm/arm-arches.def \
3622 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
3626 case "$with_float" in
3628 | soft | hard | softfp)
3632 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3637 # see if it matches any of the entries in arm-fpus.def
3638 if [ x"$with_fpu" = x ] \
3639 || grep "^ARM_FPU(\"$with_fpu\"," \
3640 ${srcdir}/config/arm/arm-fpus.def \
3645 echo "Unknown fpu used in --with-fpu=$with_fpu" 1>&2
3651 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3655 echo "Unknown ABI used in --with-abi=$with_abi"
3660 case "$with_mode" in
3666 echo "Unknown mode used in --with-mode=$with_mode"
3677 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3682 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3683 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3687 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3688 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3692 # Add extra multilibs
3693 if test "x$with_multilib_list" != x; then
3694 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3695 for arm_multilib in ${arm_multilibs}; do
3696 case ${arm_multilib} in
3698 # Note that arm/t-aprofile is a
3699 # stand-alone make file fragment to be
3700 # used only with itself. We do not
3701 # specifically use the
3702 # TM_MULTILIB_OPTION framework because
3703 # this shorthand is more
3704 # pragmatic. Additionally it is only
3705 # designed to work without any
3706 # with-cpu, with-arch with-mode
3707 # with-fpu or with-float options.
3708 if test "x$with_arch" != x \
3709 || test "x$with_cpu" != x \
3710 || test "x$with_float" != x \
3711 || test "x$with_fpu" != x \
3712 || test "x$with_mode" != x ; then
3713 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2
3716 tmake_file="${tmake_file} arm/t-aprofile"
3722 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3731 supported_defaults=cpu
3736 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3742 fido-*-* | m68k*-*-*)
3743 supported_defaults="arch cpu"
3744 case "$with_arch" in
3746 m68k_arch_family="$with_arch"
3749 echo "Invalid --with-arch=$with_arch" 1>&2
3754 # We always have a $with_cpu setting here.
3756 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3757 m68k_cpu_ident=$with_cpu
3760 m68k_cpu_ident=m68020
3761 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3764 m68k_cpu_ident=m68020
3765 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3768 # We need the C identifier rather than the string.
3769 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
3770 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
3771 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
3772 ${srcdir}/config/m68k/m68k-devices.def`
3773 if [ x"$m68k_cpu_ident" = x ] ; then
3774 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
3777 with_cpu="mcpu=$with_cpu"
3783 supported_defaults="arch schedule"
3785 case "$with_arch" in
3786 "" | 1.0 | 1.1 | 2.0)
3790 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
3795 case "$with_schedule" in
3796 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
3800 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
3806 i[34567]86-*-* | x86_64-*-*)
3807 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
3808 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3809 eval "val=\$with_$which"
3810 case " $x86_archs " in
3818 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
3827 if test x${val} != x; then
3828 case " $x86_64_archs " in
3833 # Allow $x86_cpus --with-cpu=/--with-tune=
3836 case " $x86_cpus " in
3841 echo "Unknown CPU given in --with-$which=$val." 1>&2
3847 echo "Unknown CPU given in --with-$which=$val." 1>&2
3860 supported_defaults="abi arch arch_32 arch_64 float fpu nan fp_32 odd_spreg_32 tune tune_32 tune_64 divide llsc mips-plt synci"
3862 case ${with_float} in
3867 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3873 "" | single | double)
3877 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
3887 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
3892 case ${with_fp_32} in
3897 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
3902 case ${with_odd_spreg_32} in
3904 with_odd_spreg_32="odd-spreg"
3907 with_odd_spreg_32="no-odd-spreg"
3913 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
3919 "" | 32 | o64 | n32 | 64 | eabi)
3923 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
3928 case ${with_divide} in
3929 "" | breaks | traps)
3933 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
3938 case ${with_llsc} in
3949 echo "Unknown llsc type used in --with-llsc" 1>&2
3954 case ${with_mips_plt} in
3959 with_mips_plt=no-plt
3964 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
3969 case ${with_synci} in
3979 echo "Unknown synci type used in --with-synci" 1>&2
3986 supported_defaults="arch nds32_lib"
3988 # process --with-arch
3989 case "${with_arch}" in
3994 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v3 v3m" 1>&2
3999 # process --with-nds32-lib
4000 case "${with_nds32_lib}" in
4002 # the default library is newlib
4003 with_nds32_lib=newlib
4012 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
4018 powerpc*-*-* | rs6000-*-*)
4019 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4021 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4022 eval "val=\$with_$which"
4024 default32 | default64)
4029 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4033 with_which="with_$which"
4037 tm_defines="${tm_defines} CONFIG_PPC405CR"
4038 eval "with_$which=405"
4040 "" | common | native \
4041 | power | power[2345678] | power6x | powerpc | powerpc64 \
4042 | rios | rios1 | rios2 | rsc | rsc1 | rs64a \
4043 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4044 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4045 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4046 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4047 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4051 echo "Unknown cpu used in --with-$which=$val." 1>&2
4058 "" | elfv1 | elfv2 )
4062 echo "Unknown ABI used in --with-abi=$with_abi"
4069 supported_defaults="arch mode tune"
4071 for which in arch tune; do
4072 eval "val=\$with_$which"
4074 "" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12)
4078 echo "Unknown cpu used in --with-$which=$val." 1>&2
4084 case ${with_mode} in
4089 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4095 sh[123456ble]-*-* | sh-*-*)
4096 supported_defaults="cpu"
4097 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4098 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4101 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4103 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4106 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4107 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4108 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4109 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4115 supported_defaults="cpu float tune"
4117 for which in cpu tune; do
4118 eval "val=\$with_$which"
4120 "" | sparc | sparcv9 | sparc64 \
4122 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4123 | sparclite | f930 | f934 | sparclite86x \
4124 | sparclet | tsc701 \
4125 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4126 | niagara3 | niagara4)
4130 echo "Unknown cpu used in --with-$which=$val" 1>&2
4136 case ${with_float} in
4141 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4148 supported_defaults="arch tune"
4150 for which in arch tune; do
4151 eval "val=\$with_$which"
4153 "" | cell | celledp)
4157 echo "Unknown cpu used in --with-$which=$val." 1>&2
4165 supported_defaults="arch"
4167 case ${with_arch} in
4168 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4172 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4179 supported_defaults=cpu
4181 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4185 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4192 # Set some miscellaneous flags for particular targets.
4193 target_cpu_default2=
4196 if test x"$target_cpu_cname" != x
4198 target_cpu_default2=$target_cpu_cname
4203 if test x$target_cpu_cname = x
4205 target_cpu_default2=TARGET_CPU_generic
4207 target_cpu_default2=TARGET_CPU_$target_cpu_cname
4212 if test x$gas = xyes
4214 target_cpu_default2="MASK_GAS"
4218 fido*-*-* | m68k*-*-*)
4219 target_cpu_default2=$m68k_cpu_ident
4220 tmake_file="m68k/t-opts $tmake_file"
4221 if [ x"$m68k_arch_family" != x ]; then
4222 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4226 i[34567]86-*-darwin* | x86_64-*-darwin*)
4228 i[34567]86-*-linux* | x86_64-*-linux*)
4229 tmake_file="$tmake_file i386/t-linux"
4231 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4232 tmake_file="$tmake_file i386/t-kfreebsd"
4235 tmake_file="$tmake_file i386/t-gnu"
4237 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4239 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4241 i[34567]86-*-mingw* | x86_64-*-mingw*)
4243 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4245 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4251 if test x$gnu_ld = xyes
4253 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4257 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4260 if test x$with_arch != x; then
4261 default_mips_arch=$with_arch
4263 if test x$with_abi != x; then
4264 default_mips_abi=$with_abi
4266 case ${default_mips_arch} in
4267 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4268 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4269 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4270 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4271 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4272 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4273 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
4274 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4275 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4276 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
4278 case ${default_mips_abi} in
4279 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4280 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4281 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4282 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4283 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4285 tmake_file="mips/t-mips $tmake_file"
4288 powerpc*-*-* | rs6000-*-*)
4289 # FIXME: The PowerPC port uses the value set at compile time,
4290 # although it's only cosmetic.
4291 if test "x$with_cpu" != x
4293 target_cpu_default2="\\\"$with_cpu\\\""
4295 out_file=rs6000/rs6000.c
4296 c_target_objs="${c_target_objs} rs6000-c.o"
4297 cxx_target_objs="${cxx_target_objs} rs6000-c.o"
4298 tmake_file="rs6000/t-rs6000 ${tmake_file}"
4301 sh[123456ble]*-*-* | sh-*-*)
4302 c_target_objs="${c_target_objs} sh-c.o"
4303 cxx_target_objs="${cxx_target_objs} sh-c.o"
4307 # Some standard aliases.
4312 xsparcv9 | xsparc64)
4317 if test x$with_tune = x ; then
4328 # The SPARC port checks this value at compile-time.
4329 target_cpu_default2="TARGET_CPU_$with_cpu"
4333 case "x$with_cpu" in
4336 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4337 target_cpu_default2="TARGET_CPU_$with_cpu"
4340 target_cpu_default2="TARGET_CPU_v850e1"
4347 all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu nan fp_32 odd_spreg_32 divide llsc mips-plt synci tls"
4348 for option in $all_defaults
4350 eval "val=\$with_"`echo $option | sed s/-/_/g`
4351 if test -n "$val"; then
4352 case " $supported_defaults " in
4356 echo "This target does not support --with-$option." 2>&1
4357 echo "Valid --with options are: $supported_defaults" 2>&1
4364 t="{ \"$option\", \"$val\" }"
4366 t="${t}, { \"$option\", \"$val\" }"
4373 configure_default_options="{ { NULL, NULL} }"
4375 configure_default_options="{ ${t} }"
4378 if test "$target_cpu_default2" != ""
4380 if test "$target_cpu_default" != ""
4382 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4384 target_cpu_default=$target_cpu_default2
4389 i[34567]86-*-* | x86_64-*-*)
4390 if test x$enable_as_accelerator = xyes; then
4391 extra_programs="mkoffload\$(exeext)"