1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2014 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
265 | i[34567]86-go32-* \
266 | i[34567]86-*-go32* \
267 | m68k-*-uclinuxoldabi* \
268 | mips64orion*-*-rtems* \
270 | sparc-hal-solaris2* \
272 | *-*-freebsd[12] | *-*-freebsd[12].* \
273 | *-*-freebsd*aout* \
281 | *-*-solaris2.[0-9] \
282 | *-*-solaris2.[0-9].* \
286 echo "*** Configuration ${target} not supported" 1>&2
291 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
292 # updated in each machine entry. Also set default extra_headers for some
295 cpu_type=`echo ${target} | sed 's/-.*$//'`
300 tmake_file=m32c/t-m32c
301 target_has_targetm_common=no
305 extra_headers="arm_neon.h arm_acle.h"
306 extra_objs="aarch64-builtins.o aarch-common.o"
307 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c"
308 target_has_targetm_common=yes
312 extra_options="${extra_options} g.opt"
322 extra_objs="arm-builtins.o aarch-common.o"
323 extra_headers="mmintrin.h arm_neon.h arm_acle.h"
324 target_type_format_char='%'
325 c_target_objs="arm-c.o"
326 cxx_target_objs="arm-c.o"
327 extra_options="${extra_options} arm/arm-tables.opt"
328 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
332 c_target_objs="avr-c.o"
333 cxx_target_objs="avr-c.o"
334 extra_options="${extra_options} avr/avr-tables.opt"
343 extra_options="${extra_options} g.opt"
345 moxie*) cpu_type=moxie
346 target_has_targetm_common=no
350 extra_headers=math-68881.h
351 extra_options="${extra_options} m68k/m68k-tables.opt"
355 c_target_objs="i386-c.o"
356 cxx_target_objs="i386-c.o"
357 extra_options="${extra_options} fused-madd.opt"
358 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
359 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
360 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
361 immintrin.h x86intrin.h avxintrin.h xopintrin.h
362 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
363 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
364 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
365 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
366 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
367 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
368 shaintrin.h clflushoptintrin.h xsavecintrin.h
369 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
370 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.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"
392 extra_headers=ia64intrin.h
393 extra_options="${extra_options} g.opt fused-madd.opt"
399 extra_options="${extra_options} g.opt"
403 extra_options="${extra_options} g.opt"
406 extra_headers=math-68881.h
407 extra_options="${extra_options} m68k/m68k-tables.opt"
411 extra_options="${extra_options} g.opt"
415 extra_headers="loongson.h"
416 extra_options="${extra_options} g.opt mips/mips-tables.opt"
420 extra_headers="nds32_intrinsic.h"
421 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"
425 extra_options="${extra_options} g.opt"
432 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"
434 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500)
438 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
441 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
445 c_target_objs="sparc-c.o"
446 cxx_target_objs="sparc-c.o"
447 extra_headers="visintrin.h"
454 extra_options="${extra_options} fused-madd.opt"
455 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h"
457 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
458 sh[123456789lbe]*-*-* | sh-*-*)
460 extra_options="${extra_options} fused-madd.opt"
461 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
468 extra_headers="c6x_intrinsics.h"
469 extra_options="${extra_options} c6x/c6x-tables.opt"
472 extra_options="${extra_options} fused-madd.opt"
482 tm_file=${cpu_type}/${cpu_type}.h
483 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
485 tm_p_file=${cpu_type}/${cpu_type}-protos.h
488 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
490 extra_modes=${cpu_type}/${cpu_type}-modes.def
492 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
494 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
499 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
502 if test "x$with_multilib_list" = xilp32; then
503 tm_file="aarch64/biarchilp32.h ${tm_file}"
505 tm_file="aarch64/biarchlp64.h ${tm_file}"
509 tm_file="aarch64/biarchilp32.h ${tm_file}"
512 tm_file="aarch64/biarchlp64.h ${tm_file}"
515 echo "Unknown ABI used in --with-abi=$with_abi"
520 if test "x$with_abi" != x; then
521 echo "This target does not support --with-abi."
524 if test "x$enable_cld" = xyes; then
525 tm_defines="${tm_defines} USE_IX86_CLD=1"
527 if test "x$enable_frame_pointer" = xyes; then
528 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
530 tm_file="vxworks-dummy.h ${tm_file}"
535 if test "x$with_multilib_list" = xmx32; then
536 tm_file="i386/biarchx32.h ${tm_file}"
538 tm_file="i386/biarch64.h ${tm_file}"
542 tm_file="i386/biarch64.h ${tm_file}"
545 tm_file="i386/biarchx32.h ${tm_file}"
548 echo "Unknown ABI used in --with-abi=$with_abi"
551 if test "x$enable_cld" = xyes; then
552 tm_defines="${tm_defines} USE_IX86_CLD=1"
554 if test "x$enable_frame_pointer" = xyes; then
555 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
557 tm_file="vxworks-dummy.h ${tm_file}"
560 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
561 tm_file="vxworks-dummy.h ${tm_file}"
563 mips*-*-* | sh*-*-* | sparc*-*-*)
564 tm_file="vxworks-dummy.h ${tm_file}"
568 # On a.out targets, we need to use collect2.
575 # Common C libraries.
576 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3"
578 # 32-bit x86 processors supported by --with-arch=. Each processor
579 # MUST be separated by exactly one space.
580 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
581 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
582 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
583 pentium4 pentium4m pentiumpro prescott"
585 # 64-bit x86 processors supported by --with-arch=. Each processor
586 # MUST be separated by exactly one space.
587 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
588 bdver3 bdver4 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \
589 core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \
590 sandybridge ivybridge haswell broadwell bonnell silvermont x86-64 native"
592 # Additional x86 processors supported by --with-cpu=. Each processor
593 # MUST be separated by exactly one space.
594 x86_cpus="generic intel"
596 # Common parts for widely ported systems.
599 tmake_file="t-darwin ${cpu_type}/t-darwin"
600 tm_file="${tm_file} darwin.h"
603 tm_file="${tm_file} darwin9.h"
605 *-*-darwin[12][0-9]*)
606 tm_file="${tm_file} darwin9.h darwin10.h"
609 tm_file="${tm_file} ${cpu_type}/darwin.h"
610 tm_p_file="${tm_p_file} darwin-protos.h"
611 target_gtfiles="\$(srcdir)/config/darwin.c"
612 extra_options="${extra_options} darwin.opt"
613 c_target_objs="${c_target_objs} darwin-c.o"
614 cxx_target_objs="${cxx_target_objs} darwin-c.o"
615 fortran_target_objs="darwin-f.o"
616 target_has_targetcm=yes
617 extra_objs="darwin.o"
618 extra_gcc_objs="darwin-driver.o"
619 default_use_cxa_atexit=yes
621 case ${enable_threads} in
622 "" | yes | posix) thread_file='posix' ;;
628 tmake_file="t-slibgcc"
629 case ${enable_threads} in
634 # Let these non-posix thread selections fall through if requested
637 echo 'Unknown thread configuration for DragonFly BSD'
641 extra_options="$extra_options rpath.opt dragonfly.opt"
642 default_use_cxa_atexit=yes
646 # This is the generic ELF configuration of FreeBSD. Later
647 # machine-specific sections may refine and add to this
650 # Due to tm_file entry ordering issues that vary between cpu
651 # architectures, we only define fbsd_tm_file to allow the
652 # machine-specific section to dictate the final order of all
653 # entries of tm_file with the minor exception that components
654 # of the tm_file set here will always be of the form:
656 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
658 # The machine-specific section should not tamper with this
659 # ordering but may order all other entries of tm_file as it
660 # pleases around the provided core setting.
663 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
664 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
665 tmake_file="t-slibgcc"
666 case ${enable_threads} in
668 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
674 echo 'Unknown thread configuration for FreeBSD'
678 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
679 extra_options="$extra_options rpath.opt freebsd.opt"
684 default_use_cxa_atexit=yes;;
688 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
689 extra_options="$extra_options gnu-user.opt"
692 case ${enable_threads} in
693 "" | yes | posix) thread_file='posix' ;;
695 tmake_file="t-slibgcc"
697 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu)
700 native_system_header_dir=/include
703 # Linux C libraries selection switch: glibc / uclibc / bionic.
704 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
707 tm_p_file="${tm_p_file} linux-protos.h"
708 tmake_file="${tmake_file} t-linux"
709 extra_objs="${extra_objs} linux.o"
710 extra_options="${extra_options} linux.opt"
715 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
718 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
721 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
724 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
726 default_use_cxa_atexit=yes
729 # Enable compilation for Android by default for *android* targets.
732 tm_defines="$tm_defines ANDROID_DEFAULT=1"
735 tm_defines="$tm_defines ANDROID_DEFAULT=0"
738 c_target_objs="${c_target_objs} glibc-c.o"
739 cxx_target_objs="${cxx_target_objs} glibc-c.o"
740 tmake_file="${tmake_file} t-glibc"
741 target_has_targetcm=yes
744 tmake_file="t-slibgcc"
748 # NetBSD 2.0 and later get POSIX threads enabled by default.
749 # Allow them to be explicitly enabled on any other version.
750 case ${enable_threads} in
753 *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
755 tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
761 tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
765 # NetBSD 2.0 and later provide __cxa_atexit(), which we use by
766 # default (unless overridden by --disable-__cxa_atexit).
768 *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
769 default_use_cxa_atexit=yes
774 tmake_file="t-openbsd"
775 case ${enable_threads} in
781 *-*-openbsd2.*|*-*-openbsd3.[012])
782 tm_defines="${tm_defines} HAS_LIBC_R=1" ;;
785 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
786 default_use_cxa_atexit=yes
791 case ${enable_threads} in
792 "" | yes | rtems) thread_file='rtems' ;;
793 posix) thread_file='posix' ;;
796 echo 'Unknown thread configuration for RTEMS'
800 tmake_file="${tmake_file} t-rtems"
801 extra_options="${extra_options} rtems.opt"
802 default_use_cxa_atexit=yes
806 extra_options="$extra_options gnu-user.opt"
808 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
814 # i?86-*-solaris2* needs to insert headers between cpu default and
815 # Solaris 2 specific ones.
816 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
817 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
818 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
820 if test x$gnu_ld = xyes; then
821 tm_file="usegld.h ${tm_file}"
823 if test x$gas = xyes; then
824 tm_file="usegas.h ${tm_file}"
826 tm_p_file="${tm_p_file} sol2-protos.h"
827 tmake_file="${tmake_file} t-sol2 t-slibgcc"
828 c_target_objs="${c_target_objs} sol2-c.o"
829 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
830 extra_objs="sol2.o sol2-stubs.o"
831 extra_options="${extra_options} sol2.opt"
832 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
833 "":yes:* | yes:yes:* )
839 extra_options="${extra_options} vms/vms.opt"
841 tmake_file="vms/t-vms t-slibgcc"
843 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
844 tm_p_file="${tm_p_file} vms/vms-protos.h"
845 xm_file="vms/xm-vms.h"
846 c_target_objs="vms-c.o"
847 cxx_target_objs="vms-c.o"
848 fortran_target_objs="vms-f.o"
849 use_gcc_stdint=provide
850 tm_file="${tm_file} vms/vms-stdint.h"
851 if test x$gnu_ld != xyes; then
852 # Build wrappers for native case.
853 extra_programs="ld\$(exeext) ar\$(exeext)"
854 tmake_file="$tmake_file vms/t-vmsnative"
860 extra_options="${extra_options} vxworks.opt"
861 extra_objs="$extra_objs vxworks.o"
862 case ${enable_threads} in
864 "" | yes | vxworks) thread_file='vxworks' ;;
865 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
869 # Assume that newlib is being used and so __cxa_atexit is provided.
870 default_use_cxa_atexit=yes
877 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
878 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
879 tmake_file="${tmake_file} aarch64/t-aarch64"
883 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
886 aarch64_multilibs="${with_multilib_list}"
887 if test "$aarch64_multilibs" = "default"; then
888 aarch64_multilibs="lp64,ilp32"
890 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
891 for aarch64_multilib in ${aarch64_multilibs}; do
892 case ${aarch64_multilib} in
894 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
897 echo "--with-multilib-list=${aarch64_multilib} not supported."
901 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
904 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
905 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
906 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
909 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
912 aarch64_multilibs="${with_multilib_list}"
913 if test "$aarch64_multilibs" = "default"; then
914 # TODO: turn on ILP32 multilib build after its support is mature.
915 # aarch64_multilibs="lp64,ilp32"
916 aarch64_multilibs="lp64"
918 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
919 for aarch64_multilib in ${aarch64_multilibs}; do
920 case ${aarch64_multilib} in
922 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
925 echo "--with-multilib-list=${aarch64_multilib} not supported."
929 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
932 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
933 tmake_file="${tmake_file} alpha/t-linux"
934 extra_options="${extra_options} alpha/elf.opt"
937 tm_file="elfos.h ${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
938 extra_options="${extra_options} alpha/elf.opt"
941 tm_file="elfos.h ${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h"
942 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
946 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
947 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
948 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
949 # default x-alpha is only appropriate for dec-osf.
952 tm_file="${tm_file} vms/vms.h alpha/vms.h"
953 tmake_file="${tmake_file} alpha/t-vms"
956 extra_headers="arc-simd.h"
957 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
958 tmake_file="arc/t-arc-newlib arc/t-arc"
959 case x"${with_cpu}" in
960 xarc600|xarc601|xarc700)
961 target_cpu_default="TARGET_CPU_$with_cpu"
964 if test x${with_endian} = x; then
966 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
967 *) with_endian=little ;;
970 case ${with_endian} in
972 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
974 case ${with_endian} in
975 big*) tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
978 arc*-*-linux-uclibc*)
979 extra_headers="arc-simd.h"
980 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file}"
981 tmake_file="${tmake_file} arc/t-arc-uClibc arc/t-arc"
982 tm_defines="${tm_defines} TARGET_SDATA_DEFAULT=0"
983 tm_defines="${tm_defines} TARGET_MMEDIUM_CALLS_DEFAULT=1"
984 case x"${with_cpu}" in
985 xarc600|xarc601|xarc700)
986 target_cpu_default="TARGET_CPU_$with_cpu"
989 if test x${with_endian} = x; then
991 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
992 *) with_endian=little ;;
995 case ${with_endian} in
997 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
999 case ${with_endian} in
1000 big*) tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
1004 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1005 extra_options="${extra_options} arm/vxworks.opt"
1006 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1009 tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1010 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1011 tmake_file="${tmake_file} arm/t-arm"
1013 arm*-*-linux-*) # ARM GNU/Linux with ELF
1014 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"
1015 extra_options="${extra_options} linux-android.opt"
1018 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1021 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1022 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1023 # Define multilib configuration for arm-linux-androideabi.
1026 tmake_file="$tmake_file arm/t-linux-androideabi"
1029 # The EABI requires the use of __cxa_atexit.
1030 default_use_cxa_atexit=yes
1031 with_tls=${with_tls:-gnu}
1033 arm*-*-uclinux*eabi*) # ARM ucLinux
1034 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1035 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1036 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1037 # The EABI requires the use of __cxa_atexit.
1038 default_use_cxa_atexit=yes
1040 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
1043 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1045 default_use_cxa_atexit=yes
1046 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1047 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1050 tm_file="$tm_file newlib-stdint.h"
1051 tmake_file="${tmake_file} arm/t-bpabi"
1055 tm_file="${tm_file} rtems.h arm/rtems-eabi.h newlib-stdint.h"
1056 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems-eabi"
1059 tm_file="${tm_file} arm/symbian.h"
1060 # We do not include t-bpabi for Symbian OS because the system
1061 # provides its own implementation of the BPABI functions.
1062 tmake_file="${tmake_file} arm/t-symbian"
1065 tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
1068 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
1069 tmake_file="${tmake_file} avr/t-avr avr/t-multilib avr/t-rtems"
1070 extra_gcc_objs="driver-avr.o avr-devices.o"
1071 extra_objs="avr-devices.o avr-log.o"
1074 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/avr-stdint.h"
1075 if test x${with_avrlibc} != xno; then
1076 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1077 tm_defines="${tm_defines} WITH_AVRLIBC"
1079 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1081 extra_gcc_objs="driver-avr.o avr-devices.o"
1082 extra_objs="avr-devices.o avr-log.o"
1085 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1086 tmake_file=bfin/t-bfin-elf
1090 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1091 tmake_file=bfin/t-bfin-uclinux
1094 bfin*-linux-uclibc*)
1095 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"
1096 tmake_file="bfin/t-bfin-linux t-slibgcc t-linux"
1100 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1101 tmake_file="${tmake_file} bfin/t-rtems"
1104 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1109 tm_file="elfos.h ${tm_file}"
1110 tmake_file="${tmake_file} cr16/t-cr16 "
1113 crisv32-*-elf | crisv32-*-none)
1114 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1115 tmake_file="cris/t-cris"
1116 target_cpu_default=32
1118 extra_options="${extra_options} cris/elf.opt"
1121 cris-*-elf | cris-*-none)
1122 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1123 tmake_file="cris/t-cris cris/t-elfmulti"
1125 extra_options="${extra_options} cris/elf.opt"
1128 crisv32-*-linux* | cris-*-linux*)
1129 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1130 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1131 extra_options="${extra_options} cris/linux.opt"
1134 target_cpu_default=10
1137 target_cpu_default=32
1142 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1143 tmake_file="epiphany/t-epiphany"
1144 extra_options="${extra_options} fused-madd.opt"
1145 extra_objs="$extra_objs mode-switch-use.o resolve-sw-modes.o"
1146 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1147 extra_headers="epiphany_intrinsics.h"
1150 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1153 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1154 tmake_file=frv/t-frv
1157 tm_file="dbxelf.h elfos.h ${tm_file} \
1158 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1159 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1164 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1165 tmake_file="${tmake_file} moxie/t-moxie"
1170 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1171 tmake_file="${tmake_file} moxie/t-moxie"
1174 tmake_file="${tmake_file} moxie/t-moxie"
1175 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1180 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1181 tmake_file="${tmake_file} moxie/t-moxiebox"
1184 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-rtems"
1185 tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h"
1188 tmake_file="h8300/t-h8300"
1189 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1192 target_cpu_default="MASK_PA_11|MASK_PA_20"
1193 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1194 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1199 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1200 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1201 pa/pa32-regs.h pa/pa32-linux.h"
1202 tmake_file="${tmake_file} pa/t-linux"
1205 target_cpu_default="MASK_PA_11"
1206 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1207 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1208 extra_options="${extra_options} openbsd.opt"
1212 hppa[12]*-*-hpux10*)
1214 hppa1.1-*-* | hppa2*-*-*)
1215 target_cpu_default="MASK_PA_11"
1218 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1219 pa/pa-hpux.h pa/pa-hpux10.h"
1220 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1223 tm_file="${tm_file} pa/pa-hpux1010.h"
1224 extra_options="${extra_options} pa/pa-hpux1010.opt"
1227 use_gcc_stdint=provide
1228 tm_file="${tm_file} hpux-stdint.h"
1229 tmake_file="t-slibgcc"
1230 case ${enable_threads} in
1232 if test x$have_pthread_h = xyes ; then
1233 tmake_file="${tmake_file} pa/t-dce-thr"
1237 tmake_file="${tmake_file} pa/t-dce-thr"
1242 if test "x$with_dwarf2" != x; then
1243 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1248 target_cpu_default="MASK_PA_11|MASK_PA_20"
1249 if test x$gnu_ld = xyes
1251 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1253 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1254 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1258 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1259 extra_options="${extra_options} pa/pa-hpux1111.opt"
1262 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1263 extra_options="${extra_options} pa/pa-hpux1131.opt"
1266 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1269 extra_options="${extra_options} pa/pa-hpux.opt \
1270 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1271 tmake_file="t-slibgcc"
1272 case x${enable_threads} in
1280 use_gcc_stdint=provide
1281 tm_file="${tm_file} hpux-stdint.h"
1285 tm_file="${tm_file} hpux-stdint.h"
1289 hppa[12]*-*-hpux11*)
1291 hppa1.1-*-* | hppa2*-*-*)
1292 target_cpu_default="MASK_PA_11"
1295 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1296 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1297 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1301 tm_file="${tm_file} pa/pa-hpux1111.h"
1302 extra_options="${extra_options} pa/pa-hpux1111.opt"
1305 tm_file="${tm_file} pa/pa-hpux1131.h"
1306 extra_options="${extra_options} pa/pa-hpux1131.opt"
1309 tmake_file="t-slibgcc"
1310 case x${enable_threads} in
1319 use_gcc_stdint=provide
1320 tm_file="${tm_file} hpux-stdint.h"
1324 tm_file="${tm_file} hpux-stdint.h"
1327 if test "x$with_dwarf2" != x; then
1328 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1332 i[34567]86-*-darwin*)
1334 # Baseline choice for a machine that allows m64 support.
1335 with_cpu=${with_cpu:-core2}
1336 tmake_file="${tmake_file} t-slibgcc"
1339 with_cpu=${with_cpu:-core2}
1340 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1341 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1344 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1347 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1350 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1353 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"
1354 tmake_file="i386/t-i386elf t-svr4"
1356 i[34567]86-*-dragonfly*)
1357 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1358 tmake_file="${tmake_file} i386/t-crtstuff"
1360 x86_64-*-dragonfly*)
1361 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"
1362 tmake_file="${tmake_file} i386/t-crtstuff"
1364 i[34567]86-*-freebsd*)
1365 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1368 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"
1370 i[34567]86-*-netbsdelf*)
1371 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
1372 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1375 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"
1376 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1378 i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
1379 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"
1380 extra_options="${extra_options} openbsd.opt"
1381 # needed to unconfuse gdb
1382 tmake_file="${tmake_file} t-openbsd i386/t-openbsd"
1383 # we need collect2 until our bug is fixed...
1386 i[34567]86-*-openbsd*)
1387 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1388 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1389 extra_options="${extra_options} openbsd.opt"
1394 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1395 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1396 extra_options="${extra_options} openbsd.opt"
1400 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1401 # Intel 80386's running GNU/*
1402 # with ELF format using glibc 2
1403 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1405 i[34567]86-*-linux*)
1406 tm_file="${tm_file} linux.h linux-android.h"
1407 extra_options="${extra_options} linux-android.opt"
1408 # Assume modern glibc if not targeting Android nor uclibc.
1410 *-*-*android*|*-*-*uclibc*)
1413 default_gnu_indirect_function=yes
1416 if test x$enable_targets = xall; then
1417 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1418 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1419 tmake_file="${tmake_file} i386/t-linux64"
1420 x86_multilibs="${with_multilib_list}"
1421 if test "$x86_multilibs" = "default"; then
1422 x86_multilibs="m64,m32"
1424 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1425 for x86_multilib in ${x86_multilibs}; do
1426 case ${x86_multilib} in
1428 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1431 echo "--with-multilib-list=${x86_with_multilib} not supported."
1435 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1437 if test x$with_cpu = x; then
1438 if test x$with_cpu_64 = x; then
1442 case " $x86_cpus $x86_archs $x86_64_archs " in
1446 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1447 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1453 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1456 i[34567]86-*-knetbsd*-gnu)
1457 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h"
1459 i[34567]86-*-kfreebsd*-gnu)
1460 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1462 i[34567]86-*-kopensolaris*-gnu)
1463 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1466 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1470 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
1471 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1472 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1475 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1476 extra_options="${extra_options} linux-android.opt"
1477 # Assume modern glibc if not targeting Android nor uclibc.
1479 *-*-*android*|*-*-*uclibc*)
1482 default_gnu_indirect_function=yes
1486 x86_64-*-kfreebsd*-gnu)
1487 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1489 x86_64-*-knetbsd*-gnu)
1490 tm_file="${tm_file} knetbsd-gnu.h"
1493 tmake_file="${tmake_file} i386/t-linux64"
1494 x86_multilibs="${with_multilib_list}"
1495 if test "$x86_multilibs" = "default"; then
1498 x86_multilibs="mx32"
1501 x86_multilibs="m64,m32"
1505 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1506 for x86_multilib in ${x86_multilibs}; do
1507 case ${x86_multilib} in
1509 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1512 echo "--with-multilib-list=${x86_with_multilib} not supported."
1516 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1518 i[34567]86-pc-msdosdjgpp*)
1519 xm_file=i386/xm-djgpp.h
1520 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1521 native_system_header_dir=/dev/env/DJDIR/include
1522 extra_options="${extra_options} i386/djgpp.opt"
1527 i[34567]86-*-lynxos*)
1529 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1530 tmake_file="${tmake_file} t-lynx"
1531 extra_options="${extra_options} lynx.opt"
1536 i[34567]86-*-nto-qnx*)
1537 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1538 extra_options="${extra_options} i386/nto.opt"
1542 i[34567]86-*-rtems*)
1543 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"
1544 tmake_file="${tmake_file} i386/t-rtems"
1546 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1547 # Set default arch_32 to pentium4, tune_32 to generic like the other
1548 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1549 with_arch_32=${with_arch_32:-pentium4}
1550 with_tune_32=${with_tune_32:-generic}
1551 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1552 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1553 tmake_file="$tmake_file i386/t-sol2"
1555 if test x$with_cpu = x; then
1556 if test x$with_cpu_64 = x; then
1560 case " $x86_cpus $x86_archs $x86_64_archs " in
1564 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1565 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1571 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
1572 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h vx-common.h"
1575 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1576 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1579 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1580 tmake_file="${tmake_file} i386/t-vxworks"
1584 i[34567]86-*-cygwin*)
1585 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"
1586 xm_file=i386/xm-cygwin.h
1587 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1588 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1589 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1590 extra_objs="winnt.o winnt-stubs.o"
1591 c_target_objs="${c_target_objs} msformat-c.o"
1592 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1593 if test x$enable_threads = xyes; then
1596 default_use_cxa_atexit=yes
1601 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"
1602 xm_file=i386/xm-cygwin.h
1603 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1604 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1605 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1606 extra_objs="winnt.o winnt-stubs.o"
1607 c_target_objs="${c_target_objs} msformat-c.o"
1608 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1609 if test x$enable_threads = xyes; then
1612 default_use_cxa_atexit=yes
1614 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1616 i[34567]86-*-mingw* | x86_64-*-mingw*)
1617 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1618 xm_file=i386/xm-mingw32.h
1619 c_target_objs="${c_target_objs} winnt-c.o"
1620 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1621 target_has_targetcm="yes"
1623 x86_64-*-* | *-w64-*)
1629 if test x$enable_threads = xposix ; then
1630 tm_file="${tm_file} i386/mingw-pthread.h"
1632 tm_file="${tm_file} i386/mingw32.h"
1633 # This makes the logic if mingw's or the w64 feature set has to be used
1636 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1637 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1638 tm_file="${tm_file} i386/mingw-w64.h"
1639 if test x$enable_targets = xall; then
1640 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1641 if test x$with_cpu = x; then
1642 if test x$with_cpu_64 = x; then
1646 case " $x86_cpus $x86_archs $x86_64_archs " in
1650 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1651 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1661 tm_file="${tm_file} i386/mingw-stdint.h"
1662 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1665 tmake_file="${tmake_file} i386/t-mingw-w64"
1668 tmake_file="${tmake_file} i386/t-mingw-w32"
1671 native_system_header_dir=/mingw/include
1672 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1673 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1676 extra_options="${extra_options} i386/mingw-w64.opt"
1681 extra_objs="winnt.o winnt-stubs.o"
1682 c_target_objs="${c_target_objs} msformat-c.o"
1683 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1686 default_use_cxa_atexit=yes
1688 case ${enable_threads} in
1698 tm_file="${tm_file} i386/crtdll.h"
1700 *mingw32msv* | *mingw*)
1704 i[34567]86-*-interix[3-9]*)
1705 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h"
1706 tmake_file="${tmake_file} i386/t-interix"
1707 extra_options="${extra_options} rpath.opt i386/interix.opt"
1708 extra_objs="winnt.o winnt-stubs.o"
1709 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1710 if test x$enable_threads = xyes ; then
1713 if test x$stabs = xyes ; then
1714 tm_file="${tm_file} dbxcoff.h"
1718 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1719 tmake_file="ia64/t-ia64"
1720 target_cpu_default="0"
1721 if test x$gas = xyes
1723 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1725 if test x$gnu_ld = xyes
1727 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1731 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1732 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1733 tmake_file="${tmake_file} ia64/t-ia64"
1736 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1737 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1738 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1741 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1742 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1743 target_cpu_default="MASK_GNU_AS"
1744 case x$enable_threads in
1750 c_target_objs="ia64-c.o"
1751 cxx_target_objs="ia64-c.o"
1752 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1754 tm_file="${tm_file} hpux-stdint.h"
1757 tm_file="${tm_file} ia64/hpux-unix2003.h"
1762 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1763 tmake_file="${tmake_file} ia64/t-ia64"
1764 target_cpu_default="0"
1765 if test x$gas = xyes
1767 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1769 extra_options="${extra_options} ia64/vms.opt"
1772 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1773 out_file=iq2000/iq2000.c
1774 md_file=iq2000/iq2000.md
1777 tm_file="dbxelf.h elfos.h ${tm_file}"
1778 tmake_file="${tmake_file} lm32/t-lm32"
1781 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1782 tmake_file="${tmake_file} lm32/t-lm32"
1783 tmake_file="${tmake_file} lm32/t-rtems"
1786 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1787 tmake_file="${tmake_file} lm32/t-lm32"
1790 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1793 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1796 tm_file="dbxelf.h elfos.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h"
1797 tmake_file="${tmake_file} m32r/t-m32r"
1800 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1801 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1803 if test x$enable_threads = xyes; then
1808 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1809 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1811 if test x$enable_threads = xyes; then
1815 m68k-*-elf* | fido-*-elf*)
1818 # Check that $with_cpu makes sense.
1823 echo "Cannot accept --with-cpu=$with_cpu"
1830 default_m68k_cpu=68020
1834 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"
1835 tm_defines="${tm_defines} MOTOROLA=1"
1836 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1837 # Add multilibs for targets other than fido.
1842 tmake_file="$tmake_file m68k/t-mlibs"
1847 default_m68k_cpu=68020
1849 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
1850 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1851 tm_defines="${tm_defines} MOTOROLA=1"
1854 default_m68k_cpu=68020
1856 # needed to unconfuse gdb
1857 tm_defines="${tm_defines} OBSD_OLD_GAS"
1858 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1859 extra_options="${extra_options} openbsd.opt"
1860 tmake_file="t-openbsd m68k/t-openbsd"
1861 # we need collect2 until our bug is fixed...
1864 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
1865 # with uClibc, using the new GNU/Linux-style
1867 default_m68k_cpu=68020
1869 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"
1870 extra_options="${extra_options} m68k/uclinux.opt"
1871 tm_defines="${tm_defines} MOTOROLA=1"
1872 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1874 m68k-*-linux*) # Motorola m68k's running GNU/Linux
1875 # with ELF format using glibc 2
1876 # aka the GNU/Linux C library 6.
1877 default_m68k_cpu=68020
1879 with_arch=${with_arch:-m68k}
1880 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
1881 extra_options="${extra_options} m68k/ieee.opt"
1882 tm_defines="${tm_defines} MOTOROLA=1"
1883 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
1886 default_m68k_cpu=68020
1888 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
1889 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"
1890 tm_defines="${tm_defines} MOTOROLA=1"
1893 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
1894 tmake_file=mcore/t-mcore
1898 tm_file="dbxelf.h elfos.h ${tm_file}"
1899 tmake_file=mep/t-mep
1900 c_target_objs="mep-pragma.o"
1901 cxx_target_objs="mep-pragma.o"
1902 if test -d "${srcdir}/../newlib/libc/include" &&
1903 test "x$with_headers" = x; then
1911 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1914 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1917 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
1918 tm_file="${tm_file} glibc-stdint.h"
1919 c_target_objs="${c_target_objs} microblaze-c.o"
1920 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1921 tmake_file="${tmake_file} microblaze/t-microblaze"
1922 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
1924 microblaze*-*-rtems*)
1927 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1930 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1933 tm_file="${tm_file} dbxelf.h"
1934 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
1935 c_target_objs="${c_target_objs} microblaze-c.o"
1936 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1937 tmake_file="${tmake_file} microblaze/t-microblaze"
1938 tmake_file="${tmake_file} microblaze/t-rtems"
1943 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1946 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1949 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
1950 c_target_objs="${c_target_objs} microblaze-c.o"
1951 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1952 tmake_file="${tmake_file} microblaze/t-microblaze"
1954 mips*-*-netbsd*) # NetBSD/mips, either endian.
1955 target_cpu_default="MASK_ABICALLS"
1956 tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
1957 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1960 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"
1961 extra_options="${extra_options} linux-android.opt"
1962 tmake_file="${tmake_file} mips/t-mti-linux"
1963 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
1967 mips*-*-linux*) # Linux MIPS, either endian.
1968 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"
1969 extra_options="${extra_options} linux-android.opt"
1972 default_mips_arch=mips32r2
1975 default_mips_arch=mips32
1977 mips64el-st-linux-gnu)
1978 default_mips_abi=n32
1979 tm_file="${tm_file} mips/st.h"
1980 tmake_file="${tmake_file} mips/t-st"
1981 enable_mips_multilibs="yes"
1983 mips64octeon*-*-linux*)
1984 default_mips_abi=n32
1985 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
1986 target_cpu_default=MASK_SOFT_FLOAT_ABI
1987 enable_mips_multilibs="yes"
1989 mipsisa64r2*-*-linux*)
1990 default_mips_abi=n32
1991 default_mips_arch=mips64r2
1992 enable_mips_multilibs="yes"
1994 mips64*-*-linux* | mipsisa64*-*-linux*)
1995 default_mips_abi=n32
1996 enable_mips_multilibs="yes"
1999 if test x$enable_targets = xall; then
2000 enable_mips_multilibs="yes"
2002 if test x$enable_mips_multilibs = xyes; then
2003 tmake_file="${tmake_file} mips/t-linux64"
2007 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2008 tmake_file="mips/t-mti-elf"
2009 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2012 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2013 tmake_file="mips/t-sde"
2014 extra_options="${extra_options} mips/sde.opt"
2015 case "${with_newlib}" in
2017 # newlib / libgloss.
2020 # MIPS toolkit libraries.
2021 tm_file="$tm_file mips/sdemtk.h"
2022 tmake_file="$tmake_file mips/t-sdemtk"
2023 case ${enable_threads} in
2025 thread_file='mipssde'
2032 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2035 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2038 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2041 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2045 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2046 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2047 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2048 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*)
2049 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2050 tmake_file="mips/t-isa3264"
2053 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2056 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2059 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2062 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2066 mipsisa32*-*-elfoabi*)
2067 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2068 tm_file="${tm_file} mips/elfoabi.h"
2070 mipsisa64*-*-elfoabi*)
2071 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2072 tm_file="${tm_file} mips/elfoabi.h"
2075 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2079 mipsisa64sr71k-*-elf*)
2080 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2081 tmake_file=mips/t-sr71k
2082 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2084 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2085 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2086 tmake_file="mips/t-elf mips/t-sb1"
2087 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2089 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2090 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2091 tmake_file="mips/t-elf"
2093 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2094 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2095 tmake_file="mips/t-elf"
2096 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2098 mips64-*-elf* | mips64el-*-elf*)
2099 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2100 tmake_file="mips/t-elf"
2101 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2103 mips64vr-*-elf* | mips64vrel-*-elf*)
2104 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2105 tmake_file=mips/t-vr
2106 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2108 mips64orion-*-elf* | mips64orionel-*-elf*)
2109 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2110 tmake_file="mips/t-elf"
2111 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2114 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2115 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2118 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2119 tmake_file="${tmake_file} mips/t-vxworks"
2121 mipstx39-*-elf* | mipstx39el-*-elf*)
2122 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2123 tmake_file="mips/t-r3900"
2125 mmix-knuth-mmixware)
2126 tm_file="${tm_file} newlib-stdint.h"
2130 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2131 if test x$stabs = xyes
2133 tm_file="${tm_file} dbx.h"
2139 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2140 c_target_objs="msp430-c.o"
2141 cxx_target_objs="msp430-c.o"
2142 tmake_file="${tmake_file} msp430/t-msp430"
2145 target_cpu_default="0"
2146 tm_defines="${tm_defines}"
2147 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2148 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2151 target_cpu_default="0|MASK_BIG_ENDIAN"
2152 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2153 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2154 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2157 tm_file="elfos.h ${tm_file}"
2158 tmake_file="${tmake_file} nios2/t-nios2"
2161 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2164 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2165 extra_options="${extra_options} nios2/elf.opt"
2168 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2169 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2174 tm_file="${tm_file} newlib-stdint.h"
2175 tmake_file="nvptx/t-nvptx"
2178 tm_file="${tm_file} newlib-stdint.h"
2181 # port not yet contributed
2182 #powerpc-*-openbsd*)
2183 # tmake_file="${tmake_file} rs6000/t-fprules"
2187 extra_options="${extra_options} rs6000/darwin.opt"
2189 *-darwin1[0-9]* | *-darwin[8-9]*)
2190 tmake_file="${tmake_file} rs6000/t-darwin8"
2191 tm_file="${tm_file} rs6000/darwin8.h"
2194 tm_file="${tm_file} rs6000/darwin7.h"
2199 tmake_file="${tmake_file} t-slibgcc"
2200 extra_headers=altivec.h
2202 powerpc64-*-darwin*)
2203 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2204 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2205 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2206 extra_headers=altivec.h
2208 powerpc*-*-freebsd*)
2209 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2210 extra_options="${extra_options} rs6000/sysv4.opt"
2211 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2214 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2215 tmake_file="${tmake_file} rs6000/t-freebsd64"
2216 extra_options="${extra_options} rs6000/linux64.opt"
2219 tm_file="${tm_file} rs6000/freebsd.h"
2224 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2225 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2226 tmake_file="${tmake_file} rs6000/t-netbsd"
2227 extra_options="${extra_options} rs6000/sysv4.opt"
2230 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"
2231 extra_options="${extra_options} rs6000/sysv4.opt"
2232 tmake_file="rs6000/t-spe rs6000/t-ppccomm"
2235 powerpc-*-eabisimaltivec*)
2236 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"
2237 extra_options="${extra_options} rs6000/sysv4.opt"
2238 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2242 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"
2243 extra_options="${extra_options} rs6000/sysv4.opt"
2244 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2248 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2249 extra_options="${extra_options} rs6000/sysv4.opt"
2250 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2252 powerpc-*-eabialtivec*)
2253 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"
2254 extra_options="${extra_options} rs6000/sysv4.opt"
2255 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2258 powerpc-xilinx-eabi*)
2259 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"
2260 extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
2261 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2265 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"
2266 extra_options="${extra_options} rs6000/sysv4.opt"
2267 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2271 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"
2272 extra_options="${extra_options} rs6000/sysv4.opt"
2273 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2276 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2277 extra_options="${extra_options} rs6000/sysv4.opt"
2278 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2279 extra_objs="$extra_objs rs6000-linux.o"
2282 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2286 powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
2287 echo "*** Configuration ${target} not supported" 1>&2
2290 powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
2293 powerpc64*-*-linux*)
2294 test x$with_cpu != x || cpu_is_64bit=yes
2298 case ${maybe_biarch}:${enable_targets}:${cpu_is_64bit} in
2299 always:* | yes:*powerpc64* | yes:all:* | yes:*:yes)
2300 if test x$cpu_is_64bit = xyes; then
2301 tm_file="${tm_file} rs6000/default64.h"
2303 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2304 tmake_file="$tmake_file rs6000/t-linux64"
2307 tmake_file="$tmake_file rs6000/t-linux64le"
2308 case ${enable_targets} in
2309 all | *powerpc64-* | *powerpc-*)
2310 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2313 case ${enable_targets} in
2314 all | *powerpc64le-* | *powerpcle-*)
2315 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2318 extra_options="${extra_options} rs6000/linux64.opt"
2321 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2322 tmake_file="$tmake_file rs6000/t-linux"
2326 powerpc*-*-linux*ppc476*)
2327 tm_file="${tm_file} rs6000/476.h"
2328 extra_options="${extra_options} rs6000/476.opt" ;;
2329 powerpc*-*-linux*altivec*)
2330 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2331 powerpc*-*-linux*spe*)
2332 tm_file="${tm_file} rs6000/linuxspe.h rs6000/e500.h" ;;
2333 powerpc*-*-linux*paired*)
2334 tm_file="${tm_file} rs6000/750cl.h" ;;
2336 if test x${enable_secureplt} = xyes; then
2337 tm_file="rs6000/secureplt.h ${tm_file}"
2340 powerpc-wrs-vxworks|powerpc-wrs-vxworksae|powerpc-wrs-vxworksmils)
2341 tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2342 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2343 extra_options="${extra_options} rs6000/sysv4.opt"
2344 extra_headers=ppc-asm.h
2347 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksmils.h"
2348 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2351 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h"
2352 tmake_file="${tmake_file} rs6000/t-vxworksae"
2355 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h"
2361 tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2362 tmake_file="t-lynx rs6000/t-lynx"
2363 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2369 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2370 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2371 extra_options="${extra_options} rs6000/sysv4.opt"
2373 powerpcle-*-eabisim*)
2374 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"
2375 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2376 extra_options="${extra_options} rs6000/sysv4.opt"
2380 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"
2381 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2382 extra_options="${extra_options} rs6000/sysv4.opt"
2385 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2386 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2387 tmake_file="rs6000/t-aix43 t-slibgcc"
2388 extra_options="${extra_options} rs6000/aix64.opt"
2391 use_gcc_stdint=provide
2394 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2395 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2396 extra_options="${extra_options} rs6000/aix64.opt"
2397 tmake_file="rs6000/t-aix43 t-slibgcc"
2403 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2404 tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2405 tmake_file="rs6000/t-aix52 t-slibgcc"
2406 extra_options="${extra_options} rs6000/aix64.opt"
2412 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2413 tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2414 tmake_file="rs6000/t-aix52 t-slibgcc"
2415 extra_options="${extra_options} rs6000/aix64.opt"
2419 extra_headers=altivec.h
2421 rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
2422 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2423 tmake_file="rs6000/t-aix52 t-slibgcc"
2424 extra_options="${extra_options} rs6000/aix64.opt"
2428 extra_headers=altivec.h
2431 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2432 target_has_targetm_common=no
2433 c_target_objs="rl78-c.o"
2434 cxx_target_objs="rl78-c.o"
2435 tmake_file="${tmake_file} rl78/t-rl78"
2438 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2439 tmake_file="${tmake_file} rx/t-rx"
2442 default_gnu_indirect_function=yes
2443 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2444 if test x$enable_targets = xall; then
2445 tmake_file="${tmake_file} s390/t-linux64"
2449 default_gnu_indirect_function=yes
2450 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2451 tm_p_file="linux-protos.h s390/s390-protos.h"
2452 md_file=s390/s390.md
2453 extra_modes=s390/s390-modes.def
2454 out_file=s390/s390.c
2455 tmake_file="${tmake_file} s390/t-linux64"
2458 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2459 tm_p_file=s390/s390-protos.h
2460 md_file=s390/s390.md
2461 extra_modes=s390/s390-modes.def
2462 out_file=s390/s390.c
2464 extra_options="${extra_options} s390/tpf.opt"
2466 sh-*-elf* | sh[12346l]*-*-elf* | \
2467 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2468 sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
2469 sh64-*-netbsd* | sh64l*-*-netbsd*)
2470 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2471 if test x${with_endian} = x; then
2473 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2474 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2475 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2476 shl* | sh64l* | sh*-*-linux* | \
2477 sh5l* | sh-superh-elf) with_endian=little,big ;;
2478 sh[1234]*-*-*) with_endian=big ;;
2479 *) with_endian=big,little ;;
2482 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2483 # First word : the default endian.
2484 # Second word: the secondary endian (optional).
2485 case ${with_endian} in
2486 big) TM_ENDIAN_CONFIG=mb ;;
2487 little) TM_ENDIAN_CONFIG=ml ;;
2488 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2489 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2490 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2492 case ${with_endian} in
2493 little*) tm_file="sh/little.h ${tm_file}" ;;
2495 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2497 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2498 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2500 tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h"
2501 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2504 sh*-superh-elf) if test x$with_libgloss != xno; then
2506 tm_file="${tm_file} sh/newlib.h"
2508 tm_file="${tm_file} sh/embed-elf.h"
2509 tm_file="${tm_file} sh/superh.h"
2510 extra_options="${extra_options} sh/superh.opt" ;;
2511 *) if test x$with_newlib = xyes \
2512 && test x$with_libgloss = xyes; then
2513 tm_file="${tm_file} sh/newlib.h"
2515 tm_file="${tm_file} sh/embed-elf.h" ;;
2519 # SHmedia, 32-bit ABI
2520 tmake_file="${tmake_file} sh/t-sh64"
2523 # SHmedia, 64-bit ABI
2524 tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5-64"
2529 tmake_file="${tmake_file} sh/t-sh64"
2530 tm_file="${tm_file} sh/sh64.h"
2531 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2534 tmake_file="${tmake_file} sh/t-sh64"
2535 tm_file="${tm_file} sh/sh64.h"
2536 if test x$with_newlib = xyes; then
2537 tm_file="${tm_file} newlib-stdint.h"
2539 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2542 tm_file="${tm_file} newlib-stdint.h"
2545 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2546 case `echo ${target} | sed 's/e[lb]-/-/'` in
2547 sh64*-*-netbsd*) sh_cpu_target=sh5-64media ;;
2548 sh64* | sh5*-*-netbsd*) sh_cpu_target=sh5-32media ;;
2549 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2550 sh4a_single*) sh_cpu_target=sh4a-single ;;
2551 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2552 sh4al) sh_cpu_target=sh4al ;;
2553 sh4a*) sh_cpu_target=sh4a ;;
2554 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2555 sh4_single*) sh_cpu_target=sh4-single ;;
2556 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2557 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2558 sh3e*) sh_cpu_target=sh3e ;;
2559 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2560 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2561 sh2a_single*) sh_cpu_target=sh2a-single ;;
2562 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2563 sh2a*) sh_cpu_target=sh2a ;;
2564 sh2e*) sh_cpu_target=sh2e ;;
2565 sh2*) sh_cpu_target=sh2 ;;
2566 *) sh_cpu_target=sh1 ;;
2568 # did the user say --without-fp ?
2569 if test x$with_fp = xno; then
2570 case ${sh_cpu_target} in
2571 sh5-*media) sh_cpu_target=${sh_cpu_target}-nofpu ;;
2573 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2574 sh4*) sh_cpu_target=sh4-nofpu ;;
2575 sh3*) sh_cpu_target=sh3 ;;
2576 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2577 sh2*) sh_cpu_target=sh2 ;;
2578 *) echo --without-fp not available for $target: ignored
2580 tm_defines="$tm_defines STRICT_NOFPU=1"
2582 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2583 case $sh_cpu_default in
2584 sh5-64media-nofpu | sh5-64media | \
2585 sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
2586 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2587 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2588 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2589 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2590 "") sh_cpu_default=${sh_cpu_target} ;;
2591 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2593 sh_multilibs=${with_multilib_list}
2594 if test "$sh_multilibs" = "default" ; then
2596 sh64-superh-linux* | \
2597 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2598 sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
2599 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2600 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2601 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2602 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2604 if test x$with_fp = xno; then
2605 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`"
2608 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2609 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2610 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2611 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2612 for sh_multilib in ${sh_multilibs}; do
2613 case ${sh_multilib} in
2614 m1 | m2 | m2e | m3 | m3e | \
2615 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2616 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2617 m2a | m2a-single | m2a-single-only | m2a-nofpu | \
2618 m5-64media | m5-64media-nofpu | \
2619 m5-32media | m5-32media-nofpu | \
2620 m5-compact | m5-compact-nofpu)
2621 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2622 # It is passed to MULTIILIB_OPTIONS verbatim.
2623 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2624 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2626 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2627 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2628 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2630 echo "with_multilib_list=${sh_multilib} not supported."
2635 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2636 if test x${enable_incomplete_targets} = xyes ; then
2637 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"
2639 tm_file="$tm_file ./sysroot-suffix.h"
2640 tmake_file="$tmake_file t-sysroot-suffix"
2643 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2644 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2647 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2648 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2651 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2654 tmake_file="sparc/t-sparc sparc/t-leon"
2657 tmake_file="sparc/t-sparc sparc/t-leon3"
2660 tmake_file="sparc/t-sparc sparc/t-elf"
2665 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2666 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2669 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2670 extra_options="${extra_options} sparc/long-double-switch.opt"
2673 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2676 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2679 tmake_file="${tmake_file} sparc/t-sparc"
2682 if test x$enable_targets = xall; then
2683 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2684 tmake_file="${tmake_file} sparc/t-linux64"
2686 tm_file="${tm_file} sparc/linux.h"
2687 tmake_file="${tmake_file} sparc/t-linux"
2691 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2692 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2693 extra_options="${extra_options} sparc/long-double-switch.opt"
2694 tmake_file="${tmake_file} sparc/t-sparc"
2697 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2699 sparc64-*-* | sparcv9-*-*)
2700 tm_file="sparc/default-64.h ${tm_file}"
2703 test x$with_cpu != x || with_cpu=v9
2706 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2709 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2710 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2713 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2714 extra_options="${extra_options}"
2715 tmake_file="${tmake_file} sparc/t-sparc"
2718 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2719 extra_options="${extra_options}"
2720 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2723 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"
2724 extra_options="${extra_options} sparc/long-double-switch.opt"
2725 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2727 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2728 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2729 extra_options="${extra_options} sparc/long-double-switch.opt"
2730 case "x$with_cpu" in
2732 x) with_cpu=ultrasparc ;;
2733 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2735 tmake_file="${tmake_file} sparc/t-sparc"
2738 tm_file="sparc/biarch64.h ${tm_file}"
2739 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2740 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2741 extra_options="${extra_options} sparc/long-double-switch.opt"
2742 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2745 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2746 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2747 extra_options="${extra_options} openbsd.opt"
2748 extra_options="${extra_options}"
2751 tmake_file="${tmake_file} sparc/t-sparc"
2754 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2755 tmake_file="spu/t-spu-elf"
2756 native_system_header_dir=/include
2757 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2758 extra_modes=spu/spu-modes.def
2759 c_target_objs="${c_target_objs} spu-c.o"
2760 cxx_target_objs="${cxx_target_objs} spu-c.o"
2763 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
2764 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
2765 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
2769 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
2770 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
2771 tm_file="${tm_file} ./sysroot-suffix.h"
2772 tmake_file="t-sysroot-suffix t-slibgcc"
2773 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
2777 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
2778 tmake_file="${tmake_file} tilegx/t-tilegx"
2779 extra_objs="${extra_objs} mul-tables.o"
2780 c_target_objs="${c_target_objs} tilegx-c.o"
2781 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
2782 extra_headers="feedback.h"
2785 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2790 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
2791 tmake_file="${tmake_file} tilepro/t-tilepro"
2792 extra_objs="${extra_objs} mul-tables.o"
2793 c_target_objs="${c_target_objs} tilepro-c.o"
2794 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
2795 extra_headers="feedback.h"
2798 target_cpu_default="TARGET_CPU_generic"
2799 tm_file="dbxelf.h elfos.h v850/v850.h"
2800 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
2801 tmake_file="${tmake_file} v850/t-v850"
2802 tmake_file="${tmake_file} v850/t-rtems"
2804 c_target_objs="v850-c.o"
2805 cxx_target_objs="v850-c.o"
2810 target_cpu_default="TARGET_CPU_v850e3v5"
2813 target_cpu_default="TARGET_CPU_v850e2v3"
2816 target_cpu_default="TARGET_CPU_v850e2"
2818 v850e1-*-* | v850es-*-*)
2819 target_cpu_default="TARGET_CPU_v850e1"
2822 target_cpu_default="TARGET_CPU_v850e"
2825 target_cpu_default="TARGET_CPU_generic"
2828 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
2829 if test x$stabs = xyes
2831 tm_file="${tm_file} dbx.h"
2834 c_target_objs="v850-c.o"
2835 cxx_target_objs="v850-c.o"
2839 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
2840 extra_options="${extra_options} vax/elf.opt"
2843 tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
2844 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
2847 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-pthread.h vax/openbsd.h"
2848 extra_options="${extra_options} openbsd.opt"
2852 # For historical reasons, the target files omit the 'x'.
2853 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
2854 tm_p_file=stormy16/stormy16-protos.h
2855 md_file=stormy16/stormy16.md
2856 out_file=stormy16/stormy16.c
2857 extra_options=stormy16/stormy16.opt
2858 tmake_file="stormy16/t-stormy16"
2861 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
2862 extra_options="${extra_options} xtensa/elf.opt"
2865 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
2866 tmake_file="${tmake_file} xtensa/t-xtensa"
2869 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
2874 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
2875 c_target_objs="m32c-pragma.o"
2876 cxx_target_objs="m32c-pragma.o"
2879 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2880 c_target_objs="m32c-pragma.o"
2881 cxx_target_objs="m32c-pragma.o"
2884 echo "*** Configuration ${target} not supported" 1>&2
2890 i[34567]86-*-linux* | x86_64-*-linux*)
2891 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
2893 i[34567]86-*-* | x86_64-*-*)
2894 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
2896 powerpc*-*-* | rs6000-*-*)
2897 tm_file="${tm_file} rs6000/option-defaults.h"
2900 # Build mkoffload tool
2902 *-intelmic-* | *-intelmicemul-*)
2903 tmake_file="${tmake_file} i386/t-intelmic"
2907 if [ "$target_has_targetcm" = "no" ]; then
2908 c_target_objs="$c_target_objs default-c.o"
2909 cxx_target_objs="$cxx_target_objs default-c.o"
2912 if [ "$common_out_file" = "" ]; then
2913 if [ "$target_has_targetm_common" = "yes" ]; then
2914 common_out_file="$cpu_type/$cpu_type-common.c"
2916 common_out_file="default-common.c"
2920 # Support for --with-cpu and related options (and a few unrelated options,
2924 echo "--with-cpu must be passed a value" 1>&2
2929 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
2930 # to generic if there is no processor scheduler model for the target.
2933 arch_without_sse2=no
2934 arch_without_64bit=no
2937 if test $fbsd_major -ge 6; then
2943 arch_without_sse2=yes
2944 arch_without_64bit=yes
2949 arch_without_sse2=yes
2950 arch_without_64bit=yes
2955 arch_without_sse2=yes
2956 arch_without_64bit=yes
2959 arch_without_sse2=yes
2960 arch_without_64bit=yes
2961 case ${target_noncanonical} in
2974 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
2984 i686-*-* | i786-*-*)
2985 case ${target_noncanonical} in
3010 amdfam10-*|barcelona-*)
3014 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3018 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3022 athlon_xp-*|athlon_mp-*|athlon_4-*)
3025 arch_without_sse2=yes
3026 arch_without_64bit=yes
3028 athlon_tbird-*|athlon-*)
3031 arch_without_sse2=yes
3036 arch_without_sse2=yes
3041 arch_without_sse2=yes
3043 pentium3-*|pentium3m-*)
3046 arch_without_sse2=yes
3048 pentium4-*|pentium4m-*)
3087 arch_without_sse2=yes
3092 arch_without_sse2=yes
3093 arch_without_64bit=yes
3098 case ${target_noncanonical} in
3123 amdfam10-*|barcelona-*)
3127 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3131 k8-*|opteron-*|athlon_64-*)
3163 # If there is no $with_cpu option, try to infer one from ${target}.
3164 # This block sets nothing except for with_cpu.
3165 if test x$with_cpu = x ; then
3167 i[34567]86-*-*|x86_64-*-*)
3185 frv-*-*linux* | frv400-*-*linux*)
3192 case "$with_arch" in
3194 with_cpu=${default_cf_cpu}
3197 with_cpu=m${default_m68k_cpu}
3202 if test x$enable_e500_double = xyes; then
3220 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3226 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3228 i[34567]86-*-*|x86_64-*-*)
3229 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3230 if test x$with_cpu_32 = x; then
3231 with_cpu_32=$with_cpu
3233 if test x$with_cpu_64 = x; then
3234 with_cpu_64=$with_cpu
3242 # Support for --with-arch and related options (and a few unrelated options,
3244 case ${with_arch} in
3246 echo "--with-arch must be passed a value" 1>&2
3251 # If there is no $with_arch option, try to infer one from ${target}.
3252 # This block sets nothing except for with_arch.
3253 if test x$with_arch = x ; then
3255 i[34567]86-*-darwin*|x86_64-*-darwin*)
3256 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3257 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3260 # --with-fpmath sets the default ISA to SSE2, which is the same
3261 # ISA supported by Pentium 4.
3262 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3271 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3279 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3281 i[34567]86-*-darwin*|x86_64-*-darwin*)
3282 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3283 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3285 i[34567]86-*-*|x86_64-*-*)
3286 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3287 if test x$with_arch_32 = x; then
3288 with_arch_32=$with_arch
3290 if test x$with_arch_64 = x; then
3291 if test $arch_without_64bit = yes; then
3292 # Set the default 64bit arch to x86-64 if the default arch
3293 # doesn't support 64bit.
3296 with_arch_64=$with_arch
3300 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3301 # Set the default 64bit arch to x86-64 if the default arch
3302 # doesn't support 64bit and we need 64bit ISA.
3303 with_arch_32=$with_arch
3311 # Infer a default setting for --with-float.
3312 if test x$with_float = x; then
3314 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3315 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3316 # comply with IEEE 754.
3322 # Infer a default setting for --with-fpu.
3323 if test x$with_fpu = x; then
3325 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3326 # The R5900 FPU only supports single precision.
3332 # Support --with-fpmath.
3333 if test x$with_fpmath != x; then
3335 i[34567]86-*-* | x86_64-*-*)
3336 case ${with_fpmath} in
3338 tm_file="${tm_file} i386/avxmath.h"
3341 tm_file="${tm_file} i386/ssemath.h"
3344 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3350 echo "--with-fpmath isn't supported for $target." 1>&2
3356 # Similarly for --with-schedule.
3357 if test x$with_schedule = x; then
3360 # Override default PA8000 scheduling model.
3361 with_schedule=7100LC
3366 # Infer a default setting for --with-llsc.
3367 if test x$with_llsc = x; then
3369 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3370 # The R5900 doesn't support LL(D) and SC(D).
3374 # The kernel emulates LL and SC where necessary.
3380 # Validate and mark as valid any --with options supported
3381 # by this target. In order to use a particular --with option
3382 # you must list it in supported_defaults; validating the value
3383 # is optional. This case statement should set nothing besides
3384 # supported_defaults.
3389 supported_defaults="abi cpu arch"
3390 for which in cpu arch; do
3392 eval "val=\$with_$which"
3393 base_val=`echo $val | sed -e 's/\+.*//'`
3394 ext_val=`echo $val | sed -e 's/[a-z0-9\-]\+//'`
3396 if [ $which = arch ]; then
3397 def=aarch64-arches.def
3398 pattern=AARCH64_ARCH
3400 def=aarch64-cores.def
3401 pattern=AARCH64_CORE
3404 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3406 # Find the base CPU or ARCH id in aarch64-cores.def or
3407 # aarch64-arches.def
3408 if [ x"$base_val" = x ] \
3409 || grep "^$pattern(\"$base_val\"," \
3410 ${srcdir}/config/aarch64/$def \
3413 if [ $which = arch ]; then
3414 base_id=`grep "^$pattern(\"$base_val\"," \
3415 ${srcdir}/config/aarch64/$def | \
3416 sed -e 's/^[^,]*,[ ]*//' | \
3418 # Extract the architecture flags from aarch64-arches.def
3419 ext_mask=`grep "^$pattern(\"$base_val\"," \
3420 ${srcdir}/config/aarch64/$def | \
3424 base_id=`grep "^$pattern(\"$base_val\"," \
3425 ${srcdir}/config/aarch64/$def | \
3426 sed -e 's/^[^,]*,[ ]*//' | \
3430 while [ x"$ext_val" != x ]
3432 ext_val=`echo $ext_val | sed -e 's/\+//'`
3433 ext=`echo $ext_val | sed -e 's/\+.*//'`
3434 base_ext=`echo $ext | sed -e 's/^no//'`
3436 if [ x"$base_ext" = x ] \
3437 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3438 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3441 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3442 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3443 sed -e 's/^[^,]*,[ ]*//' | \
3445 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3446 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3447 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3448 sed -e 's/,.*$//' | \
3451 if [ $ext = $base_ext ]; then
3453 ext_mask="("$ext_mask") | ("$ext_on")"
3455 # Removing extension
3456 ext_mask="("$ext_mask") & ~("$ext_off")"
3461 echo "Unknown extension used in --with-$which=$val" 1>&2
3464 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3467 ext_mask="(("$ext_mask") << 6)"
3468 if [ x"$base_id" != x ]; then
3469 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3473 echo "Unknown $which used in --with-$which=$val" 1>&2
3480 supported_defaults="cpu tune"
3481 for which in cpu tune; do
3482 eval "val=\$with_$which"
3485 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3486 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3490 echo "Unknown CPU used in --with-$which=$val" 1>&2
3497 arc*-*-*) # was: arc*-*-linux-uclibc)
3498 supported_defaults="cpu"
3500 arc600|arc601|arc700)
3502 *) echo "Unknown cpu type"
3509 supported_defaults="arch cpu float tune fpu abi mode tls"
3510 for which in cpu tune; do
3511 # See if it matches any of the entries in arm-cores.def
3512 eval "val=\$with_$which"
3513 if [ x"$val" = x ] \
3514 || grep "^ARM_CORE(\"$val\"," \
3515 ${srcdir}/config/arm/arm-cores.def \
3518 new_val=`grep "^ARM_CORE(\"$val\"," \
3519 ${srcdir}/config/arm/arm-cores.def | \
3520 sed -e 's/^[^,]*,[ ]*//' | \
3522 eval "target_${which}_cname=$new_val"
3523 echo "For $val real value is $new_val"
3526 echo "Unknown CPU used in --with-$which=$val" 1>&2
3531 # See if it matches any of the entries in arm-arches.def
3532 if [ x"$with_arch" = x ] \
3533 || grep "^ARM_ARCH(\"$with_arch\"," \
3534 ${srcdir}/config/arm/arm-arches.def \
3539 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
3543 case "$with_float" in
3545 | soft | hard | softfp)
3549 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3554 # see if it matches any of the entries in arm-fpus.def
3555 if [ x"$with_fpu" = x ] \
3556 || grep "^ARM_FPU(\"$with_fpu\"," \
3557 ${srcdir}/config/arm/arm-fpus.def \
3562 echo "Unknown fpu used in --with-fpu=$with_fpu" 1>&2
3568 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3572 echo "Unknown ABI used in --with-abi=$with_abi"
3577 case "$with_mode" in
3583 echo "Unknown mode used in --with-mode=$with_mode"
3594 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3599 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3600 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3604 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3605 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3609 # Add extra multilibs
3610 if test "x$with_multilib_list" != x; then
3611 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3612 for arm_multilib in ${arm_multilibs}; do
3613 case ${arm_multilib} in
3615 # Note that arm/t-aprofile is a
3616 # stand-alone make file fragment to be
3617 # used only with itself. We do not
3618 # specifically use the
3619 # TM_MULTILIB_OPTION framework because
3620 # this shorthand is more
3621 # pragmatic. Additionally it is only
3622 # designed to work without any
3623 # with-cpu, with-arch with-mode
3624 # with-fpu or with-float options.
3625 if test "x$with_arch" != x \
3626 || test "x$with_cpu" != x \
3627 || test "x$with_float" != x \
3628 || test "x$with_fpu" != x \
3629 || test "x$with_mode" != x ; then
3630 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2
3633 tmake_file="${tmake_file} arm/t-aprofile"
3639 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3648 supported_defaults=cpu
3653 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3659 fido-*-* | m68k*-*-*)
3660 supported_defaults="arch cpu"
3661 case "$with_arch" in
3663 m68k_arch_family="$with_arch"
3666 echo "Invalid --with-arch=$with_arch" 1>&2
3671 # We always have a $with_cpu setting here.
3673 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3674 m68k_cpu_ident=$with_cpu
3677 m68k_cpu_ident=m68020
3678 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3681 m68k_cpu_ident=m68020
3682 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3685 # We need the C identifier rather than the string.
3686 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
3687 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
3688 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
3689 ${srcdir}/config/m68k/m68k-devices.def`
3690 if [ x"$m68k_cpu_ident" = x ] ; then
3691 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
3694 with_cpu="mcpu=$with_cpu"
3700 supported_defaults="arch schedule"
3702 case "$with_arch" in
3703 "" | 1.0 | 1.1 | 2.0)
3707 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
3712 case "$with_schedule" in
3713 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
3717 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
3723 i[34567]86-*-* | x86_64-*-*)
3724 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
3725 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3726 eval "val=\$with_$which"
3727 case " $x86_archs " in
3735 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
3744 if test x${val} != x; then
3745 case " $x86_64_archs " in
3750 # Allow $x86_cpus --with-cpu=/--with-tune=
3753 case " $x86_cpus " in
3758 echo "Unknown CPU given in --with-$which=$val." 1>&2
3764 echo "Unknown CPU given in --with-$which=$val." 1>&2
3777 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"
3779 case ${with_float} in
3784 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3790 "" | single | double)
3794 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
3804 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
3809 case ${with_fp_32} in
3814 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
3819 case ${with_odd_spreg_32} in
3821 with_odd_spreg_32="odd-spreg"
3824 with_odd_spreg_32="no-odd-spreg"
3830 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
3836 "" | 32 | o64 | n32 | 64 | eabi)
3840 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
3845 case ${with_divide} in
3846 "" | breaks | traps)
3850 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
3855 case ${with_llsc} in
3866 echo "Unknown llsc type used in --with-llsc" 1>&2
3871 case ${with_mips_plt} in
3876 with_mips_plt=no-plt
3881 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
3886 case ${with_synci} in
3896 echo "Unknown synci type used in --with-synci" 1>&2
3903 supported_defaults="arch nds32_lib"
3905 # process --with-arch
3906 case "${with_arch}" in
3911 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v3 v3m" 1>&2
3916 # process --with-nds32-lib
3917 case "${with_nds32_lib}" in
3919 # the default library is newlib
3920 with_nds32_lib=newlib
3929 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
3935 powerpc*-*-* | rs6000-*-*)
3936 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64"
3938 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3939 eval "val=\$with_$which"
3941 default32 | default64)
3946 echo "$val only valid for --with-cpu and --with-tune." 1>&2
3950 with_which="with_$which"
3954 tm_defines="${tm_defines} CONFIG_PPC405CR"
3955 eval "with_$which=405"
3957 "" | common | native \
3958 | power | power[2345678] | power6x | powerpc | powerpc64 \
3959 | rios | rios1 | rios2 | rsc | rsc1 | rs64a \
3960 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
3961 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
3962 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
3963 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
3964 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
3968 echo "Unknown cpu used in --with-$which=$val." 1>&2
3975 "" | elfv1 | elfv2 )
3979 echo "Unknown ABI used in --with-abi=$with_abi"
3986 supported_defaults="arch mode tune"
3988 for which in arch tune; do
3989 eval "val=\$with_$which"
3991 "" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12)
3995 echo "Unknown cpu used in --with-$which=$val." 1>&2
4001 case ${with_mode} in
4006 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4012 sh[123456ble]-*-* | sh-*-*)
4013 supported_defaults="cpu"
4014 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4015 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4018 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4020 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4023 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4024 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4025 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4026 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4032 supported_defaults="cpu float tune"
4034 for which in cpu tune; do
4035 eval "val=\$with_$which"
4037 "" | sparc | sparcv9 | sparc64 \
4039 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4040 | sparclite | f930 | f934 | sparclite86x \
4041 | sparclet | tsc701 \
4042 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4043 | niagara3 | niagara4)
4047 echo "Unknown cpu used in --with-$which=$val" 1>&2
4053 case ${with_float} in
4058 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4065 supported_defaults="arch tune"
4067 for which in arch tune; do
4068 eval "val=\$with_$which"
4070 "" | cell | celledp)
4074 echo "Unknown cpu used in --with-$which=$val." 1>&2
4082 supported_defaults="arch"
4084 case ${with_arch} in
4085 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4089 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4096 supported_defaults=cpu
4098 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4102 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4109 # Set some miscellaneous flags for particular targets.
4110 target_cpu_default2=
4113 if test x"$target_cpu_cname" != x
4115 target_cpu_default2=$target_cpu_cname
4120 if test x$target_cpu_cname = x
4122 target_cpu_default2=TARGET_CPU_generic
4124 target_cpu_default2=TARGET_CPU_$target_cpu_cname
4129 if test x$gas = xyes
4131 target_cpu_default2="MASK_GAS"
4135 fido*-*-* | m68k*-*-*)
4136 target_cpu_default2=$m68k_cpu_ident
4137 tmake_file="m68k/t-opts $tmake_file"
4138 if [ x"$m68k_arch_family" != x ]; then
4139 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4143 i[34567]86-*-darwin* | x86_64-*-darwin*)
4145 i[34567]86-*-linux* | x86_64-*-linux*)
4146 tmake_file="$tmake_file i386/t-linux"
4148 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4149 tmake_file="$tmake_file i386/t-kfreebsd"
4152 tmake_file="$tmake_file i386/t-gnu"
4154 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4156 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4158 i[34567]86-*-mingw* | x86_64-*-mingw*)
4160 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4162 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4168 if test x$gnu_ld = xyes
4170 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4174 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4177 if test x$with_arch != x; then
4178 default_mips_arch=$with_arch
4180 if test x$with_abi != x; then
4181 default_mips_abi=$with_abi
4183 case ${default_mips_arch} in
4184 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4185 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4186 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4187 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4188 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4189 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4190 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4191 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4193 case ${default_mips_abi} in
4194 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4195 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4196 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4197 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4198 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4200 tmake_file="mips/t-mips $tmake_file"
4203 powerpc*-*-* | rs6000-*-*)
4204 # FIXME: The PowerPC port uses the value set at compile time,
4205 # although it's only cosmetic.
4206 if test "x$with_cpu" != x
4208 target_cpu_default2="\\\"$with_cpu\\\""
4210 out_file=rs6000/rs6000.c
4211 c_target_objs="${c_target_objs} rs6000-c.o"
4212 cxx_target_objs="${cxx_target_objs} rs6000-c.o"
4213 tmake_file="rs6000/t-rs6000 ${tmake_file}"
4216 sh[123456ble]*-*-* | sh-*-*)
4217 c_target_objs="${c_target_objs} sh-c.o"
4218 cxx_target_objs="${cxx_target_objs} sh-c.o"
4222 # Some standard aliases.
4227 xsparcv9 | xsparc64)
4232 if test x$with_tune = x ; then
4243 # The SPARC port checks this value at compile-time.
4244 target_cpu_default2="TARGET_CPU_$with_cpu"
4248 case "x$with_cpu" in
4251 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4252 target_cpu_default2="TARGET_CPU_$with_cpu"
4255 target_cpu_default2="TARGET_CPU_v850e1"
4262 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"
4263 for option in $all_defaults
4265 eval "val=\$with_"`echo $option | sed s/-/_/g`
4266 if test -n "$val"; then
4267 case " $supported_defaults " in
4271 echo "This target does not support --with-$option." 2>&1
4272 echo "Valid --with options are: $supported_defaults" 2>&1
4279 t="{ \"$option\", \"$val\" }"
4281 t="${t}, { \"$option\", \"$val\" }"
4288 configure_default_options="{ { NULL, NULL} }"
4290 configure_default_options="{ ${t} }"
4293 if test "$target_cpu_default2" != ""
4295 if test "$target_cpu_default" != ""
4297 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4299 target_cpu_default=$target_cpu_default2
4304 i[34567]86-*-* | x86_64-*-*)
4305 if test x$enable_as_accelerator = xyes; then
4306 extra_programs="mkoffload\$(exeext)"