1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2014 Free Software Foundation, Inc.
4 #This file is part of GCC.
6 #GCC is free software; you can redistribute it and/or modify it under
7 #the terms of the GNU General Public License as published by the Free
8 #Software Foundation; either version 3, or (at your option) any later
11 #GCC is distributed in the hope that it will be useful, but WITHOUT
12 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 #FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 #You should have received a copy of the GNU General Public License
17 #along with GCC; see the file COPYING3. If not see
18 #<http://www.gnu.org/licenses/>.
20 # This is the GCC target-specific configuration file
21 # where a configuration type is mapped to different system-specific
22 # definitions and files. This is invoked by the autoconf-generated
23 # configure script. Putting it in a separate shell file lets us skip
24 # running autoconf when modifying target-specific information.
26 # When you change the cases in the OS or target switches, consider
27 # updating ../libgcc/config.host also.
29 # This file switches on the shell variable ${target}, and also uses the
30 # following shell variables:
32 # with_* Various variables as set by configure.
34 # enable_threads Either the name, yes or no depending on whether
35 # threads support was requested.
37 # default_use_cxa_atexit
38 # The default value for the $enable___cxa_atexit
39 # variable. enable___cxa_atexit needs to be set to
40 # "yes" for the correct operation of C++ destructors
41 # but it relies upon the presence of a non-standard C
42 # library function called __cxa_atexit.
43 # Since not all C libraries provide __cxa_atexit the
44 # default value of $default_use_cxa_atexit is set to
45 # "no" except for targets which are known to be OK.
47 # default_gnu_indirect_function
48 # The default value for the $enable_gnu_indirect_function
49 # variable. enable_gnu_indirect_function relies
50 # upon the presence of a non-standard gnu ifunc support
51 # in the assembler, linker and dynamic linker.
52 # Since not all libraries provide the dynamic linking
53 # support, the default value of
54 # $default_gnu_indirect_function is set to
55 # "no" except for targets which are known to be OK.
57 # gas_flag Either yes or no depending on whether GNU as was
60 # gnu_ld_flag Either yes or no depending on whether GNU ld was
63 # This file sets the following shell variables for use by the
64 # autoconf-generated configure script:
66 # cpu_type The name of the cpu, if different from the first
67 # chunk of the canonical target name.
69 # tm_defines List of target macros to define for all compilations.
71 # tm_file A list of target macro files, if different from
72 # "$cpu_type/$cpu_type.h". Usually it's constructed
73 # per target in a way like this:
74 # tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h"
75 # Note that the preferred order is:
76 # - specific target header "${cpu_type}/${cpu_type.h}"
77 # - generic headers like dbxelf.h elfos.h, etc.
78 # - specializing target headers like ${cpu_type.h}/elf.h
79 # This helps to keep OS specific stuff out of the CPU
80 # defining header ${cpu_type}/${cpu_type.h}.
82 # It is possible to include automatically-generated
83 # build-directory files by prefixing them with "./".
84 # All other files should relative to $srcdir/config.
86 # tm_p_file Location of file with declarations for functions
89 # out_file The name of the machine description C support
90 # file, if different from "$cpu_type/$cpu_type.c".
92 # common_out_file The name of the source file for code shared between
93 # the compiler proper and the driver.
95 # md_file The name of the machine-description file, if
96 # different from "$cpu_type/$cpu_type.md".
98 # tmake_file A list of machine-description-specific
99 # makefile-fragments, if different from
100 # "$cpu_type/t-$cpu_type".
102 # extra_modes The name of the file containing a list of extra
103 # machine modes, if necessary and different from
104 # "$cpu_type/$cpu_type-modes.def".
106 # extra_objs List of extra objects that should be linked into
107 # the compiler proper (cc1, cc1obj, cc1plus)
108 # depending on target.
110 # extra_gcc_objs List of extra objects that should be linked into
111 # the compiler driver (gcc) depending on target.
113 # extra_headers List of used header files from the directory
114 # config/${cpu_type}.
116 # user_headers_inc_next_pre
117 # List of header file names of internal gcc header
118 # files, which should be prefixed by an include_next.
119 # user_headers_inc_next_post
120 # List of header file names of internal gcc header
121 # files, which should be postfixed by an include_next.
122 # use_gcc_tgmath If set, add tgmath.h to the list of used header
125 # use_gcc_stdint If "wrap", install a version of stdint.h that
126 # wraps the system's copy for hosted compilations;
127 # if "provide", provide a version of systems without
128 # such a system header; otherwise "none", do not
129 # provide such a header at all.
131 # extra_programs List of extra executables compiled for this target
132 # machine, used when linking.
134 # extra_options List of target-dependent .opt files.
136 # c_target_objs List of extra target-dependent objects that be
137 # linked into the C compiler only.
139 # cxx_target_objs List of extra target-dependent objects that be
140 # linked into the C++ compiler only.
142 # fortran_target_objs List of extra target-dependent objects that be
143 # linked into the fortran compiler only.
145 # target_gtfiles List of extra source files with type information.
147 # xm_defines List of macros to define when compiling for the
150 # xm_file List of files to include when compiling for the
153 # use_collect2 Set to yes or no, depending on whether collect2
156 # target_cpu_default Set to override the default target model.
158 # gdb_needs_out_file_path
159 # Set to yes if gdb needs a dir command with
160 # `dirname $out_file`.
162 # thread_file Set to control which thread package to use.
164 # gas Set to yes or no depending on whether the target
165 # system normally uses GNU as.
167 # configure_default_options
168 # Set to an initializer for configure_default_options
169 # in configargs.h, based on --with-cpu et cetera.
171 # native_system_header_dir
172 # Where system header files are found for this
173 # target. This defaults to /usr/include. If
174 # the --with-sysroot configure option or the
175 # --sysroot command line option is used this
176 # will be relative to the sysroot.
177 # target_type_format_char
178 # The default character to be used for formatting
180 # .type symbol_name, ${t_t_f_c}<property>
183 # The following variables are used in each case-construct to build up the
184 # outgoing variables:
186 # gnu_ld Set to yes or no depending on whether the target
187 # system normally uses GNU ld.
189 # target_has_targetcm Set to yes or no depending on whether the target
190 # has its own definition of targetcm.
192 # target_has_targetm_common Set to yes or no depending on whether the
193 # target has its own definition of targetm_common.
199 user_headers_inc_next_pre=
200 user_headers_inc_next_post=
210 target_has_targetcm=no
211 target_has_targetm_common=yes
214 # Set this to force installation and use of collect2.
216 # Set this to override the default target model.
218 # Set this if gdb needs a dir command with `dirname $out_file`
219 gdb_needs_out_file_path=
220 # Set this to control which thread package will be used.
222 # Reinitialize these from the flag values every loop pass, since some
223 # configure entries modify them.
225 gnu_ld="$gnu_ld_flag"
226 default_use_cxa_atexit=no
227 default_gnu_indirect_function=no
230 native_system_header_dir=/usr/include
231 target_type_format_char='@'
233 # Don't carry these over build->host->target. Please.
237 # Obsolete configurations.
239 # Currently there are no obsolete targets.
242 if test "x$enable_obsolete" != xyes; then
243 echo "*** Configuration ${target} is obsolete." >&2
244 echo "*** Specify --enable-obsolete to build it anyway." >&2
245 echo "*** Support will be REMOVED in the next major release of GCC," >&2
246 echo "*** unless a maintainer comes forward." >&2
251 # Unsupported targets list. Do not put an entry in this list unless
252 # it would otherwise be caught by a more permissive pattern. The list
253 # should be in alphabetical order.
255 # Avoid special cases that are not obsolete
265 | i[34567]86-go32-* \
266 | i[34567]86-*-go32* \
267 | m68k-*-uclinuxoldabi* \
268 | mips64orion*-*-rtems* \
270 | sparc-hal-solaris2* \
272 | *-*-freebsd[12] | *-*-freebsd[12].* \
273 | *-*-freebsd*aout* \
281 | *-*-solaris2.[0-9] \
282 | *-*-solaris2.[0-9].* \
286 echo "*** Configuration ${target} not supported" 1>&2
291 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
292 # updated in each machine entry. Also set default extra_headers for some
295 cpu_type=`echo ${target} | sed 's/-.*$//'`
300 tmake_file=m32c/t-m32c
301 target_has_targetm_common=no
305 extra_headers="arm_neon.h arm_acle.h"
306 extra_objs="aarch64-builtins.o aarch-common.o"
307 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c"
308 target_has_targetm_common=yes
312 extra_options="${extra_options} g.opt"
322 extra_objs="arm-builtins.o aarch-common.o"
323 extra_headers="mmintrin.h arm_neon.h arm_acle.h"
324 target_type_format_char='%'
325 c_target_objs="arm-c.o"
326 cxx_target_objs="arm-c.o"
327 extra_options="${extra_options} arm/arm-tables.opt"
328 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
332 c_target_objs="avr-c.o"
333 cxx_target_objs="avr-c.o"
334 extra_options="${extra_options} avr/avr-tables.opt"
343 extra_options="${extra_options} g.opt"
345 moxie*) cpu_type=moxie
346 target_has_targetm_common=no
350 extra_headers=math-68881.h
351 extra_options="${extra_options} m68k/m68k-tables.opt"
355 c_target_objs="i386-c.o"
356 cxx_target_objs="i386-c.o"
357 extra_options="${extra_options} fused-madd.opt"
358 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
359 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
360 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
361 immintrin.h x86intrin.h avxintrin.h xopintrin.h
362 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
363 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
364 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
365 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
366 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
367 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
368 shaintrin.h clflushoptintrin.h xsavecintrin.h
369 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
370 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
371 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
372 avx512vbmivlintrin.h clwbintrin.h pcommitintrin.h"
376 c_target_objs="i386-c.o"
377 cxx_target_objs="i386-c.o"
378 extra_options="${extra_options} fused-madd.opt"
379 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
380 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
381 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
382 immintrin.h x86intrin.h avxintrin.h xopintrin.h
383 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
384 lzcntintrin.h bmiintrin.h tbmintrin.h bmi2intrin.h
385 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
386 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
387 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
388 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
389 shaintrin.h clflushoptintrin.h xsavecintrin.h
390 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
391 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
392 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
393 avx512vbmivlintrin.h clwbintrin.h pcommitintrin.h"
396 extra_headers=ia64intrin.h
397 extra_options="${extra_options} g.opt fused-madd.opt"
403 extra_options="${extra_options} g.opt"
407 extra_options="${extra_options} g.opt"
410 extra_headers=math-68881.h
411 extra_options="${extra_options} m68k/m68k-tables.opt"
415 extra_options="${extra_options} g.opt"
419 extra_headers="loongson.h"
420 extra_options="${extra_options} g.opt mips/mips-tables.opt"
424 extra_headers="nds32_intrinsic.h"
425 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"
429 extra_options="${extra_options} g.opt"
436 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"
438 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500)
442 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
445 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
449 c_target_objs="sparc-c.o"
450 cxx_target_objs="sparc-c.o"
451 extra_headers="visintrin.h"
458 extra_options="${extra_options} fused-madd.opt"
459 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h"
461 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
462 sh[123456789lbe]*-*-* | sh-*-*)
464 extra_options="${extra_options} fused-madd.opt"
465 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
472 extra_headers="c6x_intrinsics.h"
473 extra_options="${extra_options} c6x/c6x-tables.opt"
476 extra_options="${extra_options} fused-madd.opt"
486 tm_file=${cpu_type}/${cpu_type}.h
487 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
489 tm_p_file=${cpu_type}/${cpu_type}-protos.h
492 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
494 extra_modes=${cpu_type}/${cpu_type}-modes.def
496 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
498 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
503 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
506 if test "x$with_multilib_list" = xilp32; then
507 tm_file="aarch64/biarchilp32.h ${tm_file}"
509 tm_file="aarch64/biarchlp64.h ${tm_file}"
513 tm_file="aarch64/biarchilp32.h ${tm_file}"
516 tm_file="aarch64/biarchlp64.h ${tm_file}"
519 echo "Unknown ABI used in --with-abi=$with_abi"
524 if test "x$with_abi" != x; then
525 echo "This target does not support --with-abi."
528 if test "x$enable_cld" = xyes; then
529 tm_defines="${tm_defines} USE_IX86_CLD=1"
531 if test "x$enable_frame_pointer" = xyes; then
532 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
534 tm_file="vxworks-dummy.h ${tm_file}"
539 if test "x$with_multilib_list" = xmx32; then
540 tm_file="i386/biarchx32.h ${tm_file}"
542 tm_file="i386/biarch64.h ${tm_file}"
546 tm_file="i386/biarch64.h ${tm_file}"
549 tm_file="i386/biarchx32.h ${tm_file}"
552 echo "Unknown ABI used in --with-abi=$with_abi"
555 if test "x$enable_cld" = xyes; then
556 tm_defines="${tm_defines} USE_IX86_CLD=1"
558 if test "x$enable_frame_pointer" = xyes; then
559 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
561 tm_file="vxworks-dummy.h ${tm_file}"
564 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
565 tm_file="vxworks-dummy.h ${tm_file}"
567 mips*-*-* | sh*-*-* | sparc*-*-*)
568 tm_file="vxworks-dummy.h ${tm_file}"
572 # On a.out targets, we need to use collect2.
579 # Common C libraries.
580 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3"
582 # 32-bit x86 processors supported by --with-arch=. Each processor
583 # MUST be separated by exactly one space.
584 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
585 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
586 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
587 pentium4 pentium4m pentiumpro prescott"
589 # 64-bit x86 processors supported by --with-arch=. Each processor
590 # MUST be separated by exactly one space.
591 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
592 bdver3 bdver4 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \
593 core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \
594 sandybridge ivybridge haswell broadwell bonnell silvermont x86-64 native"
596 # Additional x86 processors supported by --with-cpu=. Each processor
597 # MUST be separated by exactly one space.
598 x86_cpus="generic intel"
600 # Common parts for widely ported systems.
603 tmake_file="t-darwin ${cpu_type}/t-darwin"
604 tm_file="${tm_file} darwin.h"
607 tm_file="${tm_file} darwin9.h"
609 *-*-darwin[12][0-9]*)
610 tm_file="${tm_file} darwin9.h darwin10.h"
613 tm_file="${tm_file} ${cpu_type}/darwin.h"
614 tm_p_file="${tm_p_file} darwin-protos.h"
615 target_gtfiles="\$(srcdir)/config/darwin.c"
616 extra_options="${extra_options} darwin.opt"
617 c_target_objs="${c_target_objs} darwin-c.o"
618 cxx_target_objs="${cxx_target_objs} darwin-c.o"
619 fortran_target_objs="darwin-f.o"
620 target_has_targetcm=yes
621 extra_objs="darwin.o"
622 extra_gcc_objs="darwin-driver.o"
623 default_use_cxa_atexit=yes
625 case ${enable_threads} in
626 "" | yes | posix) thread_file='posix' ;;
632 tmake_file="t-slibgcc"
633 case ${enable_threads} in
638 # Let these non-posix thread selections fall through if requested
641 echo 'Unknown thread configuration for DragonFly BSD'
645 extra_options="$extra_options rpath.opt dragonfly.opt"
646 default_use_cxa_atexit=yes
650 # This is the generic ELF configuration of FreeBSD. Later
651 # machine-specific sections may refine and add to this
654 # Due to tm_file entry ordering issues that vary between cpu
655 # architectures, we only define fbsd_tm_file to allow the
656 # machine-specific section to dictate the final order of all
657 # entries of tm_file with the minor exception that components
658 # of the tm_file set here will always be of the form:
660 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
662 # The machine-specific section should not tamper with this
663 # ordering but may order all other entries of tm_file as it
664 # pleases around the provided core setting.
667 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
668 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
669 tmake_file="t-slibgcc"
670 case ${enable_threads} in
672 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
678 echo 'Unknown thread configuration for FreeBSD'
682 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
683 extra_options="$extra_options rpath.opt freebsd.opt"
688 default_use_cxa_atexit=yes;;
692 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
693 extra_options="$extra_options gnu-user.opt"
696 case ${enable_threads} in
697 "" | yes | posix) thread_file='posix' ;;
699 tmake_file="t-slibgcc"
701 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu)
704 native_system_header_dir=/include
707 # Linux C libraries selection switch: glibc / uclibc / bionic.
708 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
711 tm_p_file="${tm_p_file} linux-protos.h"
712 tmake_file="${tmake_file} t-linux"
713 extra_objs="${extra_objs} linux.o"
714 extra_options="${extra_options} linux.opt"
719 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
722 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
725 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
728 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
730 default_use_cxa_atexit=yes
733 # Enable compilation for Android by default for *android* targets.
736 tm_defines="$tm_defines ANDROID_DEFAULT=1"
739 tm_defines="$tm_defines ANDROID_DEFAULT=0"
742 c_target_objs="${c_target_objs} glibc-c.o"
743 cxx_target_objs="${cxx_target_objs} glibc-c.o"
744 tmake_file="${tmake_file} t-glibc"
745 target_has_targetcm=yes
748 tmake_file="t-slibgcc"
752 # NetBSD 2.0 and later get POSIX threads enabled by default.
753 # Allow them to be explicitly enabled on any other version.
754 case ${enable_threads} in
757 *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
759 tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
765 tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
769 # NetBSD 2.0 and later provide __cxa_atexit(), which we use by
770 # default (unless overridden by --disable-__cxa_atexit).
772 *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
773 default_use_cxa_atexit=yes
778 tmake_file="t-openbsd"
779 case ${enable_threads} in
785 *-*-openbsd2.*|*-*-openbsd3.[012])
786 tm_defines="${tm_defines} HAS_LIBC_R=1" ;;
789 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
790 default_use_cxa_atexit=yes
795 case ${enable_threads} in
796 "" | yes | rtems) thread_file='rtems' ;;
797 posix) thread_file='posix' ;;
800 echo 'Unknown thread configuration for RTEMS'
804 tmake_file="${tmake_file} t-rtems"
805 extra_options="${extra_options} rtems.opt"
806 default_use_cxa_atexit=yes
810 extra_options="$extra_options gnu-user.opt"
812 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
818 # i?86-*-solaris2* needs to insert headers between cpu default and
819 # Solaris 2 specific ones.
820 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
821 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
822 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
824 if test x$gnu_ld = xyes; then
825 tm_file="usegld.h ${tm_file}"
827 if test x$gas = xyes; then
828 tm_file="usegas.h ${tm_file}"
830 tm_p_file="${tm_p_file} sol2-protos.h"
831 tmake_file="${tmake_file} t-sol2 t-slibgcc"
832 c_target_objs="${c_target_objs} sol2-c.o"
833 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
834 extra_objs="sol2.o sol2-stubs.o"
835 extra_options="${extra_options} sol2.opt"
836 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
837 "":yes:* | yes:yes:* )
843 extra_options="${extra_options} vms/vms.opt"
845 tmake_file="vms/t-vms t-slibgcc"
847 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
848 tm_p_file="${tm_p_file} vms/vms-protos.h"
849 xm_file="vms/xm-vms.h"
850 c_target_objs="vms-c.o"
851 cxx_target_objs="vms-c.o"
852 fortran_target_objs="vms-f.o"
853 use_gcc_stdint=provide
854 tm_file="${tm_file} vms/vms-stdint.h"
855 if test x$gnu_ld != xyes; then
856 # Build wrappers for native case.
857 extra_programs="ld\$(exeext) ar\$(exeext)"
858 tmake_file="$tmake_file vms/t-vmsnative"
864 extra_options="${extra_options} vxworks.opt"
865 extra_objs="$extra_objs vxworks.o"
866 case ${enable_threads} in
868 "" | yes | vxworks) thread_file='vxworks' ;;
869 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
873 # Assume that newlib is being used and so __cxa_atexit is provided.
874 default_use_cxa_atexit=yes
881 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
882 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
883 tmake_file="${tmake_file} aarch64/t-aarch64"
887 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
890 aarch64_multilibs="${with_multilib_list}"
891 if test "$aarch64_multilibs" = "default"; then
892 aarch64_multilibs="lp64,ilp32"
894 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
895 for aarch64_multilib in ${aarch64_multilibs}; do
896 case ${aarch64_multilib} in
898 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
901 echo "--with-multilib-list=${aarch64_multilib} not supported."
905 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
908 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
909 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
910 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
913 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
916 aarch64_multilibs="${with_multilib_list}"
917 if test "$aarch64_multilibs" = "default"; then
918 # TODO: turn on ILP32 multilib build after its support is mature.
919 # aarch64_multilibs="lp64,ilp32"
920 aarch64_multilibs="lp64"
922 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
923 for aarch64_multilib in ${aarch64_multilibs}; do
924 case ${aarch64_multilib} in
926 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
929 echo "--with-multilib-list=${aarch64_multilib} not supported."
933 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
936 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
937 tmake_file="${tmake_file} alpha/t-linux"
938 extra_options="${extra_options} alpha/elf.opt"
941 tm_file="elfos.h ${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
942 extra_options="${extra_options} alpha/elf.opt"
945 tm_file="elfos.h ${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h"
946 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
950 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
951 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
952 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
953 # default x-alpha is only appropriate for dec-osf.
956 tm_file="${tm_file} vms/vms.h alpha/vms.h"
957 tmake_file="${tmake_file} alpha/t-vms"
960 extra_headers="arc-simd.h"
961 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
962 tmake_file="arc/t-arc-newlib arc/t-arc"
963 case x"${with_cpu}" in
964 xarc600|xarc601|xarc700)
965 target_cpu_default="TARGET_CPU_$with_cpu"
968 if test x${with_endian} = x; then
970 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
971 *) with_endian=little ;;
974 case ${with_endian} in
976 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
978 case ${with_endian} in
979 big*) tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
982 arc*-*-linux-uclibc*)
983 extra_headers="arc-simd.h"
984 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file}"
985 tmake_file="${tmake_file} arc/t-arc-uClibc arc/t-arc"
986 tm_defines="${tm_defines} TARGET_SDATA_DEFAULT=0"
987 tm_defines="${tm_defines} TARGET_MMEDIUM_CALLS_DEFAULT=1"
988 case x"${with_cpu}" in
989 xarc600|xarc601|xarc700)
990 target_cpu_default="TARGET_CPU_$with_cpu"
993 if test x${with_endian} = x; then
995 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
996 *) with_endian=little ;;
999 case ${with_endian} in
1001 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1003 case ${with_endian} in
1004 big*) tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
1008 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1009 extra_options="${extra_options} arm/vxworks.opt"
1010 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1013 tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1014 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1015 tmake_file="${tmake_file} arm/t-arm"
1017 arm*-*-linux-*) # ARM GNU/Linux with ELF
1018 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"
1019 extra_options="${extra_options} linux-android.opt"
1022 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1025 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1026 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1027 # Define multilib configuration for arm-linux-androideabi.
1030 tmake_file="$tmake_file arm/t-linux-androideabi"
1033 # The EABI requires the use of __cxa_atexit.
1034 default_use_cxa_atexit=yes
1035 with_tls=${with_tls:-gnu}
1037 arm*-*-uclinux*eabi*) # ARM ucLinux
1038 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1039 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1040 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1041 # The EABI requires the use of __cxa_atexit.
1042 default_use_cxa_atexit=yes
1044 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
1047 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1049 default_use_cxa_atexit=yes
1050 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1051 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1054 tm_file="$tm_file newlib-stdint.h"
1055 tmake_file="${tmake_file} arm/t-bpabi"
1059 tm_file="${tm_file} rtems.h arm/rtems-eabi.h newlib-stdint.h"
1060 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems-eabi"
1063 tm_file="${tm_file} arm/symbian.h"
1064 # We do not include t-bpabi for Symbian OS because the system
1065 # provides its own implementation of the BPABI functions.
1066 tmake_file="${tmake_file} arm/t-symbian"
1069 tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
1072 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
1073 tmake_file="${tmake_file} avr/t-avr avr/t-multilib avr/t-rtems"
1074 extra_gcc_objs="driver-avr.o avr-devices.o"
1075 extra_objs="avr-devices.o avr-log.o"
1078 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/avr-stdint.h"
1079 if test x${with_avrlibc} != xno; then
1080 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1081 tm_defines="${tm_defines} WITH_AVRLIBC"
1083 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1085 extra_gcc_objs="driver-avr.o avr-devices.o"
1086 extra_objs="avr-devices.o avr-log.o"
1089 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1090 tmake_file=bfin/t-bfin-elf
1094 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1095 tmake_file=bfin/t-bfin-uclinux
1098 bfin*-linux-uclibc*)
1099 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"
1100 tmake_file="bfin/t-bfin-linux t-slibgcc t-linux"
1104 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1105 tmake_file="${tmake_file} bfin/t-rtems"
1108 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1113 tm_file="elfos.h ${tm_file}"
1114 tmake_file="${tmake_file} cr16/t-cr16 "
1117 crisv32-*-elf | crisv32-*-none)
1118 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1119 tmake_file="cris/t-cris"
1120 target_cpu_default=32
1122 extra_options="${extra_options} cris/elf.opt"
1125 cris-*-elf | cris-*-none)
1126 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1127 tmake_file="cris/t-cris cris/t-elfmulti"
1129 extra_options="${extra_options} cris/elf.opt"
1132 crisv32-*-linux* | cris-*-linux*)
1133 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1134 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1135 extra_options="${extra_options} cris/linux.opt"
1138 target_cpu_default=10
1141 target_cpu_default=32
1146 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1147 tmake_file="epiphany/t-epiphany"
1148 extra_options="${extra_options} fused-madd.opt"
1149 extra_objs="$extra_objs mode-switch-use.o resolve-sw-modes.o"
1150 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1151 extra_headers="epiphany_intrinsics.h"
1154 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1157 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1158 tmake_file=frv/t-frv
1161 tm_file="dbxelf.h elfos.h ${tm_file} \
1162 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1163 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1168 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1169 tmake_file="${tmake_file} moxie/t-moxie"
1174 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1175 tmake_file="${tmake_file} moxie/t-moxie"
1178 tmake_file="${tmake_file} moxie/t-moxie"
1179 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1184 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1185 tmake_file="${tmake_file} moxie/t-moxiebox"
1188 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-rtems"
1189 tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h"
1192 tmake_file="h8300/t-h8300"
1193 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1196 target_cpu_default="MASK_PA_11|MASK_PA_20"
1197 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1198 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1203 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1204 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1205 pa/pa32-regs.h pa/pa32-linux.h"
1206 tmake_file="${tmake_file} pa/t-linux"
1209 target_cpu_default="MASK_PA_11"
1210 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1211 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1212 extra_options="${extra_options} openbsd.opt"
1216 hppa[12]*-*-hpux10*)
1218 hppa1.1-*-* | hppa2*-*-*)
1219 target_cpu_default="MASK_PA_11"
1222 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1223 pa/pa-hpux.h pa/pa-hpux10.h"
1224 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1227 tm_file="${tm_file} pa/pa-hpux1010.h"
1228 extra_options="${extra_options} pa/pa-hpux1010.opt"
1231 use_gcc_stdint=provide
1232 tm_file="${tm_file} hpux-stdint.h"
1233 tmake_file="t-slibgcc"
1234 case ${enable_threads} in
1236 if test x$have_pthread_h = xyes ; then
1237 tmake_file="${tmake_file} pa/t-dce-thr"
1241 tmake_file="${tmake_file} pa/t-dce-thr"
1246 if test "x$with_dwarf2" != x; then
1247 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1252 target_cpu_default="MASK_PA_11|MASK_PA_20"
1253 if test x$gnu_ld = xyes
1255 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1257 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1258 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1262 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1263 extra_options="${extra_options} pa/pa-hpux1111.opt"
1266 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1267 extra_options="${extra_options} pa/pa-hpux1131.opt"
1270 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1273 extra_options="${extra_options} pa/pa-hpux.opt \
1274 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1275 tmake_file="t-slibgcc"
1276 case x${enable_threads} in
1284 use_gcc_stdint=provide
1285 tm_file="${tm_file} hpux-stdint.h"
1289 tm_file="${tm_file} hpux-stdint.h"
1293 hppa[12]*-*-hpux11*)
1295 hppa1.1-*-* | hppa2*-*-*)
1296 target_cpu_default="MASK_PA_11"
1299 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1300 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1301 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1305 tm_file="${tm_file} pa/pa-hpux1111.h"
1306 extra_options="${extra_options} pa/pa-hpux1111.opt"
1309 tm_file="${tm_file} pa/pa-hpux1131.h"
1310 extra_options="${extra_options} pa/pa-hpux1131.opt"
1313 tmake_file="t-slibgcc"
1314 case x${enable_threads} in
1323 use_gcc_stdint=provide
1324 tm_file="${tm_file} hpux-stdint.h"
1328 tm_file="${tm_file} hpux-stdint.h"
1331 if test "x$with_dwarf2" != x; then
1332 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1336 i[34567]86-*-darwin*)
1338 # Baseline choice for a machine that allows m64 support.
1339 with_cpu=${with_cpu:-core2}
1340 tmake_file="${tmake_file} t-slibgcc"
1343 with_cpu=${with_cpu:-core2}
1344 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1345 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1348 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1351 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1354 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1357 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"
1358 tmake_file="i386/t-i386elf t-svr4"
1360 i[34567]86-*-dragonfly*)
1361 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1362 tmake_file="${tmake_file} i386/t-crtstuff"
1364 x86_64-*-dragonfly*)
1365 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"
1366 tmake_file="${tmake_file} i386/t-crtstuff"
1368 i[34567]86-*-freebsd*)
1369 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1372 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"
1374 i[34567]86-*-netbsdelf*)
1375 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
1376 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1379 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"
1380 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1382 i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
1383 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"
1384 extra_options="${extra_options} openbsd.opt"
1385 # needed to unconfuse gdb
1386 tmake_file="${tmake_file} t-openbsd i386/t-openbsd"
1387 # we need collect2 until our bug is fixed...
1390 i[34567]86-*-openbsd*)
1391 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1392 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1393 extra_options="${extra_options} openbsd.opt"
1398 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1399 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1400 extra_options="${extra_options} openbsd.opt"
1404 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1405 # Intel 80386's running GNU/*
1406 # with ELF format using glibc 2
1407 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1409 i[34567]86-*-linux*)
1410 tm_file="${tm_file} linux.h linux-android.h"
1411 extra_options="${extra_options} linux-android.opt"
1412 # Assume modern glibc if not targeting Android nor uclibc.
1414 *-*-*android*|*-*-*uclibc*)
1417 default_gnu_indirect_function=yes
1420 if test x$enable_targets = xall; then
1421 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1422 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1423 tmake_file="${tmake_file} i386/t-linux64"
1424 x86_multilibs="${with_multilib_list}"
1425 if test "$x86_multilibs" = "default"; then
1426 x86_multilibs="m64,m32"
1428 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1429 for x86_multilib in ${x86_multilibs}; do
1430 case ${x86_multilib} in
1432 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1435 echo "--with-multilib-list=${x86_with_multilib} not supported."
1439 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1441 if test x$with_cpu = x; then
1442 if test x$with_cpu_64 = x; then
1446 case " $x86_cpus $x86_archs $x86_64_archs " in
1450 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1451 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1457 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1460 i[34567]86-*-knetbsd*-gnu)
1461 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h"
1463 i[34567]86-*-kfreebsd*-gnu)
1464 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1466 i[34567]86-*-kopensolaris*-gnu)
1467 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1470 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1474 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
1475 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1476 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1479 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1480 extra_options="${extra_options} linux-android.opt"
1481 # Assume modern glibc if not targeting Android nor uclibc.
1483 *-*-*android*|*-*-*uclibc*)
1486 default_gnu_indirect_function=yes
1490 x86_64-*-kfreebsd*-gnu)
1491 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1493 x86_64-*-knetbsd*-gnu)
1494 tm_file="${tm_file} knetbsd-gnu.h"
1497 tmake_file="${tmake_file} i386/t-linux64"
1498 x86_multilibs="${with_multilib_list}"
1499 if test "$x86_multilibs" = "default"; then
1502 x86_multilibs="mx32"
1505 x86_multilibs="m64,m32"
1509 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1510 for x86_multilib in ${x86_multilibs}; do
1511 case ${x86_multilib} in
1513 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1516 echo "--with-multilib-list=${x86_with_multilib} not supported."
1520 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1522 i[34567]86-pc-msdosdjgpp*)
1523 xm_file=i386/xm-djgpp.h
1524 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1525 native_system_header_dir=/dev/env/DJDIR/include
1526 extra_options="${extra_options} i386/djgpp.opt"
1531 i[34567]86-*-lynxos*)
1533 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1534 tmake_file="${tmake_file} t-lynx"
1535 extra_options="${extra_options} lynx.opt"
1540 i[34567]86-*-nto-qnx*)
1541 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1542 extra_options="${extra_options} i386/nto.opt"
1546 i[34567]86-*-rtems*)
1547 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"
1548 tmake_file="${tmake_file} i386/t-rtems"
1550 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1551 # Set default arch_32 to pentium4, tune_32 to generic like the other
1552 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1553 with_arch_32=${with_arch_32:-pentium4}
1554 with_tune_32=${with_tune_32:-generic}
1555 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1556 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1557 tmake_file="$tmake_file i386/t-sol2"
1559 if test x$with_cpu = x; then
1560 if test x$with_cpu_64 = x; then
1564 case " $x86_cpus $x86_archs $x86_64_archs " in
1568 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1569 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1575 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
1576 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h vx-common.h"
1579 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1580 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1583 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1584 tmake_file="${tmake_file} i386/t-vxworks"
1588 i[34567]86-*-cygwin*)
1589 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"
1590 xm_file=i386/xm-cygwin.h
1591 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1592 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1593 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1594 extra_objs="winnt.o winnt-stubs.o"
1595 c_target_objs="${c_target_objs} msformat-c.o"
1596 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1597 if test x$enable_threads = xyes; then
1600 default_use_cxa_atexit=yes
1605 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"
1606 xm_file=i386/xm-cygwin.h
1607 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1608 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1609 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1610 extra_objs="winnt.o winnt-stubs.o"
1611 c_target_objs="${c_target_objs} msformat-c.o"
1612 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1613 if test x$enable_threads = xyes; then
1616 default_use_cxa_atexit=yes
1618 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1620 i[34567]86-*-mingw* | x86_64-*-mingw*)
1621 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1622 xm_file=i386/xm-mingw32.h
1623 c_target_objs="${c_target_objs} winnt-c.o"
1624 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1625 target_has_targetcm="yes"
1627 x86_64-*-* | *-w64-*)
1633 if test x$enable_threads = xposix ; then
1634 tm_file="${tm_file} i386/mingw-pthread.h"
1636 tm_file="${tm_file} i386/mingw32.h"
1637 # This makes the logic if mingw's or the w64 feature set has to be used
1640 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1641 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1642 tm_file="${tm_file} i386/mingw-w64.h"
1643 if test x$enable_targets = xall; then
1644 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1645 if test x$with_cpu = x; then
1646 if test x$with_cpu_64 = x; then
1650 case " $x86_cpus $x86_archs $x86_64_archs " in
1654 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1655 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1665 tm_file="${tm_file} i386/mingw-stdint.h"
1666 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1669 tmake_file="${tmake_file} i386/t-mingw-w64"
1672 tmake_file="${tmake_file} i386/t-mingw-w32"
1675 native_system_header_dir=/mingw/include
1676 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1677 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1680 extra_options="${extra_options} i386/mingw-w64.opt"
1685 extra_objs="winnt.o winnt-stubs.o"
1686 c_target_objs="${c_target_objs} msformat-c.o"
1687 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1690 default_use_cxa_atexit=yes
1692 case ${enable_threads} in
1702 tm_file="${tm_file} i386/crtdll.h"
1704 *mingw32msv* | *mingw*)
1708 i[34567]86-*-interix[3-9]*)
1709 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h"
1710 tmake_file="${tmake_file} i386/t-interix"
1711 extra_options="${extra_options} rpath.opt i386/interix.opt"
1712 extra_objs="winnt.o winnt-stubs.o"
1713 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1714 if test x$enable_threads = xyes ; then
1717 if test x$stabs = xyes ; then
1718 tm_file="${tm_file} dbxcoff.h"
1722 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1723 tmake_file="ia64/t-ia64"
1724 target_cpu_default="0"
1725 if test x$gas = xyes
1727 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1729 if test x$gnu_ld = xyes
1731 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1735 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1736 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1737 tmake_file="${tmake_file} ia64/t-ia64"
1740 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1741 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1742 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1745 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1746 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1747 target_cpu_default="MASK_GNU_AS"
1748 case x$enable_threads in
1754 c_target_objs="ia64-c.o"
1755 cxx_target_objs="ia64-c.o"
1756 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1758 tm_file="${tm_file} hpux-stdint.h"
1761 tm_file="${tm_file} ia64/hpux-unix2003.h"
1766 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1767 tmake_file="${tmake_file} ia64/t-ia64"
1768 target_cpu_default="0"
1769 if test x$gas = xyes
1771 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1773 extra_options="${extra_options} ia64/vms.opt"
1776 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1777 out_file=iq2000/iq2000.c
1778 md_file=iq2000/iq2000.md
1781 tm_file="dbxelf.h elfos.h ${tm_file}"
1782 tmake_file="${tmake_file} lm32/t-lm32"
1785 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1786 tmake_file="${tmake_file} lm32/t-lm32"
1787 tmake_file="${tmake_file} lm32/t-rtems"
1790 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1791 tmake_file="${tmake_file} lm32/t-lm32"
1794 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1797 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1800 tm_file="dbxelf.h elfos.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h"
1801 tmake_file="${tmake_file} m32r/t-m32r"
1804 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1805 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1807 if test x$enable_threads = xyes; then
1812 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1813 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1815 if test x$enable_threads = xyes; then
1819 m68k-*-elf* | fido-*-elf*)
1822 # Check that $with_cpu makes sense.
1827 echo "Cannot accept --with-cpu=$with_cpu"
1834 default_m68k_cpu=68020
1838 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"
1839 tm_defines="${tm_defines} MOTOROLA=1"
1840 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1841 # Add multilibs for targets other than fido.
1846 tmake_file="$tmake_file m68k/t-mlibs"
1851 default_m68k_cpu=68020
1853 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
1854 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1855 tm_defines="${tm_defines} MOTOROLA=1"
1858 default_m68k_cpu=68020
1860 # needed to unconfuse gdb
1861 tm_defines="${tm_defines} OBSD_OLD_GAS"
1862 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1863 extra_options="${extra_options} openbsd.opt"
1864 tmake_file="t-openbsd m68k/t-openbsd"
1865 # we need collect2 until our bug is fixed...
1868 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
1869 # with uClibc, using the new GNU/Linux-style
1871 default_m68k_cpu=68020
1873 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"
1874 extra_options="${extra_options} m68k/uclinux.opt"
1875 tm_defines="${tm_defines} MOTOROLA=1"
1876 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1878 m68k-*-linux*) # Motorola m68k's running GNU/Linux
1879 # with ELF format using glibc 2
1880 # aka the GNU/Linux C library 6.
1881 default_m68k_cpu=68020
1883 with_arch=${with_arch:-m68k}
1884 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
1885 extra_options="${extra_options} m68k/ieee.opt"
1886 tm_defines="${tm_defines} MOTOROLA=1"
1887 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
1890 default_m68k_cpu=68020
1892 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
1893 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"
1894 tm_defines="${tm_defines} MOTOROLA=1"
1897 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
1898 tmake_file=mcore/t-mcore
1902 tm_file="dbxelf.h elfos.h ${tm_file}"
1903 tmake_file=mep/t-mep
1904 c_target_objs="mep-pragma.o"
1905 cxx_target_objs="mep-pragma.o"
1906 if test -d "${srcdir}/../newlib/libc/include" &&
1907 test "x$with_headers" = x; then
1915 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1918 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1921 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
1922 tm_file="${tm_file} glibc-stdint.h"
1923 c_target_objs="${c_target_objs} microblaze-c.o"
1924 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1925 tmake_file="${tmake_file} microblaze/t-microblaze"
1926 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
1928 microblaze*-*-rtems*)
1931 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1934 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1937 tm_file="${tm_file} dbxelf.h"
1938 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
1939 c_target_objs="${c_target_objs} microblaze-c.o"
1940 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1941 tmake_file="${tmake_file} microblaze/t-microblaze"
1942 tmake_file="${tmake_file} microblaze/t-rtems"
1947 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1950 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1953 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
1954 c_target_objs="${c_target_objs} microblaze-c.o"
1955 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1956 tmake_file="${tmake_file} microblaze/t-microblaze"
1958 mips*-*-netbsd*) # NetBSD/mips, either endian.
1959 target_cpu_default="MASK_ABICALLS"
1960 tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
1961 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1964 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"
1965 extra_options="${extra_options} linux-android.opt"
1966 tmake_file="${tmake_file} mips/t-mti-linux"
1967 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
1971 mips*-*-linux*) # Linux MIPS, either endian.
1972 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"
1973 extra_options="${extra_options} linux-android.opt"
1976 default_mips_arch=mips32r2
1979 default_mips_arch=mips32
1981 mips64el-st-linux-gnu)
1982 default_mips_abi=n32
1983 tm_file="${tm_file} mips/st.h"
1984 tmake_file="${tmake_file} mips/t-st"
1985 enable_mips_multilibs="yes"
1987 mips64octeon*-*-linux*)
1988 default_mips_abi=n32
1989 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
1990 target_cpu_default=MASK_SOFT_FLOAT_ABI
1991 enable_mips_multilibs="yes"
1993 mipsisa64r2*-*-linux*)
1994 default_mips_abi=n32
1995 default_mips_arch=mips64r2
1996 enable_mips_multilibs="yes"
1998 mips64*-*-linux* | mipsisa64*-*-linux*)
1999 default_mips_abi=n32
2000 enable_mips_multilibs="yes"
2003 if test x$enable_targets = xall; then
2004 enable_mips_multilibs="yes"
2006 if test x$enable_mips_multilibs = xyes; then
2007 tmake_file="${tmake_file} mips/t-linux64"
2011 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2012 tmake_file="mips/t-mti-elf"
2013 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2016 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2017 tmake_file="mips/t-sde"
2018 extra_options="${extra_options} mips/sde.opt"
2019 case "${with_newlib}" in
2021 # newlib / libgloss.
2024 # MIPS toolkit libraries.
2025 tm_file="$tm_file mips/sdemtk.h"
2026 tmake_file="$tmake_file mips/t-sdemtk"
2027 case ${enable_threads} in
2029 thread_file='mipssde'
2036 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2039 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2042 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2045 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2049 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2050 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2051 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2052 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*)
2053 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2054 tmake_file="mips/t-isa3264"
2057 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2060 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2063 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2066 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2070 mipsisa32*-*-elfoabi*)
2071 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2072 tm_file="${tm_file} mips/elfoabi.h"
2074 mipsisa64*-*-elfoabi*)
2075 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2076 tm_file="${tm_file} mips/elfoabi.h"
2079 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2083 mipsisa64sr71k-*-elf*)
2084 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2085 tmake_file=mips/t-sr71k
2086 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2088 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2089 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2090 tmake_file="mips/t-elf mips/t-sb1"
2091 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2093 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2094 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2095 tmake_file="mips/t-elf"
2097 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2098 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2099 tmake_file="mips/t-elf"
2100 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2102 mips64-*-elf* | mips64el-*-elf*)
2103 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2104 tmake_file="mips/t-elf"
2105 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2107 mips64vr-*-elf* | mips64vrel-*-elf*)
2108 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2109 tmake_file=mips/t-vr
2110 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2112 mips64orion-*-elf* | mips64orionel-*-elf*)
2113 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2114 tmake_file="mips/t-elf"
2115 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2118 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2119 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2122 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2123 tmake_file="${tmake_file} mips/t-vxworks"
2125 mipstx39-*-elf* | mipstx39el-*-elf*)
2126 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2127 tmake_file="mips/t-r3900"
2129 mmix-knuth-mmixware)
2130 tm_file="${tm_file} newlib-stdint.h"
2134 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2135 if test x$stabs = xyes
2137 tm_file="${tm_file} dbx.h"
2143 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2144 c_target_objs="msp430-c.o"
2145 cxx_target_objs="msp430-c.o"
2146 tmake_file="${tmake_file} msp430/t-msp430"
2149 target_cpu_default="0"
2150 tm_defines="${tm_defines}"
2151 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2152 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2155 target_cpu_default="0|MASK_BIG_ENDIAN"
2156 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2157 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2158 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2161 tm_file="elfos.h ${tm_file}"
2162 tmake_file="${tmake_file} nios2/t-nios2"
2165 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2168 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2169 extra_options="${extra_options} nios2/elf.opt"
2172 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2173 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2178 tm_file="${tm_file} newlib-stdint.h"
2179 tmake_file="nvptx/t-nvptx"
2182 tm_file="${tm_file} newlib-stdint.h"
2185 # port not yet contributed
2186 #powerpc-*-openbsd*)
2187 # tmake_file="${tmake_file} rs6000/t-fprules"
2191 extra_options="${extra_options} rs6000/darwin.opt"
2193 *-darwin1[0-9]* | *-darwin[8-9]*)
2194 tmake_file="${tmake_file} rs6000/t-darwin8"
2195 tm_file="${tm_file} rs6000/darwin8.h"
2198 tm_file="${tm_file} rs6000/darwin7.h"
2203 tmake_file="${tmake_file} t-slibgcc"
2204 extra_headers=altivec.h
2206 powerpc64-*-darwin*)
2207 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2208 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2209 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2210 extra_headers=altivec.h
2212 powerpc*-*-freebsd*)
2213 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2214 extra_options="${extra_options} rs6000/sysv4.opt"
2215 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2218 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2219 tmake_file="${tmake_file} rs6000/t-freebsd64"
2220 extra_options="${extra_options} rs6000/linux64.opt"
2223 tm_file="${tm_file} rs6000/freebsd.h"
2228 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2229 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2230 tmake_file="${tmake_file} rs6000/t-netbsd"
2231 extra_options="${extra_options} rs6000/sysv4.opt"
2234 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"
2235 extra_options="${extra_options} rs6000/sysv4.opt"
2236 tmake_file="rs6000/t-spe rs6000/t-ppccomm"
2239 powerpc-*-eabisimaltivec*)
2240 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h rs6000/eabialtivec.h"
2241 extra_options="${extra_options} rs6000/sysv4.opt"
2242 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2246 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"
2247 extra_options="${extra_options} rs6000/sysv4.opt"
2248 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2252 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2253 extra_options="${extra_options} rs6000/sysv4.opt"
2254 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2256 powerpc-*-eabialtivec*)
2257 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"
2258 extra_options="${extra_options} rs6000/sysv4.opt"
2259 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2262 powerpc-xilinx-eabi*)
2263 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"
2264 extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
2265 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2269 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"
2270 extra_options="${extra_options} rs6000/sysv4.opt"
2271 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2275 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"
2276 extra_options="${extra_options} rs6000/sysv4.opt"
2277 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2280 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2281 extra_options="${extra_options} rs6000/sysv4.opt"
2282 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2283 extra_objs="$extra_objs rs6000-linux.o"
2286 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2290 powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
2291 echo "*** Configuration ${target} not supported" 1>&2
2294 powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
2297 powerpc64*-*-linux*)
2298 test x$with_cpu != x || cpu_is_64bit=yes
2302 case ${maybe_biarch}:${enable_targets}:${cpu_is_64bit} in
2303 always:* | yes:*powerpc64* | yes:all:* | yes:*:yes)
2304 if test x$cpu_is_64bit = xyes; then
2305 tm_file="${tm_file} rs6000/default64.h"
2307 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2308 tmake_file="$tmake_file rs6000/t-linux64"
2311 tmake_file="$tmake_file rs6000/t-linux64le"
2312 case ${enable_targets} in
2313 all | *powerpc64-* | *powerpc-*)
2314 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2317 case ${enable_targets} in
2318 all | *powerpc64le-* | *powerpcle-*)
2319 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2322 extra_options="${extra_options} rs6000/linux64.opt"
2325 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2326 tmake_file="$tmake_file rs6000/t-linux"
2330 powerpc*-*-linux*ppc476*)
2331 tm_file="${tm_file} rs6000/476.h"
2332 extra_options="${extra_options} rs6000/476.opt" ;;
2333 powerpc*-*-linux*altivec*)
2334 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2335 powerpc*-*-linux*spe*)
2336 tm_file="${tm_file} rs6000/linuxspe.h rs6000/e500.h" ;;
2337 powerpc*-*-linux*paired*)
2338 tm_file="${tm_file} rs6000/750cl.h" ;;
2340 if test x${enable_secureplt} = xyes; then
2341 tm_file="rs6000/secureplt.h ${tm_file}"
2344 powerpc-wrs-vxworks|powerpc-wrs-vxworksae|powerpc-wrs-vxworksmils)
2345 tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2346 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2347 extra_options="${extra_options} rs6000/sysv4.opt"
2348 extra_headers=ppc-asm.h
2351 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksmils.h"
2352 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2355 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h"
2356 tmake_file="${tmake_file} rs6000/t-vxworksae"
2359 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h"
2365 tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2366 tmake_file="t-lynx rs6000/t-lynx"
2367 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2373 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2374 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2375 extra_options="${extra_options} rs6000/sysv4.opt"
2377 powerpcle-*-eabisim*)
2378 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"
2379 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2380 extra_options="${extra_options} rs6000/sysv4.opt"
2384 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"
2385 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2386 extra_options="${extra_options} rs6000/sysv4.opt"
2389 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2390 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2391 tmake_file="rs6000/t-aix43 t-slibgcc"
2392 extra_options="${extra_options} rs6000/aix64.opt"
2395 use_gcc_stdint=provide
2398 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2399 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2400 extra_options="${extra_options} rs6000/aix64.opt"
2401 tmake_file="rs6000/t-aix43 t-slibgcc"
2407 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2408 tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2409 tmake_file="rs6000/t-aix52 t-slibgcc"
2410 extra_options="${extra_options} rs6000/aix64.opt"
2416 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2417 tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2418 tmake_file="rs6000/t-aix52 t-slibgcc"
2419 extra_options="${extra_options} rs6000/aix64.opt"
2423 extra_headers=altivec.h
2425 rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
2426 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2427 tmake_file="rs6000/t-aix52 t-slibgcc"
2428 extra_options="${extra_options} rs6000/aix64.opt"
2432 extra_headers=altivec.h
2435 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2436 target_has_targetm_common=no
2437 c_target_objs="rl78-c.o"
2438 cxx_target_objs="rl78-c.o"
2439 tmake_file="${tmake_file} rl78/t-rl78"
2442 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2443 tmake_file="${tmake_file} rx/t-rx"
2446 default_gnu_indirect_function=yes
2447 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2448 if test x$enable_targets = xall; then
2449 tmake_file="${tmake_file} s390/t-linux64"
2453 default_gnu_indirect_function=yes
2454 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2455 tm_p_file="linux-protos.h s390/s390-protos.h"
2456 md_file=s390/s390.md
2457 extra_modes=s390/s390-modes.def
2458 out_file=s390/s390.c
2459 tmake_file="${tmake_file} s390/t-linux64"
2462 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2463 tm_p_file=s390/s390-protos.h
2464 md_file=s390/s390.md
2465 extra_modes=s390/s390-modes.def
2466 out_file=s390/s390.c
2468 extra_options="${extra_options} s390/tpf.opt"
2470 sh-*-elf* | sh[12346l]*-*-elf* | \
2471 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2472 sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
2473 sh64-*-netbsd* | sh64l*-*-netbsd*)
2474 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2475 if test x${with_endian} = x; then
2477 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2478 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2479 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2480 shl* | sh64l* | sh*-*-linux* | \
2481 sh5l* | sh-superh-elf) with_endian=little,big ;;
2482 sh[1234]*-*-*) with_endian=big ;;
2483 *) with_endian=big,little ;;
2486 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2487 # First word : the default endian.
2488 # Second word: the secondary endian (optional).
2489 case ${with_endian} in
2490 big) TM_ENDIAN_CONFIG=mb ;;
2491 little) TM_ENDIAN_CONFIG=ml ;;
2492 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2493 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2494 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2496 case ${with_endian} in
2497 little*) tm_file="sh/little.h ${tm_file}" ;;
2499 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2501 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2502 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2504 tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h"
2505 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2508 sh*-superh-elf) if test x$with_libgloss != xno; then
2510 tm_file="${tm_file} sh/newlib.h"
2512 tm_file="${tm_file} sh/embed-elf.h"
2513 tm_file="${tm_file} sh/superh.h"
2514 extra_options="${extra_options} sh/superh.opt" ;;
2515 *) if test x$with_newlib = xyes \
2516 && test x$with_libgloss = xyes; then
2517 tm_file="${tm_file} sh/newlib.h"
2519 tm_file="${tm_file} sh/embed-elf.h" ;;
2523 # SHmedia, 32-bit ABI
2524 tmake_file="${tmake_file} sh/t-sh64"
2527 # SHmedia, 64-bit ABI
2528 tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5-64"
2533 tmake_file="${tmake_file} sh/t-sh64"
2534 tm_file="${tm_file} sh/sh64.h"
2535 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2538 tmake_file="${tmake_file} sh/t-sh64"
2539 tm_file="${tm_file} sh/sh64.h"
2540 if test x$with_newlib = xyes; then
2541 tm_file="${tm_file} newlib-stdint.h"
2543 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2546 tm_file="${tm_file} newlib-stdint.h"
2549 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2550 case `echo ${target} | sed 's/e[lb]-/-/'` in
2551 sh64*-*-netbsd*) sh_cpu_target=sh5-64media ;;
2552 sh64* | sh5*-*-netbsd*) sh_cpu_target=sh5-32media ;;
2553 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2554 sh4a_single*) sh_cpu_target=sh4a-single ;;
2555 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2556 sh4al) sh_cpu_target=sh4al ;;
2557 sh4a*) sh_cpu_target=sh4a ;;
2558 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2559 sh4_single*) sh_cpu_target=sh4-single ;;
2560 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2561 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2562 sh3e*) sh_cpu_target=sh3e ;;
2563 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2564 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2565 sh2a_single*) sh_cpu_target=sh2a-single ;;
2566 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2567 sh2a*) sh_cpu_target=sh2a ;;
2568 sh2e*) sh_cpu_target=sh2e ;;
2569 sh2*) sh_cpu_target=sh2 ;;
2570 *) sh_cpu_target=sh1 ;;
2572 # did the user say --without-fp ?
2573 if test x$with_fp = xno; then
2574 case ${sh_cpu_target} in
2575 sh5-*media) sh_cpu_target=${sh_cpu_target}-nofpu ;;
2577 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2578 sh4*) sh_cpu_target=sh4-nofpu ;;
2579 sh3*) sh_cpu_target=sh3 ;;
2580 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2581 sh2*) sh_cpu_target=sh2 ;;
2582 *) echo --without-fp not available for $target: ignored
2584 tm_defines="$tm_defines STRICT_NOFPU=1"
2586 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2587 case $sh_cpu_default in
2588 sh5-64media-nofpu | sh5-64media | \
2589 sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
2590 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2591 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2592 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2593 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2594 "") sh_cpu_default=${sh_cpu_target} ;;
2595 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2597 sh_multilibs=${with_multilib_list}
2598 if test "$sh_multilibs" = "default" ; then
2600 sh64-superh-linux* | \
2601 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2602 sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
2603 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2604 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2605 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2606 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2608 if test x$with_fp = xno; then
2609 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`"
2612 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2613 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2614 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2615 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2616 for sh_multilib in ${sh_multilibs}; do
2617 case ${sh_multilib} in
2618 m1 | m2 | m2e | m3 | m3e | \
2619 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2620 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2621 m2a | m2a-single | m2a-single-only | m2a-nofpu | \
2622 m5-64media | m5-64media-nofpu | \
2623 m5-32media | m5-32media-nofpu | \
2624 m5-compact | m5-compact-nofpu)
2625 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2626 # It is passed to MULTIILIB_OPTIONS verbatim.
2627 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2628 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2630 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2631 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2632 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2634 echo "with_multilib_list=${sh_multilib} not supported."
2639 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2640 if test x${enable_incomplete_targets} = xyes ; then
2641 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"
2643 tm_file="$tm_file ./sysroot-suffix.h"
2644 tmake_file="$tmake_file t-sysroot-suffix"
2647 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2648 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2651 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2652 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2655 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2658 tmake_file="sparc/t-sparc sparc/t-leon"
2661 tmake_file="sparc/t-sparc sparc/t-leon3"
2664 tmake_file="sparc/t-sparc sparc/t-elf"
2669 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2670 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2673 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2674 extra_options="${extra_options} sparc/long-double-switch.opt"
2677 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2680 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2683 tmake_file="${tmake_file} sparc/t-sparc"
2686 if test x$enable_targets = xall; then
2687 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2688 tmake_file="${tmake_file} sparc/t-linux64"
2690 tm_file="${tm_file} sparc/linux.h"
2691 tmake_file="${tmake_file} sparc/t-linux"
2695 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2696 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2697 extra_options="${extra_options} sparc/long-double-switch.opt"
2698 tmake_file="${tmake_file} sparc/t-sparc"
2701 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2703 sparc64-*-* | sparcv9-*-*)
2704 tm_file="sparc/default-64.h ${tm_file}"
2707 test x$with_cpu != x || with_cpu=v9
2710 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2713 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2714 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2717 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2718 extra_options="${extra_options}"
2719 tmake_file="${tmake_file} sparc/t-sparc"
2722 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2723 extra_options="${extra_options}"
2724 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2727 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"
2728 extra_options="${extra_options} sparc/long-double-switch.opt"
2729 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2731 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2732 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2733 extra_options="${extra_options} sparc/long-double-switch.opt"
2734 case "x$with_cpu" in
2736 x) with_cpu=ultrasparc ;;
2737 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2739 tmake_file="${tmake_file} sparc/t-sparc"
2742 tm_file="sparc/biarch64.h ${tm_file}"
2743 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2744 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2745 extra_options="${extra_options} sparc/long-double-switch.opt"
2746 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2749 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2750 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2751 extra_options="${extra_options} openbsd.opt"
2752 extra_options="${extra_options}"
2755 tmake_file="${tmake_file} sparc/t-sparc"
2758 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2759 tmake_file="spu/t-spu-elf"
2760 native_system_header_dir=/include
2761 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2762 extra_modes=spu/spu-modes.def
2763 c_target_objs="${c_target_objs} spu-c.o"
2764 cxx_target_objs="${cxx_target_objs} spu-c.o"
2767 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
2768 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
2769 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
2773 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
2774 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
2775 tm_file="${tm_file} ./sysroot-suffix.h"
2776 tmake_file="t-sysroot-suffix t-slibgcc"
2777 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
2781 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
2782 tmake_file="${tmake_file} tilegx/t-tilegx"
2783 extra_objs="${extra_objs} mul-tables.o"
2784 c_target_objs="${c_target_objs} tilegx-c.o"
2785 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
2786 extra_headers="feedback.h"
2789 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2794 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
2795 tmake_file="${tmake_file} tilepro/t-tilepro"
2796 extra_objs="${extra_objs} mul-tables.o"
2797 c_target_objs="${c_target_objs} tilepro-c.o"
2798 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
2799 extra_headers="feedback.h"
2802 target_cpu_default="TARGET_CPU_generic"
2803 tm_file="dbxelf.h elfos.h v850/v850.h"
2804 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
2805 tmake_file="${tmake_file} v850/t-v850"
2806 tmake_file="${tmake_file} v850/t-rtems"
2808 c_target_objs="v850-c.o"
2809 cxx_target_objs="v850-c.o"
2814 target_cpu_default="TARGET_CPU_v850e3v5"
2817 target_cpu_default="TARGET_CPU_v850e2v3"
2820 target_cpu_default="TARGET_CPU_v850e2"
2822 v850e1-*-* | v850es-*-*)
2823 target_cpu_default="TARGET_CPU_v850e1"
2826 target_cpu_default="TARGET_CPU_v850e"
2829 target_cpu_default="TARGET_CPU_generic"
2832 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
2833 if test x$stabs = xyes
2835 tm_file="${tm_file} dbx.h"
2838 c_target_objs="v850-c.o"
2839 cxx_target_objs="v850-c.o"
2843 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
2844 extra_options="${extra_options} vax/elf.opt"
2847 tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
2848 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
2851 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-pthread.h vax/openbsd.h"
2852 extra_options="${extra_options} openbsd.opt"
2856 # For historical reasons, the target files omit the 'x'.
2857 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
2858 tm_p_file=stormy16/stormy16-protos.h
2859 md_file=stormy16/stormy16.md
2860 out_file=stormy16/stormy16.c
2861 extra_options=stormy16/stormy16.opt
2862 tmake_file="stormy16/t-stormy16"
2865 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
2866 extra_options="${extra_options} xtensa/elf.opt"
2869 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
2870 tmake_file="${tmake_file} xtensa/t-xtensa"
2873 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
2878 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
2879 c_target_objs="m32c-pragma.o"
2880 cxx_target_objs="m32c-pragma.o"
2883 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2884 c_target_objs="m32c-pragma.o"
2885 cxx_target_objs="m32c-pragma.o"
2888 echo "*** Configuration ${target} not supported" 1>&2
2894 i[34567]86-*-linux* | x86_64-*-linux*)
2895 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
2897 i[34567]86-*-* | x86_64-*-*)
2898 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
2900 powerpc*-*-* | rs6000-*-*)
2901 tm_file="${tm_file} rs6000/option-defaults.h"
2904 # Build mkoffload tool
2906 *-intelmic-* | *-intelmicemul-*)
2907 tmake_file="${tmake_file} i386/t-intelmic"
2911 if [ "$target_has_targetcm" = "no" ]; then
2912 c_target_objs="$c_target_objs default-c.o"
2913 cxx_target_objs="$cxx_target_objs default-c.o"
2916 if [ "$common_out_file" = "" ]; then
2917 if [ "$target_has_targetm_common" = "yes" ]; then
2918 common_out_file="$cpu_type/$cpu_type-common.c"
2920 common_out_file="default-common.c"
2924 # Support for --with-cpu and related options (and a few unrelated options,
2928 echo "--with-cpu must be passed a value" 1>&2
2933 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
2934 # to generic if there is no processor scheduler model for the target.
2937 arch_without_sse2=no
2938 arch_without_64bit=no
2941 if test $fbsd_major -ge 6; then
2947 arch_without_sse2=yes
2948 arch_without_64bit=yes
2953 arch_without_sse2=yes
2954 arch_without_64bit=yes
2959 arch_without_sse2=yes
2960 arch_without_64bit=yes
2963 arch_without_sse2=yes
2964 arch_without_64bit=yes
2965 case ${target_noncanonical} in
2978 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
2988 i686-*-* | i786-*-*)
2989 case ${target_noncanonical} in
3014 amdfam10-*|barcelona-*)
3018 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3022 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3026 athlon_xp-*|athlon_mp-*|athlon_4-*)
3029 arch_without_sse2=yes
3030 arch_without_64bit=yes
3032 athlon_tbird-*|athlon-*)
3035 arch_without_sse2=yes
3040 arch_without_sse2=yes
3045 arch_without_sse2=yes
3047 pentium3-*|pentium3m-*)
3050 arch_without_sse2=yes
3052 pentium4-*|pentium4m-*)
3091 arch_without_sse2=yes
3096 arch_without_sse2=yes
3097 arch_without_64bit=yes
3102 case ${target_noncanonical} in
3127 amdfam10-*|barcelona-*)
3131 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3135 k8-*|opteron-*|athlon_64-*)
3167 # If there is no $with_cpu option, try to infer one from ${target}.
3168 # This block sets nothing except for with_cpu.
3169 if test x$with_cpu = x ; then
3171 i[34567]86-*-*|x86_64-*-*)
3189 frv-*-*linux* | frv400-*-*linux*)
3196 case "$with_arch" in
3198 with_cpu=${default_cf_cpu}
3201 with_cpu=m${default_m68k_cpu}
3206 if test x$enable_e500_double = xyes; then
3224 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3230 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3232 i[34567]86-*-*|x86_64-*-*)
3233 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3234 if test x$with_cpu_32 = x; then
3235 with_cpu_32=$with_cpu
3237 if test x$with_cpu_64 = x; then
3238 with_cpu_64=$with_cpu
3246 # Support for --with-arch and related options (and a few unrelated options,
3248 case ${with_arch} in
3250 echo "--with-arch must be passed a value" 1>&2
3255 # If there is no $with_arch option, try to infer one from ${target}.
3256 # This block sets nothing except for with_arch.
3257 if test x$with_arch = x ; then
3259 i[34567]86-*-darwin*|x86_64-*-darwin*)
3260 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3261 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3264 # --with-fpmath sets the default ISA to SSE2, which is the same
3265 # ISA supported by Pentium 4.
3266 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3275 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3283 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3285 i[34567]86-*-darwin*|x86_64-*-darwin*)
3286 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3287 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3289 i[34567]86-*-*|x86_64-*-*)
3290 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3291 if test x$with_arch_32 = x; then
3292 with_arch_32=$with_arch
3294 if test x$with_arch_64 = x; then
3295 if test $arch_without_64bit = yes; then
3296 # Set the default 64bit arch to x86-64 if the default arch
3297 # doesn't support 64bit.
3300 with_arch_64=$with_arch
3304 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3305 # Set the default 64bit arch to x86-64 if the default arch
3306 # doesn't support 64bit and we need 64bit ISA.
3307 with_arch_32=$with_arch
3315 # Infer a default setting for --with-float.
3316 if test x$with_float = x; then
3318 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3319 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3320 # comply with IEEE 754.
3326 # Infer a default setting for --with-fpu.
3327 if test x$with_fpu = x; then
3329 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3330 # The R5900 FPU only supports single precision.
3336 # Support --with-fpmath.
3337 if test x$with_fpmath != x; then
3339 i[34567]86-*-* | x86_64-*-*)
3340 case ${with_fpmath} in
3342 tm_file="${tm_file} i386/avxmath.h"
3345 tm_file="${tm_file} i386/ssemath.h"
3348 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3354 echo "--with-fpmath isn't supported for $target." 1>&2
3360 # Similarly for --with-schedule.
3361 if test x$with_schedule = x; then
3364 # Override default PA8000 scheduling model.
3365 with_schedule=7100LC
3370 # Infer a default setting for --with-llsc.
3371 if test x$with_llsc = x; then
3373 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3374 # The R5900 doesn't support LL(D) and SC(D).
3378 # The kernel emulates LL and SC where necessary.
3384 # Validate and mark as valid any --with options supported
3385 # by this target. In order to use a particular --with option
3386 # you must list it in supported_defaults; validating the value
3387 # is optional. This case statement should set nothing besides
3388 # supported_defaults.
3393 supported_defaults="abi cpu arch"
3394 for which in cpu arch; do
3396 eval "val=\$with_$which"
3397 base_val=`echo $val | sed -e 's/\+.*//'`
3398 ext_val=`echo $val | sed -e 's/[a-z0-9\-]\+//'`
3400 if [ $which = arch ]; then
3401 def=aarch64-arches.def
3402 pattern=AARCH64_ARCH
3404 def=aarch64-cores.def
3405 pattern=AARCH64_CORE
3408 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3410 # Find the base CPU or ARCH id in aarch64-cores.def or
3411 # aarch64-arches.def
3412 if [ x"$base_val" = x ] \
3413 || grep "^$pattern(\"$base_val\"," \
3414 ${srcdir}/config/aarch64/$def \
3417 if [ $which = arch ]; then
3418 base_id=`grep "^$pattern(\"$base_val\"," \
3419 ${srcdir}/config/aarch64/$def | \
3420 sed -e 's/^[^,]*,[ ]*//' | \
3422 # Extract the architecture flags from aarch64-arches.def
3423 ext_mask=`grep "^$pattern(\"$base_val\"," \
3424 ${srcdir}/config/aarch64/$def | \
3428 base_id=`grep "^$pattern(\"$base_val\"," \
3429 ${srcdir}/config/aarch64/$def | \
3430 sed -e 's/^[^,]*,[ ]*//' | \
3434 while [ x"$ext_val" != x ]
3436 ext_val=`echo $ext_val | sed -e 's/\+//'`
3437 ext=`echo $ext_val | sed -e 's/\+.*//'`
3438 base_ext=`echo $ext | sed -e 's/^no//'`
3440 if [ x"$base_ext" = x ] \
3441 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3442 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3445 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3446 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3447 sed -e 's/^[^,]*,[ ]*//' | \
3449 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3450 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3451 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3452 sed -e 's/,.*$//' | \
3455 if [ $ext = $base_ext ]; then
3457 ext_mask="("$ext_mask") | ("$ext_on")"
3459 # Removing extension
3460 ext_mask="("$ext_mask") & ~("$ext_off")"
3465 echo "Unknown extension used in --with-$which=$val" 1>&2
3468 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3471 ext_mask="(("$ext_mask") << 6)"
3472 if [ x"$base_id" != x ]; then
3473 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3477 echo "Unknown $which used in --with-$which=$val" 1>&2
3484 supported_defaults="cpu tune"
3485 for which in cpu tune; do
3486 eval "val=\$with_$which"
3489 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3490 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3494 echo "Unknown CPU used in --with-$which=$val" 1>&2
3501 arc*-*-*) # was: arc*-*-linux-uclibc)
3502 supported_defaults="cpu"
3504 arc600|arc601|arc700)
3506 *) echo "Unknown cpu type"
3513 supported_defaults="arch cpu float tune fpu abi mode tls"
3514 for which in cpu tune; do
3515 # See if it matches any of the entries in arm-cores.def
3516 eval "val=\$with_$which"
3517 if [ x"$val" = x ] \
3518 || grep "^ARM_CORE(\"$val\"," \
3519 ${srcdir}/config/arm/arm-cores.def \
3522 new_val=`grep "^ARM_CORE(\"$val\"," \
3523 ${srcdir}/config/arm/arm-cores.def | \
3524 sed -e 's/^[^,]*,[ ]*//' | \
3526 eval "target_${which}_cname=$new_val"
3527 echo "For $val real value is $new_val"
3530 echo "Unknown CPU used in --with-$which=$val" 1>&2
3535 # See if it matches any of the entries in arm-arches.def
3536 if [ x"$with_arch" = x ] \
3537 || grep "^ARM_ARCH(\"$with_arch\"," \
3538 ${srcdir}/config/arm/arm-arches.def \
3543 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
3547 case "$with_float" in
3549 | soft | hard | softfp)
3553 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3558 # see if it matches any of the entries in arm-fpus.def
3559 if [ x"$with_fpu" = x ] \
3560 || grep "^ARM_FPU(\"$with_fpu\"," \
3561 ${srcdir}/config/arm/arm-fpus.def \
3566 echo "Unknown fpu used in --with-fpu=$with_fpu" 1>&2
3572 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3576 echo "Unknown ABI used in --with-abi=$with_abi"
3581 case "$with_mode" in
3587 echo "Unknown mode used in --with-mode=$with_mode"
3598 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3603 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3604 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3608 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3609 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3613 # Add extra multilibs
3614 if test "x$with_multilib_list" != x; then
3615 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3616 for arm_multilib in ${arm_multilibs}; do
3617 case ${arm_multilib} in
3619 # Note that arm/t-aprofile is a
3620 # stand-alone make file fragment to be
3621 # used only with itself. We do not
3622 # specifically use the
3623 # TM_MULTILIB_OPTION framework because
3624 # this shorthand is more
3625 # pragmatic. Additionally it is only
3626 # designed to work without any
3627 # with-cpu, with-arch with-mode
3628 # with-fpu or with-float options.
3629 if test "x$with_arch" != x \
3630 || test "x$with_cpu" != x \
3631 || test "x$with_float" != x \
3632 || test "x$with_fpu" != x \
3633 || test "x$with_mode" != x ; then
3634 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2
3637 tmake_file="${tmake_file} arm/t-aprofile"
3643 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3652 supported_defaults=cpu
3657 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3663 fido-*-* | m68k*-*-*)
3664 supported_defaults="arch cpu"
3665 case "$with_arch" in
3667 m68k_arch_family="$with_arch"
3670 echo "Invalid --with-arch=$with_arch" 1>&2
3675 # We always have a $with_cpu setting here.
3677 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3678 m68k_cpu_ident=$with_cpu
3681 m68k_cpu_ident=m68020
3682 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3685 m68k_cpu_ident=m68020
3686 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3689 # We need the C identifier rather than the string.
3690 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
3691 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
3692 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
3693 ${srcdir}/config/m68k/m68k-devices.def`
3694 if [ x"$m68k_cpu_ident" = x ] ; then
3695 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
3698 with_cpu="mcpu=$with_cpu"
3704 supported_defaults="arch schedule"
3706 case "$with_arch" in
3707 "" | 1.0 | 1.1 | 2.0)
3711 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
3716 case "$with_schedule" in
3717 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
3721 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
3727 i[34567]86-*-* | x86_64-*-*)
3728 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
3729 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3730 eval "val=\$with_$which"
3731 case " $x86_archs " in
3739 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
3748 if test x${val} != x; then
3749 case " $x86_64_archs " in
3754 # Allow $x86_cpus --with-cpu=/--with-tune=
3757 case " $x86_cpus " in
3762 echo "Unknown CPU given in --with-$which=$val." 1>&2
3768 echo "Unknown CPU given in --with-$which=$val." 1>&2
3781 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"
3783 case ${with_float} in
3788 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3794 "" | single | double)
3798 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
3808 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
3813 case ${with_fp_32} in
3818 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
3823 case ${with_odd_spreg_32} in
3825 with_odd_spreg_32="odd-spreg"
3828 with_odd_spreg_32="no-odd-spreg"
3834 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
3840 "" | 32 | o64 | n32 | 64 | eabi)
3844 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
3849 case ${with_divide} in
3850 "" | breaks | traps)
3854 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
3859 case ${with_llsc} in
3870 echo "Unknown llsc type used in --with-llsc" 1>&2
3875 case ${with_mips_plt} in
3880 with_mips_plt=no-plt
3885 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
3890 case ${with_synci} in
3900 echo "Unknown synci type used in --with-synci" 1>&2
3907 supported_defaults="arch nds32_lib"
3909 # process --with-arch
3910 case "${with_arch}" in
3915 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v3 v3m" 1>&2
3920 # process --with-nds32-lib
3921 case "${with_nds32_lib}" in
3923 # the default library is newlib
3924 with_nds32_lib=newlib
3933 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
3939 powerpc*-*-* | rs6000-*-*)
3940 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64"
3942 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3943 eval "val=\$with_$which"
3945 default32 | default64)
3950 echo "$val only valid for --with-cpu and --with-tune." 1>&2
3954 with_which="with_$which"
3958 tm_defines="${tm_defines} CONFIG_PPC405CR"
3959 eval "with_$which=405"
3961 "" | common | native \
3962 | power | power[2345678] | power6x | powerpc | powerpc64 \
3963 | rios | rios1 | rios2 | rsc | rsc1 | rs64a \
3964 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
3965 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
3966 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
3967 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
3968 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
3972 echo "Unknown cpu used in --with-$which=$val." 1>&2
3979 "" | elfv1 | elfv2 )
3983 echo "Unknown ABI used in --with-abi=$with_abi"
3990 supported_defaults="arch mode tune"
3992 for which in arch tune; do
3993 eval "val=\$with_$which"
3995 "" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12)
3999 echo "Unknown cpu used in --with-$which=$val." 1>&2
4005 case ${with_mode} in
4010 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4016 sh[123456ble]-*-* | sh-*-*)
4017 supported_defaults="cpu"
4018 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4019 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4022 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4024 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4027 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4028 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4029 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4030 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4036 supported_defaults="cpu float tune"
4038 for which in cpu tune; do
4039 eval "val=\$with_$which"
4041 "" | sparc | sparcv9 | sparc64 \
4043 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4044 | sparclite | f930 | f934 | sparclite86x \
4045 | sparclet | tsc701 \
4046 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4047 | niagara3 | niagara4)
4051 echo "Unknown cpu used in --with-$which=$val" 1>&2
4057 case ${with_float} in
4062 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4069 supported_defaults="arch tune"
4071 for which in arch tune; do
4072 eval "val=\$with_$which"
4074 "" | cell | celledp)
4078 echo "Unknown cpu used in --with-$which=$val." 1>&2
4086 supported_defaults="arch"
4088 case ${with_arch} in
4089 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4093 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4100 supported_defaults=cpu
4102 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4106 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4113 # Set some miscellaneous flags for particular targets.
4114 target_cpu_default2=
4117 if test x"$target_cpu_cname" != x
4119 target_cpu_default2=$target_cpu_cname
4124 if test x$target_cpu_cname = x
4126 target_cpu_default2=TARGET_CPU_generic
4128 target_cpu_default2=TARGET_CPU_$target_cpu_cname
4133 if test x$gas = xyes
4135 target_cpu_default2="MASK_GAS"
4139 fido*-*-* | m68k*-*-*)
4140 target_cpu_default2=$m68k_cpu_ident
4141 tmake_file="m68k/t-opts $tmake_file"
4142 if [ x"$m68k_arch_family" != x ]; then
4143 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4147 i[34567]86-*-darwin* | x86_64-*-darwin*)
4149 i[34567]86-*-linux* | x86_64-*-linux*)
4150 tmake_file="$tmake_file i386/t-linux"
4152 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4153 tmake_file="$tmake_file i386/t-kfreebsd"
4156 tmake_file="$tmake_file i386/t-gnu"
4158 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4160 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4162 i[34567]86-*-mingw* | x86_64-*-mingw*)
4164 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4166 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4172 if test x$gnu_ld = xyes
4174 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4178 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4181 if test x$with_arch != x; then
4182 default_mips_arch=$with_arch
4184 if test x$with_abi != x; then
4185 default_mips_abi=$with_abi
4187 case ${default_mips_arch} in
4188 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4189 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4190 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4191 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4192 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4193 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4194 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4195 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4197 case ${default_mips_abi} in
4198 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4199 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4200 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4201 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4202 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4204 tmake_file="mips/t-mips $tmake_file"
4207 powerpc*-*-* | rs6000-*-*)
4208 # FIXME: The PowerPC port uses the value set at compile time,
4209 # although it's only cosmetic.
4210 if test "x$with_cpu" != x
4212 target_cpu_default2="\\\"$with_cpu\\\""
4214 out_file=rs6000/rs6000.c
4215 c_target_objs="${c_target_objs} rs6000-c.o"
4216 cxx_target_objs="${cxx_target_objs} rs6000-c.o"
4217 tmake_file="rs6000/t-rs6000 ${tmake_file}"
4220 sh[123456ble]*-*-* | sh-*-*)
4221 c_target_objs="${c_target_objs} sh-c.o"
4222 cxx_target_objs="${cxx_target_objs} sh-c.o"
4226 # Some standard aliases.
4231 xsparcv9 | xsparc64)
4236 if test x$with_tune = x ; then
4247 # The SPARC port checks this value at compile-time.
4248 target_cpu_default2="TARGET_CPU_$with_cpu"
4252 case "x$with_cpu" in
4255 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4256 target_cpu_default2="TARGET_CPU_$with_cpu"
4259 target_cpu_default2="TARGET_CPU_v850e1"
4266 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"
4267 for option in $all_defaults
4269 eval "val=\$with_"`echo $option | sed s/-/_/g`
4270 if test -n "$val"; then
4271 case " $supported_defaults " in
4275 echo "This target does not support --with-$option." 2>&1
4276 echo "Valid --with options are: $supported_defaults" 2>&1
4283 t="{ \"$option\", \"$val\" }"
4285 t="${t}, { \"$option\", \"$val\" }"
4292 configure_default_options="{ { NULL, NULL} }"
4294 configure_default_options="{ ${t} }"
4297 if test "$target_cpu_default2" != ""
4299 if test "$target_cpu_default" != ""
4301 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4303 target_cpu_default=$target_cpu_default2
4308 i[34567]86-*-* | x86_64-*-*)
4309 if test x$enable_as_accelerator = xyes; then
4310 extra_programs="mkoffload\$(exeext)"