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="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"
331 c_target_objs="avr-c.o"
332 cxx_target_objs="avr-c.o"
333 extra_options="${extra_options} avr/avr-tables.opt"
342 extra_options="${extra_options} g.opt"
344 moxie*) cpu_type=moxie
345 target_has_targetm_common=no
349 extra_headers=math-68881.h
350 extra_options="${extra_options} m68k/m68k-tables.opt"
354 c_target_objs="i386-c.o"
355 cxx_target_objs="i386-c.o"
356 extra_options="${extra_options} fused-madd.opt"
357 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
358 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
359 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
360 immintrin.h x86intrin.h avxintrin.h xopintrin.h
361 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
362 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
363 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
364 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
365 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
366 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
367 shaintrin.h clflushoptintrin.h xsavecintrin.h
368 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
369 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h"
373 c_target_objs="i386-c.o"
374 cxx_target_objs="i386-c.o"
375 extra_options="${extra_options} fused-madd.opt"
376 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
377 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
378 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
379 immintrin.h x86intrin.h avxintrin.h xopintrin.h
380 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
381 lzcntintrin.h bmiintrin.h tbmintrin.h bmi2intrin.h
382 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
383 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
384 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
385 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
386 shaintrin.h clflushoptintrin.h xsavecintrin.h
387 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
388 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h"
391 extra_headers=ia64intrin.h
392 extra_options="${extra_options} g.opt fused-madd.opt"
398 extra_options="${extra_options} g.opt"
402 extra_options="${extra_options} g.opt"
405 extra_headers=math-68881.h
406 extra_options="${extra_options} m68k/m68k-tables.opt"
410 extra_options="${extra_options} g.opt"
414 extra_headers="loongson.h"
415 extra_options="${extra_options} g.opt mips/mips-tables.opt"
419 extra_headers="nds32_intrinsic.h"
420 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"
424 extra_options="${extra_options} g.opt"
431 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"
433 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500)
437 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
440 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
444 c_target_objs="sparc-c.o"
445 cxx_target_objs="sparc-c.o"
446 extra_headers="visintrin.h"
453 extra_options="${extra_options} fused-madd.opt"
454 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h"
456 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
457 sh[123456789lbe]*-*-* | sh-*-*)
459 extra_options="${extra_options} fused-madd.opt"
460 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
467 extra_headers="c6x_intrinsics.h"
468 extra_options="${extra_options} c6x/c6x-tables.opt"
471 extra_options="${extra_options} fused-madd.opt"
481 tm_file=${cpu_type}/${cpu_type}.h
482 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
484 tm_p_file=${cpu_type}/${cpu_type}-protos.h
487 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
489 extra_modes=${cpu_type}/${cpu_type}-modes.def
491 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
493 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
498 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
501 if test "x$with_multilib_list" = xilp32; then
502 tm_file="aarch64/biarchilp32.h ${tm_file}"
504 tm_file="aarch64/biarchlp64.h ${tm_file}"
508 tm_file="aarch64/biarchilp32.h ${tm_file}"
511 tm_file="aarch64/biarchlp64.h ${tm_file}"
514 echo "Unknown ABI used in --with-abi=$with_abi"
519 if test "x$with_abi" != x; then
520 echo "This target does not support --with-abi."
523 if test "x$enable_cld" = xyes; then
524 tm_defines="${tm_defines} USE_IX86_CLD=1"
526 if test "x$enable_frame_pointer" = xyes; then
527 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
529 tm_file="vxworks-dummy.h ${tm_file}"
534 if test "x$with_multilib_list" = xmx32; then
535 tm_file="i386/biarchx32.h ${tm_file}"
537 tm_file="i386/biarch64.h ${tm_file}"
541 tm_file="i386/biarch64.h ${tm_file}"
544 tm_file="i386/biarchx32.h ${tm_file}"
547 echo "Unknown ABI used in --with-abi=$with_abi"
550 if test "x$enable_cld" = xyes; then
551 tm_defines="${tm_defines} USE_IX86_CLD=1"
553 if test "x$enable_frame_pointer" = xyes; then
554 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
556 tm_file="vxworks-dummy.h ${tm_file}"
559 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
560 tm_file="vxworks-dummy.h ${tm_file}"
562 mips*-*-* | sh*-*-* | sparc*-*-*)
563 tm_file="vxworks-dummy.h ${tm_file}"
567 # On a.out targets, we need to use collect2.
574 # Common C libraries.
575 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3"
577 # 32-bit x86 processors supported by --with-arch=. Each processor
578 # MUST be separated by exactly one space.
579 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
580 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
581 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
582 pentium4 pentium4m pentiumpro prescott"
584 # 64-bit x86 processors supported by --with-arch=. Each processor
585 # MUST be separated by exactly one space.
586 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
587 bdver3 bdver4 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \
588 core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \
589 sandybridge ivybridge haswell broadwell bonnell silvermont x86-64 native"
591 # Additional x86 processors supported by --with-cpu=. Each processor
592 # MUST be separated by exactly one space.
593 x86_cpus="generic intel"
595 # Common parts for widely ported systems.
598 tmake_file="t-darwin ${cpu_type}/t-darwin"
599 tm_file="${tm_file} darwin.h"
602 tm_file="${tm_file} darwin9.h"
604 *-*-darwin[12][0-9]*)
605 tm_file="${tm_file} darwin9.h darwin10.h"
608 tm_file="${tm_file} ${cpu_type}/darwin.h"
609 tm_p_file="${tm_p_file} darwin-protos.h"
610 target_gtfiles="\$(srcdir)/config/darwin.c"
611 extra_options="${extra_options} darwin.opt"
612 c_target_objs="${c_target_objs} darwin-c.o"
613 cxx_target_objs="${cxx_target_objs} darwin-c.o"
614 fortran_target_objs="darwin-f.o"
615 target_has_targetcm=yes
616 extra_objs="darwin.o"
617 extra_gcc_objs="darwin-driver.o"
618 default_use_cxa_atexit=yes
620 case ${enable_threads} in
621 "" | yes | posix) thread_file='posix' ;;
627 tmake_file="t-slibgcc"
628 case ${enable_threads} in
633 # Let these non-posix thread selections fall through if requested
636 echo 'Unknown thread configuration for DragonFly BSD'
640 extra_options="$extra_options rpath.opt dragonfly.opt"
641 default_use_cxa_atexit=yes
645 # This is the generic ELF configuration of FreeBSD. Later
646 # machine-specific sections may refine and add to this
649 # Due to tm_file entry ordering issues that vary between cpu
650 # architectures, we only define fbsd_tm_file to allow the
651 # machine-specific section to dictate the final order of all
652 # entries of tm_file with the minor exception that components
653 # of the tm_file set here will always be of the form:
655 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
657 # The machine-specific section should not tamper with this
658 # ordering but may order all other entries of tm_file as it
659 # pleases around the provided core setting.
662 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
663 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
664 tmake_file="t-slibgcc"
665 case ${enable_threads} in
667 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
673 echo 'Unknown thread configuration for FreeBSD'
677 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
678 extra_options="$extra_options rpath.opt freebsd.opt"
683 default_use_cxa_atexit=yes;;
687 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
688 extra_options="$extra_options gnu-user.opt"
691 case ${enable_threads} in
692 "" | yes | posix) thread_file='posix' ;;
694 tmake_file="t-slibgcc"
696 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu)
699 native_system_header_dir=/include
702 # Linux C libraries selection switch: glibc / uclibc / bionic.
703 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
706 tm_p_file="${tm_p_file} linux-protos.h"
707 tmake_file="${tmake_file} t-linux"
708 extra_objs="${extra_objs} linux.o"
709 extra_options="${extra_options} linux.opt"
714 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
717 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
720 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
723 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
725 default_use_cxa_atexit=yes
728 # Enable compilation for Android by default for *android* targets.
731 tm_defines="$tm_defines ANDROID_DEFAULT=1"
734 tm_defines="$tm_defines ANDROID_DEFAULT=0"
737 c_target_objs="${c_target_objs} glibc-c.o"
738 cxx_target_objs="${cxx_target_objs} glibc-c.o"
739 tmake_file="${tmake_file} t-glibc"
740 target_has_targetcm=yes
743 tmake_file="t-slibgcc"
747 # NetBSD 2.0 and later get POSIX threads enabled by default.
748 # Allow them to be explicitly enabled on any other version.
749 case ${enable_threads} in
752 *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
754 tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
760 tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
764 # NetBSD 2.0 and later provide __cxa_atexit(), which we use by
765 # default (unless overridden by --disable-__cxa_atexit).
767 *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
768 default_use_cxa_atexit=yes
773 tmake_file="t-openbsd"
774 case ${enable_threads} in
780 *-*-openbsd2.*|*-*-openbsd3.[012])
781 tm_defines="${tm_defines} HAS_LIBC_R=1" ;;
784 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
785 default_use_cxa_atexit=yes
790 case ${enable_threads} in
791 "" | yes | rtems) thread_file='rtems' ;;
792 posix) thread_file='posix' ;;
795 echo 'Unknown thread configuration for RTEMS'
799 tmake_file="${tmake_file} t-rtems"
800 extra_options="${extra_options} rtems.opt"
801 default_use_cxa_atexit=yes
805 extra_options="$extra_options gnu-user.opt"
807 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
813 # i?86-*-solaris2* needs to insert headers between cpu default and
814 # Solaris 2 specific ones.
815 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
816 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
817 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
819 if test x$gnu_ld = xyes; then
820 tm_file="usegld.h ${tm_file}"
822 if test x$gas = xyes; then
823 tm_file="usegas.h ${tm_file}"
825 tm_p_file="${tm_p_file} sol2-protos.h"
826 tmake_file="${tmake_file} t-sol2 t-slibgcc"
827 c_target_objs="${c_target_objs} sol2-c.o"
828 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
829 extra_objs="sol2.o sol2-stubs.o"
830 extra_options="${extra_options} sol2.opt"
831 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
832 "":yes:* | yes:yes:* )
838 extra_options="${extra_options} vms/vms.opt"
840 tmake_file="vms/t-vms t-slibgcc"
842 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
843 tm_p_file="${tm_p_file} vms/vms-protos.h"
844 xm_file="vms/xm-vms.h"
845 c_target_objs="vms-c.o"
846 cxx_target_objs="vms-c.o"
847 fortran_target_objs="vms-f.o"
848 use_gcc_stdint=provide
849 tm_file="${tm_file} vms/vms-stdint.h"
850 if test x$gnu_ld != xyes; then
851 # Build wrappers for native case.
852 extra_programs="ld\$(exeext) ar\$(exeext)"
853 tmake_file="$tmake_file vms/t-vmsnative"
859 extra_options="${extra_options} vxworks.opt"
860 extra_objs="$extra_objs vxworks.o"
861 case ${enable_threads} in
863 "" | yes | vxworks) thread_file='vxworks' ;;
864 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
868 # Assume that newlib is being used and so __cxa_atexit is provided.
869 default_use_cxa_atexit=yes
876 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
877 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
878 tmake_file="${tmake_file} aarch64/t-aarch64"
882 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
885 aarch64_multilibs="${with_multilib_list}"
886 if test "$aarch64_multilibs" = "default"; then
887 aarch64_multilibs="lp64,ilp32"
889 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
890 for aarch64_multilib in ${aarch64_multilibs}; do
891 case ${aarch64_multilib} in
893 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
896 echo "--with-multilib-list=${aarch64_multilib} not supported."
900 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
903 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
904 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
905 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
908 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
911 aarch64_multilibs="${with_multilib_list}"
912 if test "$aarch64_multilibs" = "default"; then
913 # TODO: turn on ILP32 multilib build after its support is mature.
914 # aarch64_multilibs="lp64,ilp32"
915 aarch64_multilibs="lp64"
917 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
918 for aarch64_multilib in ${aarch64_multilibs}; do
919 case ${aarch64_multilib} in
921 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
924 echo "--with-multilib-list=${aarch64_multilib} not supported."
928 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
931 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
932 tmake_file="${tmake_file} alpha/t-linux"
933 extra_options="${extra_options} alpha/elf.opt"
936 tm_file="elfos.h ${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
937 extra_options="${extra_options} alpha/elf.opt"
940 tm_file="elfos.h ${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h"
941 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
945 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
946 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
947 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
948 # default x-alpha is only appropriate for dec-osf.
951 tm_file="${tm_file} vms/vms.h alpha/vms.h"
952 tmake_file="${tmake_file} alpha/t-vms"
955 extra_headers="arc-simd.h"
956 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
957 tmake_file="arc/t-arc-newlib arc/t-arc"
958 case x"${with_cpu}" in
959 xarc600|xarc601|xarc700)
960 target_cpu_default="TARGET_CPU_$with_cpu"
963 if test x${with_endian} = x; then
965 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
966 *) with_endian=little ;;
969 case ${with_endian} in
971 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
973 case ${with_endian} in
974 big*) tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
977 arc*-*-linux-uclibc*)
978 extra_headers="arc-simd.h"
979 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file}"
980 tmake_file="${tmake_file} arc/t-arc-uClibc arc/t-arc"
981 tm_defines="${tm_defines} TARGET_SDATA_DEFAULT=0"
982 tm_defines="${tm_defines} TARGET_MMEDIUM_CALLS_DEFAULT=1"
983 case x"${with_cpu}" in
984 xarc600|xarc601|xarc700)
985 target_cpu_default="TARGET_CPU_$with_cpu"
988 if test x${with_endian} = x; then
990 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
991 *) with_endian=little ;;
994 case ${with_endian} in
996 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
998 case ${with_endian} in
999 big*) tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
1003 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1004 extra_options="${extra_options} arm/vxworks.opt"
1005 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1008 tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1009 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1010 tmake_file="${tmake_file} arm/t-arm"
1012 arm*-*-linux-*) # ARM GNU/Linux with ELF
1013 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"
1014 extra_options="${extra_options} linux-android.opt"
1017 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1020 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1021 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1022 # Define multilib configuration for arm-linux-androideabi.
1025 tmake_file="$tmake_file arm/t-linux-androideabi"
1028 # The EABI requires the use of __cxa_atexit.
1029 default_use_cxa_atexit=yes
1030 with_tls=${with_tls:-gnu}
1032 arm*-*-uclinux*eabi*) # ARM ucLinux
1033 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1034 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1035 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1036 # The EABI requires the use of __cxa_atexit.
1037 default_use_cxa_atexit=yes
1039 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
1042 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1044 default_use_cxa_atexit=yes
1045 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1046 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1049 tm_file="$tm_file newlib-stdint.h"
1050 tmake_file="${tmake_file} arm/t-bpabi"
1054 tm_file="${tm_file} rtems.h arm/rtems-eabi.h newlib-stdint.h"
1055 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems-eabi"
1058 tm_file="${tm_file} arm/symbian.h"
1059 # We do not include t-bpabi for Symbian OS because the system
1060 # provides its own implementation of the BPABI functions.
1061 tmake_file="${tmake_file} arm/t-symbian"
1064 tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
1067 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
1068 tmake_file="${tmake_file} avr/t-avr avr/t-multilib avr/t-rtems"
1069 extra_gcc_objs="driver-avr.o avr-devices.o"
1070 extra_objs="avr-devices.o avr-log.o"
1073 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/avr-stdint.h"
1074 if test x${with_avrlibc} != xno; then
1075 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1076 tm_defines="${tm_defines} WITH_AVRLIBC"
1078 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1080 extra_gcc_objs="driver-avr.o avr-devices.o"
1081 extra_objs="avr-devices.o avr-log.o"
1084 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1085 tmake_file=bfin/t-bfin-elf
1089 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1090 tmake_file=bfin/t-bfin-uclinux
1093 bfin*-linux-uclibc*)
1094 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"
1095 tmake_file="bfin/t-bfin-linux t-slibgcc t-linux"
1099 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1100 tmake_file="${tmake_file} bfin/t-rtems"
1103 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1108 tm_file="elfos.h ${tm_file}"
1109 tmake_file="${tmake_file} cr16/t-cr16 "
1112 crisv32-*-elf | crisv32-*-none)
1113 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1114 tmake_file="cris/t-cris"
1115 target_cpu_default=32
1117 extra_options="${extra_options} cris/elf.opt"
1120 cris-*-elf | cris-*-none)
1121 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1122 tmake_file="cris/t-cris cris/t-elfmulti"
1124 extra_options="${extra_options} cris/elf.opt"
1127 crisv32-*-linux* | cris-*-linux*)
1128 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1129 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1130 extra_options="${extra_options} cris/linux.opt"
1133 target_cpu_default=10
1136 target_cpu_default=32
1141 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1142 tmake_file="epiphany/t-epiphany"
1143 extra_options="${extra_options} fused-madd.opt"
1144 extra_objs="$extra_objs mode-switch-use.o resolve-sw-modes.o"
1145 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1146 extra_headers="epiphany_intrinsics.h"
1149 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1152 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1153 tmake_file=frv/t-frv
1156 tm_file="dbxelf.h elfos.h ${tm_file} \
1157 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1158 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1163 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1164 tmake_file="${tmake_file} moxie/t-moxie"
1169 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1170 tmake_file="${tmake_file} moxie/t-moxie"
1173 tmake_file="${tmake_file} moxie/t-moxie"
1174 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1179 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1180 tmake_file="${tmake_file} moxie/t-moxiebox"
1183 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-rtems"
1184 tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h"
1187 tmake_file="h8300/t-h8300"
1188 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1191 target_cpu_default="MASK_PA_11|MASK_PA_20"
1192 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1193 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1198 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1199 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1200 pa/pa32-regs.h pa/pa32-linux.h"
1201 tmake_file="${tmake_file} pa/t-linux"
1204 target_cpu_default="MASK_PA_11"
1205 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1206 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1207 extra_options="${extra_options} openbsd.opt"
1211 hppa[12]*-*-hpux10*)
1213 hppa1.1-*-* | hppa2*-*-*)
1214 target_cpu_default="MASK_PA_11"
1217 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1218 pa/pa-hpux.h pa/pa-hpux10.h"
1219 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1222 tm_file="${tm_file} pa/pa-hpux1010.h"
1223 extra_options="${extra_options} pa/pa-hpux1010.opt"
1226 use_gcc_stdint=provide
1227 tm_file="${tm_file} hpux-stdint.h"
1228 tmake_file="t-slibgcc"
1229 case ${enable_threads} in
1231 if test x$have_pthread_h = xyes ; then
1232 tmake_file="${tmake_file} pa/t-dce-thr"
1236 tmake_file="${tmake_file} pa/t-dce-thr"
1241 if test "x$with_dwarf2" != x; then
1242 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1247 target_cpu_default="MASK_PA_11|MASK_PA_20"
1248 if test x$gnu_ld = xyes
1250 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1252 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1253 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1257 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1258 extra_options="${extra_options} pa/pa-hpux1111.opt"
1261 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1262 extra_options="${extra_options} pa/pa-hpux1131.opt"
1265 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1268 extra_options="${extra_options} pa/pa-hpux.opt \
1269 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1270 tmake_file="t-slibgcc"
1271 case x${enable_threads} in
1279 use_gcc_stdint=provide
1280 tm_file="${tm_file} hpux-stdint.h"
1284 tm_file="${tm_file} hpux-stdint.h"
1288 hppa[12]*-*-hpux11*)
1290 hppa1.1-*-* | hppa2*-*-*)
1291 target_cpu_default="MASK_PA_11"
1294 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1295 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1296 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1300 tm_file="${tm_file} pa/pa-hpux1111.h"
1301 extra_options="${extra_options} pa/pa-hpux1111.opt"
1304 tm_file="${tm_file} pa/pa-hpux1131.h"
1305 extra_options="${extra_options} pa/pa-hpux1131.opt"
1308 tmake_file="t-slibgcc"
1309 case x${enable_threads} in
1318 use_gcc_stdint=provide
1319 tm_file="${tm_file} hpux-stdint.h"
1323 tm_file="${tm_file} hpux-stdint.h"
1326 if test "x$with_dwarf2" != x; then
1327 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1331 i[34567]86-*-darwin*)
1333 # Baseline choice for a machine that allows m64 support.
1334 with_cpu=${with_cpu:-core2}
1335 tmake_file="${tmake_file} t-slibgcc"
1338 with_cpu=${with_cpu:-core2}
1339 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1340 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1343 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1346 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1349 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1352 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"
1353 tmake_file="i386/t-i386elf t-svr4"
1355 i[34567]86-*-dragonfly*)
1356 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1357 tmake_file="${tmake_file} i386/t-crtstuff"
1359 x86_64-*-dragonfly*)
1360 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"
1361 tmake_file="${tmake_file} i386/t-crtstuff"
1363 i[34567]86-*-freebsd*)
1364 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1367 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"
1369 i[34567]86-*-netbsdelf*)
1370 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
1371 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1374 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"
1375 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1377 i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
1378 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"
1379 extra_options="${extra_options} openbsd.opt"
1380 # needed to unconfuse gdb
1381 tmake_file="${tmake_file} t-openbsd i386/t-openbsd"
1382 # we need collect2 until our bug is fixed...
1385 i[34567]86-*-openbsd*)
1386 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1387 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1388 extra_options="${extra_options} openbsd.opt"
1393 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1394 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1395 extra_options="${extra_options} openbsd.opt"
1399 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1400 # Intel 80386's running GNU/*
1401 # with ELF format using glibc 2
1402 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1404 i[34567]86-*-linux*)
1405 tm_file="${tm_file} linux.h linux-android.h"
1406 extra_options="${extra_options} linux-android.opt"
1407 # Assume modern glibc
1408 default_gnu_indirect_function=yes
1409 if test x$enable_targets = xall; then
1410 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1411 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1412 tmake_file="${tmake_file} i386/t-linux64"
1413 x86_multilibs="${with_multilib_list}"
1414 if test "$x86_multilibs" = "default"; then
1415 x86_multilibs="m64,m32"
1417 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1418 for x86_multilib in ${x86_multilibs}; do
1419 case ${x86_multilib} in
1421 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1424 echo "--with-multilib-list=${x86_with_multilib} not supported."
1428 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1430 if test x$with_cpu = x; then
1431 if test x$with_cpu_64 = x; then
1435 case " $x86_cpus $x86_archs $x86_64_archs " in
1439 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1440 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1446 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1449 i[34567]86-*-knetbsd*-gnu)
1450 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h"
1452 i[34567]86-*-kfreebsd*-gnu)
1453 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1455 i[34567]86-*-kopensolaris*-gnu)
1456 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1459 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1463 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
1464 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1465 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1468 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1469 extra_options="${extra_options} linux-android.opt"
1470 # Assume modern glibc
1471 default_gnu_indirect_function=yes
1473 x86_64-*-kfreebsd*-gnu)
1474 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1476 x86_64-*-knetbsd*-gnu)
1477 tm_file="${tm_file} knetbsd-gnu.h"
1480 tmake_file="${tmake_file} i386/t-linux64"
1481 x86_multilibs="${with_multilib_list}"
1482 if test "$x86_multilibs" = "default"; then
1485 x86_multilibs="mx32"
1488 x86_multilibs="m64,m32"
1492 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1493 for x86_multilib in ${x86_multilibs}; do
1494 case ${x86_multilib} in
1496 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1499 echo "--with-multilib-list=${x86_with_multilib} not supported."
1503 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1505 i[34567]86-pc-msdosdjgpp*)
1506 xm_file=i386/xm-djgpp.h
1507 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1508 native_system_header_dir=/dev/env/DJDIR/include
1509 extra_options="${extra_options} i386/djgpp.opt"
1514 i[34567]86-*-lynxos*)
1516 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1517 tmake_file="${tmake_file} t-lynx"
1518 extra_options="${extra_options} lynx.opt"
1523 i[34567]86-*-nto-qnx*)
1524 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1525 extra_options="${extra_options} i386/nto.opt"
1529 i[34567]86-*-rtems*)
1530 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"
1531 tmake_file="${tmake_file} i386/t-rtems"
1533 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1534 # Set default arch_32 to pentium4, tune_32 to generic like the other
1535 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1536 with_arch_32=${with_arch_32:-pentium4}
1537 with_tune_32=${with_tune_32:-generic}
1538 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1539 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1540 tmake_file="$tmake_file i386/t-sol2"
1542 if test x$with_cpu = x; then
1543 if test x$with_cpu_64 = x; then
1547 case " $x86_cpus $x86_archs $x86_64_archs " in
1551 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1552 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1558 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
1559 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h vx-common.h"
1562 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1563 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1566 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1567 tmake_file="${tmake_file} i386/t-vxworks"
1571 i[34567]86-*-cygwin*)
1572 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"
1573 xm_file=i386/xm-cygwin.h
1574 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1575 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1576 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1577 extra_objs="winnt.o winnt-stubs.o"
1578 c_target_objs="${c_target_objs} msformat-c.o"
1579 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1580 if test x$enable_threads = xyes; then
1583 default_use_cxa_atexit=yes
1588 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"
1589 xm_file=i386/xm-cygwin.h
1590 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1591 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1592 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1593 extra_objs="winnt.o winnt-stubs.o"
1594 c_target_objs="${c_target_objs} msformat-c.o"
1595 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1596 if test x$enable_threads = xyes; then
1599 default_use_cxa_atexit=yes
1601 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1603 i[34567]86-*-mingw* | x86_64-*-mingw*)
1604 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1605 xm_file=i386/xm-mingw32.h
1606 c_target_objs="${c_target_objs} winnt-c.o"
1607 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1608 target_has_targetcm="yes"
1610 x86_64-*-* | *-w64-*)
1616 if test x$enable_threads = xposix ; then
1617 tm_file="${tm_file} i386/mingw-pthread.h"
1619 tm_file="${tm_file} i386/mingw32.h"
1620 # This makes the logic if mingw's or the w64 feature set has to be used
1623 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1624 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1625 tm_file="${tm_file} i386/mingw-w64.h"
1626 if test x$enable_targets = xall; then
1627 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1628 if test x$with_cpu = x; then
1629 if test x$with_cpu_64 = x; then
1633 case " $x86_cpus $x86_archs $x86_64_archs " in
1637 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1638 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1648 tm_file="${tm_file} i386/mingw-stdint.h"
1649 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1652 tmake_file="${tmake_file} i386/t-mingw-w64"
1655 tmake_file="${tmake_file} i386/t-mingw-w32"
1658 native_system_header_dir=/mingw/include
1659 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1660 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1663 extra_options="${extra_options} i386/mingw-w64.opt"
1668 extra_objs="winnt.o winnt-stubs.o"
1669 c_target_objs="${c_target_objs} msformat-c.o"
1670 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1673 default_use_cxa_atexit=yes
1675 case ${enable_threads} in
1685 tm_file="${tm_file} i386/crtdll.h"
1687 *mingw32msv* | *mingw*)
1691 i[34567]86-*-interix[3-9]*)
1692 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h"
1693 tmake_file="${tmake_file} i386/t-interix"
1694 extra_options="${extra_options} rpath.opt i386/interix.opt"
1695 extra_objs="winnt.o winnt-stubs.o"
1696 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1697 if test x$enable_threads = xyes ; then
1700 if test x$stabs = xyes ; then
1701 tm_file="${tm_file} dbxcoff.h"
1705 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1706 tmake_file="ia64/t-ia64"
1707 target_cpu_default="0"
1708 if test x$gas = xyes
1710 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1712 if test x$gnu_ld = xyes
1714 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1718 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1719 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1720 tmake_file="${tmake_file} ia64/t-ia64"
1723 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1724 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1725 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1728 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1729 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1730 target_cpu_default="MASK_GNU_AS"
1731 case x$enable_threads in
1737 c_target_objs="ia64-c.o"
1738 cxx_target_objs="ia64-c.o"
1739 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1741 tm_file="${tm_file} hpux-stdint.h"
1744 tm_file="${tm_file} ia64/hpux-unix2003.h"
1749 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1750 tmake_file="${tmake_file} ia64/t-ia64"
1751 target_cpu_default="0"
1752 if test x$gas = xyes
1754 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1756 extra_options="${extra_options} ia64/vms.opt"
1759 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1760 out_file=iq2000/iq2000.c
1761 md_file=iq2000/iq2000.md
1764 tm_file="dbxelf.h elfos.h ${tm_file}"
1765 tmake_file="${tmake_file} lm32/t-lm32"
1768 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1769 tmake_file="${tmake_file} lm32/t-lm32"
1770 tmake_file="${tmake_file} lm32/t-rtems"
1773 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1774 tmake_file="${tmake_file} lm32/t-lm32"
1777 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1780 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1783 tm_file="dbxelf.h elfos.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h"
1784 tmake_file="${tmake_file} m32r/t-m32r"
1787 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1788 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1790 if test x$enable_threads = xyes; then
1795 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1796 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1798 if test x$enable_threads = xyes; then
1802 m68k-*-elf* | fido-*-elf*)
1805 # Check that $with_cpu makes sense.
1810 echo "Cannot accept --with-cpu=$with_cpu"
1817 default_m68k_cpu=68020
1821 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"
1822 tm_defines="${tm_defines} MOTOROLA=1"
1823 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1824 # Add multilibs for targets other than fido.
1829 tmake_file="$tmake_file m68k/t-mlibs"
1834 default_m68k_cpu=68020
1836 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
1837 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1838 tm_defines="${tm_defines} MOTOROLA=1"
1841 default_m68k_cpu=68020
1843 # needed to unconfuse gdb
1844 tm_defines="${tm_defines} OBSD_OLD_GAS"
1845 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1846 extra_options="${extra_options} openbsd.opt"
1847 tmake_file="t-openbsd m68k/t-openbsd"
1848 # we need collect2 until our bug is fixed...
1851 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
1852 # with uClibc, using the new GNU/Linux-style
1854 default_m68k_cpu=68020
1856 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"
1857 extra_options="${extra_options} m68k/uclinux.opt"
1858 tm_defines="${tm_defines} MOTOROLA=1"
1859 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1861 m68k-*-linux*) # Motorola m68k's running GNU/Linux
1862 # with ELF format using glibc 2
1863 # aka the GNU/Linux C library 6.
1864 default_m68k_cpu=68020
1866 with_arch=${with_arch:-m68k}
1867 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
1868 extra_options="${extra_options} m68k/ieee.opt"
1869 tm_defines="${tm_defines} MOTOROLA=1"
1870 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
1873 default_m68k_cpu=68020
1875 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
1876 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"
1877 tm_defines="${tm_defines} MOTOROLA=1"
1880 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
1881 tmake_file=mcore/t-mcore
1885 tm_file="dbxelf.h elfos.h ${tm_file}"
1886 tmake_file=mep/t-mep
1887 c_target_objs="mep-pragma.o"
1888 cxx_target_objs="mep-pragma.o"
1889 if test -d "${srcdir}/../newlib/libc/include" &&
1890 test "x$with_headers" = x; then
1898 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1901 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1904 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
1905 tm_file="${tm_file} glibc-stdint.h"
1906 c_target_objs="${c_target_objs} microblaze-c.o"
1907 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1908 tmake_file="${tmake_file} microblaze/t-microblaze"
1909 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
1911 microblaze*-*-rtems*)
1914 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1917 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1920 tm_file="${tm_file} dbxelf.h"
1921 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
1922 c_target_objs="${c_target_objs} microblaze-c.o"
1923 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1924 tmake_file="${tmake_file} microblaze/t-microblaze"
1925 tmake_file="${tmake_file} microblaze/t-rtems"
1930 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1933 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1936 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
1937 c_target_objs="${c_target_objs} microblaze-c.o"
1938 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1939 tmake_file="${tmake_file} microblaze/t-microblaze"
1941 mips*-*-netbsd*) # NetBSD/mips, either endian.
1942 target_cpu_default="MASK_ABICALLS"
1943 tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
1944 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1947 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"
1948 extra_options="${extra_options} linux-android.opt"
1949 tmake_file="${tmake_file} mips/t-mti-linux"
1950 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
1954 mips*-*-linux*) # Linux MIPS, either endian.
1955 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"
1956 extra_options="${extra_options} linux-android.opt"
1959 default_mips_arch=mips32r2
1962 default_mips_arch=mips32
1964 mips64el-st-linux-gnu)
1965 default_mips_abi=n32
1966 tm_file="${tm_file} mips/st.h"
1967 tmake_file="${tmake_file} mips/t-st"
1968 enable_mips_multilibs="yes"
1970 mips64octeon*-*-linux*)
1971 default_mips_abi=n32
1972 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
1973 target_cpu_default=MASK_SOFT_FLOAT_ABI
1974 enable_mips_multilibs="yes"
1976 mipsisa64r2*-*-linux*)
1977 default_mips_abi=n32
1978 default_mips_arch=mips64r2
1979 enable_mips_multilibs="yes"
1981 mips64*-*-linux* | mipsisa64*-*-linux*)
1982 default_mips_abi=n32
1983 enable_mips_multilibs="yes"
1986 if test x$enable_targets = xall; then
1987 enable_mips_multilibs="yes"
1989 if test x$enable_mips_multilibs = xyes; then
1990 tmake_file="${tmake_file} mips/t-linux64"
1994 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
1995 tmake_file="mips/t-mti-elf"
1996 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
1999 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2000 tmake_file="mips/t-sde"
2001 extra_options="${extra_options} mips/sde.opt"
2002 case "${with_newlib}" in
2004 # newlib / libgloss.
2007 # MIPS toolkit libraries.
2008 tm_file="$tm_file mips/sdemtk.h"
2009 tmake_file="$tmake_file mips/t-sdemtk"
2010 case ${enable_threads} in
2012 thread_file='mipssde'
2019 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2022 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2025 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2028 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2032 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2033 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2034 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2035 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*)
2036 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2037 tmake_file="mips/t-isa3264"
2040 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2043 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2046 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2049 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2053 mipsisa32*-*-elfoabi*)
2054 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2055 tm_file="${tm_file} mips/elfoabi.h"
2057 mipsisa64*-*-elfoabi*)
2058 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2059 tm_file="${tm_file} mips/elfoabi.h"
2062 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2066 mipsisa64sr71k-*-elf*)
2067 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2068 tmake_file=mips/t-sr71k
2069 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2071 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2072 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2073 tmake_file="mips/t-elf mips/t-sb1"
2074 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2076 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2077 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2078 tmake_file="mips/t-elf"
2080 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2081 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2082 tmake_file="mips/t-elf"
2083 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2085 mips64-*-elf* | mips64el-*-elf*)
2086 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2087 tmake_file="mips/t-elf"
2088 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2090 mips64vr-*-elf* | mips64vrel-*-elf*)
2091 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2092 tmake_file=mips/t-vr
2093 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2095 mips64orion-*-elf* | mips64orionel-*-elf*)
2096 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2097 tmake_file="mips/t-elf"
2098 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2101 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2102 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2105 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2106 tmake_file="${tmake_file} mips/t-vxworks"
2108 mipstx39-*-elf* | mipstx39el-*-elf*)
2109 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2110 tmake_file="mips/t-r3900"
2112 mmix-knuth-mmixware)
2113 tm_file="${tm_file} newlib-stdint.h"
2117 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2118 if test x$stabs = xyes
2120 tm_file="${tm_file} dbx.h"
2126 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2127 c_target_objs="msp430-c.o"
2128 cxx_target_objs="msp430-c.o"
2129 tmake_file="${tmake_file} msp430/t-msp430"
2132 target_cpu_default="0"
2133 tm_defines="${tm_defines}"
2134 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2135 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2138 target_cpu_default="0|MASK_BIG_ENDIAN"
2139 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2140 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2141 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2144 tm_file="elfos.h ${tm_file}"
2145 tmake_file="${tmake_file} nios2/t-nios2"
2148 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2151 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2152 extra_options="${extra_options} nios2/elf.opt"
2155 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2156 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2161 tm_file="${tm_file} newlib-stdint.h"
2162 tmake_file="nvptx/t-nvptx"
2165 tm_file="${tm_file} newlib-stdint.h"
2168 # port not yet contributed
2169 #powerpc-*-openbsd*)
2170 # tmake_file="${tmake_file} rs6000/t-fprules"
2174 extra_options="${extra_options} rs6000/darwin.opt"
2176 *-darwin1[0-9]* | *-darwin[8-9]*)
2177 tmake_file="${tmake_file} rs6000/t-darwin8"
2178 tm_file="${tm_file} rs6000/darwin8.h"
2181 tm_file="${tm_file} rs6000/darwin7.h"
2186 tmake_file="${tmake_file} t-slibgcc"
2187 extra_headers=altivec.h
2189 powerpc64-*-darwin*)
2190 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2191 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2192 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2193 extra_headers=altivec.h
2195 powerpc*-*-freebsd*)
2196 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2197 extra_options="${extra_options} rs6000/sysv4.opt"
2198 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2201 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2202 tmake_file="${tmake_file} rs6000/t-freebsd64"
2203 extra_options="${extra_options} rs6000/linux64.opt"
2206 tm_file="${tm_file} rs6000/freebsd.h"
2211 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2212 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2213 tmake_file="${tmake_file} rs6000/t-netbsd"
2214 extra_options="${extra_options} rs6000/sysv4.opt"
2217 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"
2218 extra_options="${extra_options} rs6000/sysv4.opt"
2219 tmake_file="rs6000/t-spe rs6000/t-ppccomm"
2222 powerpc-*-eabisimaltivec*)
2223 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"
2224 extra_options="${extra_options} rs6000/sysv4.opt"
2225 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2229 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"
2230 extra_options="${extra_options} rs6000/sysv4.opt"
2231 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2235 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2236 extra_options="${extra_options} rs6000/sysv4.opt"
2237 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2239 powerpc-*-eabialtivec*)
2240 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"
2241 extra_options="${extra_options} rs6000/sysv4.opt"
2242 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2245 powerpc-xilinx-eabi*)
2246 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"
2247 extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
2248 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2252 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"
2253 extra_options="${extra_options} rs6000/sysv4.opt"
2254 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2258 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"
2259 extra_options="${extra_options} rs6000/sysv4.opt"
2260 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2263 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2264 extra_options="${extra_options} rs6000/sysv4.opt"
2265 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2266 extra_objs="$extra_objs rs6000-linux.o"
2269 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2273 powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
2274 echo "*** Configuration ${target} not supported" 1>&2
2277 powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
2280 powerpc64*-*-linux*)
2281 test x$with_cpu != x || cpu_is_64bit=yes
2285 case ${maybe_biarch}:${enable_targets}:${cpu_is_64bit} in
2286 always:* | yes:*powerpc64* | yes:all:* | yes:*:yes)
2287 if test x$cpu_is_64bit = xyes; then
2288 tm_file="${tm_file} rs6000/default64.h"
2290 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2291 tmake_file="$tmake_file rs6000/t-linux64"
2294 tmake_file="$tmake_file rs6000/t-linux64le"
2295 case ${enable_targets} in
2296 all | *powerpc64-* | *powerpc-*)
2297 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2300 case ${enable_targets} in
2301 all | *powerpc64le-* | *powerpcle-*)
2302 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2305 extra_options="${extra_options} rs6000/linux64.opt"
2308 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2309 tmake_file="$tmake_file rs6000/t-linux"
2313 powerpc*-*-linux*ppc476*)
2314 tm_file="${tm_file} rs6000/476.h"
2315 extra_options="${extra_options} rs6000/476.opt" ;;
2316 powerpc*-*-linux*altivec*)
2317 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2318 powerpc*-*-linux*spe*)
2319 tm_file="${tm_file} rs6000/linuxspe.h rs6000/e500.h" ;;
2320 powerpc*-*-linux*paired*)
2321 tm_file="${tm_file} rs6000/750cl.h" ;;
2323 if test x${enable_secureplt} = xyes; then
2324 tm_file="rs6000/secureplt.h ${tm_file}"
2327 powerpc-wrs-vxworks|powerpc-wrs-vxworksae|powerpc-wrs-vxworksmils)
2328 tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2329 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2330 extra_options="${extra_options} rs6000/sysv4.opt"
2331 extra_headers=ppc-asm.h
2334 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksmils.h"
2335 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2338 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h"
2339 tmake_file="${tmake_file} rs6000/t-vxworksae"
2342 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h"
2348 tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2349 tmake_file="t-lynx rs6000/t-lynx"
2350 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2356 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2357 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2358 extra_options="${extra_options} rs6000/sysv4.opt"
2360 powerpcle-*-eabisim*)
2361 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"
2362 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2363 extra_options="${extra_options} rs6000/sysv4.opt"
2367 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"
2368 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2369 extra_options="${extra_options} rs6000/sysv4.opt"
2372 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2373 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2374 tmake_file="rs6000/t-aix43 t-slibgcc"
2375 extra_options="${extra_options} rs6000/aix64.opt"
2378 use_gcc_stdint=provide
2381 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2382 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2383 extra_options="${extra_options} rs6000/aix64.opt"
2384 tmake_file="rs6000/t-aix43 t-slibgcc"
2390 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2391 tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2392 tmake_file="rs6000/t-aix52 t-slibgcc"
2393 extra_options="${extra_options} rs6000/aix64.opt"
2399 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2400 tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2401 tmake_file="rs6000/t-aix52 t-slibgcc"
2402 extra_options="${extra_options} rs6000/aix64.opt"
2406 extra_headers=altivec.h
2408 rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
2409 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2410 tmake_file="rs6000/t-aix52 t-slibgcc"
2411 extra_options="${extra_options} rs6000/aix64.opt"
2415 extra_headers=altivec.h
2418 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2419 target_has_targetm_common=no
2420 c_target_objs="rl78-c.o"
2421 cxx_target_objs="rl78-c.o"
2422 tmake_file="${tmake_file} rl78/t-rl78"
2425 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2426 tmake_file="${tmake_file} rx/t-rx"
2429 default_gnu_indirect_function=yes
2430 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2431 if test x$enable_targets = xall; then
2432 tmake_file="${tmake_file} s390/t-linux64"
2436 default_gnu_indirect_function=yes
2437 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2438 tm_p_file="linux-protos.h s390/s390-protos.h"
2439 md_file=s390/s390.md
2440 extra_modes=s390/s390-modes.def
2441 out_file=s390/s390.c
2442 tmake_file="${tmake_file} s390/t-linux64"
2445 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2446 tm_p_file=s390/s390-protos.h
2447 md_file=s390/s390.md
2448 extra_modes=s390/s390-modes.def
2449 out_file=s390/s390.c
2451 extra_options="${extra_options} s390/tpf.opt"
2453 sh-*-elf* | sh[12346l]*-*-elf* | \
2454 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2455 sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
2456 sh64-*-netbsd* | sh64l*-*-netbsd*)
2457 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2458 if test x${with_endian} = x; then
2460 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2461 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2462 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2463 shl* | sh64l* | sh*-*-linux* | \
2464 sh5l* | sh-superh-elf) with_endian=little,big ;;
2465 sh[1234]*-*-*) with_endian=big ;;
2466 *) with_endian=big,little ;;
2469 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2470 # First word : the default endian.
2471 # Second word: the secondary endian (optional).
2472 case ${with_endian} in
2473 big) TM_ENDIAN_CONFIG=mb ;;
2474 little) TM_ENDIAN_CONFIG=ml ;;
2475 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2476 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2477 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2479 case ${with_endian} in
2480 little*) tm_file="sh/little.h ${tm_file}" ;;
2482 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2484 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2485 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2487 tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h"
2488 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2491 sh*-superh-elf) if test x$with_libgloss != xno; then
2493 tm_file="${tm_file} sh/newlib.h"
2495 tm_file="${tm_file} sh/embed-elf.h"
2496 tm_file="${tm_file} sh/superh.h"
2497 extra_options="${extra_options} sh/superh.opt" ;;
2498 *) if test x$with_newlib = xyes \
2499 && test x$with_libgloss = xyes; then
2500 tm_file="${tm_file} sh/newlib.h"
2502 tm_file="${tm_file} sh/embed-elf.h" ;;
2506 # SHmedia, 32-bit ABI
2507 tmake_file="${tmake_file} sh/t-sh64"
2510 # SHmedia, 64-bit ABI
2511 tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5-64"
2516 tmake_file="${tmake_file} sh/t-sh64"
2517 tm_file="${tm_file} sh/sh64.h"
2518 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2521 tmake_file="${tmake_file} sh/t-sh64"
2522 tm_file="${tm_file} sh/sh64.h"
2523 if test x$with_newlib = xyes; then
2524 tm_file="${tm_file} newlib-stdint.h"
2526 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2529 tm_file="${tm_file} newlib-stdint.h"
2532 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2533 case `echo ${target} | sed 's/e[lb]-/-/'` in
2534 sh64*-*-netbsd*) sh_cpu_target=sh5-64media ;;
2535 sh64* | sh5*-*-netbsd*) sh_cpu_target=sh5-32media ;;
2536 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2537 sh4a_single*) sh_cpu_target=sh4a-single ;;
2538 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2539 sh4al) sh_cpu_target=sh4al ;;
2540 sh4a*) sh_cpu_target=sh4a ;;
2541 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2542 sh4_single*) sh_cpu_target=sh4-single ;;
2543 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2544 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2545 sh3e*) sh_cpu_target=sh3e ;;
2546 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2547 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2548 sh2a_single*) sh_cpu_target=sh2a-single ;;
2549 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2550 sh2a*) sh_cpu_target=sh2a ;;
2551 sh2e*) sh_cpu_target=sh2e ;;
2552 sh2*) sh_cpu_target=sh2 ;;
2553 *) sh_cpu_target=sh1 ;;
2555 # did the user say --without-fp ?
2556 if test x$with_fp = xno; then
2557 case ${sh_cpu_target} in
2558 sh5-*media) sh_cpu_target=${sh_cpu_target}-nofpu ;;
2560 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2561 sh4*) sh_cpu_target=sh4-nofpu ;;
2562 sh3*) sh_cpu_target=sh3 ;;
2563 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2564 sh2*) sh_cpu_target=sh2 ;;
2565 *) echo --without-fp not available for $target: ignored
2567 tm_defines="$tm_defines STRICT_NOFPU=1"
2569 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2570 case $sh_cpu_default in
2571 sh5-64media-nofpu | sh5-64media | \
2572 sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
2573 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2574 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2575 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2576 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2577 "") sh_cpu_default=${sh_cpu_target} ;;
2578 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2580 sh_multilibs=${with_multilib_list}
2581 if test "$sh_multilibs" = "default" ; then
2583 sh64-superh-linux* | \
2584 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2585 sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
2586 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2587 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2588 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2589 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2591 if test x$with_fp = xno; then
2592 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`"
2595 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2596 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2597 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2598 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2599 for sh_multilib in ${sh_multilibs}; do
2600 case ${sh_multilib} in
2601 m1 | m2 | m2e | m3 | m3e | \
2602 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2603 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2604 m2a | m2a-single | m2a-single-only | m2a-nofpu | \
2605 m5-64media | m5-64media-nofpu | \
2606 m5-32media | m5-32media-nofpu | \
2607 m5-compact | m5-compact-nofpu)
2608 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2609 # It is passed to MULTIILIB_OPTIONS verbatim.
2610 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2611 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2613 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2614 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2615 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2617 echo "with_multilib_list=${sh_multilib} not supported."
2622 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2623 if test x${enable_incomplete_targets} = xyes ; then
2624 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"
2626 tm_file="$tm_file ./sysroot-suffix.h"
2627 tmake_file="$tmake_file t-sysroot-suffix"
2630 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2631 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2634 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2635 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2638 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2641 tmake_file="sparc/t-sparc sparc/t-leon"
2644 tmake_file="sparc/t-sparc sparc/t-leon3"
2647 tmake_file="sparc/t-sparc sparc/t-elf"
2652 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2653 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2656 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2657 extra_options="${extra_options} sparc/long-double-switch.opt"
2660 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2663 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2666 tmake_file="${tmake_file} sparc/t-sparc"
2669 if test x$enable_targets = xall; then
2670 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2671 tmake_file="${tmake_file} sparc/t-linux64"
2673 tm_file="${tm_file} sparc/linux.h"
2674 tmake_file="${tmake_file} sparc/t-linux"
2678 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2679 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2680 extra_options="${extra_options} sparc/long-double-switch.opt"
2681 tmake_file="${tmake_file} sparc/t-sparc"
2684 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2686 sparc64-*-* | sparcv9-*-*)
2687 tm_file="sparc/default-64.h ${tm_file}"
2690 test x$with_cpu != x || with_cpu=v9
2693 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2696 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2697 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2700 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2701 extra_options="${extra_options}"
2702 tmake_file="${tmake_file} sparc/t-sparc"
2705 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2706 extra_options="${extra_options}"
2707 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2710 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"
2711 extra_options="${extra_options} sparc/long-double-switch.opt"
2712 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2714 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2715 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2716 extra_options="${extra_options} sparc/long-double-switch.opt"
2717 case "x$with_cpu" in
2719 x) with_cpu=ultrasparc ;;
2720 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2722 tmake_file="${tmake_file} sparc/t-sparc"
2725 tm_file="sparc/biarch64.h ${tm_file}"
2726 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2727 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2728 extra_options="${extra_options} sparc/long-double-switch.opt"
2729 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2732 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2733 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2734 extra_options="${extra_options} openbsd.opt"
2735 extra_options="${extra_options}"
2738 tmake_file="${tmake_file} sparc/t-sparc"
2741 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2742 tmake_file="spu/t-spu-elf"
2743 native_system_header_dir=/include
2744 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2745 extra_modes=spu/spu-modes.def
2746 c_target_objs="${c_target_objs} spu-c.o"
2747 cxx_target_objs="${cxx_target_objs} spu-c.o"
2750 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
2751 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
2752 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
2756 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
2757 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
2758 tm_file="${tm_file} ./sysroot-suffix.h"
2759 tmake_file="t-sysroot-suffix t-slibgcc"
2760 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
2764 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
2765 tmake_file="${tmake_file} tilegx/t-tilegx"
2766 extra_objs="${extra_objs} mul-tables.o"
2767 c_target_objs="${c_target_objs} tilegx-c.o"
2768 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
2769 extra_headers="feedback.h"
2772 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2777 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
2778 tmake_file="${tmake_file} tilepro/t-tilepro"
2779 extra_objs="${extra_objs} mul-tables.o"
2780 c_target_objs="${c_target_objs} tilepro-c.o"
2781 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
2782 extra_headers="feedback.h"
2785 target_cpu_default="TARGET_CPU_generic"
2786 tm_file="dbxelf.h elfos.h v850/v850.h"
2787 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
2788 tmake_file="${tmake_file} v850/t-v850"
2789 tmake_file="${tmake_file} v850/t-rtems"
2791 c_target_objs="v850-c.o"
2792 cxx_target_objs="v850-c.o"
2797 target_cpu_default="TARGET_CPU_v850e3v5"
2800 target_cpu_default="TARGET_CPU_v850e2v3"
2803 target_cpu_default="TARGET_CPU_v850e2"
2805 v850e1-*-* | v850es-*-*)
2806 target_cpu_default="TARGET_CPU_v850e1"
2809 target_cpu_default="TARGET_CPU_v850e"
2812 target_cpu_default="TARGET_CPU_generic"
2815 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
2816 if test x$stabs = xyes
2818 tm_file="${tm_file} dbx.h"
2821 c_target_objs="v850-c.o"
2822 cxx_target_objs="v850-c.o"
2826 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
2827 extra_options="${extra_options} vax/elf.opt"
2830 tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
2831 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
2834 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-pthread.h vax/openbsd.h"
2835 extra_options="${extra_options} openbsd.opt"
2839 # For historical reasons, the target files omit the 'x'.
2840 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
2841 tm_p_file=stormy16/stormy16-protos.h
2842 md_file=stormy16/stormy16.md
2843 out_file=stormy16/stormy16.c
2844 extra_options=stormy16/stormy16.opt
2845 tmake_file="stormy16/t-stormy16"
2848 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
2849 extra_options="${extra_options} xtensa/elf.opt"
2852 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
2853 tmake_file="${tmake_file} xtensa/t-xtensa"
2856 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
2861 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
2862 c_target_objs="m32c-pragma.o"
2863 cxx_target_objs="m32c-pragma.o"
2866 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2867 c_target_objs="m32c-pragma.o"
2868 cxx_target_objs="m32c-pragma.o"
2871 echo "*** Configuration ${target} not supported" 1>&2
2877 i[34567]86-*-linux* | x86_64-*-linux*)
2878 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
2880 i[34567]86-*-* | x86_64-*-*)
2881 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
2883 powerpc*-*-* | rs6000-*-*)
2884 tm_file="${tm_file} rs6000/option-defaults.h"
2887 if [ "$target_has_targetcm" = "no" ]; then
2888 c_target_objs="$c_target_objs default-c.o"
2889 cxx_target_objs="$cxx_target_objs default-c.o"
2892 if [ "$common_out_file" = "" ]; then
2893 if [ "$target_has_targetm_common" = "yes" ]; then
2894 common_out_file="$cpu_type/$cpu_type-common.c"
2896 common_out_file="default-common.c"
2900 # Support for --with-cpu and related options (and a few unrelated options,
2904 echo "--with-cpu must be passed a value" 1>&2
2909 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
2910 # to generic if there is no processor scheduler model for the target.
2913 arch_without_sse2=no
2914 arch_without_64bit=no
2917 if test $fbsd_major -ge 6; then
2923 arch_without_sse2=yes
2924 arch_without_64bit=yes
2929 arch_without_sse2=yes
2930 arch_without_64bit=yes
2935 arch_without_sse2=yes
2936 arch_without_64bit=yes
2939 arch_without_sse2=yes
2940 arch_without_64bit=yes
2941 case ${target_noncanonical} in
2954 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
2964 i686-*-* | i786-*-*)
2965 case ${target_noncanonical} in
2990 amdfam10-*|barcelona-*)
2994 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
2998 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3002 athlon_xp-*|athlon_mp-*|athlon_4-*)
3005 arch_without_sse2=yes
3006 arch_without_64bit=yes
3008 athlon_tbird-*|athlon-*)
3011 arch_without_sse2=yes
3016 arch_without_sse2=yes
3021 arch_without_sse2=yes
3023 pentium3-*|pentium3m-*)
3026 arch_without_sse2=yes
3028 pentium4-*|pentium4m-*)
3067 arch_without_sse2=yes
3072 arch_without_sse2=yes
3073 arch_without_64bit=yes
3078 case ${target_noncanonical} in
3103 amdfam10-*|barcelona-*)
3107 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3111 k8-*|opteron-*|athlon_64-*)
3143 # If there is no $with_cpu option, try to infer one from ${target}.
3144 # This block sets nothing except for with_cpu.
3145 if test x$with_cpu = x ; then
3147 i[34567]86-*-*|x86_64-*-*)
3165 frv-*-*linux* | frv400-*-*linux*)
3172 case "$with_arch" in
3174 with_cpu=${default_cf_cpu}
3177 with_cpu=m${default_m68k_cpu}
3182 if test x$enable_e500_double = xyes; then
3200 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3206 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3208 i[34567]86-*-*|x86_64-*-*)
3209 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3210 if test x$with_cpu_32 = x; then
3211 with_cpu_32=$with_cpu
3213 if test x$with_cpu_64 = x; then
3214 with_cpu_64=$with_cpu
3222 # Support for --with-arch and related options (and a few unrelated options,
3224 case ${with_arch} in
3226 echo "--with-arch must be passed a value" 1>&2
3231 # If there is no $with_arch option, try to infer one from ${target}.
3232 # This block sets nothing except for with_arch.
3233 if test x$with_arch = x ; then
3235 i[34567]86-*-darwin*|x86_64-*-darwin*)
3236 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3237 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3240 # --with-fpmath sets the default ISA to SSE2, which is the same
3241 # ISA supported by Pentium 4.
3242 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3251 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3259 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3261 i[34567]86-*-darwin*|x86_64-*-darwin*)
3262 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3263 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3265 i[34567]86-*-*|x86_64-*-*)
3266 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3267 if test x$with_arch_32 = x; then
3268 with_arch_32=$with_arch
3270 if test x$with_arch_64 = x; then
3271 if test $arch_without_64bit = yes; then
3272 # Set the default 64bit arch to x86-64 if the default arch
3273 # doesn't support 64bit.
3276 with_arch_64=$with_arch
3280 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3281 # Set the default 64bit arch to x86-64 if the default arch
3282 # doesn't support 64bit and we need 64bit ISA.
3283 with_arch_32=$with_arch
3291 # Infer a default setting for --with-float.
3292 if test x$with_float = x; then
3294 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3295 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3296 # comply with IEEE 754.
3302 # Infer a default setting for --with-fpu.
3303 if test x$with_fpu = x; then
3305 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3306 # The R5900 FPU only supports single precision.
3312 # Support --with-fpmath.
3313 if test x$with_fpmath != x; then
3315 i[34567]86-*-* | x86_64-*-*)
3316 case ${with_fpmath} in
3318 tm_file="${tm_file} i386/avxmath.h"
3321 tm_file="${tm_file} i386/ssemath.h"
3324 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3330 echo "--with-fpmath isn't supported for $target." 1>&2
3336 # Similarly for --with-schedule.
3337 if test x$with_schedule = x; then
3340 # Override default PA8000 scheduling model.
3341 with_schedule=7100LC
3346 # Infer a default setting for --with-llsc.
3347 if test x$with_llsc = x; then
3349 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3350 # The R5900 doesn't support LL(D) and SC(D).
3354 # The kernel emulates LL and SC where necessary.
3360 # Validate and mark as valid any --with options supported
3361 # by this target. In order to use a particular --with option
3362 # you must list it in supported_defaults; validating the value
3363 # is optional. This case statement should set nothing besides
3364 # supported_defaults.
3369 supported_defaults="abi cpu arch"
3370 for which in cpu arch; do
3372 eval "val=\$with_$which"
3373 base_val=`echo $val | sed -e 's/\+.*//'`
3374 ext_val=`echo $val | sed -e 's/[a-z0-9\-]\+//'`
3376 if [ $which = arch ]; then
3377 def=aarch64-arches.def
3378 pattern=AARCH64_ARCH
3380 def=aarch64-cores.def
3381 pattern=AARCH64_CORE
3384 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3386 # Find the base CPU or ARCH id in aarch64-cores.def or
3387 # aarch64-arches.def
3388 if [ x"$base_val" = x ] \
3389 || grep "^$pattern(\"$base_val\"," \
3390 ${srcdir}/config/aarch64/$def \
3393 if [ $which = arch ]; then
3394 base_id=`grep "^$pattern(\"$base_val\"," \
3395 ${srcdir}/config/aarch64/$def | \
3396 sed -e 's/^[^,]*,[ ]*//' | \
3398 # Extract the architecture flags from aarch64-arches.def
3399 ext_mask=`grep "^$pattern(\"$base_val\"," \
3400 ${srcdir}/config/aarch64/$def | \
3404 base_id=`grep "^$pattern(\"$base_val\"," \
3405 ${srcdir}/config/aarch64/$def | \
3406 sed -e 's/^[^,]*,[ ]*//' | \
3410 while [ x"$ext_val" != x ]
3412 ext_val=`echo $ext_val | sed -e 's/\+//'`
3413 ext=`echo $ext_val | sed -e 's/\+.*//'`
3414 base_ext=`echo $ext | sed -e 's/^no//'`
3416 if [ x"$base_ext" = x ] \
3417 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3418 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3421 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3422 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3423 sed -e 's/^[^,]*,[ ]*//' | \
3425 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3426 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3427 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3428 sed -e 's/,.*$//' | \
3431 if [ $ext = $base_ext ]; then
3433 ext_mask="("$ext_mask") | ("$ext_on")"
3435 # Removing extension
3436 ext_mask="("$ext_mask") & ~("$ext_off")"
3441 echo "Unknown extension used in --with-$which=$val" 1>&2
3444 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3447 ext_mask="(("$ext_mask") << 6)"
3448 if [ x"$base_id" != x ]; then
3449 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3453 echo "Unknown $which used in --with-$which=$val" 1>&2
3460 supported_defaults="cpu tune"
3461 for which in cpu tune; do
3462 eval "val=\$with_$which"
3465 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3466 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3470 echo "Unknown CPU used in --with-$which=$val" 1>&2
3477 arc*-*-*) # was: arc*-*-linux-uclibc)
3478 supported_defaults="cpu"
3480 arc600|arc601|arc700)
3482 *) echo "Unknown cpu type"
3489 supported_defaults="arch cpu float tune fpu abi mode tls"
3490 for which in cpu tune; do
3491 # See if it matches any of the entries in arm-cores.def
3492 eval "val=\$with_$which"
3493 if [ x"$val" = x ] \
3494 || grep "^ARM_CORE(\"$val\"," \
3495 ${srcdir}/config/arm/arm-cores.def \
3498 new_val=`grep "^ARM_CORE(\"$val\"," \
3499 ${srcdir}/config/arm/arm-cores.def | \
3500 sed -e 's/^[^,]*,[ ]*//' | \
3502 eval "target_${which}_cname=$new_val"
3503 echo "For $val real value is $new_val"
3506 echo "Unknown CPU used in --with-$which=$val" 1>&2
3511 # See if it matches any of the entries in arm-arches.def
3512 if [ x"$with_arch" = x ] \
3513 || grep "^ARM_ARCH(\"$with_arch\"," \
3514 ${srcdir}/config/arm/arm-arches.def \
3519 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
3523 case "$with_float" in
3525 | soft | hard | softfp)
3529 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3534 # see if it matches any of the entries in arm-fpus.def
3535 if [ x"$with_fpu" = x ] \
3536 || grep "^ARM_FPU(\"$with_fpu\"," \
3537 ${srcdir}/config/arm/arm-fpus.def \
3542 echo "Unknown fpu used in --with-fpu=$with_fpu" 1>&2
3548 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3552 echo "Unknown ABI used in --with-abi=$with_abi"
3557 case "$with_mode" in
3563 echo "Unknown mode used in --with-mode=$with_mode"
3574 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3579 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3580 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3584 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3585 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3589 # Add extra multilibs
3590 if test "x$with_multilib_list" != x; then
3591 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3592 for arm_multilib in ${arm_multilibs}; do
3593 case ${arm_multilib} in
3595 # Note that arm/t-aprofile is a
3596 # stand-alone make file fragment to be
3597 # used only with itself. We do not
3598 # specifically use the
3599 # TM_MULTILIB_OPTION framework because
3600 # this shorthand is more
3601 # pragmatic. Additionally it is only
3602 # designed to work without any
3603 # with-cpu, with-arch with-mode
3604 # with-fpu or with-float options.
3605 if test "x$with_arch" != x \
3606 || test "x$with_cpu" != x \
3607 || test "x$with_float" != x \
3608 || test "x$with_fpu" != x \
3609 || test "x$with_mode" != x ; then
3610 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2
3613 tmake_file="${tmake_file} arm/t-aprofile"
3619 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3628 supported_defaults=cpu
3633 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3639 fido-*-* | m68k*-*-*)
3640 supported_defaults="arch cpu"
3641 case "$with_arch" in
3643 m68k_arch_family="$with_arch"
3646 echo "Invalid --with-arch=$with_arch" 1>&2
3651 # We always have a $with_cpu setting here.
3653 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3654 m68k_cpu_ident=$with_cpu
3657 m68k_cpu_ident=m68020
3658 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3661 m68k_cpu_ident=m68020
3662 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3665 # We need the C identifier rather than the string.
3666 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
3667 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
3668 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
3669 ${srcdir}/config/m68k/m68k-devices.def`
3670 if [ x"$m68k_cpu_ident" = x ] ; then
3671 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
3674 with_cpu="mcpu=$with_cpu"
3680 supported_defaults="arch schedule"
3682 case "$with_arch" in
3683 "" | 1.0 | 1.1 | 2.0)
3687 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
3692 case "$with_schedule" in
3693 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
3697 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
3703 i[34567]86-*-* | x86_64-*-*)
3704 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
3705 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3706 eval "val=\$with_$which"
3707 case " $x86_archs " in
3715 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
3724 if test x${val} != x; then
3725 case " $x86_64_archs " in
3730 # Allow $x86_cpus --with-cpu=/--with-tune=
3733 case " $x86_cpus " in
3738 echo "Unknown CPU given in --with-$which=$val." 1>&2
3744 echo "Unknown CPU given in --with-$which=$val." 1>&2
3757 supported_defaults="abi arch arch_32 arch_64 float fpu nan tune tune_32 tune_64 divide llsc mips-plt synci"
3759 case ${with_float} in
3764 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3770 "" | single | double)
3774 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
3784 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
3790 "" | 32 | o64 | n32 | 64 | eabi)
3794 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
3799 case ${with_divide} in
3800 "" | breaks | traps)
3804 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
3809 case ${with_llsc} in
3820 echo "Unknown llsc type used in --with-llsc" 1>&2
3825 case ${with_mips_plt} in
3830 with_mips_plt=no-plt
3835 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
3840 case ${with_synci} in
3850 echo "Unknown synci type used in --with-synci" 1>&2
3857 supported_defaults="arch nds32_lib"
3859 # process --with-arch
3860 case "${with_arch}" in
3865 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v3 v3m" 1>&2
3870 # process --with-nds32-lib
3871 case "${with_nds32_lib}" in
3873 # the default library is newlib
3874 with_nds32_lib=newlib
3883 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
3889 powerpc*-*-* | rs6000-*-*)
3890 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64"
3892 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3893 eval "val=\$with_$which"
3895 default32 | default64)
3900 echo "$val only valid for --with-cpu and --with-tune." 1>&2
3904 with_which="with_$which"
3908 tm_defines="${tm_defines} CONFIG_PPC405CR"
3909 eval "with_$which=405"
3911 "" | common | native \
3912 | power | power[2345678] | power6x | powerpc | powerpc64 \
3913 | rios | rios1 | rios2 | rsc | rsc1 | rs64a \
3914 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
3915 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
3916 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
3917 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
3918 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
3922 echo "Unknown cpu used in --with-$which=$val." 1>&2
3929 "" | elfv1 | elfv2 )
3933 echo "Unknown ABI used in --with-abi=$with_abi"
3940 supported_defaults="arch mode tune"
3942 for which in arch tune; do
3943 eval "val=\$with_$which"
3945 "" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12)
3949 echo "Unknown cpu used in --with-$which=$val." 1>&2
3955 case ${with_mode} in
3960 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
3966 sh[123456ble]-*-* | sh-*-*)
3967 supported_defaults="cpu"
3968 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
3969 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
3972 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3974 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
3977 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
3978 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
3979 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
3980 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
3986 supported_defaults="cpu float tune"
3988 for which in cpu tune; do
3989 eval "val=\$with_$which"
3991 "" | sparc | sparcv9 | sparc64 \
3993 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
3994 | sparclite | f930 | f934 | sparclite86x \
3995 | sparclet | tsc701 \
3996 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
3997 | niagara3 | niagara4)
4001 echo "Unknown cpu used in --with-$which=$val" 1>&2
4007 case ${with_float} in
4012 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4019 supported_defaults="arch tune"
4021 for which in arch tune; do
4022 eval "val=\$with_$which"
4024 "" | cell | celledp)
4028 echo "Unknown cpu used in --with-$which=$val." 1>&2
4036 supported_defaults="arch"
4038 case ${with_arch} in
4039 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4043 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4050 supported_defaults=cpu
4052 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4056 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4063 # Set some miscellaneous flags for particular targets.
4064 target_cpu_default2=
4067 if test x"$target_cpu_cname" != x
4069 target_cpu_default2=$target_cpu_cname
4074 if test x$target_cpu_cname = x
4076 target_cpu_default2=TARGET_CPU_generic
4078 target_cpu_default2=TARGET_CPU_$target_cpu_cname
4083 if test x$gas = xyes
4085 target_cpu_default2="MASK_GAS"
4089 fido*-*-* | m68k*-*-*)
4090 target_cpu_default2=$m68k_cpu_ident
4091 tmake_file="m68k/t-opts $tmake_file"
4092 if [ x"$m68k_arch_family" != x ]; then
4093 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4097 i[34567]86-*-darwin* | x86_64-*-darwin*)
4099 i[34567]86-*-linux* | x86_64-*-linux*)
4100 tmake_file="$tmake_file i386/t-linux"
4102 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4103 tmake_file="$tmake_file i386/t-kfreebsd"
4106 tmake_file="$tmake_file i386/t-gnu"
4108 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4110 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4112 i[34567]86-*-mingw* | x86_64-*-mingw*)
4114 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4116 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4122 if test x$gnu_ld = xyes
4124 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4128 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4131 if test x$with_arch != x; then
4132 default_mips_arch=$with_arch
4134 if test x$with_abi != x; then
4135 default_mips_abi=$with_abi
4137 case ${default_mips_arch} in
4138 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4139 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4140 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4141 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4142 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4143 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4144 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4145 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4147 case ${default_mips_abi} in
4148 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4149 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4150 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4151 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4152 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4154 tmake_file="mips/t-mips $tmake_file"
4157 powerpc*-*-* | rs6000-*-*)
4158 # FIXME: The PowerPC port uses the value set at compile time,
4159 # although it's only cosmetic.
4160 if test "x$with_cpu" != x
4162 target_cpu_default2="\\\"$with_cpu\\\""
4164 out_file=rs6000/rs6000.c
4165 c_target_objs="${c_target_objs} rs6000-c.o"
4166 cxx_target_objs="${cxx_target_objs} rs6000-c.o"
4167 tmake_file="rs6000/t-rs6000 ${tmake_file}"
4170 sh[123456ble]*-*-* | sh-*-*)
4171 c_target_objs="${c_target_objs} sh-c.o"
4172 cxx_target_objs="${cxx_target_objs} sh-c.o"
4176 # Some standard aliases.
4181 xsparcv9 | xsparc64)
4186 if test x$with_tune = x ; then
4197 # The SPARC port checks this value at compile-time.
4198 target_cpu_default2="TARGET_CPU_$with_cpu"
4202 case "x$with_cpu" in
4205 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4206 target_cpu_default2="TARGET_CPU_$with_cpu"
4209 target_cpu_default2="TARGET_CPU_v850e1"
4216 all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu nan divide llsc mips-plt synci tls"
4217 for option in $all_defaults
4219 eval "val=\$with_"`echo $option | sed s/-/_/g`
4220 if test -n "$val"; then
4221 case " $supported_defaults " in
4225 echo "This target does not support --with-$option." 2>&1
4226 echo "Valid --with options are: $supported_defaults" 2>&1
4233 t="{ \"$option\", \"$val\" }"
4235 t="${t}, { \"$option\", \"$val\" }"
4242 configure_default_options="{ { NULL, NULL} }"
4244 configure_default_options="{ ${t} }"
4247 if test "$target_cpu_default2" != ""
4249 if test "$target_cpu_default" != ""
4251 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4253 target_cpu_default=$target_cpu_default2