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 if not targeting Android nor uclibc.
1409 *-*-*android*|*-*-*uclibc*)
1412 default_gnu_indirect_function=yes
1415 if test x$enable_targets = xall; then
1416 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1417 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1418 tmake_file="${tmake_file} i386/t-linux64"
1419 x86_multilibs="${with_multilib_list}"
1420 if test "$x86_multilibs" = "default"; then
1421 x86_multilibs="m64,m32"
1423 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1424 for x86_multilib in ${x86_multilibs}; do
1425 case ${x86_multilib} in
1427 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1430 echo "--with-multilib-list=${x86_with_multilib} not supported."
1434 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1436 if test x$with_cpu = x; then
1437 if test x$with_cpu_64 = x; then
1441 case " $x86_cpus $x86_archs $x86_64_archs " in
1445 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1446 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1452 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1455 i[34567]86-*-knetbsd*-gnu)
1456 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h"
1458 i[34567]86-*-kfreebsd*-gnu)
1459 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1461 i[34567]86-*-kopensolaris*-gnu)
1462 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1465 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1469 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
1470 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1471 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1474 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1475 extra_options="${extra_options} linux-android.opt"
1476 # Assume modern glibc if not targeting Android nor uclibc.
1478 *-*-*android*|*-*-*uclibc*)
1481 default_gnu_indirect_function=yes
1485 x86_64-*-kfreebsd*-gnu)
1486 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1488 x86_64-*-knetbsd*-gnu)
1489 tm_file="${tm_file} knetbsd-gnu.h"
1492 tmake_file="${tmake_file} i386/t-linux64"
1493 x86_multilibs="${with_multilib_list}"
1494 if test "$x86_multilibs" = "default"; then
1497 x86_multilibs="mx32"
1500 x86_multilibs="m64,m32"
1504 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1505 for x86_multilib in ${x86_multilibs}; do
1506 case ${x86_multilib} in
1508 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1511 echo "--with-multilib-list=${x86_with_multilib} not supported."
1515 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1517 i[34567]86-pc-msdosdjgpp*)
1518 xm_file=i386/xm-djgpp.h
1519 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1520 native_system_header_dir=/dev/env/DJDIR/include
1521 extra_options="${extra_options} i386/djgpp.opt"
1526 i[34567]86-*-lynxos*)
1528 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1529 tmake_file="${tmake_file} t-lynx"
1530 extra_options="${extra_options} lynx.opt"
1535 i[34567]86-*-nto-qnx*)
1536 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1537 extra_options="${extra_options} i386/nto.opt"
1541 i[34567]86-*-rtems*)
1542 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"
1543 tmake_file="${tmake_file} i386/t-rtems"
1545 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1546 # Set default arch_32 to pentium4, tune_32 to generic like the other
1547 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1548 with_arch_32=${with_arch_32:-pentium4}
1549 with_tune_32=${with_tune_32:-generic}
1550 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1551 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1552 tmake_file="$tmake_file i386/t-sol2"
1554 if test x$with_cpu = x; then
1555 if test x$with_cpu_64 = x; then
1559 case " $x86_cpus $x86_archs $x86_64_archs " in
1563 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1564 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1570 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
1571 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h vx-common.h"
1574 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1575 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1578 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1579 tmake_file="${tmake_file} i386/t-vxworks"
1583 i[34567]86-*-cygwin*)
1584 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"
1585 xm_file=i386/xm-cygwin.h
1586 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1587 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1588 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1589 extra_objs="winnt.o winnt-stubs.o"
1590 c_target_objs="${c_target_objs} msformat-c.o"
1591 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1592 if test x$enable_threads = xyes; then
1595 default_use_cxa_atexit=yes
1600 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"
1601 xm_file=i386/xm-cygwin.h
1602 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1603 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1604 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1605 extra_objs="winnt.o winnt-stubs.o"
1606 c_target_objs="${c_target_objs} msformat-c.o"
1607 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1608 if test x$enable_threads = xyes; then
1611 default_use_cxa_atexit=yes
1613 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1615 i[34567]86-*-mingw* | x86_64-*-mingw*)
1616 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1617 xm_file=i386/xm-mingw32.h
1618 c_target_objs="${c_target_objs} winnt-c.o"
1619 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1620 target_has_targetcm="yes"
1622 x86_64-*-* | *-w64-*)
1628 if test x$enable_threads = xposix ; then
1629 tm_file="${tm_file} i386/mingw-pthread.h"
1631 tm_file="${tm_file} i386/mingw32.h"
1632 # This makes the logic if mingw's or the w64 feature set has to be used
1635 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1636 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1637 tm_file="${tm_file} i386/mingw-w64.h"
1638 if test x$enable_targets = xall; then
1639 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1640 if test x$with_cpu = x; then
1641 if test x$with_cpu_64 = x; then
1645 case " $x86_cpus $x86_archs $x86_64_archs " in
1649 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1650 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1660 tm_file="${tm_file} i386/mingw-stdint.h"
1661 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1664 tmake_file="${tmake_file} i386/t-mingw-w64"
1667 tmake_file="${tmake_file} i386/t-mingw-w32"
1670 native_system_header_dir=/mingw/include
1671 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1672 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1675 extra_options="${extra_options} i386/mingw-w64.opt"
1680 extra_objs="winnt.o winnt-stubs.o"
1681 c_target_objs="${c_target_objs} msformat-c.o"
1682 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1685 default_use_cxa_atexit=yes
1687 case ${enable_threads} in
1697 tm_file="${tm_file} i386/crtdll.h"
1699 *mingw32msv* | *mingw*)
1703 i[34567]86-*-interix[3-9]*)
1704 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h"
1705 tmake_file="${tmake_file} i386/t-interix"
1706 extra_options="${extra_options} rpath.opt i386/interix.opt"
1707 extra_objs="winnt.o winnt-stubs.o"
1708 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1709 if test x$enable_threads = xyes ; then
1712 if test x$stabs = xyes ; then
1713 tm_file="${tm_file} dbxcoff.h"
1717 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1718 tmake_file="ia64/t-ia64"
1719 target_cpu_default="0"
1720 if test x$gas = xyes
1722 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1724 if test x$gnu_ld = xyes
1726 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1730 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1731 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1732 tmake_file="${tmake_file} ia64/t-ia64"
1735 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1736 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1737 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1740 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1741 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1742 target_cpu_default="MASK_GNU_AS"
1743 case x$enable_threads in
1749 c_target_objs="ia64-c.o"
1750 cxx_target_objs="ia64-c.o"
1751 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1753 tm_file="${tm_file} hpux-stdint.h"
1756 tm_file="${tm_file} ia64/hpux-unix2003.h"
1761 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1762 tmake_file="${tmake_file} ia64/t-ia64"
1763 target_cpu_default="0"
1764 if test x$gas = xyes
1766 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1768 extra_options="${extra_options} ia64/vms.opt"
1771 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1772 out_file=iq2000/iq2000.c
1773 md_file=iq2000/iq2000.md
1776 tm_file="dbxelf.h elfos.h ${tm_file}"
1777 tmake_file="${tmake_file} lm32/t-lm32"
1780 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1781 tmake_file="${tmake_file} lm32/t-lm32"
1782 tmake_file="${tmake_file} lm32/t-rtems"
1785 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1786 tmake_file="${tmake_file} lm32/t-lm32"
1789 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1792 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1795 tm_file="dbxelf.h elfos.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h"
1796 tmake_file="${tmake_file} m32r/t-m32r"
1799 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1800 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1802 if test x$enable_threads = xyes; then
1807 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1808 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1810 if test x$enable_threads = xyes; then
1814 m68k-*-elf* | fido-*-elf*)
1817 # Check that $with_cpu makes sense.
1822 echo "Cannot accept --with-cpu=$with_cpu"
1829 default_m68k_cpu=68020
1833 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"
1834 tm_defines="${tm_defines} MOTOROLA=1"
1835 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1836 # Add multilibs for targets other than fido.
1841 tmake_file="$tmake_file m68k/t-mlibs"
1846 default_m68k_cpu=68020
1848 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
1849 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1850 tm_defines="${tm_defines} MOTOROLA=1"
1853 default_m68k_cpu=68020
1855 # needed to unconfuse gdb
1856 tm_defines="${tm_defines} OBSD_OLD_GAS"
1857 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1858 extra_options="${extra_options} openbsd.opt"
1859 tmake_file="t-openbsd m68k/t-openbsd"
1860 # we need collect2 until our bug is fixed...
1863 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
1864 # with uClibc, using the new GNU/Linux-style
1866 default_m68k_cpu=68020
1868 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"
1869 extra_options="${extra_options} m68k/uclinux.opt"
1870 tm_defines="${tm_defines} MOTOROLA=1"
1871 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1873 m68k-*-linux*) # Motorola m68k's running GNU/Linux
1874 # with ELF format using glibc 2
1875 # aka the GNU/Linux C library 6.
1876 default_m68k_cpu=68020
1878 with_arch=${with_arch:-m68k}
1879 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
1880 extra_options="${extra_options} m68k/ieee.opt"
1881 tm_defines="${tm_defines} MOTOROLA=1"
1882 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
1885 default_m68k_cpu=68020
1887 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
1888 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"
1889 tm_defines="${tm_defines} MOTOROLA=1"
1892 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
1893 tmake_file=mcore/t-mcore
1897 tm_file="dbxelf.h elfos.h ${tm_file}"
1898 tmake_file=mep/t-mep
1899 c_target_objs="mep-pragma.o"
1900 cxx_target_objs="mep-pragma.o"
1901 if test -d "${srcdir}/../newlib/libc/include" &&
1902 test "x$with_headers" = x; then
1910 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1913 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1916 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
1917 tm_file="${tm_file} glibc-stdint.h"
1918 c_target_objs="${c_target_objs} microblaze-c.o"
1919 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1920 tmake_file="${tmake_file} microblaze/t-microblaze"
1921 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
1923 microblaze*-*-rtems*)
1926 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1929 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1932 tm_file="${tm_file} dbxelf.h"
1933 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
1934 c_target_objs="${c_target_objs} microblaze-c.o"
1935 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1936 tmake_file="${tmake_file} microblaze/t-microblaze"
1937 tmake_file="${tmake_file} microblaze/t-rtems"
1942 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1945 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1948 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
1949 c_target_objs="${c_target_objs} microblaze-c.o"
1950 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1951 tmake_file="${tmake_file} microblaze/t-microblaze"
1953 mips*-*-netbsd*) # NetBSD/mips, either endian.
1954 target_cpu_default="MASK_ABICALLS"
1955 tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
1956 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1959 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"
1960 extra_options="${extra_options} linux-android.opt"
1961 tmake_file="${tmake_file} mips/t-mti-linux"
1962 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
1966 mips*-*-linux*) # Linux MIPS, either endian.
1967 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"
1968 extra_options="${extra_options} linux-android.opt"
1971 default_mips_arch=mips32r2
1974 default_mips_arch=mips32
1976 mips64el-st-linux-gnu)
1977 default_mips_abi=n32
1978 tm_file="${tm_file} mips/st.h"
1979 tmake_file="${tmake_file} mips/t-st"
1980 enable_mips_multilibs="yes"
1982 mips64octeon*-*-linux*)
1983 default_mips_abi=n32
1984 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
1985 target_cpu_default=MASK_SOFT_FLOAT_ABI
1986 enable_mips_multilibs="yes"
1988 mipsisa64r2*-*-linux*)
1989 default_mips_abi=n32
1990 default_mips_arch=mips64r2
1991 enable_mips_multilibs="yes"
1993 mips64*-*-linux* | mipsisa64*-*-linux*)
1994 default_mips_abi=n32
1995 enable_mips_multilibs="yes"
1998 if test x$enable_targets = xall; then
1999 enable_mips_multilibs="yes"
2001 if test x$enable_mips_multilibs = xyes; then
2002 tmake_file="${tmake_file} mips/t-linux64"
2006 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2007 tmake_file="mips/t-mti-elf"
2008 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2011 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2012 tmake_file="mips/t-sde"
2013 extra_options="${extra_options} mips/sde.opt"
2014 case "${with_newlib}" in
2016 # newlib / libgloss.
2019 # MIPS toolkit libraries.
2020 tm_file="$tm_file mips/sdemtk.h"
2021 tmake_file="$tmake_file mips/t-sdemtk"
2022 case ${enable_threads} in
2024 thread_file='mipssde'
2031 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2034 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2037 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2040 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2044 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2045 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2046 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2047 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*)
2048 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2049 tmake_file="mips/t-isa3264"
2052 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2055 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2058 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2061 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2065 mipsisa32*-*-elfoabi*)
2066 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2067 tm_file="${tm_file} mips/elfoabi.h"
2069 mipsisa64*-*-elfoabi*)
2070 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2071 tm_file="${tm_file} mips/elfoabi.h"
2074 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2078 mipsisa64sr71k-*-elf*)
2079 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2080 tmake_file=mips/t-sr71k
2081 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2083 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2084 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2085 tmake_file="mips/t-elf mips/t-sb1"
2086 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2088 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2089 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2090 tmake_file="mips/t-elf"
2092 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2093 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2094 tmake_file="mips/t-elf"
2095 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2097 mips64-*-elf* | mips64el-*-elf*)
2098 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2099 tmake_file="mips/t-elf"
2100 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2102 mips64vr-*-elf* | mips64vrel-*-elf*)
2103 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2104 tmake_file=mips/t-vr
2105 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2107 mips64orion-*-elf* | mips64orionel-*-elf*)
2108 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2109 tmake_file="mips/t-elf"
2110 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2113 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2114 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2117 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2118 tmake_file="${tmake_file} mips/t-vxworks"
2120 mipstx39-*-elf* | mipstx39el-*-elf*)
2121 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2122 tmake_file="mips/t-r3900"
2124 mmix-knuth-mmixware)
2125 tm_file="${tm_file} newlib-stdint.h"
2129 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2130 if test x$stabs = xyes
2132 tm_file="${tm_file} dbx.h"
2138 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2139 c_target_objs="msp430-c.o"
2140 cxx_target_objs="msp430-c.o"
2141 tmake_file="${tmake_file} msp430/t-msp430"
2144 target_cpu_default="0"
2145 tm_defines="${tm_defines}"
2146 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2147 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2150 target_cpu_default="0|MASK_BIG_ENDIAN"
2151 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2152 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2153 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2156 tm_file="elfos.h ${tm_file}"
2157 tmake_file="${tmake_file} nios2/t-nios2"
2160 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2163 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2164 extra_options="${extra_options} nios2/elf.opt"
2167 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2168 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2173 tm_file="${tm_file} newlib-stdint.h"
2174 tmake_file="nvptx/t-nvptx"
2177 tm_file="${tm_file} newlib-stdint.h"
2180 # port not yet contributed
2181 #powerpc-*-openbsd*)
2182 # tmake_file="${tmake_file} rs6000/t-fprules"
2186 extra_options="${extra_options} rs6000/darwin.opt"
2188 *-darwin1[0-9]* | *-darwin[8-9]*)
2189 tmake_file="${tmake_file} rs6000/t-darwin8"
2190 tm_file="${tm_file} rs6000/darwin8.h"
2193 tm_file="${tm_file} rs6000/darwin7.h"
2198 tmake_file="${tmake_file} t-slibgcc"
2199 extra_headers=altivec.h
2201 powerpc64-*-darwin*)
2202 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2203 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2204 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2205 extra_headers=altivec.h
2207 powerpc*-*-freebsd*)
2208 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2209 extra_options="${extra_options} rs6000/sysv4.opt"
2210 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2213 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2214 tmake_file="${tmake_file} rs6000/t-freebsd64"
2215 extra_options="${extra_options} rs6000/linux64.opt"
2218 tm_file="${tm_file} rs6000/freebsd.h"
2223 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2224 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2225 tmake_file="${tmake_file} rs6000/t-netbsd"
2226 extra_options="${extra_options} rs6000/sysv4.opt"
2229 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"
2230 extra_options="${extra_options} rs6000/sysv4.opt"
2231 tmake_file="rs6000/t-spe rs6000/t-ppccomm"
2234 powerpc-*-eabisimaltivec*)
2235 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"
2236 extra_options="${extra_options} rs6000/sysv4.opt"
2237 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2241 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"
2242 extra_options="${extra_options} rs6000/sysv4.opt"
2243 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2247 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2248 extra_options="${extra_options} rs6000/sysv4.opt"
2249 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2251 powerpc-*-eabialtivec*)
2252 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"
2253 extra_options="${extra_options} rs6000/sysv4.opt"
2254 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2257 powerpc-xilinx-eabi*)
2258 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"
2259 extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
2260 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2264 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"
2265 extra_options="${extra_options} rs6000/sysv4.opt"
2266 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2270 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"
2271 extra_options="${extra_options} rs6000/sysv4.opt"
2272 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2275 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2276 extra_options="${extra_options} rs6000/sysv4.opt"
2277 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2278 extra_objs="$extra_objs rs6000-linux.o"
2281 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2285 powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
2286 echo "*** Configuration ${target} not supported" 1>&2
2289 powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
2292 powerpc64*-*-linux*)
2293 test x$with_cpu != x || cpu_is_64bit=yes
2297 case ${maybe_biarch}:${enable_targets}:${cpu_is_64bit} in
2298 always:* | yes:*powerpc64* | yes:all:* | yes:*:yes)
2299 if test x$cpu_is_64bit = xyes; then
2300 tm_file="${tm_file} rs6000/default64.h"
2302 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2303 tmake_file="$tmake_file rs6000/t-linux64"
2306 tmake_file="$tmake_file rs6000/t-linux64le"
2307 case ${enable_targets} in
2308 all | *powerpc64-* | *powerpc-*)
2309 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2312 case ${enable_targets} in
2313 all | *powerpc64le-* | *powerpcle-*)
2314 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2317 extra_options="${extra_options} rs6000/linux64.opt"
2320 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2321 tmake_file="$tmake_file rs6000/t-linux"
2325 powerpc*-*-linux*ppc476*)
2326 tm_file="${tm_file} rs6000/476.h"
2327 extra_options="${extra_options} rs6000/476.opt" ;;
2328 powerpc*-*-linux*altivec*)
2329 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2330 powerpc*-*-linux*spe*)
2331 tm_file="${tm_file} rs6000/linuxspe.h rs6000/e500.h" ;;
2332 powerpc*-*-linux*paired*)
2333 tm_file="${tm_file} rs6000/750cl.h" ;;
2335 if test x${enable_secureplt} = xyes; then
2336 tm_file="rs6000/secureplt.h ${tm_file}"
2339 powerpc-wrs-vxworks|powerpc-wrs-vxworksae|powerpc-wrs-vxworksmils)
2340 tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2341 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2342 extra_options="${extra_options} rs6000/sysv4.opt"
2343 extra_headers=ppc-asm.h
2346 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksmils.h"
2347 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2350 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h"
2351 tmake_file="${tmake_file} rs6000/t-vxworksae"
2354 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h"
2360 tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2361 tmake_file="t-lynx rs6000/t-lynx"
2362 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2368 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2369 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2370 extra_options="${extra_options} rs6000/sysv4.opt"
2372 powerpcle-*-eabisim*)
2373 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"
2374 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2375 extra_options="${extra_options} rs6000/sysv4.opt"
2379 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"
2380 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2381 extra_options="${extra_options} rs6000/sysv4.opt"
2384 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2385 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2386 tmake_file="rs6000/t-aix43 t-slibgcc"
2387 extra_options="${extra_options} rs6000/aix64.opt"
2390 use_gcc_stdint=provide
2393 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2394 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2395 extra_options="${extra_options} rs6000/aix64.opt"
2396 tmake_file="rs6000/t-aix43 t-slibgcc"
2402 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2403 tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2404 tmake_file="rs6000/t-aix52 t-slibgcc"
2405 extra_options="${extra_options} rs6000/aix64.opt"
2411 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2412 tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2413 tmake_file="rs6000/t-aix52 t-slibgcc"
2414 extra_options="${extra_options} rs6000/aix64.opt"
2418 extra_headers=altivec.h
2420 rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
2421 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2422 tmake_file="rs6000/t-aix52 t-slibgcc"
2423 extra_options="${extra_options} rs6000/aix64.opt"
2427 extra_headers=altivec.h
2430 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2431 target_has_targetm_common=no
2432 c_target_objs="rl78-c.o"
2433 cxx_target_objs="rl78-c.o"
2434 tmake_file="${tmake_file} rl78/t-rl78"
2437 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2438 tmake_file="${tmake_file} rx/t-rx"
2441 default_gnu_indirect_function=yes
2442 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2443 if test x$enable_targets = xall; then
2444 tmake_file="${tmake_file} s390/t-linux64"
2448 default_gnu_indirect_function=yes
2449 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2450 tm_p_file="linux-protos.h s390/s390-protos.h"
2451 md_file=s390/s390.md
2452 extra_modes=s390/s390-modes.def
2453 out_file=s390/s390.c
2454 tmake_file="${tmake_file} s390/t-linux64"
2457 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2458 tm_p_file=s390/s390-protos.h
2459 md_file=s390/s390.md
2460 extra_modes=s390/s390-modes.def
2461 out_file=s390/s390.c
2463 extra_options="${extra_options} s390/tpf.opt"
2465 sh-*-elf* | sh[12346l]*-*-elf* | \
2466 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2467 sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
2468 sh64-*-netbsd* | sh64l*-*-netbsd*)
2469 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2470 if test x${with_endian} = x; then
2472 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2473 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2474 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2475 shl* | sh64l* | sh*-*-linux* | \
2476 sh5l* | sh-superh-elf) with_endian=little,big ;;
2477 sh[1234]*-*-*) with_endian=big ;;
2478 *) with_endian=big,little ;;
2481 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2482 # First word : the default endian.
2483 # Second word: the secondary endian (optional).
2484 case ${with_endian} in
2485 big) TM_ENDIAN_CONFIG=mb ;;
2486 little) TM_ENDIAN_CONFIG=ml ;;
2487 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2488 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2489 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2491 case ${with_endian} in
2492 little*) tm_file="sh/little.h ${tm_file}" ;;
2494 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2496 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2497 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2499 tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h"
2500 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2503 sh*-superh-elf) if test x$with_libgloss != xno; then
2505 tm_file="${tm_file} sh/newlib.h"
2507 tm_file="${tm_file} sh/embed-elf.h"
2508 tm_file="${tm_file} sh/superh.h"
2509 extra_options="${extra_options} sh/superh.opt" ;;
2510 *) if test x$with_newlib = xyes \
2511 && test x$with_libgloss = xyes; then
2512 tm_file="${tm_file} sh/newlib.h"
2514 tm_file="${tm_file} sh/embed-elf.h" ;;
2518 # SHmedia, 32-bit ABI
2519 tmake_file="${tmake_file} sh/t-sh64"
2522 # SHmedia, 64-bit ABI
2523 tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5-64"
2528 tmake_file="${tmake_file} sh/t-sh64"
2529 tm_file="${tm_file} sh/sh64.h"
2530 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2533 tmake_file="${tmake_file} sh/t-sh64"
2534 tm_file="${tm_file} sh/sh64.h"
2535 if test x$with_newlib = xyes; then
2536 tm_file="${tm_file} newlib-stdint.h"
2538 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2541 tm_file="${tm_file} newlib-stdint.h"
2544 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2545 case `echo ${target} | sed 's/e[lb]-/-/'` in
2546 sh64*-*-netbsd*) sh_cpu_target=sh5-64media ;;
2547 sh64* | sh5*-*-netbsd*) sh_cpu_target=sh5-32media ;;
2548 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2549 sh4a_single*) sh_cpu_target=sh4a-single ;;
2550 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2551 sh4al) sh_cpu_target=sh4al ;;
2552 sh4a*) sh_cpu_target=sh4a ;;
2553 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2554 sh4_single*) sh_cpu_target=sh4-single ;;
2555 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2556 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2557 sh3e*) sh_cpu_target=sh3e ;;
2558 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2559 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2560 sh2a_single*) sh_cpu_target=sh2a-single ;;
2561 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2562 sh2a*) sh_cpu_target=sh2a ;;
2563 sh2e*) sh_cpu_target=sh2e ;;
2564 sh2*) sh_cpu_target=sh2 ;;
2565 *) sh_cpu_target=sh1 ;;
2567 # did the user say --without-fp ?
2568 if test x$with_fp = xno; then
2569 case ${sh_cpu_target} in
2570 sh5-*media) sh_cpu_target=${sh_cpu_target}-nofpu ;;
2572 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2573 sh4*) sh_cpu_target=sh4-nofpu ;;
2574 sh3*) sh_cpu_target=sh3 ;;
2575 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2576 sh2*) sh_cpu_target=sh2 ;;
2577 *) echo --without-fp not available for $target: ignored
2579 tm_defines="$tm_defines STRICT_NOFPU=1"
2581 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2582 case $sh_cpu_default in
2583 sh5-64media-nofpu | sh5-64media | \
2584 sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
2585 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2586 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2587 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2588 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2589 "") sh_cpu_default=${sh_cpu_target} ;;
2590 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2592 sh_multilibs=${with_multilib_list}
2593 if test "$sh_multilibs" = "default" ; then
2595 sh64-superh-linux* | \
2596 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2597 sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
2598 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2599 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2600 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2601 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2603 if test x$with_fp = xno; then
2604 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`"
2607 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2608 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2609 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2610 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2611 for sh_multilib in ${sh_multilibs}; do
2612 case ${sh_multilib} in
2613 m1 | m2 | m2e | m3 | m3e | \
2614 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2615 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2616 m2a | m2a-single | m2a-single-only | m2a-nofpu | \
2617 m5-64media | m5-64media-nofpu | \
2618 m5-32media | m5-32media-nofpu | \
2619 m5-compact | m5-compact-nofpu)
2620 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2621 # It is passed to MULTIILIB_OPTIONS verbatim.
2622 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2623 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2625 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2626 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2627 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2629 echo "with_multilib_list=${sh_multilib} not supported."
2634 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2635 if test x${enable_incomplete_targets} = xyes ; then
2636 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"
2638 tm_file="$tm_file ./sysroot-suffix.h"
2639 tmake_file="$tmake_file t-sysroot-suffix"
2642 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2643 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2646 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2647 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2650 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2653 tmake_file="sparc/t-sparc sparc/t-leon"
2656 tmake_file="sparc/t-sparc sparc/t-leon3"
2659 tmake_file="sparc/t-sparc sparc/t-elf"
2664 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2665 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2668 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2669 extra_options="${extra_options} sparc/long-double-switch.opt"
2672 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2675 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2678 tmake_file="${tmake_file} sparc/t-sparc"
2681 if test x$enable_targets = xall; then
2682 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2683 tmake_file="${tmake_file} sparc/t-linux64"
2685 tm_file="${tm_file} sparc/linux.h"
2686 tmake_file="${tmake_file} sparc/t-linux"
2690 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2691 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2692 extra_options="${extra_options} sparc/long-double-switch.opt"
2693 tmake_file="${tmake_file} sparc/t-sparc"
2696 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2698 sparc64-*-* | sparcv9-*-*)
2699 tm_file="sparc/default-64.h ${tm_file}"
2702 test x$with_cpu != x || with_cpu=v9
2705 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2708 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2709 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2712 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2713 extra_options="${extra_options}"
2714 tmake_file="${tmake_file} sparc/t-sparc"
2717 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2718 extra_options="${extra_options}"
2719 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2722 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"
2723 extra_options="${extra_options} sparc/long-double-switch.opt"
2724 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2726 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2727 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2728 extra_options="${extra_options} sparc/long-double-switch.opt"
2729 case "x$with_cpu" in
2731 x) with_cpu=ultrasparc ;;
2732 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2734 tmake_file="${tmake_file} sparc/t-sparc"
2737 tm_file="sparc/biarch64.h ${tm_file}"
2738 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2739 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2740 extra_options="${extra_options} sparc/long-double-switch.opt"
2741 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2744 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2745 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2746 extra_options="${extra_options} openbsd.opt"
2747 extra_options="${extra_options}"
2750 tmake_file="${tmake_file} sparc/t-sparc"
2753 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2754 tmake_file="spu/t-spu-elf"
2755 native_system_header_dir=/include
2756 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2757 extra_modes=spu/spu-modes.def
2758 c_target_objs="${c_target_objs} spu-c.o"
2759 cxx_target_objs="${cxx_target_objs} spu-c.o"
2762 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
2763 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
2764 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
2768 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
2769 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
2770 tm_file="${tm_file} ./sysroot-suffix.h"
2771 tmake_file="t-sysroot-suffix t-slibgcc"
2772 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
2776 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
2777 tmake_file="${tmake_file} tilegx/t-tilegx"
2778 extra_objs="${extra_objs} mul-tables.o"
2779 c_target_objs="${c_target_objs} tilegx-c.o"
2780 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
2781 extra_headers="feedback.h"
2784 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2789 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
2790 tmake_file="${tmake_file} tilepro/t-tilepro"
2791 extra_objs="${extra_objs} mul-tables.o"
2792 c_target_objs="${c_target_objs} tilepro-c.o"
2793 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
2794 extra_headers="feedback.h"
2797 target_cpu_default="TARGET_CPU_generic"
2798 tm_file="dbxelf.h elfos.h v850/v850.h"
2799 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
2800 tmake_file="${tmake_file} v850/t-v850"
2801 tmake_file="${tmake_file} v850/t-rtems"
2803 c_target_objs="v850-c.o"
2804 cxx_target_objs="v850-c.o"
2809 target_cpu_default="TARGET_CPU_v850e3v5"
2812 target_cpu_default="TARGET_CPU_v850e2v3"
2815 target_cpu_default="TARGET_CPU_v850e2"
2817 v850e1-*-* | v850es-*-*)
2818 target_cpu_default="TARGET_CPU_v850e1"
2821 target_cpu_default="TARGET_CPU_v850e"
2824 target_cpu_default="TARGET_CPU_generic"
2827 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
2828 if test x$stabs = xyes
2830 tm_file="${tm_file} dbx.h"
2833 c_target_objs="v850-c.o"
2834 cxx_target_objs="v850-c.o"
2838 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
2839 extra_options="${extra_options} vax/elf.opt"
2842 tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
2843 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
2846 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-pthread.h vax/openbsd.h"
2847 extra_options="${extra_options} openbsd.opt"
2851 # For historical reasons, the target files omit the 'x'.
2852 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
2853 tm_p_file=stormy16/stormy16-protos.h
2854 md_file=stormy16/stormy16.md
2855 out_file=stormy16/stormy16.c
2856 extra_options=stormy16/stormy16.opt
2857 tmake_file="stormy16/t-stormy16"
2860 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
2861 extra_options="${extra_options} xtensa/elf.opt"
2864 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
2865 tmake_file="${tmake_file} xtensa/t-xtensa"
2868 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
2873 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
2874 c_target_objs="m32c-pragma.o"
2875 cxx_target_objs="m32c-pragma.o"
2878 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2879 c_target_objs="m32c-pragma.o"
2880 cxx_target_objs="m32c-pragma.o"
2883 echo "*** Configuration ${target} not supported" 1>&2
2889 i[34567]86-*-linux* | x86_64-*-linux*)
2890 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
2892 i[34567]86-*-* | x86_64-*-*)
2893 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
2895 powerpc*-*-* | rs6000-*-*)
2896 tm_file="${tm_file} rs6000/option-defaults.h"
2899 # Build mkoffload tool
2901 *-intelmic-* | *-intelmicemul-*)
2902 tmake_file="${tmake_file} i386/t-intelmic"
2906 if [ "$target_has_targetcm" = "no" ]; then
2907 c_target_objs="$c_target_objs default-c.o"
2908 cxx_target_objs="$cxx_target_objs default-c.o"
2911 if [ "$common_out_file" = "" ]; then
2912 if [ "$target_has_targetm_common" = "yes" ]; then
2913 common_out_file="$cpu_type/$cpu_type-common.c"
2915 common_out_file="default-common.c"
2919 # Support for --with-cpu and related options (and a few unrelated options,
2923 echo "--with-cpu must be passed a value" 1>&2
2928 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
2929 # to generic if there is no processor scheduler model for the target.
2932 arch_without_sse2=no
2933 arch_without_64bit=no
2936 if test $fbsd_major -ge 6; then
2942 arch_without_sse2=yes
2943 arch_without_64bit=yes
2948 arch_without_sse2=yes
2949 arch_without_64bit=yes
2954 arch_without_sse2=yes
2955 arch_without_64bit=yes
2958 arch_without_sse2=yes
2959 arch_without_64bit=yes
2960 case ${target_noncanonical} in
2973 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
2983 i686-*-* | i786-*-*)
2984 case ${target_noncanonical} in
3009 amdfam10-*|barcelona-*)
3013 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3017 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3021 athlon_xp-*|athlon_mp-*|athlon_4-*)
3024 arch_without_sse2=yes
3025 arch_without_64bit=yes
3027 athlon_tbird-*|athlon-*)
3030 arch_without_sse2=yes
3035 arch_without_sse2=yes
3040 arch_without_sse2=yes
3042 pentium3-*|pentium3m-*)
3045 arch_without_sse2=yes
3047 pentium4-*|pentium4m-*)
3086 arch_without_sse2=yes
3091 arch_without_sse2=yes
3092 arch_without_64bit=yes
3097 case ${target_noncanonical} in
3122 amdfam10-*|barcelona-*)
3126 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3130 k8-*|opteron-*|athlon_64-*)
3162 # If there is no $with_cpu option, try to infer one from ${target}.
3163 # This block sets nothing except for with_cpu.
3164 if test x$with_cpu = x ; then
3166 i[34567]86-*-*|x86_64-*-*)
3184 frv-*-*linux* | frv400-*-*linux*)
3191 case "$with_arch" in
3193 with_cpu=${default_cf_cpu}
3196 with_cpu=m${default_m68k_cpu}
3201 if test x$enable_e500_double = xyes; then
3219 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3225 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3227 i[34567]86-*-*|x86_64-*-*)
3228 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3229 if test x$with_cpu_32 = x; then
3230 with_cpu_32=$with_cpu
3232 if test x$with_cpu_64 = x; then
3233 with_cpu_64=$with_cpu
3241 # Support for --with-arch and related options (and a few unrelated options,
3243 case ${with_arch} in
3245 echo "--with-arch must be passed a value" 1>&2
3250 # If there is no $with_arch option, try to infer one from ${target}.
3251 # This block sets nothing except for with_arch.
3252 if test x$with_arch = x ; then
3254 i[34567]86-*-darwin*|x86_64-*-darwin*)
3255 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3256 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3259 # --with-fpmath sets the default ISA to SSE2, which is the same
3260 # ISA supported by Pentium 4.
3261 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3270 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3278 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3280 i[34567]86-*-darwin*|x86_64-*-darwin*)
3281 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3282 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3284 i[34567]86-*-*|x86_64-*-*)
3285 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3286 if test x$with_arch_32 = x; then
3287 with_arch_32=$with_arch
3289 if test x$with_arch_64 = x; then
3290 if test $arch_without_64bit = yes; then
3291 # Set the default 64bit arch to x86-64 if the default arch
3292 # doesn't support 64bit.
3295 with_arch_64=$with_arch
3299 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3300 # Set the default 64bit arch to x86-64 if the default arch
3301 # doesn't support 64bit and we need 64bit ISA.
3302 with_arch_32=$with_arch
3310 # Infer a default setting for --with-float.
3311 if test x$with_float = x; then
3313 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3314 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3315 # comply with IEEE 754.
3321 # Infer a default setting for --with-fpu.
3322 if test x$with_fpu = x; then
3324 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3325 # The R5900 FPU only supports single precision.
3331 # Support --with-fpmath.
3332 if test x$with_fpmath != x; then
3334 i[34567]86-*-* | x86_64-*-*)
3335 case ${with_fpmath} in
3337 tm_file="${tm_file} i386/avxmath.h"
3340 tm_file="${tm_file} i386/ssemath.h"
3343 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3349 echo "--with-fpmath isn't supported for $target." 1>&2
3355 # Similarly for --with-schedule.
3356 if test x$with_schedule = x; then
3359 # Override default PA8000 scheduling model.
3360 with_schedule=7100LC
3365 # Infer a default setting for --with-llsc.
3366 if test x$with_llsc = x; then
3368 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3369 # The R5900 doesn't support LL(D) and SC(D).
3373 # The kernel emulates LL and SC where necessary.
3379 # Validate and mark as valid any --with options supported
3380 # by this target. In order to use a particular --with option
3381 # you must list it in supported_defaults; validating the value
3382 # is optional. This case statement should set nothing besides
3383 # supported_defaults.
3388 supported_defaults="abi cpu arch"
3389 for which in cpu arch; do
3391 eval "val=\$with_$which"
3392 base_val=`echo $val | sed -e 's/\+.*//'`
3393 ext_val=`echo $val | sed -e 's/[a-z0-9\-]\+//'`
3395 if [ $which = arch ]; then
3396 def=aarch64-arches.def
3397 pattern=AARCH64_ARCH
3399 def=aarch64-cores.def
3400 pattern=AARCH64_CORE
3403 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3405 # Find the base CPU or ARCH id in aarch64-cores.def or
3406 # aarch64-arches.def
3407 if [ x"$base_val" = x ] \
3408 || grep "^$pattern(\"$base_val\"," \
3409 ${srcdir}/config/aarch64/$def \
3412 if [ $which = arch ]; then
3413 base_id=`grep "^$pattern(\"$base_val\"," \
3414 ${srcdir}/config/aarch64/$def | \
3415 sed -e 's/^[^,]*,[ ]*//' | \
3417 # Extract the architecture flags from aarch64-arches.def
3418 ext_mask=`grep "^$pattern(\"$base_val\"," \
3419 ${srcdir}/config/aarch64/$def | \
3423 base_id=`grep "^$pattern(\"$base_val\"," \
3424 ${srcdir}/config/aarch64/$def | \
3425 sed -e 's/^[^,]*,[ ]*//' | \
3429 while [ x"$ext_val" != x ]
3431 ext_val=`echo $ext_val | sed -e 's/\+//'`
3432 ext=`echo $ext_val | sed -e 's/\+.*//'`
3433 base_ext=`echo $ext | sed -e 's/^no//'`
3435 if [ x"$base_ext" = x ] \
3436 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3437 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3440 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3441 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3442 sed -e 's/^[^,]*,[ ]*//' | \
3444 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3445 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3446 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3447 sed -e 's/,.*$//' | \
3450 if [ $ext = $base_ext ]; then
3452 ext_mask="("$ext_mask") | ("$ext_on")"
3454 # Removing extension
3455 ext_mask="("$ext_mask") & ~("$ext_off")"
3460 echo "Unknown extension used in --with-$which=$val" 1>&2
3463 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3466 ext_mask="(("$ext_mask") << 6)"
3467 if [ x"$base_id" != x ]; then
3468 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3472 echo "Unknown $which used in --with-$which=$val" 1>&2
3479 supported_defaults="cpu tune"
3480 for which in cpu tune; do
3481 eval "val=\$with_$which"
3484 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3485 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3489 echo "Unknown CPU used in --with-$which=$val" 1>&2
3496 arc*-*-*) # was: arc*-*-linux-uclibc)
3497 supported_defaults="cpu"
3499 arc600|arc601|arc700)
3501 *) echo "Unknown cpu type"
3508 supported_defaults="arch cpu float tune fpu abi mode tls"
3509 for which in cpu tune; do
3510 # See if it matches any of the entries in arm-cores.def
3511 eval "val=\$with_$which"
3512 if [ x"$val" = x ] \
3513 || grep "^ARM_CORE(\"$val\"," \
3514 ${srcdir}/config/arm/arm-cores.def \
3517 new_val=`grep "^ARM_CORE(\"$val\"," \
3518 ${srcdir}/config/arm/arm-cores.def | \
3519 sed -e 's/^[^,]*,[ ]*//' | \
3521 eval "target_${which}_cname=$new_val"
3522 echo "For $val real value is $new_val"
3525 echo "Unknown CPU used in --with-$which=$val" 1>&2
3530 # See if it matches any of the entries in arm-arches.def
3531 if [ x"$with_arch" = x ] \
3532 || grep "^ARM_ARCH(\"$with_arch\"," \
3533 ${srcdir}/config/arm/arm-arches.def \
3538 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
3542 case "$with_float" in
3544 | soft | hard | softfp)
3548 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3553 # see if it matches any of the entries in arm-fpus.def
3554 if [ x"$with_fpu" = x ] \
3555 || grep "^ARM_FPU(\"$with_fpu\"," \
3556 ${srcdir}/config/arm/arm-fpus.def \
3561 echo "Unknown fpu used in --with-fpu=$with_fpu" 1>&2
3567 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3571 echo "Unknown ABI used in --with-abi=$with_abi"
3576 case "$with_mode" in
3582 echo "Unknown mode used in --with-mode=$with_mode"
3593 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3598 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3599 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3603 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3604 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3608 # Add extra multilibs
3609 if test "x$with_multilib_list" != x; then
3610 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3611 for arm_multilib in ${arm_multilibs}; do
3612 case ${arm_multilib} in
3614 # Note that arm/t-aprofile is a
3615 # stand-alone make file fragment to be
3616 # used only with itself. We do not
3617 # specifically use the
3618 # TM_MULTILIB_OPTION framework because
3619 # this shorthand is more
3620 # pragmatic. Additionally it is only
3621 # designed to work without any
3622 # with-cpu, with-arch with-mode
3623 # with-fpu or with-float options.
3624 if test "x$with_arch" != x \
3625 || test "x$with_cpu" != x \
3626 || test "x$with_float" != x \
3627 || test "x$with_fpu" != x \
3628 || test "x$with_mode" != x ; then
3629 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2
3632 tmake_file="${tmake_file} arm/t-aprofile"
3638 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3647 supported_defaults=cpu
3652 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3658 fido-*-* | m68k*-*-*)
3659 supported_defaults="arch cpu"
3660 case "$with_arch" in
3662 m68k_arch_family="$with_arch"
3665 echo "Invalid --with-arch=$with_arch" 1>&2
3670 # We always have a $with_cpu setting here.
3672 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3673 m68k_cpu_ident=$with_cpu
3676 m68k_cpu_ident=m68020
3677 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3680 m68k_cpu_ident=m68020
3681 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3684 # We need the C identifier rather than the string.
3685 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
3686 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
3687 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
3688 ${srcdir}/config/m68k/m68k-devices.def`
3689 if [ x"$m68k_cpu_ident" = x ] ; then
3690 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
3693 with_cpu="mcpu=$with_cpu"
3699 supported_defaults="arch schedule"
3701 case "$with_arch" in
3702 "" | 1.0 | 1.1 | 2.0)
3706 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
3711 case "$with_schedule" in
3712 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
3716 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
3722 i[34567]86-*-* | x86_64-*-*)
3723 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
3724 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3725 eval "val=\$with_$which"
3726 case " $x86_archs " in
3734 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
3743 if test x${val} != x; then
3744 case " $x86_64_archs " in
3749 # Allow $x86_cpus --with-cpu=/--with-tune=
3752 case " $x86_cpus " in
3757 echo "Unknown CPU given in --with-$which=$val." 1>&2
3763 echo "Unknown CPU given in --with-$which=$val." 1>&2
3776 supported_defaults="abi arch arch_32 arch_64 float fpu nan fp_32 odd_spreg_32 tune tune_32 tune_64 divide llsc mips-plt synci"
3778 case ${with_float} in
3783 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3789 "" | single | double)
3793 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
3803 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
3808 case ${with_fp_32} in
3813 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
3818 case ${with_odd_spreg_32} in
3820 with_odd_spreg_32="odd-spreg"
3823 with_odd_spreg_32="no-odd-spreg"
3829 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
3835 "" | 32 | o64 | n32 | 64 | eabi)
3839 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
3844 case ${with_divide} in
3845 "" | breaks | traps)
3849 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
3854 case ${with_llsc} in
3865 echo "Unknown llsc type used in --with-llsc" 1>&2
3870 case ${with_mips_plt} in
3875 with_mips_plt=no-plt
3880 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
3885 case ${with_synci} in
3895 echo "Unknown synci type used in --with-synci" 1>&2
3902 supported_defaults="arch nds32_lib"
3904 # process --with-arch
3905 case "${with_arch}" in
3910 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v3 v3m" 1>&2
3915 # process --with-nds32-lib
3916 case "${with_nds32_lib}" in
3918 # the default library is newlib
3919 with_nds32_lib=newlib
3928 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
3934 powerpc*-*-* | rs6000-*-*)
3935 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64"
3937 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3938 eval "val=\$with_$which"
3940 default32 | default64)
3945 echo "$val only valid for --with-cpu and --with-tune." 1>&2
3949 with_which="with_$which"
3953 tm_defines="${tm_defines} CONFIG_PPC405CR"
3954 eval "with_$which=405"
3956 "" | common | native \
3957 | power | power[2345678] | power6x | powerpc | powerpc64 \
3958 | rios | rios1 | rios2 | rsc | rsc1 | rs64a \
3959 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
3960 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
3961 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
3962 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
3963 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
3967 echo "Unknown cpu used in --with-$which=$val." 1>&2
3974 "" | elfv1 | elfv2 )
3978 echo "Unknown ABI used in --with-abi=$with_abi"
3985 supported_defaults="arch mode tune"
3987 for which in arch tune; do
3988 eval "val=\$with_$which"
3990 "" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12)
3994 echo "Unknown cpu used in --with-$which=$val." 1>&2
4000 case ${with_mode} in
4005 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4011 sh[123456ble]-*-* | sh-*-*)
4012 supported_defaults="cpu"
4013 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4014 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4017 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4019 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4022 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4023 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4024 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4025 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4031 supported_defaults="cpu float tune"
4033 for which in cpu tune; do
4034 eval "val=\$with_$which"
4036 "" | sparc | sparcv9 | sparc64 \
4038 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4039 | sparclite | f930 | f934 | sparclite86x \
4040 | sparclet | tsc701 \
4041 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4042 | niagara3 | niagara4)
4046 echo "Unknown cpu used in --with-$which=$val" 1>&2
4052 case ${with_float} in
4057 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4064 supported_defaults="arch tune"
4066 for which in arch tune; do
4067 eval "val=\$with_$which"
4069 "" | cell | celledp)
4073 echo "Unknown cpu used in --with-$which=$val." 1>&2
4081 supported_defaults="arch"
4083 case ${with_arch} in
4084 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4088 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4095 supported_defaults=cpu
4097 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4101 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4108 # Set some miscellaneous flags for particular targets.
4109 target_cpu_default2=
4112 if test x"$target_cpu_cname" != x
4114 target_cpu_default2=$target_cpu_cname
4119 if test x$target_cpu_cname = x
4121 target_cpu_default2=TARGET_CPU_generic
4123 target_cpu_default2=TARGET_CPU_$target_cpu_cname
4128 if test x$gas = xyes
4130 target_cpu_default2="MASK_GAS"
4134 fido*-*-* | m68k*-*-*)
4135 target_cpu_default2=$m68k_cpu_ident
4136 tmake_file="m68k/t-opts $tmake_file"
4137 if [ x"$m68k_arch_family" != x ]; then
4138 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4142 i[34567]86-*-darwin* | x86_64-*-darwin*)
4144 i[34567]86-*-linux* | x86_64-*-linux*)
4145 tmake_file="$tmake_file i386/t-linux"
4147 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4148 tmake_file="$tmake_file i386/t-kfreebsd"
4151 tmake_file="$tmake_file i386/t-gnu"
4153 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4155 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4157 i[34567]86-*-mingw* | x86_64-*-mingw*)
4159 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4161 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4167 if test x$gnu_ld = xyes
4169 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4173 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4176 if test x$with_arch != x; then
4177 default_mips_arch=$with_arch
4179 if test x$with_abi != x; then
4180 default_mips_abi=$with_abi
4182 case ${default_mips_arch} in
4183 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4184 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4185 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4186 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4187 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4188 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4189 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4190 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4192 case ${default_mips_abi} in
4193 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4194 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4195 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4196 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4197 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4199 tmake_file="mips/t-mips $tmake_file"
4202 powerpc*-*-* | rs6000-*-*)
4203 # FIXME: The PowerPC port uses the value set at compile time,
4204 # although it's only cosmetic.
4205 if test "x$with_cpu" != x
4207 target_cpu_default2="\\\"$with_cpu\\\""
4209 out_file=rs6000/rs6000.c
4210 c_target_objs="${c_target_objs} rs6000-c.o"
4211 cxx_target_objs="${cxx_target_objs} rs6000-c.o"
4212 tmake_file="rs6000/t-rs6000 ${tmake_file}"
4215 sh[123456ble]*-*-* | sh-*-*)
4216 c_target_objs="${c_target_objs} sh-c.o"
4217 cxx_target_objs="${cxx_target_objs} sh-c.o"
4221 # Some standard aliases.
4226 xsparcv9 | xsparc64)
4231 if test x$with_tune = x ; then
4242 # The SPARC port checks this value at compile-time.
4243 target_cpu_default2="TARGET_CPU_$with_cpu"
4247 case "x$with_cpu" in
4250 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4251 target_cpu_default2="TARGET_CPU_$with_cpu"
4254 target_cpu_default2="TARGET_CPU_v850e1"
4261 all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu nan fp_32 odd_spreg_32 divide llsc mips-plt synci tls"
4262 for option in $all_defaults
4264 eval "val=\$with_"`echo $option | sed s/-/_/g`
4265 if test -n "$val"; then
4266 case " $supported_defaults " in
4270 echo "This target does not support --with-$option." 2>&1
4271 echo "Valid --with options are: $supported_defaults" 2>&1
4278 t="{ \"$option\", \"$val\" }"
4280 t="${t}, { \"$option\", \"$val\" }"
4287 configure_default_options="{ { NULL, NULL} }"
4289 configure_default_options="{ ${t} }"
4292 if test "$target_cpu_default2" != ""
4294 if test "$target_cpu_default" != ""
4296 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4298 target_cpu_default=$target_cpu_default2
4303 i[34567]86-*-* | x86_64-*-*)
4304 if test x$enable_as_accelerator = xyes; then
4305 extra_programs="mkoffload\$(exeext)"