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 cortex-a57-fma-steering.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"
609 tm_file="${tm_file} darwin9.h darwin10.h"
611 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
612 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
615 tm_file="${tm_file} ${cpu_type}/darwin.h"
616 tm_p_file="${tm_p_file} darwin-protos.h"
617 target_gtfiles="\$(srcdir)/config/darwin.c"
618 extra_options="${extra_options} darwin.opt"
619 c_target_objs="${c_target_objs} darwin-c.o"
620 cxx_target_objs="${cxx_target_objs} darwin-c.o"
621 fortran_target_objs="darwin-f.o"
622 target_has_targetcm=yes
623 extra_objs="darwin.o"
624 extra_gcc_objs="darwin-driver.o"
625 default_use_cxa_atexit=yes
627 case ${enable_threads} in
628 "" | yes | posix) thread_file='posix' ;;
634 tmake_file="t-slibgcc"
635 case ${enable_threads} in
640 # Let these non-posix thread selections fall through if requested
643 echo 'Unknown thread configuration for DragonFly BSD'
647 extra_options="$extra_options rpath.opt dragonfly.opt"
648 default_use_cxa_atexit=yes
652 # This is the generic ELF configuration of FreeBSD. Later
653 # machine-specific sections may refine and add to this
656 # Due to tm_file entry ordering issues that vary between cpu
657 # architectures, we only define fbsd_tm_file to allow the
658 # machine-specific section to dictate the final order of all
659 # entries of tm_file with the minor exception that components
660 # of the tm_file set here will always be of the form:
662 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
664 # The machine-specific section should not tamper with this
665 # ordering but may order all other entries of tm_file as it
666 # pleases around the provided core setting.
669 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
670 if test "$fbsd_major" = ""; then
671 echo "Specify the major version number of the targeted FreeBSD release"
672 echo "like this: --target=amd64-unknown-freebsd10.1"
675 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
676 tmake_file="t-slibgcc"
677 case ${enable_threads} in
679 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
685 echo 'Unknown thread configuration for FreeBSD'
689 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
690 extra_options="$extra_options rpath.opt freebsd.opt"
695 default_use_cxa_atexit=yes;;
699 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
700 extra_options="$extra_options gnu-user.opt"
703 case ${enable_threads} in
704 "" | yes | posix) thread_file='posix' ;;
706 tmake_file="t-slibgcc"
708 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu)
711 native_system_header_dir=/include
714 # Linux C libraries selection switch: glibc / uclibc / bionic.
715 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
718 tm_p_file="${tm_p_file} linux-protos.h"
719 tmake_file="${tmake_file} t-linux"
720 extra_objs="${extra_objs} linux.o"
721 extra_options="${extra_options} linux.opt"
726 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
729 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
732 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
735 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
737 default_use_cxa_atexit=yes
740 # Enable compilation for Android by default for *android* targets.
743 tm_defines="$tm_defines ANDROID_DEFAULT=1"
746 tm_defines="$tm_defines ANDROID_DEFAULT=0"
749 c_target_objs="${c_target_objs} glibc-c.o"
750 cxx_target_objs="${cxx_target_objs} glibc-c.o"
751 tmake_file="${tmake_file} t-glibc"
752 target_has_targetcm=yes
755 tmake_file="t-slibgcc"
759 # NetBSD 2.0 and later get POSIX threads enabled by default.
760 # Allow them to be explicitly enabled on any other version.
761 case ${enable_threads} in
764 *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
766 tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
772 tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
776 # NetBSD 2.0 and later provide __cxa_atexit(), which we use by
777 # default (unless overridden by --disable-__cxa_atexit).
779 *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
780 default_use_cxa_atexit=yes
785 tmake_file="t-openbsd"
786 case ${enable_threads} in
792 *-*-openbsd2.*|*-*-openbsd3.[012])
793 tm_defines="${tm_defines} HAS_LIBC_R=1" ;;
796 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
797 default_use_cxa_atexit=yes
802 case ${enable_threads} in
803 "" | yes | rtems) thread_file='rtems' ;;
804 posix) thread_file='posix' ;;
807 echo 'Unknown thread configuration for RTEMS'
811 tmake_file="${tmake_file} t-rtems"
812 extra_options="${extra_options} rtems.opt"
813 default_use_cxa_atexit=yes
817 extra_options="$extra_options gnu-user.opt"
819 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
825 # i?86-*-solaris2* needs to insert headers between cpu default and
826 # Solaris 2 specific ones.
827 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
828 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
829 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
831 if test x$gnu_ld = xyes; then
832 tm_file="usegld.h ${tm_file}"
834 if test x$gas = xyes; then
835 tm_file="usegas.h ${tm_file}"
837 tm_p_file="${tm_p_file} sol2-protos.h"
838 tmake_file="${tmake_file} t-sol2 t-slibgcc"
839 c_target_objs="${c_target_objs} sol2-c.o"
840 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
841 extra_objs="sol2.o sol2-stubs.o"
842 extra_options="${extra_options} sol2.opt"
843 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
844 "":yes:* | yes:yes:* )
850 extra_options="${extra_options} vms/vms.opt"
852 tmake_file="vms/t-vms t-slibgcc"
854 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
855 tm_p_file="${tm_p_file} vms/vms-protos.h"
856 xm_file="vms/xm-vms.h"
857 c_target_objs="vms-c.o"
858 cxx_target_objs="vms-c.o"
859 fortran_target_objs="vms-f.o"
860 use_gcc_stdint=provide
861 tm_file="${tm_file} vms/vms-stdint.h"
862 if test x$gnu_ld != xyes; then
863 # Build wrappers for native case.
864 extra_programs="ld\$(exeext) ar\$(exeext)"
865 tmake_file="$tmake_file vms/t-vmsnative"
871 extra_options="${extra_options} vxworks.opt"
872 extra_objs="$extra_objs vxworks.o"
873 case ${enable_threads} in
875 "" | yes | vxworks) thread_file='vxworks' ;;
876 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
880 # Assume that newlib is being used and so __cxa_atexit is provided.
881 default_use_cxa_atexit=yes
888 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
889 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
890 tmake_file="${tmake_file} aarch64/t-aarch64"
894 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
897 aarch64_multilibs="${with_multilib_list}"
898 if test "$aarch64_multilibs" = "default"; then
899 aarch64_multilibs="lp64,ilp32"
901 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
902 for aarch64_multilib in ${aarch64_multilibs}; do
903 case ${aarch64_multilib} in
905 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
908 echo "--with-multilib-list=${aarch64_multilib} not supported."
912 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
915 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
916 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
917 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
920 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
923 aarch64_multilibs="${with_multilib_list}"
924 if test "$aarch64_multilibs" = "default"; then
925 # TODO: turn on ILP32 multilib build after its support is mature.
926 # aarch64_multilibs="lp64,ilp32"
927 aarch64_multilibs="lp64"
929 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
930 for aarch64_multilib in ${aarch64_multilibs}; do
931 case ${aarch64_multilib} in
933 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
936 echo "--with-multilib-list=${aarch64_multilib} not supported."
940 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
943 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
944 tmake_file="${tmake_file} alpha/t-linux"
945 extra_options="${extra_options} alpha/elf.opt"
948 tm_file="elfos.h ${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
949 extra_options="${extra_options} alpha/elf.opt"
952 tm_file="elfos.h ${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h"
953 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
957 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
958 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
959 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
960 # default x-alpha is only appropriate for dec-osf.
963 tm_file="${tm_file} vms/vms.h alpha/vms.h"
964 tmake_file="${tmake_file} alpha/t-vms"
967 extra_headers="arc-simd.h"
968 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
969 tmake_file="arc/t-arc-newlib arc/t-arc"
970 case x"${with_cpu}" in
971 xarc600|xarc601|xarc700)
972 target_cpu_default="TARGET_CPU_$with_cpu"
975 if test x${with_endian} = x; then
977 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
978 *) with_endian=little ;;
981 case ${with_endian} in
983 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
985 case ${with_endian} in
986 big*) tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
989 arc*-*-linux-uclibc*)
990 extra_headers="arc-simd.h"
991 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file}"
992 tmake_file="${tmake_file} arc/t-arc-uClibc arc/t-arc"
993 tm_defines="${tm_defines} TARGET_SDATA_DEFAULT=0"
994 tm_defines="${tm_defines} TARGET_MMEDIUM_CALLS_DEFAULT=1"
995 case x"${with_cpu}" in
996 xarc600|xarc601|xarc700)
997 target_cpu_default="TARGET_CPU_$with_cpu"
1000 if test x${with_endian} = x; then
1002 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1003 *) with_endian=little ;;
1006 case ${with_endian} in
1008 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1010 case ${with_endian} in
1011 big*) tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
1015 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1016 extra_options="${extra_options} arm/vxworks.opt"
1017 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1019 arm*-*-freebsd*) # ARM FreeBSD EABI
1020 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1023 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1026 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1027 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1030 tm_defines="${tm_defines} TARGET_FREEBSD_ARMv6=1"
1035 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1038 with_tls=${with_tls:-gnu}
1041 tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1042 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1043 tmake_file="${tmake_file} arm/t-arm"
1045 arm*-*-linux-*) # ARM GNU/Linux with ELF
1046 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"
1047 extra_options="${extra_options} linux-android.opt"
1050 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1053 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1054 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1055 # Define multilib configuration for arm-linux-androideabi.
1058 tmake_file="$tmake_file arm/t-linux-androideabi"
1061 # The EABI requires the use of __cxa_atexit.
1062 default_use_cxa_atexit=yes
1063 with_tls=${with_tls:-gnu}
1065 arm*-*-uclinux*eabi*) # ARM ucLinux
1066 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1067 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1068 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1069 # The EABI requires the use of __cxa_atexit.
1070 default_use_cxa_atexit=yes
1072 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
1075 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1077 default_use_cxa_atexit=yes
1078 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1079 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1082 tm_file="$tm_file newlib-stdint.h"
1083 tmake_file="${tmake_file} arm/t-bpabi"
1087 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1088 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1091 tm_file="${tm_file} arm/symbian.h"
1092 # We do not include t-bpabi for Symbian OS because the system
1093 # provides its own implementation of the BPABI functions.
1094 tmake_file="${tmake_file} arm/t-symbian"
1097 tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
1100 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"
1101 tm_defines="${tm_defines} WITH_RTEMS"
1102 tmake_file="${tmake_file} avr/t-avr avr/t-multilib avr/t-rtems"
1103 extra_gcc_objs="driver-avr.o avr-devices.o"
1104 extra_objs="avr-devices.o avr-log.o"
1107 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1108 if test x${with_avrlibc} != xno; then
1109 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1110 tm_defines="${tm_defines} WITH_AVRLIBC"
1112 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1114 extra_gcc_objs="driver-avr.o avr-devices.o"
1115 extra_objs="avr-devices.o avr-log.o"
1118 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1119 tmake_file=bfin/t-bfin-elf
1123 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1124 tmake_file=bfin/t-bfin-uclinux
1127 bfin*-linux-uclibc*)
1128 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"
1129 tmake_file="${tmake_file} bfin/t-bfin-linux"
1133 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1134 tmake_file="${tmake_file} bfin/t-rtems"
1137 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1142 tm_file="elfos.h ${tm_file}"
1143 tmake_file="${tmake_file} cr16/t-cr16 "
1146 crisv32-*-elf | crisv32-*-none)
1147 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1148 tmake_file="cris/t-cris"
1149 target_cpu_default=32
1151 extra_options="${extra_options} cris/elf.opt"
1154 cris-*-elf | cris-*-none)
1155 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1156 tmake_file="cris/t-cris cris/t-elfmulti"
1158 extra_options="${extra_options} cris/elf.opt"
1161 crisv32-*-linux* | cris-*-linux*)
1162 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1163 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1164 extra_options="${extra_options} cris/linux.opt"
1167 target_cpu_default=10
1170 target_cpu_default=32
1175 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1176 tmake_file="epiphany/t-epiphany"
1177 extra_options="${extra_options} fused-madd.opt"
1178 extra_objs="$extra_objs mode-switch-use.o resolve-sw-modes.o"
1179 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1180 extra_headers="epiphany_intrinsics.h"
1183 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1186 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1187 tmake_file=frv/t-frv
1190 tm_file="dbxelf.h elfos.h ${tm_file} \
1191 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1192 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1197 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1198 tmake_file="${tmake_file} moxie/t-moxie"
1203 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1204 tmake_file="${tmake_file} moxie/t-moxie"
1207 tmake_file="${tmake_file} moxie/t-moxie"
1208 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1213 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1214 tmake_file="${tmake_file} moxie/t-moxiebox"
1217 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-rtems"
1218 tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h"
1221 tmake_file="h8300/t-h8300"
1222 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1225 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1226 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1229 target_cpu_default="MASK_PA_11|MASK_PA_20"
1230 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1231 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1236 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1237 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1238 pa/pa32-regs.h pa/pa32-linux.h"
1239 tmake_file="${tmake_file} pa/t-linux"
1242 target_cpu_default="MASK_PA_11"
1243 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1244 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1245 extra_options="${extra_options} openbsd.opt"
1249 hppa[12]*-*-hpux10*)
1251 hppa1.1-*-* | hppa2*-*-*)
1252 target_cpu_default="MASK_PA_11"
1255 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1256 pa/pa-hpux.h pa/pa-hpux10.h"
1257 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1260 tm_file="${tm_file} pa/pa-hpux1010.h"
1261 extra_options="${extra_options} pa/pa-hpux1010.opt"
1264 use_gcc_stdint=provide
1265 tm_file="${tm_file} hpux-stdint.h"
1266 tmake_file="t-slibgcc"
1267 case ${enable_threads} in
1269 if test x$have_pthread_h = xyes ; then
1270 tmake_file="${tmake_file} pa/t-dce-thr"
1274 tmake_file="${tmake_file} pa/t-dce-thr"
1279 if test "x$with_dwarf2" != x; then
1280 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1285 target_cpu_default="MASK_PA_11|MASK_PA_20"
1286 if test x$gnu_ld = xyes
1288 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1290 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1291 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1295 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1296 extra_options="${extra_options} pa/pa-hpux1111.opt"
1299 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1300 extra_options="${extra_options} pa/pa-hpux1131.opt"
1303 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1306 extra_options="${extra_options} pa/pa-hpux.opt \
1307 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1308 tmake_file="t-slibgcc"
1309 case x${enable_threads} in
1317 use_gcc_stdint=provide
1318 tm_file="${tm_file} hpux-stdint.h"
1322 tm_file="${tm_file} hpux-stdint.h"
1326 hppa[12]*-*-hpux11*)
1328 hppa1.1-*-* | hppa2*-*-*)
1329 target_cpu_default="MASK_PA_11"
1332 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1333 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1334 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1338 tm_file="${tm_file} pa/pa-hpux1111.h"
1339 extra_options="${extra_options} pa/pa-hpux1111.opt"
1342 tm_file="${tm_file} pa/pa-hpux1131.h"
1343 extra_options="${extra_options} pa/pa-hpux1131.opt"
1346 tmake_file="t-slibgcc"
1347 case x${enable_threads} in
1356 use_gcc_stdint=provide
1357 tm_file="${tm_file} hpux-stdint.h"
1361 tm_file="${tm_file} hpux-stdint.h"
1364 if test "x$with_dwarf2" != x; then
1365 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1369 i[34567]86-*-darwin*)
1371 # Baseline choice for a machine that allows m64 support.
1372 with_cpu=${with_cpu:-core2}
1373 tmake_file="${tmake_file} t-slibgcc"
1376 with_cpu=${with_cpu:-core2}
1377 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1378 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1381 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1384 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1387 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1390 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"
1391 tmake_file="i386/t-i386elf t-svr4"
1393 i[34567]86-*-dragonfly*)
1394 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1395 tmake_file="${tmake_file} i386/t-crtstuff"
1397 x86_64-*-dragonfly*)
1398 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"
1399 tmake_file="${tmake_file} i386/t-crtstuff"
1401 i[34567]86-*-freebsd*)
1402 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1405 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"
1407 i[34567]86-*-netbsdelf*)
1408 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
1409 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1412 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"
1413 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1415 i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
1416 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"
1417 extra_options="${extra_options} openbsd.opt"
1418 # needed to unconfuse gdb
1419 tmake_file="${tmake_file} t-openbsd i386/t-openbsd"
1420 # we need collect2 until our bug is fixed...
1423 i[34567]86-*-openbsd*)
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/openbsdelf.h"
1426 extra_options="${extra_options} openbsd.opt"
1431 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1432 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1433 extra_options="${extra_options} openbsd.opt"
1437 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1438 # Intel 80386's running GNU/*
1439 # with ELF format using glibc 2
1440 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1442 i[34567]86-*-linux*)
1443 tm_file="${tm_file} linux.h linux-android.h"
1444 extra_options="${extra_options} linux-android.opt"
1445 # Assume modern glibc if not targeting Android nor uclibc.
1447 *-*-*android*|*-*-*uclibc*)
1450 default_gnu_indirect_function=yes
1453 if test x$enable_targets = xall; then
1454 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1455 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1456 tmake_file="${tmake_file} i386/t-linux64"
1457 x86_multilibs="${with_multilib_list}"
1458 if test "$x86_multilibs" = "default"; then
1459 x86_multilibs="m64,m32"
1461 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1462 for x86_multilib in ${x86_multilibs}; do
1463 case ${x86_multilib} in
1465 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1468 echo "--with-multilib-list=${x86_with_multilib} not supported."
1472 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1474 if test x$with_cpu = x; then
1475 if test x$with_cpu_64 = x; then
1479 case " $x86_cpus $x86_archs $x86_64_archs " in
1483 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1484 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1490 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1493 i[34567]86-*-knetbsd*-gnu)
1494 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h"
1496 i[34567]86-*-kfreebsd*-gnu)
1497 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1499 i[34567]86-*-kopensolaris*-gnu)
1500 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1503 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1507 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
1508 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1509 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1512 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1513 extra_options="${extra_options} linux-android.opt"
1514 # Assume modern glibc if not targeting Android nor uclibc.
1516 *-*-*android*|*-*-*uclibc*)
1519 default_gnu_indirect_function=yes
1523 x86_64-*-kfreebsd*-gnu)
1524 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1526 x86_64-*-knetbsd*-gnu)
1527 tm_file="${tm_file} knetbsd-gnu.h"
1530 tmake_file="${tmake_file} i386/t-linux64"
1531 x86_multilibs="${with_multilib_list}"
1532 if test "$x86_multilibs" = "default"; then
1535 x86_multilibs="mx32"
1538 x86_multilibs="m64,m32"
1542 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1543 for x86_multilib in ${x86_multilibs}; do
1544 case ${x86_multilib} in
1546 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1549 echo "--with-multilib-list=${x86_with_multilib} not supported."
1553 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1555 i[34567]86-pc-msdosdjgpp*)
1556 xm_file=i386/xm-djgpp.h
1557 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1558 native_system_header_dir=/dev/env/DJDIR/include
1559 extra_options="${extra_options} i386/djgpp.opt"
1564 i[34567]86-*-lynxos*)
1566 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1567 tmake_file="${tmake_file} t-lynx"
1568 extra_options="${extra_options} lynx.opt"
1573 i[34567]86-*-nto-qnx*)
1574 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1575 extra_options="${extra_options} i386/nto.opt"
1579 i[34567]86-*-rtems*)
1580 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"
1581 tmake_file="${tmake_file} i386/t-rtems"
1583 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1584 # Set default arch_32 to pentium4, tune_32 to generic like the other
1585 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1586 with_arch_32=${with_arch_32:-pentium4}
1587 with_tune_32=${with_tune_32:-generic}
1588 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1589 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1590 tmake_file="$tmake_file i386/t-sol2"
1592 if test x$with_cpu = x; then
1593 if test x$with_cpu_64 = x; then
1597 case " $x86_cpus $x86_archs $x86_64_archs " in
1601 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1602 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1608 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
1609 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h vx-common.h"
1612 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1613 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1616 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1617 tmake_file="${tmake_file} i386/t-vxworks"
1621 i[34567]86-*-cygwin*)
1622 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"
1623 xm_file=i386/xm-cygwin.h
1624 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1625 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1626 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1627 extra_objs="winnt.o winnt-stubs.o"
1628 c_target_objs="${c_target_objs} msformat-c.o"
1629 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1630 if test x$enable_threads = xyes; then
1633 default_use_cxa_atexit=yes
1638 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"
1639 xm_file=i386/xm-cygwin.h
1640 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1641 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1642 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1643 extra_objs="winnt.o winnt-stubs.o"
1644 c_target_objs="${c_target_objs} msformat-c.o"
1645 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1646 if test x$enable_threads = xyes; then
1649 default_use_cxa_atexit=yes
1651 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1653 i[34567]86-*-mingw* | x86_64-*-mingw*)
1654 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1655 xm_file=i386/xm-mingw32.h
1656 c_target_objs="${c_target_objs} winnt-c.o"
1657 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1658 target_has_targetcm="yes"
1660 x86_64-*-* | *-w64-*)
1666 if test x$enable_threads = xposix ; then
1667 tm_file="${tm_file} i386/mingw-pthread.h"
1669 tm_file="${tm_file} i386/mingw32.h"
1670 # This makes the logic if mingw's or the w64 feature set has to be used
1673 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1674 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1675 tm_file="${tm_file} i386/mingw-w64.h"
1676 if test x$enable_targets = xall; then
1677 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1678 if test x$with_cpu = x; then
1679 if test x$with_cpu_64 = x; then
1683 case " $x86_cpus $x86_archs $x86_64_archs " in
1687 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1688 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1698 tm_file="${tm_file} i386/mingw-stdint.h"
1699 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1702 tmake_file="${tmake_file} i386/t-mingw-w64"
1705 tmake_file="${tmake_file} i386/t-mingw-w32"
1708 native_system_header_dir=/mingw/include
1709 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1710 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1713 extra_options="${extra_options} i386/mingw-w64.opt"
1718 extra_objs="winnt.o winnt-stubs.o"
1719 c_target_objs="${c_target_objs} msformat-c.o"
1720 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1723 default_use_cxa_atexit=yes
1725 case ${enable_threads} in
1735 tm_file="${tm_file} i386/crtdll.h"
1737 *mingw32msv* | *mingw*)
1741 i[34567]86-*-interix[3-9]*)
1742 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h"
1743 tmake_file="${tmake_file} i386/t-interix"
1744 extra_options="${extra_options} rpath.opt i386/interix.opt"
1745 extra_objs="winnt.o winnt-stubs.o"
1746 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1747 if test x$enable_threads = xyes ; then
1750 if test x$stabs = xyes ; then
1751 tm_file="${tm_file} dbxcoff.h"
1755 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1756 tmake_file="ia64/t-ia64"
1757 target_cpu_default="0"
1758 if test x$gas = xyes
1760 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1762 if test x$gnu_ld = xyes
1764 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1768 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1769 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1770 tmake_file="${tmake_file} ia64/t-ia64"
1773 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1774 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1775 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1778 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1779 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1780 target_cpu_default="MASK_GNU_AS"
1781 case x$enable_threads in
1787 c_target_objs="ia64-c.o"
1788 cxx_target_objs="ia64-c.o"
1789 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1791 tm_file="${tm_file} hpux-stdint.h"
1794 tm_file="${tm_file} ia64/hpux-unix2003.h"
1799 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1800 tmake_file="${tmake_file} ia64/t-ia64"
1801 target_cpu_default="0"
1802 if test x$gas = xyes
1804 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1806 extra_options="${extra_options} ia64/vms.opt"
1809 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1810 out_file=iq2000/iq2000.c
1811 md_file=iq2000/iq2000.md
1814 tm_file="dbxelf.h elfos.h ${tm_file}"
1815 tmake_file="${tmake_file} lm32/t-lm32"
1818 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1819 tmake_file="${tmake_file} lm32/t-lm32"
1820 tmake_file="${tmake_file} lm32/t-rtems"
1823 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1824 tmake_file="${tmake_file} lm32/t-lm32"
1827 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1830 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1833 tm_file="dbxelf.h elfos.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h"
1834 tmake_file="${tmake_file} m32r/t-m32r"
1837 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1838 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1840 if test x$enable_threads = xyes; then
1845 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1846 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1848 if test x$enable_threads = xyes; then
1852 m68k-*-elf* | fido-*-elf*)
1855 # Check that $with_cpu makes sense.
1860 echo "Cannot accept --with-cpu=$with_cpu"
1867 default_m68k_cpu=68020
1871 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"
1872 tm_defines="${tm_defines} MOTOROLA=1"
1873 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1874 # Add multilibs for targets other than fido.
1879 tmake_file="$tmake_file m68k/t-mlibs"
1884 default_m68k_cpu=68020
1886 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
1887 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1888 tm_defines="${tm_defines} MOTOROLA=1"
1891 default_m68k_cpu=68020
1893 # needed to unconfuse gdb
1894 tm_defines="${tm_defines} OBSD_OLD_GAS"
1895 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1896 extra_options="${extra_options} openbsd.opt"
1897 tmake_file="t-openbsd m68k/t-openbsd"
1898 # we need collect2 until our bug is fixed...
1901 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
1902 # with uClibc, using the new GNU/Linux-style
1904 default_m68k_cpu=68020
1906 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"
1907 extra_options="${extra_options} m68k/uclinux.opt"
1908 tm_defines="${tm_defines} MOTOROLA=1"
1909 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1911 m68k-*-linux*) # Motorola m68k's running GNU/Linux
1912 # with ELF format using glibc 2
1913 # aka the GNU/Linux C library 6.
1914 default_m68k_cpu=68020
1916 with_arch=${with_arch:-m68k}
1917 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
1918 extra_options="${extra_options} m68k/ieee.opt"
1919 tm_defines="${tm_defines} MOTOROLA=1"
1920 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
1923 default_m68k_cpu=68020
1925 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
1926 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"
1927 tm_defines="${tm_defines} MOTOROLA=1"
1930 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
1931 tmake_file=mcore/t-mcore
1935 tm_file="dbxelf.h elfos.h ${tm_file}"
1936 tmake_file=mep/t-mep
1937 c_target_objs="mep-pragma.o"
1938 cxx_target_objs="mep-pragma.o"
1939 if test -d "${srcdir}/../newlib/libc/include" &&
1940 test "x$with_headers" = x; then
1948 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1951 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1954 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
1955 tm_file="${tm_file} glibc-stdint.h"
1956 c_target_objs="${c_target_objs} microblaze-c.o"
1957 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1958 tmake_file="${tmake_file} microblaze/t-microblaze"
1959 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
1961 microblaze*-*-rtems*)
1964 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1967 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1970 tm_file="${tm_file} dbxelf.h"
1971 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
1972 c_target_objs="${c_target_objs} microblaze-c.o"
1973 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1974 tmake_file="${tmake_file} microblaze/t-microblaze"
1975 tmake_file="${tmake_file} microblaze/t-rtems"
1980 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1983 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1986 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
1987 c_target_objs="${c_target_objs} microblaze-c.o"
1988 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1989 tmake_file="${tmake_file} microblaze/t-microblaze"
1991 mips*-*-netbsd*) # NetBSD/mips, either endian.
1992 target_cpu_default="MASK_ABICALLS"
1993 tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
1994 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1997 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"
1998 extra_options="${extra_options} linux-android.opt"
1999 tmake_file="${tmake_file} mips/t-img-linux"
2000 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2005 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"
2006 extra_options="${extra_options} linux-android.opt"
2007 tmake_file="${tmake_file} mips/t-mti-linux"
2008 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2012 mips*-*-linux*) # Linux MIPS, either endian.
2013 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"
2014 extra_options="${extra_options} linux-android.opt"
2017 default_mips_arch=mips32r6
2020 default_mips_arch=mips32r2
2023 default_mips_arch=mips32
2025 mips64el-st-linux-gnu)
2026 default_mips_abi=n32
2027 tm_file="${tm_file} mips/st.h"
2028 tmake_file="${tmake_file} mips/t-st"
2029 enable_mips_multilibs="yes"
2031 mips64octeon*-*-linux*)
2032 default_mips_abi=n32
2033 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2034 target_cpu_default=MASK_SOFT_FLOAT_ABI
2035 enable_mips_multilibs="yes"
2037 mipsisa64r6*-*-linux*)
2038 default_mips_abi=n32
2039 default_mips_arch=mips64r6
2040 enable_mips_multilibs="yes"
2042 mipsisa64r2*-*-linux*)
2043 default_mips_abi=n32
2044 default_mips_arch=mips64r2
2045 enable_mips_multilibs="yes"
2047 mips64*-*-linux* | mipsisa64*-*-linux*)
2048 default_mips_abi=n32
2049 enable_mips_multilibs="yes"
2052 if test x$enable_targets = xall; then
2053 enable_mips_multilibs="yes"
2055 if test x$enable_mips_multilibs = xyes; then
2056 tmake_file="${tmake_file} mips/t-linux64"
2060 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2061 tmake_file="mips/t-mti-elf"
2062 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2065 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2066 tmake_file="mips/t-img-elf"
2067 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2070 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2071 tmake_file="mips/t-sde"
2072 extra_options="${extra_options} mips/sde.opt"
2073 case "${with_newlib}" in
2075 # newlib / libgloss.
2078 # MIPS toolkit libraries.
2079 tm_file="$tm_file mips/sdemtk.h"
2080 tmake_file="$tmake_file mips/t-sdemtk"
2081 case ${enable_threads} in
2083 thread_file='mipssde'
2090 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2093 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2096 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2099 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2102 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2105 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2109 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2110 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2111 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2112 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2113 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2114 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2115 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2116 tmake_file="mips/t-isa3264"
2119 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2122 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2125 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2128 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2131 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2134 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2138 mipsisa32*-*-elfoabi*)
2139 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2140 tm_file="${tm_file} mips/elfoabi.h"
2142 mipsisa64*-*-elfoabi*)
2143 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2144 tm_file="${tm_file} mips/elfoabi.h"
2147 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2151 mipsisa64sr71k-*-elf*)
2152 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2153 tmake_file=mips/t-sr71k
2154 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2156 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2157 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2158 tmake_file="mips/t-elf mips/t-sb1"
2159 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2161 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2162 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2163 tmake_file="mips/t-elf"
2165 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2166 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2167 tmake_file="mips/t-elf"
2168 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2170 mips64-*-elf* | mips64el-*-elf*)
2171 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2172 tmake_file="mips/t-elf"
2173 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2175 mips64vr-*-elf* | mips64vrel-*-elf*)
2176 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2177 tmake_file=mips/t-vr
2178 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2180 mips64orion-*-elf* | mips64orionel-*-elf*)
2181 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2182 tmake_file="mips/t-elf"
2183 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2186 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2187 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2190 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2191 tmake_file="${tmake_file} mips/t-vxworks"
2193 mipstx39-*-elf* | mipstx39el-*-elf*)
2194 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2195 tmake_file="mips/t-r3900"
2197 mmix-knuth-mmixware)
2198 tm_file="${tm_file} newlib-stdint.h"
2202 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2203 if test x$stabs = xyes
2205 tm_file="${tm_file} dbx.h"
2211 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2212 c_target_objs="msp430-c.o"
2213 cxx_target_objs="msp430-c.o"
2214 tmake_file="${tmake_file} msp430/t-msp430"
2217 target_cpu_default="0"
2218 tm_defines="${tm_defines}"
2219 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2220 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2223 target_cpu_default="0|MASK_BIG_ENDIAN"
2224 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2225 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2226 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2229 tm_file="elfos.h ${tm_file}"
2230 tmake_file="${tmake_file} nios2/t-nios2"
2233 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2236 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2237 extra_options="${extra_options} nios2/elf.opt"
2240 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2241 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2246 tm_file="${tm_file} newlib-stdint.h"
2247 tmake_file="nvptx/t-nvptx"
2248 if test x$enable_as_accelerator = xyes; then
2249 extra_programs="${extra_programs} mkoffload\$(exeext)"
2250 tm_file="${tm_file} nvptx/offload.h"
2254 tm_file="${tm_file} newlib-stdint.h"
2257 # port not yet contributed
2258 #powerpc-*-openbsd*)
2259 # tmake_file="${tmake_file} rs6000/t-fprules"
2263 extra_options="${extra_options} rs6000/darwin.opt"
2265 *-darwin1[0-9]* | *-darwin[8-9]*)
2266 tmake_file="${tmake_file} rs6000/t-darwin8"
2267 tm_file="${tm_file} rs6000/darwin8.h"
2270 tm_file="${tm_file} rs6000/darwin7.h"
2275 tmake_file="${tmake_file} t-slibgcc"
2276 extra_headers=altivec.h
2278 powerpc64-*-darwin*)
2279 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2280 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2281 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2282 extra_headers=altivec.h
2284 powerpc*-*-freebsd*)
2285 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2286 extra_options="${extra_options} rs6000/sysv4.opt"
2287 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2290 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2291 tmake_file="${tmake_file} rs6000/t-freebsd64"
2292 extra_options="${extra_options} rs6000/linux64.opt"
2295 tm_file="${tm_file} rs6000/freebsd.h"
2300 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2301 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2302 tmake_file="${tmake_file} rs6000/t-netbsd"
2303 extra_options="${extra_options} rs6000/sysv4.opt"
2306 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"
2307 extra_options="${extra_options} rs6000/sysv4.opt"
2308 tmake_file="rs6000/t-spe rs6000/t-ppccomm"
2311 powerpc-*-eabisimaltivec*)
2312 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"
2313 extra_options="${extra_options} rs6000/sysv4.opt"
2314 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2318 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"
2319 extra_options="${extra_options} rs6000/sysv4.opt"
2320 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2324 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2325 extra_options="${extra_options} rs6000/sysv4.opt"
2326 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2328 powerpc-*-eabialtivec*)
2329 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"
2330 extra_options="${extra_options} rs6000/sysv4.opt"
2331 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2334 powerpc-xilinx-eabi*)
2335 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"
2336 extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
2337 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2341 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"
2342 extra_options="${extra_options} rs6000/sysv4.opt"
2343 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2347 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"
2348 extra_options="${extra_options} rs6000/sysv4.opt"
2349 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2352 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2353 extra_options="${extra_options} rs6000/sysv4.opt"
2354 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2355 extra_objs="$extra_objs rs6000-linux.o"
2358 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2360 case ${target}:${with_cpu} in
2361 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2363 maybe_biarch=${cpu_is_64bit}
2364 case ${enable_targets} in
2365 *powerpc64*) maybe_biarch=yes ;;
2368 powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
2369 echo "*** Configuration ${target} not supported" 1>&2
2372 powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
2376 case ${target}:${enable_targets}:${maybe_biarch} in
2377 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2378 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2379 | powerpcle-*:*powerpc64le*:yes)
2380 if test x$cpu_is_64bit = xyes; then
2381 tm_file="${tm_file} rs6000/default64.h"
2383 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2384 tmake_file="$tmake_file rs6000/t-linux64"
2387 tmake_file="$tmake_file rs6000/t-linux64le"
2388 case ${enable_targets} in
2389 all | *powerpc64-* | *powerpc-*)
2390 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2393 case ${enable_targets} in
2394 all | *powerpc64le-* | *powerpcle-*)
2395 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2398 extra_options="${extra_options} rs6000/linux64.opt"
2401 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2402 extra_options="${extra_options} rs6000/linux64.opt"
2403 tmake_file="${tmake_file} rs6000/t-linux"
2406 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2407 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2411 powerpc*-*-linux*ppc476*)
2412 tm_file="${tm_file} rs6000/476.h"
2413 extra_options="${extra_options} rs6000/476.opt" ;;
2414 powerpc*-*-linux*altivec*)
2415 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2416 powerpc*-*-linux*spe*)
2417 tm_file="${tm_file} rs6000/linuxspe.h rs6000/e500.h" ;;
2418 powerpc*-*-linux*paired*)
2419 tm_file="${tm_file} rs6000/750cl.h" ;;
2421 if test x${enable_secureplt} = xyes; then
2422 tm_file="rs6000/secureplt.h ${tm_file}"
2425 powerpc-wrs-vxworks|powerpc-wrs-vxworksae|powerpc-wrs-vxworksmils)
2426 tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2427 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2428 extra_options="${extra_options} rs6000/sysv4.opt"
2429 extra_headers=ppc-asm.h
2432 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksmils.h"
2433 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2436 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h"
2437 tmake_file="${tmake_file} rs6000/t-vxworksae"
2440 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h"
2446 tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2447 tmake_file="t-lynx rs6000/t-lynx"
2448 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2454 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2455 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2456 extra_options="${extra_options} rs6000/sysv4.opt"
2458 powerpcle-*-eabisim*)
2459 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"
2460 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2461 extra_options="${extra_options} rs6000/sysv4.opt"
2465 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"
2466 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2467 extra_options="${extra_options} rs6000/sysv4.opt"
2470 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2471 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2472 tmake_file="rs6000/t-aix43 t-slibgcc"
2473 extra_options="${extra_options} rs6000/aix64.opt"
2476 use_gcc_stdint=provide
2479 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2480 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2481 extra_options="${extra_options} rs6000/aix64.opt"
2482 tmake_file="rs6000/t-aix43 t-slibgcc"
2488 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2489 tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2490 tmake_file="rs6000/t-aix52 t-slibgcc"
2491 extra_options="${extra_options} rs6000/aix64.opt"
2497 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2498 tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2499 tmake_file="rs6000/t-aix52 t-slibgcc"
2500 extra_options="${extra_options} rs6000/aix64.opt"
2504 extra_headers=altivec.h
2506 rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
2507 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2508 tmake_file="rs6000/t-aix52 t-slibgcc"
2509 extra_options="${extra_options} rs6000/aix64.opt"
2513 extra_headers=altivec.h
2516 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2517 target_has_targetm_common=no
2518 c_target_objs="rl78-c.o"
2519 cxx_target_objs="rl78-c.o"
2520 tmake_file="${tmake_file} rl78/t-rl78"
2523 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2524 tmake_file="${tmake_file} rx/t-rx"
2527 default_gnu_indirect_function=yes
2528 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2529 if test x$enable_targets = xall; then
2530 tmake_file="${tmake_file} s390/t-linux64"
2534 default_gnu_indirect_function=yes
2535 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2536 tm_p_file="linux-protos.h s390/s390-protos.h"
2537 md_file=s390/s390.md
2538 extra_modes=s390/s390-modes.def
2539 out_file=s390/s390.c
2540 tmake_file="${tmake_file} s390/t-linux64"
2543 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2544 tm_p_file=s390/s390-protos.h
2545 md_file=s390/s390.md
2546 extra_modes=s390/s390-modes.def
2547 out_file=s390/s390.c
2549 extra_options="${extra_options} s390/tpf.opt"
2551 sh-*-elf* | sh[12346l]*-*-elf* | \
2552 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2553 sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
2554 sh64-*-netbsd* | sh64l*-*-netbsd*)
2555 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2556 if test x${with_endian} = x; then
2558 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2559 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2560 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2561 shl* | sh64l* | sh*-*-linux* | \
2562 sh5l* | sh-superh-elf) with_endian=little,big ;;
2563 sh[1234]*-*-*) with_endian=big ;;
2564 *) with_endian=big,little ;;
2567 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2568 # First word : the default endian.
2569 # Second word: the secondary endian (optional).
2570 case ${with_endian} in
2571 big) TM_ENDIAN_CONFIG=mb ;;
2572 little) TM_ENDIAN_CONFIG=ml ;;
2573 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2574 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2575 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2577 case ${with_endian} in
2578 little*) tm_file="sh/little.h ${tm_file}" ;;
2580 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2582 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2583 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2585 tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h"
2586 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2589 sh*-superh-elf) if test x$with_libgloss != xno; then
2591 tm_file="${tm_file} sh/newlib.h"
2593 tm_file="${tm_file} sh/embed-elf.h"
2594 tm_file="${tm_file} sh/superh.h"
2595 extra_options="${extra_options} sh/superh.opt" ;;
2596 *) if test x$with_newlib = xyes \
2597 && test x$with_libgloss = xyes; then
2598 tm_file="${tm_file} sh/newlib.h"
2600 tm_file="${tm_file} sh/embed-elf.h" ;;
2604 # SHmedia, 32-bit ABI
2605 tmake_file="${tmake_file} sh/t-sh64"
2608 # SHmedia, 64-bit ABI
2609 tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5-64"
2614 tmake_file="${tmake_file} sh/t-sh64"
2615 tm_file="${tm_file} sh/sh64.h"
2616 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2619 tmake_file="${tmake_file} sh/t-sh64"
2620 tm_file="${tm_file} sh/sh64.h"
2621 if test x$with_newlib = xyes; then
2622 tm_file="${tm_file} newlib-stdint.h"
2624 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2627 tm_file="${tm_file} newlib-stdint.h"
2630 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2631 case `echo ${target} | sed 's/e[lb]-/-/'` in
2632 sh64*-*-netbsd*) sh_cpu_target=sh5-64media ;;
2633 sh64* | sh5*-*-netbsd*) sh_cpu_target=sh5-32media ;;
2634 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2635 sh4a_single*) sh_cpu_target=sh4a-single ;;
2636 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2637 sh4al) sh_cpu_target=sh4al ;;
2638 sh4a*) sh_cpu_target=sh4a ;;
2639 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2640 sh4_single*) sh_cpu_target=sh4-single ;;
2641 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2642 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2643 sh3e*) sh_cpu_target=sh3e ;;
2644 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2645 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2646 sh2a_single*) sh_cpu_target=sh2a-single ;;
2647 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2648 sh2a*) sh_cpu_target=sh2a ;;
2649 sh2e*) sh_cpu_target=sh2e ;;
2650 sh2*) sh_cpu_target=sh2 ;;
2651 *) sh_cpu_target=sh1 ;;
2653 # did the user say --without-fp ?
2654 if test x$with_fp = xno; then
2655 case ${sh_cpu_target} in
2656 sh5-*media) sh_cpu_target=${sh_cpu_target}-nofpu ;;
2658 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2659 sh4*) sh_cpu_target=sh4-nofpu ;;
2660 sh3*) sh_cpu_target=sh3 ;;
2661 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2662 sh2*) sh_cpu_target=sh2 ;;
2663 *) echo --without-fp not available for $target: ignored
2665 tm_defines="$tm_defines STRICT_NOFPU=1"
2667 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2668 case $sh_cpu_default in
2669 sh5-64media-nofpu | sh5-64media | \
2670 sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
2671 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2672 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2673 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2674 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2675 "") sh_cpu_default=${sh_cpu_target} ;;
2676 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2678 sh_multilibs=${with_multilib_list}
2679 if test "$sh_multilibs" = "default" ; then
2681 sh64-superh-linux* | \
2682 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2683 sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
2684 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2685 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2686 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2687 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2689 if test x$with_fp = xno; then
2690 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`"
2693 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2694 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2695 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2696 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2697 for sh_multilib in ${sh_multilibs}; do
2698 case ${sh_multilib} in
2699 m1 | m2 | m2e | m3 | m3e | \
2700 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2701 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2702 m2a | m2a-single | m2a-single-only | m2a-nofpu | \
2703 m5-64media | m5-64media-nofpu | \
2704 m5-32media | m5-32media-nofpu | \
2705 m5-compact | m5-compact-nofpu)
2706 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2707 # It is passed to MULTIILIB_OPTIONS verbatim.
2708 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2709 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2711 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2712 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2713 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2715 echo "with_multilib_list=${sh_multilib} not supported."
2720 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2721 if test x${enable_incomplete_targets} = xyes ; then
2722 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"
2724 tm_file="$tm_file ./sysroot-suffix.h"
2725 tmake_file="$tmake_file t-sysroot-suffix"
2728 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2729 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2732 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2733 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2736 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2739 tmake_file="sparc/t-sparc sparc/t-leon"
2742 tmake_file="sparc/t-sparc sparc/t-leon3"
2745 tmake_file="sparc/t-sparc sparc/t-elf"
2750 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2751 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2754 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2755 extra_options="${extra_options} sparc/long-double-switch.opt"
2758 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2761 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2764 tmake_file="${tmake_file} sparc/t-sparc"
2767 if test x$enable_targets = xall; then
2768 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2769 tmake_file="${tmake_file} sparc/t-linux64"
2771 tm_file="${tm_file} sparc/linux.h"
2772 tmake_file="${tmake_file} sparc/t-linux"
2776 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2777 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2778 extra_options="${extra_options} sparc/long-double-switch.opt"
2779 tmake_file="${tmake_file} sparc/t-sparc"
2782 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2784 sparc64-*-* | sparcv9-*-*)
2785 tm_file="sparc/default-64.h ${tm_file}"
2788 test x$with_cpu != x || with_cpu=v9
2791 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2794 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2795 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2798 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2799 extra_options="${extra_options}"
2800 tmake_file="${tmake_file} sparc/t-sparc"
2803 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2804 extra_options="${extra_options}"
2805 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2808 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"
2809 extra_options="${extra_options} sparc/long-double-switch.opt"
2810 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2812 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2813 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2814 extra_options="${extra_options} sparc/long-double-switch.opt"
2815 case "x$with_cpu" in
2817 x) with_cpu=ultrasparc ;;
2818 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2820 tmake_file="${tmake_file} sparc/t-sparc"
2823 tm_file="sparc/biarch64.h ${tm_file}"
2824 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2825 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2826 extra_options="${extra_options} sparc/long-double-switch.opt"
2827 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2830 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2831 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2832 extra_options="${extra_options} openbsd.opt"
2833 extra_options="${extra_options}"
2836 tmake_file="${tmake_file} sparc/t-sparc"
2839 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2840 tmake_file="spu/t-spu-elf"
2841 native_system_header_dir=/include
2842 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2843 extra_modes=spu/spu-modes.def
2844 c_target_objs="${c_target_objs} spu-c.o"
2845 cxx_target_objs="${cxx_target_objs} spu-c.o"
2848 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
2849 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
2850 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
2854 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
2855 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
2856 tm_file="${tm_file} ./sysroot-suffix.h"
2857 tmake_file="t-sysroot-suffix t-slibgcc"
2858 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
2862 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
2863 tmake_file="${tmake_file} tilegx/t-tilegx"
2864 extra_objs="${extra_objs} mul-tables.o"
2865 c_target_objs="${c_target_objs} tilegx-c.o"
2866 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
2867 extra_headers="feedback.h"
2870 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2875 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
2876 tmake_file="${tmake_file} tilepro/t-tilepro"
2877 extra_objs="${extra_objs} mul-tables.o"
2878 c_target_objs="${c_target_objs} tilepro-c.o"
2879 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
2880 extra_headers="feedback.h"
2883 target_cpu_default="TARGET_CPU_generic"
2884 tm_file="dbxelf.h elfos.h v850/v850.h"
2885 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
2886 tmake_file="${tmake_file} v850/t-v850"
2887 tmake_file="${tmake_file} v850/t-rtems"
2889 c_target_objs="v850-c.o"
2890 cxx_target_objs="v850-c.o"
2895 target_cpu_default="TARGET_CPU_v850e3v5"
2898 target_cpu_default="TARGET_CPU_v850e2v3"
2901 target_cpu_default="TARGET_CPU_v850e2"
2903 v850e1-*-* | v850es-*-*)
2904 target_cpu_default="TARGET_CPU_v850e1"
2907 target_cpu_default="TARGET_CPU_v850e"
2910 target_cpu_default="TARGET_CPU_generic"
2913 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
2914 if test x$stabs = xyes
2916 tm_file="${tm_file} dbx.h"
2919 c_target_objs="v850-c.o"
2920 cxx_target_objs="v850-c.o"
2924 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
2925 extra_options="${extra_options} vax/elf.opt"
2928 tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
2929 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
2932 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
2933 extra_options="${extra_options} openbsd.opt"
2937 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
2938 tmake_file="visium/t-visium visium/t-crtstuff"
2941 # For historical reasons, the target files omit the 'x'.
2942 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
2943 tm_p_file=stormy16/stormy16-protos.h
2944 md_file=stormy16/stormy16.md
2945 out_file=stormy16/stormy16.c
2946 extra_options=stormy16/stormy16.opt
2947 tmake_file="stormy16/t-stormy16"
2950 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
2951 extra_options="${extra_options} xtensa/elf.opt"
2954 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
2955 tmake_file="${tmake_file} xtensa/t-xtensa"
2958 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
2963 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
2964 c_target_objs="m32c-pragma.o"
2965 cxx_target_objs="m32c-pragma.o"
2968 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2969 c_target_objs="m32c-pragma.o"
2970 cxx_target_objs="m32c-pragma.o"
2973 echo "*** Configuration ${target} not supported" 1>&2
2979 i[34567]86-*-linux* | x86_64-*-linux*)
2980 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
2982 i[34567]86-*-* | x86_64-*-*)
2983 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
2985 powerpc*-*-* | rs6000-*-*)
2986 tm_file="${tm_file} rs6000/option-defaults.h"
2989 # Build mkoffload tool
2991 *-intelmic-* | *-intelmicemul-*)
2992 tmake_file="${tmake_file} i386/t-intelmic"
2993 tm_file="${tm_file} i386/intelmic-offload.h"
2997 if [ "$target_has_targetcm" = "no" ]; then
2998 c_target_objs="$c_target_objs default-c.o"
2999 cxx_target_objs="$cxx_target_objs default-c.o"
3002 if [ "$common_out_file" = "" ]; then
3003 if [ "$target_has_targetm_common" = "yes" ]; then
3004 common_out_file="$cpu_type/$cpu_type-common.c"
3006 common_out_file="default-common.c"
3010 # Support for --with-cpu and related options (and a few unrelated options,
3014 echo "--with-cpu must be passed a value" 1>&2
3019 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3020 # to generic if there is no processor scheduler model for the target.
3023 arch_without_sse2=no
3024 arch_without_64bit=no
3027 if test $fbsd_major -ge 6; then
3033 arch_without_sse2=yes
3034 arch_without_64bit=yes
3039 arch_without_sse2=yes
3040 arch_without_64bit=yes
3045 arch_without_sse2=yes
3046 arch_without_64bit=yes
3049 arch_without_sse2=yes
3050 arch_without_64bit=yes
3051 case ${target_noncanonical} in
3064 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3074 i686-*-* | i786-*-*)
3075 case ${target_noncanonical} in
3100 amdfam10-*|barcelona-*)
3104 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3108 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3112 athlon_xp-*|athlon_mp-*|athlon_4-*)
3115 arch_without_sse2=yes
3116 arch_without_64bit=yes
3118 athlon_tbird-*|athlon-*)
3121 arch_without_sse2=yes
3126 arch_without_sse2=yes
3131 arch_without_sse2=yes
3133 pentium3-*|pentium3m-*)
3136 arch_without_sse2=yes
3138 pentium4-*|pentium4m-*)
3177 arch_without_sse2=yes
3182 arch_without_sse2=yes
3183 arch_without_64bit=yes
3188 case ${target_noncanonical} in
3213 amdfam10-*|barcelona-*)
3217 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3221 k8-*|opteron-*|athlon_64-*)
3253 # If there is no $with_cpu option, try to infer one from ${target}.
3254 # This block sets nothing except for with_cpu.
3255 if test x$with_cpu = x ; then
3257 i[34567]86-*-*|x86_64-*-*)
3275 frv-*-*linux* | frv400-*-*linux*)
3282 case "$with_arch" in
3284 with_cpu=${default_cf_cpu}
3287 with_cpu=m${default_m68k_cpu}
3292 if test x$enable_e500_double = xyes; then
3310 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3316 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3318 i[34567]86-*-*|x86_64-*-*)
3319 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3320 if test x$with_cpu_32 = x; then
3321 with_cpu_32=$with_cpu
3323 if test x$with_cpu_64 = x; then
3324 with_cpu_64=$with_cpu
3332 # Support for --with-arch and related options (and a few unrelated options,
3334 case ${with_arch} in
3336 echo "--with-arch must be passed a value" 1>&2
3341 # If there is no $with_arch option, try to infer one from ${target}.
3342 # This block sets nothing except for with_arch.
3343 if test x$with_arch = x ; then
3345 i[34567]86-*-darwin*|x86_64-*-darwin*)
3346 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3347 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3350 # --with-fpmath sets the default ISA to SSE2, which is the same
3351 # ISA supported by Pentium 4.
3352 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3361 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3369 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3371 i[34567]86-*-darwin*|x86_64-*-darwin*)
3372 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3373 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3375 i[34567]86-*-*|x86_64-*-*)
3376 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3377 if test x$with_arch_32 = x; then
3378 with_arch_32=$with_arch
3380 if test x$with_arch_64 = x; then
3381 if test $arch_without_64bit = yes; then
3382 # Set the default 64bit arch to x86-64 if the default arch
3383 # doesn't support 64bit.
3386 with_arch_64=$with_arch
3390 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3391 # Set the default 64bit arch to x86-64 if the default arch
3392 # doesn't support 64bit and we need 64bit ISA.
3393 with_arch_32=$with_arch
3401 # Infer a default setting for --with-float.
3402 if test x$with_float = x; then
3404 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3405 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3406 # comply with IEEE 754.
3412 # Infer a default setting for --with-fpu.
3413 if test x$with_fpu = x; then
3415 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3416 # The R5900 FPU only supports single precision.
3422 # Support --with-fpmath.
3423 if test x$with_fpmath != x; then
3425 i[34567]86-*-* | x86_64-*-*)
3426 case ${with_fpmath} in
3428 tm_file="${tm_file} i386/avxmath.h"
3431 tm_file="${tm_file} i386/ssemath.h"
3434 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3440 echo "--with-fpmath isn't supported for $target." 1>&2
3446 # Similarly for --with-schedule.
3447 if test x$with_schedule = x; then
3450 # Override default PA8000 scheduling model.
3451 with_schedule=7100LC
3456 # Infer a default setting for --with-llsc.
3457 if test x$with_llsc = x; then
3459 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3460 # The R5900 doesn't support LL(D) and SC(D).
3464 # The kernel emulates LL and SC where necessary.
3470 # Validate and mark as valid any --with options supported
3471 # by this target. In order to use a particular --with option
3472 # you must list it in supported_defaults; validating the value
3473 # is optional. This case statement should set nothing besides
3474 # supported_defaults.
3479 supported_defaults="abi cpu arch"
3480 for which in cpu arch; do
3482 eval "val=\$with_$which"
3483 base_val=`echo $val | sed -e 's/\+.*//'`
3484 ext_val=`echo $val | sed -e 's/[a-z0-9\-]\+//'`
3486 if [ $which = arch ]; then
3487 def=aarch64-arches.def
3488 pattern=AARCH64_ARCH
3490 def=aarch64-cores.def
3491 pattern=AARCH64_CORE
3494 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3496 # Find the base CPU or ARCH id in aarch64-cores.def or
3497 # aarch64-arches.def
3498 if [ x"$base_val" = x ] \
3499 || grep "^$pattern(\"$base_val\"," \
3500 ${srcdir}/config/aarch64/$def \
3503 if [ $which = arch ]; then
3504 base_id=`grep "^$pattern(\"$base_val\"," \
3505 ${srcdir}/config/aarch64/$def | \
3506 sed -e 's/^[^,]*,[ ]*//' | \
3508 # Extract the architecture flags from aarch64-arches.def
3509 ext_mask=`grep "^$pattern(\"$base_val\"," \
3510 ${srcdir}/config/aarch64/$def | \
3514 base_id=`grep "^$pattern(\"$base_val\"," \
3515 ${srcdir}/config/aarch64/$def | \
3516 sed -e 's/^[^,]*,[ ]*//' | \
3520 while [ x"$ext_val" != x ]
3522 ext_val=`echo $ext_val | sed -e 's/\+//'`
3523 ext=`echo $ext_val | sed -e 's/\+.*//'`
3524 base_ext=`echo $ext | sed -e 's/^no//'`
3526 if [ x"$base_ext" = x ] \
3527 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3528 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3531 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3532 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3533 sed -e 's/^[^,]*,[ ]*//' | \
3535 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3536 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3537 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3538 sed -e 's/,.*$//' | \
3541 if [ $ext = $base_ext ]; then
3543 ext_mask="("$ext_mask") | ("$ext_on")"
3545 # Removing extension
3546 ext_mask="("$ext_mask") & ~("$ext_off")"
3551 echo "Unknown extension used in --with-$which=$val" 1>&2
3554 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3557 ext_mask="(("$ext_mask") << 6)"
3558 if [ x"$base_id" != x ]; then
3559 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3563 echo "Unknown $which used in --with-$which=$val" 1>&2
3570 supported_defaults="cpu tune"
3571 for which in cpu tune; do
3572 eval "val=\$with_$which"
3575 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3576 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3580 echo "Unknown CPU used in --with-$which=$val" 1>&2
3587 arc*-*-*) # was: arc*-*-linux-uclibc)
3588 supported_defaults="cpu"
3590 arc600|arc601|arc700)
3592 *) echo "Unknown cpu type"
3599 supported_defaults="arch cpu float tune fpu abi mode tls"
3600 for which in cpu tune; do
3601 # See if it matches any of the entries in arm-cores.def
3602 eval "val=\$with_$which"
3603 if [ x"$val" = x ] \
3604 || grep "^ARM_CORE(\"$val\"," \
3605 ${srcdir}/config/arm/arm-cores.def \
3608 new_val=`grep "^ARM_CORE(\"$val\"," \
3609 ${srcdir}/config/arm/arm-cores.def | \
3610 sed -e 's/^[^,]*,[ ]*//' | \
3612 eval "target_${which}_cname=$new_val"
3613 echo "For $val real value is $new_val"
3616 echo "Unknown CPU used in --with-$which=$val" 1>&2
3621 # See if it matches any of the entries in arm-arches.def
3622 if [ x"$with_arch" = x ] \
3623 || grep "^ARM_ARCH(\"$with_arch\"," \
3624 ${srcdir}/config/arm/arm-arches.def \
3629 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
3633 case "$with_float" in
3635 | soft | hard | softfp)
3639 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3644 # see if it matches any of the entries in arm-fpus.def
3645 if [ x"$with_fpu" = x ] \
3646 || grep "^ARM_FPU(\"$with_fpu\"," \
3647 ${srcdir}/config/arm/arm-fpus.def \
3652 echo "Unknown fpu used in --with-fpu=$with_fpu" 1>&2
3658 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3662 echo "Unknown ABI used in --with-abi=$with_abi"
3667 case "$with_mode" in
3673 echo "Unknown mode used in --with-mode=$with_mode"
3684 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3689 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3690 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3694 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3695 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3699 # Add extra multilibs
3700 if test "x$with_multilib_list" != x; then
3701 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3702 for arm_multilib in ${arm_multilibs}; do
3703 case ${arm_multilib} in
3705 # Note that arm/t-aprofile is a
3706 # stand-alone make file fragment to be
3707 # used only with itself. We do not
3708 # specifically use the
3709 # TM_MULTILIB_OPTION framework because
3710 # this shorthand is more
3711 # pragmatic. Additionally it is only
3712 # designed to work without any
3713 # with-cpu, with-arch with-mode
3714 # with-fpu or with-float options.
3715 if test "x$with_arch" != x \
3716 || test "x$with_cpu" != x \
3717 || test "x$with_float" != x \
3718 || test "x$with_fpu" != x \
3719 || test "x$with_mode" != x ; then
3720 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2
3723 tmake_file="${tmake_file} arm/t-aprofile"
3729 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3738 supported_defaults=cpu
3743 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3749 fido-*-* | m68k*-*-*)
3750 supported_defaults="arch cpu"
3751 case "$with_arch" in
3753 m68k_arch_family="$with_arch"
3756 echo "Invalid --with-arch=$with_arch" 1>&2
3761 # We always have a $with_cpu setting here.
3763 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3764 m68k_cpu_ident=$with_cpu
3767 m68k_cpu_ident=m68020
3768 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3771 m68k_cpu_ident=m68020
3772 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3775 # We need the C identifier rather than the string.
3776 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
3777 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
3778 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
3779 ${srcdir}/config/m68k/m68k-devices.def`
3780 if [ x"$m68k_cpu_ident" = x ] ; then
3781 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
3784 with_cpu="mcpu=$with_cpu"
3790 supported_defaults="arch schedule"
3792 case "$with_arch" in
3793 "" | 1.0 | 1.1 | 2.0)
3797 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
3802 case "$with_schedule" in
3803 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
3807 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
3813 i[34567]86-*-* | x86_64-*-*)
3814 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
3815 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3816 eval "val=\$with_$which"
3817 case " $x86_archs " in
3825 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
3834 if test x${val} != x; then
3835 case " $x86_64_archs " in
3840 # Allow $x86_cpus --with-cpu=/--with-tune=
3843 case " $x86_cpus " in
3848 echo "Unknown CPU given in --with-$which=$val." 1>&2
3854 echo "Unknown CPU given in --with-$which=$val." 1>&2
3867 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"
3869 case ${with_float} in
3874 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3880 "" | single | double)
3884 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
3894 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
3899 case ${with_fp_32} in
3904 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
3909 case ${with_odd_spreg_32} in
3911 with_odd_spreg_32="odd-spreg"
3914 with_odd_spreg_32="no-odd-spreg"
3920 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
3926 "" | 32 | o64 | n32 | 64 | eabi)
3930 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
3935 case ${with_divide} in
3936 "" | breaks | traps)
3940 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
3945 case ${with_llsc} in
3956 echo "Unknown llsc type used in --with-llsc" 1>&2
3961 case ${with_mips_plt} in
3966 with_mips_plt=no-plt
3971 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
3976 case ${with_synci} in
3986 echo "Unknown synci type used in --with-synci" 1>&2
3993 supported_defaults="arch nds32_lib"
3995 # process --with-arch
3996 case "${with_arch}" in
4001 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v3 v3m" 1>&2
4006 # process --with-nds32-lib
4007 case "${with_nds32_lib}" in
4009 # the default library is newlib
4010 with_nds32_lib=newlib
4019 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
4025 powerpc*-*-* | rs6000-*-*)
4026 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4028 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4029 eval "val=\$with_$which"
4031 default32 | default64)
4036 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4040 with_which="with_$which"
4044 tm_defines="${tm_defines} CONFIG_PPC405CR"
4045 eval "with_$which=405"
4047 "" | common | native \
4048 | power | power[2345678] | power6x | powerpc | powerpc64 \
4049 | rios | rios1 | rios2 | rsc | rsc1 | rs64a \
4050 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4051 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4052 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4053 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4054 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4058 echo "Unknown cpu used in --with-$which=$val." 1>&2
4065 "" | elfv1 | elfv2 )
4069 echo "Unknown ABI used in --with-abi=$with_abi"
4076 supported_defaults="arch mode tune"
4078 for which in arch tune; do
4079 eval "val=\$with_$which"
4081 "" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12)
4085 echo "Unknown cpu used in --with-$which=$val." 1>&2
4091 case ${with_mode} in
4096 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4102 sh[123456ble]-*-* | sh-*-*)
4103 supported_defaults="cpu"
4104 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4105 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4108 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4110 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4113 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4114 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4115 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4116 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4122 supported_defaults="cpu float tune"
4124 for which in cpu tune; do
4125 eval "val=\$with_$which"
4127 "" | sparc | sparcv9 | sparc64 \
4129 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4130 | sparclite | f930 | f934 | sparclite86x \
4131 | sparclet | tsc701 \
4132 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4133 | niagara3 | niagara4)
4137 echo "Unknown cpu used in --with-$which=$val" 1>&2
4143 case ${with_float} in
4148 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4155 supported_defaults="arch tune"
4157 for which in arch tune; do
4158 eval "val=\$with_$which"
4160 "" | cell | celledp)
4164 echo "Unknown cpu used in --with-$which=$val." 1>&2
4172 supported_defaults="arch"
4174 case ${with_arch} in
4175 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4179 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4186 supported_defaults=cpu
4188 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4192 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4199 # Set some miscellaneous flags for particular targets.
4200 target_cpu_default2=
4203 if test x"$target_cpu_cname" != x
4205 target_cpu_default2=$target_cpu_cname
4210 if test x$target_cpu_cname = x
4212 target_cpu_default2=TARGET_CPU_generic
4214 target_cpu_default2=TARGET_CPU_$target_cpu_cname
4219 if test x$gas = xyes
4221 target_cpu_default2="MASK_GAS"
4225 fido*-*-* | m68k*-*-*)
4226 target_cpu_default2=$m68k_cpu_ident
4227 tmake_file="m68k/t-opts $tmake_file"
4228 if [ x"$m68k_arch_family" != x ]; then
4229 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4233 i[34567]86-*-darwin* | x86_64-*-darwin*)
4235 i[34567]86-*-linux* | x86_64-*-linux*)
4236 tmake_file="$tmake_file i386/t-linux"
4238 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4239 tmake_file="$tmake_file i386/t-kfreebsd"
4242 tmake_file="$tmake_file i386/t-gnu"
4244 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4246 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4248 i[34567]86-*-mingw* | x86_64-*-mingw*)
4250 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4252 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4258 if test x$gnu_ld = xyes
4260 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4264 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4267 if test x$with_arch != x; then
4268 default_mips_arch=$with_arch
4270 if test x$with_abi != x; then
4271 default_mips_abi=$with_abi
4273 case ${default_mips_arch} in
4274 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4275 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4276 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4277 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4278 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4279 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4280 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
4281 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4282 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4283 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
4285 case ${default_mips_abi} in
4286 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4287 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4288 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4289 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4290 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4292 tmake_file="mips/t-mips $tmake_file"
4295 powerpc*-*-* | rs6000-*-*)
4296 # FIXME: The PowerPC port uses the value set at compile time,
4297 # although it's only cosmetic.
4298 if test "x$with_cpu" != x
4300 target_cpu_default2="\\\"$with_cpu\\\""
4302 out_file=rs6000/rs6000.c
4303 c_target_objs="${c_target_objs} rs6000-c.o"
4304 cxx_target_objs="${cxx_target_objs} rs6000-c.o"
4305 tmake_file="rs6000/t-rs6000 ${tmake_file}"
4308 sh[123456ble]*-*-* | sh-*-*)
4309 c_target_objs="${c_target_objs} sh-c.o"
4310 cxx_target_objs="${cxx_target_objs} sh-c.o"
4314 # Some standard aliases.
4319 xsparcv9 | xsparc64)
4324 if test x$with_tune = x ; then
4335 # The SPARC port checks this value at compile-time.
4336 target_cpu_default2="TARGET_CPU_$with_cpu"
4340 case "x$with_cpu" in
4343 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4344 target_cpu_default2="TARGET_CPU_$with_cpu"
4347 target_cpu_default2="TARGET_CPU_v850e1"
4354 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"
4355 for option in $all_defaults
4357 eval "val=\$with_"`echo $option | sed s/-/_/g`
4358 if test -n "$val"; then
4359 case " $supported_defaults " in
4363 echo "This target does not support --with-$option." 2>&1
4364 echo "Valid --with options are: $supported_defaults" 2>&1
4371 t="{ \"$option\", \"$val\" }"
4373 t="${t}, { \"$option\", \"$val\" }"
4380 configure_default_options="{ { NULL, NULL} }"
4382 configure_default_options="{ ${t} }"
4385 if test "$target_cpu_default2" != ""
4387 if test "$target_cpu_default" != ""
4389 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4391 target_cpu_default=$target_cpu_default2
4396 i[34567]86-*-* | x86_64-*-*)
4397 if test x$enable_as_accelerator = xyes; then
4398 extra_programs="mkoffload\$(exeext)"