1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2018 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.
242 if test "x$enable_obsolete" != xyes; then
243 echo "*** Configuration ${target} is obsolete." >&2
244 echo "*** Specify --enable-obsolete to build it anyway." >&2
245 echo "*** Support will be REMOVED in the next major release of GCC," >&2
246 echo "*** unless a maintainer comes forward." >&2
251 # Unsupported targets list. Do not put an entry in this list unless
252 # it would otherwise be caught by a more permissive pattern. The list
253 # should be in alphabetical order.
255 # Avoid special cases that are not obsolete
264 | i[34567]86-go32-* \
265 | i[34567]86-*-go32* \
266 | m68k-*-uclinuxoldabi* \
267 | mips64orion*-*-rtems* \
269 | sparc-hal-solaris2* \
271 | *-*-freebsd[12] | *-*-freebsd[1234].* \
272 | *-*-freebsd*aout* \
280 | *-*-solaris2.[0-9] \
281 | *-*-solaris2.[0-9].* \
285 echo "*** Configuration ${target} not supported" 1>&2
290 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
291 # updated in each machine entry. Also set default extra_headers for some
294 cpu_type=`echo ${target} | sed 's/-.*$//'`
299 tmake_file=m32c/t-m32c
300 target_has_targetm_common=no
304 extra_headers="arm_fp16.h arm_neon.h arm_acle.h"
305 c_target_objs="aarch64-c.o"
306 cxx_target_objs="aarch64-c.o"
307 extra_objs="aarch64-builtins.o aarch-common.o cortex-a57-fma-steering.o aarch64-speculation.o"
308 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c"
309 target_has_targetm_common=yes
313 extra_options="${extra_options} g.opt"
320 c_target_objs="arc-c.o"
321 cxx_target_objs="arc-c.o"
322 extra_options="${extra_options} arc/arc-tables.opt g.opt"
323 extra_headers="arc-simd.h"
327 extra_objs="arm-builtins.o aarch-common.o"
328 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h"
329 target_type_format_char='%'
330 c_target_objs="arm-c.o"
331 cxx_target_objs="arm-c.o"
332 extra_options="${extra_options} arm/arm-tables.opt"
333 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
337 c_target_objs="avr-c.o"
338 cxx_target_objs="avr-c.o"
347 extra_options="${extra_options} g.opt"
350 target_has_targetm_common=no
352 moxie*) cpu_type=moxie
353 target_has_targetm_common=no
357 extra_headers=math-68881.h
358 extra_options="${extra_options} m68k/m68k-tables.opt"
362 c_target_objs="i386-c.o"
363 cxx_target_objs="i386-c.o"
364 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
365 extra_options="${extra_options} fused-madd.opt"
366 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
367 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
368 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
369 immintrin.h x86intrin.h avxintrin.h xopintrin.h
370 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
371 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
372 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
373 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
374 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
375 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
376 shaintrin.h clflushoptintrin.h xsavecintrin.h
377 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
378 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
379 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
380 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
381 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
382 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
383 gfniintrin.h cet.h avx512vbmi2intrin.h
384 avx512vbmi2vlintrin.h avx512vnniintrin.h
385 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
386 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
387 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
388 waitpkgintrin.h cldemoteintrin.h"
392 c_target_objs="i386-c.o"
393 cxx_target_objs="i386-c.o"
394 extra_options="${extra_options} fused-madd.opt"
395 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
396 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
397 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
398 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
399 immintrin.h x86intrin.h avxintrin.h xopintrin.h
400 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
401 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
402 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
403 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
404 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
405 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
406 shaintrin.h clflushoptintrin.h xsavecintrin.h
407 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
408 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
409 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
410 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
411 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
412 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
413 gfniintrin.h cet.h avx512vbmi2intrin.h
414 avx512vbmi2vlintrin.h avx512vnniintrin.h
415 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
416 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
417 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
418 waitpkgintrin.h cldemoteintrin.h"
421 extra_headers=ia64intrin.h
422 extra_options="${extra_options} g.opt fused-madd.opt"
428 extra_options="${extra_options} g.opt"
432 extra_options="${extra_options} g.opt"
435 extra_headers=math-68881.h
436 extra_options="${extra_options} m68k/m68k-tables.opt"
440 extra_options="${extra_options} g.opt"
444 extra_headers="loongson.h msa.h"
445 extra_objs="frame-header-opt.o"
446 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
450 extra_headers="nds32_intrinsic.h"
453 extra_options="${extra_options} nds32/nds32-linux.opt"
456 extra_options="${extra_options} nds32/nds32-elf.opt"
461 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 nds32-relax-opt.o nds32-utils.o"
465 extra_options="${extra_options} g.opt"
472 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"
474 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
478 extra_options="${extra_options} g.opt fused-madd.opt powerpcspe/powerpcspe-tables.opt"
482 extra_objs="rs6000-string.o rs6000-p8swap.o"
483 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
484 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
485 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
486 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
487 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
488 extra_headers="${extra_headers} amo.h"
490 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
494 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
498 extra_objs="riscv-builtins.o riscv-c.o"
501 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
502 extra_objs="rs6000-string.o rs6000-p8swap.o"
506 c_target_objs="sparc-c.o"
507 cxx_target_objs="sparc-c.o"
508 extra_headers="visintrin.h"
515 extra_options="${extra_options} fused-madd.opt"
516 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
518 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
519 sh[123456789lbe]*-*-* | sh-*-*)
521 extra_options="${extra_options} fused-madd.opt"
522 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
529 extra_headers="c6x_intrinsics.h"
530 extra_options="${extra_options} c6x/c6x-tables.opt"
533 extra_options="${extra_options} fused-madd.opt"
543 tm_file=${cpu_type}/${cpu_type}.h
544 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
546 tm_p_file=${cpu_type}/${cpu_type}-protos.h
549 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
551 extra_modes=${cpu_type}/${cpu_type}-modes.def
553 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
555 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
560 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
563 if test "x$with_multilib_list" = xilp32; then
564 tm_file="aarch64/biarchilp32.h ${tm_file}"
566 tm_file="aarch64/biarchlp64.h ${tm_file}"
570 tm_file="aarch64/biarchilp32.h ${tm_file}"
573 tm_file="aarch64/biarchlp64.h ${tm_file}"
576 echo "Unknown ABI used in --with-abi=$with_abi"
581 if test "x$with_abi" != x; then
582 echo "This target does not support --with-abi."
585 if test "x$enable_cld" = xyes; then
586 tm_defines="${tm_defines} USE_IX86_CLD=1"
588 if test "x$enable_frame_pointer" = xyes; then
589 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
591 tm_file="vxworks-dummy.h ${tm_file}"
596 if test "x$with_multilib_list" = xmx32; then
597 tm_file="i386/biarchx32.h ${tm_file}"
599 tm_file="i386/biarch64.h ${tm_file}"
603 tm_file="i386/biarch64.h ${tm_file}"
606 tm_file="i386/biarchx32.h ${tm_file}"
609 echo "Unknown ABI used in --with-abi=$with_abi"
612 if test "x$enable_cld" = xyes; then
613 tm_defines="${tm_defines} USE_IX86_CLD=1"
615 if test "x$enable_frame_pointer" = xyes; then
616 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
618 tm_file="vxworks-dummy.h ${tm_file}"
621 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
622 tm_file="vxworks-dummy.h ${tm_file}"
624 mips*-*-* | sh*-*-* | sparc*-*-*)
625 tm_file="vxworks-dummy.h ${tm_file}"
629 # On a.out targets, we need to use collect2.
636 # Common C libraries.
637 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
639 # 32-bit x86 processors supported by --with-arch=. Each processor
640 # MUST be separated by exactly one space.
641 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
642 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
643 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
644 pentium4 pentium4m pentiumpro prescott lakemont"
646 # 64-bit x86 processors supported by --with-arch=. Each processor
647 # MUST be separated by exactly one space.
648 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
649 bdver3 bdver4 znver1 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \
650 core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \
651 sandybridge ivybridge haswell broadwell bonnell silvermont knl knm \
652 skylake-avx512 cannonlake icelake-client icelake-server skylake goldmont \
653 goldmont-plus tremont x86-64 native"
655 # Additional x86 processors supported by --with-cpu=. Each processor
656 # MUST be separated by exactly one space.
657 x86_cpus="generic intel"
659 # Common parts for widely ported systems.
662 tmake_file="t-darwin ${cpu_type}/t-darwin"
663 tm_file="${tm_file} darwin.h"
666 tm_file="${tm_file} darwin9.h"
669 tm_file="${tm_file} darwin9.h darwin10.h"
671 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
672 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
675 tm_file="${tm_file} ${cpu_type}/darwin.h"
676 tm_p_file="${tm_p_file} darwin-protos.h"
677 target_gtfiles="\$(srcdir)/config/darwin.c"
678 extra_options="${extra_options} darwin.opt"
679 c_target_objs="${c_target_objs} darwin-c.o"
680 cxx_target_objs="${cxx_target_objs} darwin-c.o"
681 fortran_target_objs="darwin-f.o"
682 target_has_targetcm=yes
683 extra_objs="${extra_objs} darwin.o"
684 extra_gcc_objs="darwin-driver.o"
685 default_use_cxa_atexit=yes
687 case ${enable_threads} in
688 "" | yes | posix) thread_file='posix' ;;
694 tmake_file="t-slibgcc"
695 case ${enable_threads} in
700 # Let these non-posix thread selections fall through if requested
703 echo 'Unknown thread configuration for DragonFly BSD'
707 extra_options="$extra_options rpath.opt dragonfly.opt"
708 default_use_cxa_atexit=yes
712 # This is the generic ELF configuration of FreeBSD. Later
713 # machine-specific sections may refine and add to this
716 # Due to tm_file entry ordering issues that vary between cpu
717 # architectures, we only define fbsd_tm_file to allow the
718 # machine-specific section to dictate the final order of all
719 # entries of tm_file with the minor exception that components
720 # of the tm_file set here will always be of the form:
722 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
724 # The machine-specific section should not tamper with this
725 # ordering but may order all other entries of tm_file as it
726 # pleases around the provided core setting.
729 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
730 if test "$fbsd_major" = ""; then
731 echo "Specify the major version number of the targeted FreeBSD release"
732 echo "like this: --target=amd64-unknown-freebsd10.1"
735 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
736 tmake_file="t-slibgcc"
737 case ${enable_threads} in
739 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
745 echo 'Unknown thread configuration for FreeBSD'
749 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
750 extra_options="$extra_options rpath.opt freebsd.opt"
755 default_use_cxa_atexit=yes;;
760 native_system_header_dir=/include
762 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
763 extra_options="$extra_options gnu-user.opt"
766 case ${enable_threads} in
767 "" | yes | posix) thread_file='posix' ;;
769 tmake_file="t-slibgcc"
771 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
774 native_system_header_dir=/include
777 # Linux C libraries selection switch: glibc / uclibc / bionic.
778 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
781 tm_p_file="${tm_p_file} linux-protos.h"
782 tmake_file="${tmake_file} t-linux"
783 extra_objs="${extra_objs} linux.o"
784 extra_options="${extra_options} linux.opt"
789 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
792 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
795 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
798 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
801 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
803 default_use_cxa_atexit=yes
806 # Enable compilation for Android by default for *android* targets.
809 tm_defines="$tm_defines ANDROID_DEFAULT=1"
812 tm_defines="$tm_defines ANDROID_DEFAULT=0"
815 c_target_objs="${c_target_objs} glibc-c.o"
816 cxx_target_objs="${cxx_target_objs} glibc-c.o"
817 tmake_file="${tmake_file} t-glibc"
818 target_has_targetcm=yes
821 tm_p_file="${tm_p_file} netbsd-protos.h"
822 tmake_file="t-netbsd t-slibgcc"
823 extra_objs="${extra_objs} netbsd.o"
827 case ${enable_threads} in
828 "" | yes | posix) thread_file='posix' ;;
830 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
831 default_use_cxa_atexit=yes
834 tmake_file="t-openbsd"
835 case ${enable_threads} in
841 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
842 default_use_cxa_atexit=yes
849 default_use_cxa_atexit=yes
852 case ${enable_threads} in
853 "" | yes | rtems) thread_file='rtems' ;;
854 posix) thread_file='posix' ;;
857 echo 'Unknown thread configuration for RTEMS'
861 tmake_file="${tmake_file} t-rtems"
862 extra_options="${extra_options} rtems.opt"
863 default_use_cxa_atexit=yes
867 extra_options="$extra_options gnu-user.opt"
869 case ${enable_threads} in
870 "" | yes | posix) thread_file='posix' ;;
872 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
878 # i?86-*-solaris2* needs to insert headers between cpu default and
879 # Solaris 2 specific ones.
880 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
881 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
882 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
884 *-*-solaris2.1[1-9]*)
885 # __cxa_atexit was introduced in Solaris 11.4.
886 default_use_cxa_atexit=yes
890 if test x$gnu_ld = xyes; then
891 tm_file="usegld.h ${tm_file}"
893 if test x$gas = xyes; then
894 tm_file="usegas.h ${tm_file}"
896 tm_p_file="${tm_p_file} sol2-protos.h"
897 tmake_file="${tmake_file} t-sol2 t-slibgcc"
898 c_target_objs="${c_target_objs} sol2-c.o"
899 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
900 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
901 extra_options="${extra_options} sol2.opt"
902 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
903 "":yes:* | yes:yes:* )
909 extra_options="${extra_options} vms/vms.opt"
911 tmake_file="vms/t-vms t-slibgcc"
913 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
914 tm_p_file="${tm_p_file} vms/vms-protos.h"
915 xm_file="vms/xm-vms.h"
916 c_target_objs="vms-c.o"
917 cxx_target_objs="vms-c.o"
918 fortran_target_objs="vms-f.o"
919 use_gcc_stdint=provide
920 tm_file="${tm_file} vms/vms-stdint.h"
921 if test x$gnu_ld != xyes; then
922 # Build wrappers for native case.
923 extra_programs="ld\$(exeext) ar\$(exeext)"
924 tmake_file="$tmake_file vms/t-vmsnative"
930 extra_options="${extra_options} vxworks.opt"
931 extra_objs="$extra_objs vxworks.o"
932 use_gcc_stdint=provide
933 tm_file="${tm_file} vxworks-stdint.h"
934 case ${enable_threads} in
936 "" | yes | vxworks) thread_file='vxworks' ;;
937 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
941 tm_defines="$tm_defines TARGET_VXWORKS7=1"
946 # Assume that newlib is being used and so __cxa_atexit is provided.
947 default_use_cxa_atexit=yes
953 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
954 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
955 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
956 tmake_file="${tmake_file} aarch64/t-aarch64"
962 tm_file="${tm_file} fuchsia.h"
965 tm_file="${tm_file} rtems.h aarch64/rtems.h"
970 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
973 aarch64_multilibs="${with_multilib_list}"
974 if test "$aarch64_multilibs" = "default"; then
975 aarch64_multilibs="lp64,ilp32"
977 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
978 for aarch64_multilib in ${aarch64_multilibs}; do
979 case ${aarch64_multilib} in
981 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
984 echo "--with-multilib-list=${aarch64_multilib} not supported."
988 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
991 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
992 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h"
993 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
996 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
997 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
998 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
999 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1002 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1005 aarch64_multilibs="${with_multilib_list}"
1006 if test "$aarch64_multilibs" = "default"; then
1007 # TODO: turn on ILP32 multilib build after its support is mature.
1008 # aarch64_multilibs="lp64,ilp32"
1009 aarch64_multilibs="lp64"
1011 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1012 for aarch64_multilib in ${aarch64_multilibs}; do
1013 case ${aarch64_multilib} in
1015 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1018 echo "--with-multilib-list=${aarch64_multilib} not supported."
1022 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1025 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1026 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1027 extra_options="${extra_options} alpha/elf.opt"
1030 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1031 tmake_file="${tmake_file} alpha/t-alpha"
1032 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1036 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1037 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1038 tmake_file="${tmake_file} alpha/t-alpha"
1039 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1040 # default x-alpha is only appropriate for dec-osf.
1043 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1044 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1047 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1048 tmake_file="arc/t-multilib arc/t-arc"
1049 extra_gcc_objs="driver-arc.o"
1050 if test "x$with_cpu" != x; then
1051 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1053 if test x${with_endian} = x; then
1055 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1056 *) with_endian=little ;;
1059 case ${with_endian} in
1061 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1063 case ${with_endian} in
1064 big*) tm_file="arc/big.h ${tm_file}"
1068 tm_file="arc/arc-arch.h dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arc/linux.h ${tm_file}"
1069 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1070 extra_gcc_objs="driver-arc.o"
1071 if test "x$with_cpu" != x; then
1072 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1074 if test x${with_endian} = x; then
1076 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1077 *) with_endian=little ;;
1080 case ${with_endian} in
1082 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1084 case ${with_endian} in
1085 big*) tm_file="arc/big.h ${tm_file}"
1088 arm-wrs-vxworks|arm-wrs-vxworks7)
1089 extra_options="${extra_options} arm/vxworks.opt"
1090 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1093 # VxWorks7 on ARM adheres to the ARM Base Platform ABI
1094 tmake_file="${tmake_file} arm/t-bpabi"
1095 tm_file="arm/bpabi.h ${tm_file}"
1096 # The BPABI long long divmod functions return a 128-bit value in
1098 need_64bit_hwint=yes
1099 default_use_cxa_atexit=yes
1103 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1104 target_cpu_cname="arm8"
1106 arm*-*-freebsd*) # ARM FreeBSD EABI
1107 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1110 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1113 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1114 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1117 target_cpu_cname="arm1176jzf-s"
1118 if test $fbsd_major -ge 11; then
1119 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1123 target_cpu_cname="generic-armv7-a"
1124 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1127 target_cpu_cname="arm9"
1130 with_tls=${with_tls:-gnu}
1133 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1134 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1135 tmake_file="${tmake_file} arm/t-arm"
1136 target_cpu_cname="arm6"
1138 arm*-*-linux-*) # ARM GNU/Linux with ELF
1139 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"
1140 extra_options="${extra_options} linux-android.opt"
1143 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1146 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1147 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1148 # Generation of floating-point instructions requires at least ARMv5te.
1149 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1150 target_cpu_cname="arm10e"
1152 target_cpu_cname="arm10tdmi"
1154 # Define multilib configuration for arm-linux-androideabi.
1157 tmake_file="$tmake_file arm/t-linux-androideabi"
1160 # The EABI requires the use of __cxa_atexit.
1161 default_use_cxa_atexit=yes
1162 with_tls=${with_tls:-gnu}
1164 arm*-*-uclinux*eabi*) # ARM ucLinux
1165 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1166 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1167 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1168 target_cpu_cname="arm7tdmi"
1169 # The EABI requires the use of __cxa_atexit.
1170 default_use_cxa_atexit=yes
1173 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1174 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1175 tm_file="${tm_file} arm/aout.h arm/arm.h"
1176 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1177 target_cpu_cname="arm7tdmi"
1179 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1182 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1184 default_use_cxa_atexit=yes
1185 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1186 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1187 target_cpu_cname="arm7tdmi"
1190 tm_file="$tm_file newlib-stdint.h"
1191 tmake_file="${tmake_file} arm/t-bpabi"
1195 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1196 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1197 target_cpu_cname="generic-armv7-a"
1200 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1201 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1204 tm_file="${tm_file} arm/symbian.h"
1205 # We do not include t-bpabi for Symbian OS because the system
1206 # provides its own implementation of the BPABI functions.
1207 tmake_file="${tmake_file} arm/t-symbian"
1208 target_cpu_cname="arm10tdmi"
1211 tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
1214 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1215 if test x${with_avrlibc} != xno; then
1216 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1217 tm_defines="${tm_defines} WITH_AVRLIBC"
1219 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1221 extra_gcc_objs="driver-avr.o avr-devices.o"
1222 extra_objs="avr-devices.o avr-log.o"
1225 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1226 tmake_file=bfin/t-bfin-elf
1230 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1231 tmake_file=bfin/t-bfin-uclinux
1234 bfin*-linux-uclibc*)
1235 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"
1236 tmake_file="${tmake_file} bfin/t-bfin-linux"
1240 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1241 tmake_file="${tmake_file} bfin/t-rtems"
1244 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1249 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1250 tmake_file="${tmake_file} cr16/t-cr16 "
1253 crisv32-*-elf | crisv32-*-none)
1254 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1255 tmake_file="cris/t-cris"
1256 target_cpu_default=32
1258 extra_options="${extra_options} cris/elf.opt"
1261 cris-*-elf | cris-*-none)
1262 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1263 tmake_file="cris/t-cris cris/t-elfmulti"
1265 extra_options="${extra_options} cris/elf.opt"
1268 crisv32-*-linux* | cris-*-linux*)
1269 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1270 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1271 extra_options="${extra_options} cris/linux.opt"
1274 target_cpu_default=10
1277 target_cpu_default=32
1281 epiphany-*-elf | epiphany-*-rtems*)
1282 tm_file="${tm_file} dbxelf.h elfos.h"
1283 tmake_file="${tmake_file} epiphany/t-epiphany"
1286 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1289 tm_file="${tm_file} newlib-stdint.h"
1292 extra_options="${extra_options} fused-madd.opt"
1293 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1294 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1295 extra_headers="epiphany_intrinsics.h"
1298 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1301 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1302 tmake_file=frv/t-frv
1305 tm_file="dbxelf.h elfos.h ${tm_file} \
1306 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1307 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1312 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1313 tmake_file="${tmake_file} ft32/t-ft32"
1318 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1319 tmake_file="${tmake_file} moxie/t-moxie"
1324 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1325 tmake_file="${tmake_file} moxie/t-moxie"
1328 tmake_file="${tmake_file} moxie/t-moxie"
1329 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1334 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1335 tmake_file="${tmake_file} moxie/t-moxiebox"
1338 tmake_file="h8300/t-h8300"
1339 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1342 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1343 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1346 target_cpu_default="MASK_PA_11|MASK_PA_20"
1347 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1348 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1353 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1354 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1355 pa/pa32-regs.h pa/pa32-linux.h"
1356 tmake_file="${tmake_file} pa/t-linux"
1359 target_cpu_default="MASK_PA_11"
1360 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1361 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1362 extra_options="${extra_options} openbsd.opt"
1366 hppa[12]*-*-hpux10*)
1368 hppa1.1-*-* | hppa2*-*-*)
1369 target_cpu_default="MASK_PA_11"
1372 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1373 pa/pa-hpux.h pa/pa-hpux10.h"
1374 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1377 tm_file="${tm_file} pa/pa-hpux1010.h"
1378 extra_options="${extra_options} pa/pa-hpux1010.opt"
1381 use_gcc_stdint=provide
1382 tm_file="${tm_file} hpux-stdint.h"
1383 tmake_file="t-slibgcc"
1384 case ${enable_threads} in
1386 if test x$have_pthread_h = xyes ; then
1387 tmake_file="${tmake_file} pa/t-dce-thr"
1391 tmake_file="${tmake_file} pa/t-dce-thr"
1396 if test "x$with_dwarf2" != x; then
1397 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1402 target_cpu_default="MASK_PA_11|MASK_PA_20"
1403 if test x$gnu_ld = xyes
1405 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1407 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1408 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1412 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1413 extra_options="${extra_options} pa/pa-hpux1111.opt"
1416 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1417 extra_options="${extra_options} pa/pa-hpux1131.opt"
1420 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1423 extra_options="${extra_options} pa/pa-hpux.opt \
1424 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1425 tmake_file="t-slibgcc"
1426 case x${enable_threads} in
1434 use_gcc_stdint=provide
1435 tm_file="${tm_file} hpux-stdint.h"
1439 tm_file="${tm_file} hpux-stdint.h"
1443 hppa[12]*-*-hpux11*)
1445 hppa1.1-*-* | hppa2*-*-*)
1446 target_cpu_default="MASK_PA_11"
1449 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1450 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1451 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1455 tm_file="${tm_file} pa/pa-hpux1111.h"
1456 extra_options="${extra_options} pa/pa-hpux1111.opt"
1459 tm_file="${tm_file} pa/pa-hpux1131.h"
1460 extra_options="${extra_options} pa/pa-hpux1131.opt"
1463 tmake_file="t-slibgcc"
1464 case x${enable_threads} in
1473 use_gcc_stdint=provide
1474 tm_file="${tm_file} hpux-stdint.h"
1478 tm_file="${tm_file} hpux-stdint.h"
1481 if test "x$with_dwarf2" != x; then
1482 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1486 i[34567]86-*-darwin*)
1488 # Baseline choice for a machine that allows m64 support.
1489 with_cpu=${with_cpu:-core2}
1490 tmake_file="${tmake_file} t-slibgcc"
1493 with_cpu=${with_cpu:-core2}
1494 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1495 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1497 i[34567]86-*-elfiamcu)
1498 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1501 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1504 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1507 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/rtemself.h rtems.h"
1510 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1513 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"
1514 tmake_file="i386/t-i386elf t-svr4"
1516 i[34567]86-*-dragonfly*)
1517 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1518 tmake_file="${tmake_file} i386/t-crtstuff"
1520 x86_64-*-dragonfly*)
1521 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"
1522 tmake_file="${tmake_file} i386/t-crtstuff"
1524 i[34567]86-*-freebsd*)
1525 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1528 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"
1530 i[34567]86-*-netbsdelf*)
1531 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1532 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1535 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1536 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1538 i[34567]86-*-openbsd*)
1539 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1540 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1541 extra_options="${extra_options} openbsd.opt"
1546 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1547 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1548 extra_options="${extra_options} openbsd.opt"
1552 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1553 # Intel 80386's running GNU/*
1554 # with ELF format using glibc 2
1555 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1557 i[34567]86-*-linux*)
1558 tm_file="${tm_file} linux.h linux-android.h"
1559 extra_options="${extra_options} linux-android.opt"
1560 if test x$enable_targets = xall; then
1561 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1562 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1563 tmake_file="${tmake_file} i386/t-linux64"
1564 x86_multilibs="${with_multilib_list}"
1565 if test "$x86_multilibs" = "default"; then
1566 x86_multilibs="m64,m32"
1568 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1569 for x86_multilib in ${x86_multilibs}; do
1570 case ${x86_multilib} in
1572 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1575 echo "--with-multilib-list=${x86_with_multilib} not supported."
1579 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1581 if test x$with_cpu = x; then
1582 if test x$with_cpu_64 = x; then
1586 case " $x86_cpus $x86_archs $x86_64_archs " in
1590 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1591 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1597 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1600 i[34567]86-*-kfreebsd*-gnu)
1601 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1603 i[34567]86-*-kopensolaris*-gnu)
1604 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1607 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1611 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1612 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1613 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1616 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1617 extra_options="${extra_options} linux-android.opt"
1619 x86_64-*-kfreebsd*-gnu)
1620 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1623 tmake_file="${tmake_file} i386/t-linux64"
1624 x86_multilibs="${with_multilib_list}"
1625 if test "$x86_multilibs" = "default"; then
1628 x86_multilibs="mx32"
1631 x86_multilibs="m64,m32"
1635 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1636 for x86_multilib in ${x86_multilibs}; do
1637 case ${x86_multilib} in
1639 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1642 echo "--with-multilib-list=${x86_with_multilib} not supported."
1646 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1648 i[34567]86-pc-msdosdjgpp*)
1649 xm_file=i386/xm-djgpp.h
1650 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1651 native_system_header_dir=/dev/env/DJDIR/include
1652 extra_options="${extra_options} i386/djgpp.opt"
1657 i[34567]86-*-lynxos*)
1659 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1660 tmake_file="${tmake_file} t-lynx"
1661 extra_options="${extra_options} lynx.opt"
1666 i[34567]86-*-nto-qnx*)
1667 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1668 extra_options="${extra_options} i386/nto.opt"
1672 i[34567]86-*-rtems*)
1673 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"
1674 tmake_file="${tmake_file} i386/t-rtems"
1676 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1677 # Set default arch_32 to pentium4, tune_32 to generic like the other
1678 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1679 with_arch_32=${with_arch_32:-pentium4}
1680 with_tune_32=${with_tune_32:-generic}
1681 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1682 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1683 tmake_file="$tmake_file i386/t-sol2"
1685 if test x$with_cpu = x; then
1686 if test x$with_cpu_64 = x; then
1690 case " $x86_cpus $x86_archs $x86_64_archs " in
1694 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1695 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1701 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
1702 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1706 tm_file="${tm_file} i386/x86-64.h"
1709 tm_file="${tm_file} vx-common.h"
1712 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1713 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1716 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1717 tmake_file="${tmake_file} i386/t-vxworks"
1721 i[34567]86-*-cygwin*)
1722 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"
1723 xm_file=i386/xm-cygwin.h
1724 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1725 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1726 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1727 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1728 c_target_objs="${c_target_objs} msformat-c.o"
1729 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1730 if test x$enable_threads = xyes; then
1733 default_use_cxa_atexit=yes
1738 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"
1739 xm_file=i386/xm-cygwin.h
1740 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1741 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1742 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1743 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1744 c_target_objs="${c_target_objs} msformat-c.o"
1745 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1746 if test x$enable_threads = xyes; then
1749 default_use_cxa_atexit=yes
1751 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1753 i[34567]86-*-mingw* | x86_64-*-mingw*)
1754 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1755 xm_file=i386/xm-mingw32.h
1756 c_target_objs="${c_target_objs} winnt-c.o"
1757 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1758 target_has_targetcm="yes"
1760 x86_64-*-* | *-w64-*)
1766 if test x$enable_threads = xposix ; then
1767 tm_file="${tm_file} i386/mingw-pthread.h"
1769 tm_file="${tm_file} i386/mingw32.h"
1770 # This makes the logic if mingw's or the w64 feature set has to be used
1773 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1774 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1775 tm_file="${tm_file} i386/mingw-w64.h"
1776 if test x$enable_targets = xall; then
1777 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1778 if test x$with_cpu = x; then
1779 if test x$with_cpu_64 = x; then
1783 case " $x86_cpus $x86_archs $x86_64_archs " in
1787 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1788 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1798 tm_file="${tm_file} i386/mingw-stdint.h"
1799 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1802 tmake_file="${tmake_file} i386/t-mingw-w64"
1805 tmake_file="${tmake_file} i386/t-mingw-w32"
1808 native_system_header_dir=/mingw/include
1809 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1810 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1813 extra_options="${extra_options} i386/mingw-w64.opt"
1818 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1819 c_target_objs="${c_target_objs} msformat-c.o"
1820 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1823 default_use_cxa_atexit=yes
1825 case ${enable_threads} in
1835 tm_file="${tm_file} i386/crtdll.h"
1837 *mingw32msv* | *mingw*)
1842 tmake_file="${tmake_file} i386/t-x86_64-elf"
1843 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
1846 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1847 tmake_file="ia64/t-ia64"
1848 target_cpu_default="0"
1849 if test x$gas = xyes
1851 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1853 if test x$gnu_ld = xyes
1855 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1859 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1860 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1861 tmake_file="${tmake_file} ia64/t-ia64"
1864 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1865 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1866 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1869 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1870 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1871 target_cpu_default="MASK_GNU_AS"
1872 case x$enable_threads in
1878 c_target_objs="ia64-c.o"
1879 cxx_target_objs="ia64-c.o"
1880 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1882 tm_file="${tm_file} hpux-stdint.h"
1885 tm_file="${tm_file} ia64/hpux-unix2003.h"
1890 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1891 tmake_file="${tmake_file} ia64/t-ia64"
1892 target_cpu_default="0"
1893 if test x$gas = xyes
1895 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1897 extra_options="${extra_options} ia64/vms.opt"
1900 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1901 out_file=iq2000/iq2000.c
1902 md_file=iq2000/iq2000.md
1905 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
1906 tmake_file="${tmake_file} lm32/t-lm32"
1909 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1910 tmake_file="${tmake_file} lm32/t-lm32"
1911 tmake_file="${tmake_file} lm32/t-rtems"
1914 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1915 tmake_file="${tmake_file} lm32/t-lm32"
1918 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1921 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1924 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1925 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1927 if test x$enable_threads = xyes; then
1932 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1933 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1935 if test x$enable_threads = xyes; then
1939 m68k-*-elf* | fido-*-elf*)
1942 # Check that $with_cpu makes sense.
1947 echo "Cannot accept --with-cpu=$with_cpu"
1954 default_m68k_cpu=68020
1958 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"
1959 tm_defines="${tm_defines} MOTOROLA=1"
1960 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1961 # Add multilibs for targets other than fido.
1966 tmake_file="$tmake_file m68k/t-mlibs"
1971 default_m68k_cpu=68020
1973 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
1974 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1975 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
1978 default_m68k_cpu=68020
1980 # needed to unconfuse gdb
1981 tm_defines="${tm_defines} OBSD_OLD_GAS"
1982 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1983 extra_options="${extra_options} openbsd.opt"
1984 tmake_file="t-openbsd m68k/t-openbsd"
1985 # we need collect2 until our bug is fixed...
1988 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
1989 # with uClibc, using the new GNU/Linux-style
1991 default_m68k_cpu=68020
1993 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"
1994 extra_options="${extra_options} m68k/uclinux.opt"
1995 tm_defines="${tm_defines} MOTOROLA=1"
1996 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1998 m68k-*-linux*) # Motorola m68k's running GNU/Linux
1999 # with ELF format using glibc 2
2000 # aka the GNU/Linux C library 6.
2001 default_m68k_cpu=68020
2003 with_arch=${with_arch:-m68k}
2004 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2005 extra_options="${extra_options} m68k/ieee.opt"
2006 tm_defines="${tm_defines} MOTOROLA=1"
2007 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2010 default_m68k_cpu=68020
2012 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2013 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"
2014 tm_defines="${tm_defines} MOTOROLA=1"
2017 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2018 tmake_file=mcore/t-mcore
2024 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2027 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2030 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2031 tm_file="${tm_file} glibc-stdint.h"
2032 c_target_objs="${c_target_objs} microblaze-c.o"
2033 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2034 tmake_file="${tmake_file} microblaze/t-microblaze"
2035 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2037 microblaze*-*-rtems*)
2040 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2043 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2046 tm_file="${tm_file} dbxelf.h"
2047 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2048 c_target_objs="${c_target_objs} microblaze-c.o"
2049 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2050 tmake_file="${tmake_file} microblaze/t-microblaze"
2051 tmake_file="${tmake_file} microblaze/t-rtems"
2056 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2059 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2062 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2063 c_target_objs="${c_target_objs} microblaze-c.o"
2064 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2065 tmake_file="${tmake_file} microblaze/t-microblaze"
2068 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2069 case "x${enable_multilib}" in
2071 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2072 *) echo "Unknown value for enable_multilib"; exit 1
2074 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2077 # Force .init_array support. The configure script cannot always
2078 # automatically detect that GAS supports it, yet we require it.
2079 gcc_cv_initfini_array=yes
2081 riscv*-*-elf* | riscv*-*-rtems*)
2082 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2085 tm_file="${tm_file} rtems.h riscv/rtems.h"
2086 tmake_file="${tmake_file} riscv/t-rtems"
2089 case "x${enable_multilib}" in
2091 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2092 *) echo "Unknown value for enable_multilib"; exit 1
2095 tmake_file="${tmake_file} riscv/t-riscv"
2098 # Force .init_array support. The configure script cannot always
2099 # automatically detect that GAS supports it, yet we require it.
2100 gcc_cv_initfini_array=yes
2103 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2104 tmake_file="${tmake_file} riscv/t-riscv"
2107 # Force .init_array support. The configure script cannot always
2108 # automatically detect that GAS supports it, yet we require it.
2109 gcc_cv_initfini_array=yes
2111 mips*-*-netbsd*) # NetBSD/mips, either endian.
2112 target_cpu_default="MASK_ABICALLS"
2113 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2114 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2117 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"
2118 extra_options="${extra_options} linux-android.opt"
2119 tmake_file="${tmake_file} mips/t-img-linux"
2120 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2121 with_arch_32="mips32r6"
2122 with_arch_64="mips64r6"
2127 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"
2128 extra_options="${extra_options} linux-android.opt"
2129 tmake_file="${tmake_file} mips/t-mti-linux"
2130 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2131 with_arch_32="mips32r2"
2132 with_arch_64="mips64r2"
2136 mips*-*-linux*) # Linux MIPS, either endian.
2137 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"
2138 extra_options="${extra_options} linux-android.opt"
2141 default_mips_arch=mips32r6
2144 default_mips_arch=mips32r2
2147 default_mips_arch=mips32
2149 mips64el-st-linux-gnu)
2150 default_mips_abi=n32
2151 tm_file="${tm_file} mips/st.h"
2152 tmake_file="${tmake_file} mips/t-st"
2153 enable_mips_multilibs="yes"
2155 mips64octeon*-*-linux*)
2156 default_mips_abi=n32
2157 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2158 target_cpu_default=MASK_SOFT_FLOAT_ABI
2159 enable_mips_multilibs="yes"
2161 mipsisa64r6*-*-linux*)
2162 default_mips_abi=n32
2163 default_mips_arch=mips64r6
2164 enable_mips_multilibs="yes"
2166 mipsisa64r2*-*-linux*)
2167 default_mips_abi=n32
2168 default_mips_arch=mips64r2
2169 enable_mips_multilibs="yes"
2171 mips64*-*-linux* | mipsisa64*-*-linux*)
2172 default_mips_abi=n32
2173 enable_mips_multilibs="yes"
2176 if test x$enable_targets = xall; then
2177 enable_mips_multilibs="yes"
2179 if test x$enable_mips_multilibs = xyes; then
2180 tmake_file="${tmake_file} mips/t-linux64"
2184 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2185 tmake_file="mips/t-mti-elf"
2186 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2187 with_arch_32="mips32r2"
2188 with_arch_64="mips64r2"
2191 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2192 tmake_file="mips/t-img-elf"
2193 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2194 with_arch_32="mips32r6"
2195 with_arch_64="mips64r6"
2198 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2199 tmake_file="mips/t-sde"
2200 extra_options="${extra_options} mips/sde.opt"
2201 case "${with_newlib}" in
2203 # newlib / libgloss.
2206 # MIPS toolkit libraries.
2207 tm_file="$tm_file mips/sdemtk.h"
2208 tmake_file="$tmake_file mips/t-sdemtk"
2209 case ${enable_threads} in
2211 thread_file='mipssde'
2218 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2221 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2224 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2227 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2230 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2233 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2237 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2238 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2239 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2240 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2241 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2242 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2243 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2244 tmake_file="mips/t-isa3264"
2247 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2250 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2253 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2256 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2259 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2262 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2266 mipsisa32*-*-elfoabi*)
2267 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2268 tm_file="${tm_file} mips/elfoabi.h"
2270 mipsisa64*-*-elfoabi*)
2271 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2272 tm_file="${tm_file} mips/elfoabi.h"
2275 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2279 mipsisa64sr71k-*-elf*)
2280 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2281 tmake_file=mips/t-sr71k
2282 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2284 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2285 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2286 tmake_file="mips/t-elf mips/t-sb1"
2287 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2289 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2290 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2291 tmake_file="mips/t-elf"
2293 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2294 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2295 tmake_file="mips/t-elf"
2296 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2298 mips64-*-elf* | mips64el-*-elf*)
2299 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2300 tmake_file="mips/t-elf"
2301 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2303 mips64vr-*-elf* | mips64vrel-*-elf*)
2304 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2305 tmake_file=mips/t-vr
2306 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2308 mips64orion-*-elf* | mips64orionel-*-elf*)
2309 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2310 tmake_file="mips/t-elf"
2311 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2314 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2315 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2318 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2319 tmake_file="${tmake_file} mips/t-vxworks"
2321 mipstx39-*-elf* | mipstx39el-*-elf*)
2322 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2323 tmake_file="mips/t-r3900"
2325 mmix-knuth-mmixware)
2326 tm_file="${tm_file} newlib-stdint.h"
2330 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2331 if test x$stabs = xyes
2333 tm_file="${tm_file} dbx.h"
2339 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2340 c_target_objs="msp430-c.o"
2341 cxx_target_objs="msp430-c.o"
2342 tmake_file="${tmake_file} msp430/t-msp430"
2343 extra_gcc_objs="driver-msp430.o"
2346 target_cpu_default="0"
2347 tm_defines="${tm_defines}"
2352 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2353 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2358 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2359 tmake_file="nds32/t-nds32 nds32/t-elf"
2362 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2363 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2367 # Handle --enable-default-relax setting.
2368 if test x${enable_default_relax} = xyes; then
2369 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2371 # Handle --with-ext-dsp
2372 if test x${with_ext_dsp} = xyes; then
2373 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2377 tm_file="elfos.h ${tm_file}"
2378 tmake_file="${tmake_file} nios2/t-nios2"
2381 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2384 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2385 extra_options="${extra_options} nios2/elf.opt"
2388 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2389 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2394 tm_file="${tm_file} newlib-stdint.h"
2396 tmake_file="nvptx/t-nvptx"
2397 if test x$enable_as_accelerator = xyes; then
2398 extra_programs="${extra_programs} mkoffload\$(exeext)"
2399 tm_file="${tm_file} nvptx/offload.h"
2403 tm_file="${tm_file} newlib-stdint.h"
2406 # port not yet contributed
2407 #powerpc-*-openbsd*)
2408 # tmake_file="${tmake_file} rs6000/t-fprules"
2412 extra_options="${extra_options} rs6000/darwin.opt"
2414 *-darwin1[0-9]* | *-darwin[8-9]*)
2415 tmake_file="${tmake_file} rs6000/t-darwin8"
2416 tm_file="${tm_file} rs6000/darwin8.h"
2419 tm_file="${tm_file} rs6000/darwin7.h"
2424 tmake_file="${tmake_file} t-slibgcc"
2425 extra_headers=altivec.h
2427 powerpc64-*-darwin*)
2428 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2429 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2430 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2431 extra_headers=altivec.h
2433 powerpc*-*-freebsd*)
2434 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2435 extra_options="${extra_options} rs6000/sysv4.opt"
2436 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2439 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2440 tmake_file="${tmake_file} rs6000/t-freebsd64"
2441 extra_options="${extra_options} rs6000/linux64.opt"
2444 tm_file="${tm_file} rs6000/freebsd.h"
2449 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2450 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2451 tmake_file="${tmake_file} rs6000/t-netbsd"
2452 extra_options="${extra_options} rs6000/sysv4.opt"
2455 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h ${cpu_type}/sysv4.h ${cpu_type}/eabi.h ${cpu_type}/e500.h ${cpu_type}/eabispe.h"
2456 extra_options="${extra_options} ${cpu_type}/sysv4.opt"
2457 tmake_file="${cpu_type}/t-spe ${cpu_type}/t-ppccomm"
2460 powerpc-*-eabisimaltivec*)
2461 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h"
2462 extra_options="${extra_options} rs6000/sysv4.opt"
2463 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2467 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
2468 extra_options="${extra_options} rs6000/sysv4.opt"
2469 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2473 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2474 extra_options="${extra_options} rs6000/sysv4.opt"
2475 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2477 powerpc-*-eabialtivec*)
2478 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
2479 extra_options="${extra_options} rs6000/sysv4.opt"
2480 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2484 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h"
2485 extra_options="${extra_options} rs6000/sysv4.opt"
2486 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2489 powerpc-*-rtems*spe*)
2490 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h powerpcspe/sysv4.h powerpcspe/eabi.h powerpcspe/e500.h powerpcspe/rtems.h rtems.h"
2491 extra_options="${extra_options} powerpcspe/sysv4.opt"
2492 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-rtems powerpcspe/t-ppccomm"
2495 tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/rtems.h rtems.h"
2496 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2497 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2499 powerpc*-*-linux*spe*)
2500 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h powerpcspe/sysv4.h"
2501 extra_options="${extra_options} powerpcspe/sysv4.opt"
2502 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm"
2503 extra_objs="$extra_objs powerpcspe-linux.o"
2505 tm_file="${tm_file} powerpcspe/linux.h glibc-stdint.h"
2506 tmake_file="${tmake_file} powerpcspe/t-ppcos powerpcspe/t-linux"
2507 tm_file="${tm_file} powerpcspe/linuxspe.h powerpcspe/e500.h"
2510 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2511 extra_options="${extra_options} rs6000/sysv4.opt"
2512 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2513 extra_objs="$extra_objs rs6000-linux.o"
2516 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2518 case ${target}:${with_cpu} in
2519 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2521 maybe_biarch=${cpu_is_64bit}
2522 case ${enable_targets} in
2523 *powerpc64*) maybe_biarch=yes ;;
2524 all) maybe_biarch=yes ;;
2527 powerpc64*-*-linux*spe* | powerpc*-*-linux*paired*)
2528 echo "*** Configuration ${target} not supported" 1>&2
2531 powerpc*-*-linux*spe*)
2535 case ${target}:${enable_targets}:${maybe_biarch} in
2536 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2537 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2538 | powerpcle-*:*powerpc64le*:yes)
2539 if test x$cpu_is_64bit = xyes; then
2540 tm_file="${tm_file} rs6000/default64.h"
2542 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2543 tmake_file="$tmake_file rs6000/t-linux64"
2546 tmake_file="$tmake_file rs6000/t-linux64le"
2547 case ${enable_targets} in
2548 all | *powerpc64-* | *powerpc-*)
2549 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2552 case ${enable_targets} in
2553 all | *powerpc64le-* | *powerpcle-*)
2554 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2557 extra_options="${extra_options} rs6000/linux64.opt"
2560 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2561 extra_options="${extra_options} rs6000/linux64.opt"
2562 tmake_file="${tmake_file} rs6000/t-linux"
2565 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2566 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2570 powerpc*-*-linux*ppc476*)
2571 tm_file="${tm_file} rs6000/476.h"
2572 extra_options="${extra_options} rs6000/476.opt" ;;
2573 powerpc*-*-linux*altivec*)
2574 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2575 powerpc*-*-linux*spe*)
2576 tm_file="${tm_file} ${cpu_type}/linuxspe.h ${cpu_type}/e500.h" ;;
2580 enable_secureplt=yes ;;
2582 if test x${enable_secureplt} = xyes; then
2583 tm_file="rs6000/secureplt.h ${tm_file}"
2586 powerpc-wrs-vxworks*spe)
2587 tm_file="${tm_file} elfos.h freebsd-spec.h powerpcspe/sysv4.h"
2588 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm powerpcspe/t-vxworks"
2589 extra_options="${extra_options} powerpcspe/sysv4.opt"
2590 extra_headers=ppc-asm.h
2591 tm_file="${tm_file} vx-common.h vxworks.h powerpcspe/vxworks.h powerpcspe/e500.h"
2593 powerpc-wrs-vxworks*)
2594 tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2595 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2596 extra_options="${extra_options} rs6000/sysv4.opt"
2597 extra_headers=ppc-asm.h
2600 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2601 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2604 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
2605 tmake_file="${tmake_file} rs6000/t-vxworksae"
2608 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
2614 tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2615 tmake_file="t-lynx rs6000/t-lynx"
2616 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2622 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2623 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2624 extra_options="${extra_options} rs6000/sysv4.opt"
2626 powerpcle-*-eabisim*)
2627 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/eabisim.h"
2628 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2629 extra_options="${extra_options} rs6000/sysv4.opt"
2633 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"
2634 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2635 extra_options="${extra_options} rs6000/sysv4.opt"
2638 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2639 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2640 tmake_file="rs6000/t-aix43 t-slibgcc"
2641 extra_options="${extra_options} rs6000/aix64.opt"
2644 use_gcc_stdint=provide
2647 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2648 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2649 extra_options="${extra_options} rs6000/aix64.opt"
2650 tmake_file="rs6000/t-aix43 t-slibgcc"
2656 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2657 tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2658 tmake_file="rs6000/t-aix52 t-slibgcc"
2659 extra_options="${extra_options} rs6000/aix64.opt"
2665 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2666 tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2667 tmake_file="rs6000/t-aix52 t-slibgcc"
2668 extra_options="${extra_options} rs6000/aix64.opt"
2672 extra_headers=altivec.h
2674 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
2675 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2676 tmake_file="rs6000/t-aix52 t-slibgcc"
2677 extra_options="${extra_options} rs6000/aix64.opt"
2681 extra_headers=altivec.h
2682 default_use_cxa_atexit=yes
2684 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
2685 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
2686 tmake_file="rs6000/t-aix52 t-slibgcc"
2687 extra_options="${extra_options} rs6000/aix64.opt"
2691 extra_headers="altivec.h amo.h"
2692 default_use_cxa_atexit=yes
2694 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2695 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
2696 tmake_file="rs6000/t-aix52 t-slibgcc"
2697 extra_options="${extra_options} rs6000/aix64.opt"
2701 extra_headers="altivec.h amo.h"
2702 default_use_cxa_atexit=yes
2705 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2706 target_has_targetm_common=no
2707 c_target_objs="rl78-c.o"
2708 cxx_target_objs="rl78-c.o"
2709 tmake_file="${tmake_file} rl78/t-rl78"
2712 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2713 tmake_file="${tmake_file} rx/t-rx"
2716 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2717 c_target_objs="${c_target_objs} s390-c.o"
2718 cxx_target_objs="${cxx_target_objs} s390-c.o"
2719 if test x$enable_targets = xall; then
2720 tmake_file="${tmake_file} s390/t-linux64"
2722 tmake_file="${tmake_file} s390/t-s390"
2725 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2726 tm_p_file="linux-protos.h s390/s390-protos.h"
2727 c_target_objs="${c_target_objs} s390-c.o"
2728 cxx_target_objs="${cxx_target_objs} s390-c.o"
2729 md_file=s390/s390.md
2730 extra_modes=s390/s390-modes.def
2731 out_file=s390/s390.c
2732 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
2735 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2736 tm_p_file=s390/s390-protos.h
2737 c_target_objs="${c_target_objs} s390-c.o"
2738 cxx_target_objs="${cxx_target_objs} s390-c.o"
2739 md_file=s390/s390.md
2740 extra_modes=s390/s390-modes.def
2741 out_file=s390/s390.c
2743 extra_options="${extra_options} s390/tpf.opt"
2744 tmake_file="${tmake_file} s390/t-s390"
2746 sh-*-elf* | sh[12346l]*-*-elf* | \
2747 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2748 sh-*-netbsdelf* | shl*-*-netbsdelf*)
2749 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2750 if test x${with_endian} = x; then
2752 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2753 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2754 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2755 shl* | sh*-*-linux* | \
2756 sh-superh-elf) with_endian=little,big ;;
2757 sh[1234]*-*-*) with_endian=big ;;
2758 *) with_endian=big,little ;;
2761 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2762 # First word : the default endian.
2763 # Second word: the secondary endian (optional).
2764 case ${with_endian} in
2765 big) TM_ENDIAN_CONFIG=mb ;;
2766 little) TM_ENDIAN_CONFIG=ml ;;
2767 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2768 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2769 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2771 case ${with_endian} in
2772 little*) tm_file="sh/little.h ${tm_file}" ;;
2774 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2776 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2777 if test x$enable_fdpic = xyes; then
2778 tm_defines="$tm_defines FDPIC_DEFAULT=1"
2780 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2782 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
2783 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2786 sh*-superh-elf) if test x$with_libgloss != xno; then
2788 tm_file="${tm_file} sh/newlib.h"
2790 tm_file="${tm_file} sh/embed-elf.h"
2791 tm_file="${tm_file} sh/superh.h"
2792 extra_options="${extra_options} sh/superh.opt" ;;
2793 *) if test x$with_newlib = xyes \
2794 && test x$with_libgloss = xyes; then
2795 tm_file="${tm_file} sh/newlib.h"
2797 tm_file="${tm_file} sh/embed-elf.h" ;;
2803 tm_file="${tm_file} newlib-stdint.h"
2806 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2807 case `echo ${target} | sed 's/e[lb]-/-/'` in
2808 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2809 sh4a_single*) sh_cpu_target=sh4a-single ;;
2810 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2811 sh4al) sh_cpu_target=sh4al ;;
2812 sh4a*) sh_cpu_target=sh4a ;;
2813 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2814 sh4_single*) sh_cpu_target=sh4-single ;;
2815 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2816 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2817 sh3e*) sh_cpu_target=sh3e ;;
2818 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2819 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2820 sh2a_single*) sh_cpu_target=sh2a-single ;;
2821 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2822 sh2a*) sh_cpu_target=sh2a ;;
2823 sh2e*) sh_cpu_target=sh2e ;;
2824 sh2*) sh_cpu_target=sh2 ;;
2825 *) sh_cpu_target=sh1 ;;
2827 # did the user say --without-fp ?
2828 if test x$with_fp = xno; then
2829 case ${sh_cpu_target} in
2831 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2832 sh4*) sh_cpu_target=sh4-nofpu ;;
2833 sh3*) sh_cpu_target=sh3 ;;
2834 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2835 sh2*) sh_cpu_target=sh2 ;;
2836 *) echo --without-fp not available for $target: ignored
2838 tm_defines="$tm_defines STRICT_NOFPU=1"
2840 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2841 case $sh_cpu_default in
2842 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2843 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2844 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2845 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2846 "") sh_cpu_default=${sh_cpu_target} ;;
2847 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2849 sh_multilibs=${with_multilib_list}
2850 if test "$sh_multilibs" = "default" ; then
2852 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2853 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2854 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2855 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2856 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2858 if test x$with_fp = xno; then
2859 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`"
2862 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2863 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2864 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2865 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2866 for sh_multilib in ${sh_multilibs}; do
2867 case ${sh_multilib} in
2868 m1 | m2 | m2e | m3 | m3e | \
2869 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2870 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2871 m2a | m2a-single | m2a-single-only | m2a-nofpu)
2872 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2873 # It is passed to MULTIILIB_OPTIONS verbatim.
2874 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2875 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2877 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2878 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2879 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2881 echo "with_multilib_list=${sh_multilib} not supported."
2886 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2887 if test x${enable_incomplete_targets} = xyes ; then
2888 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
2890 tm_file="$tm_file ./sysroot-suffix.h"
2891 tmake_file="$tmake_file t-sysroot-suffix"
2894 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2895 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2898 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2899 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2902 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2905 tmake_file="sparc/t-sparc sparc/t-leon"
2908 tmake_file="sparc/t-sparc sparc/t-leon3"
2911 tmake_file="sparc/t-sparc sparc/t-elf"
2916 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2917 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2920 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2921 extra_options="${extra_options} sparc/long-double-switch.opt"
2924 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2927 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2930 tmake_file="${tmake_file} sparc/t-sparc"
2933 if test x$enable_targets = xall; then
2934 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2935 tmake_file="${tmake_file} sparc/t-linux64"
2937 tm_file="${tm_file} sparc/linux.h"
2938 tmake_file="${tmake_file} sparc/t-linux"
2942 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
2943 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2944 extra_options="${extra_options} sparc/long-double-switch.opt"
2945 tmake_file="${tmake_file} sparc/t-sparc"
2948 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2950 sparc64-*-* | sparcv9-*-*)
2951 tm_file="sparc/default64.h ${tm_file}"
2954 test x$with_cpu != x || with_cpu=v9
2957 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2960 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2961 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2964 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2965 extra_options="${extra_options}"
2966 tmake_file="${tmake_file} sparc/t-sparc"
2969 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2970 extra_options="${extra_options}"
2971 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2974 tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h"
2975 extra_options="${extra_options} sparc/long-double-switch.opt"
2976 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2978 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2979 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2980 extra_options="${extra_options} sparc/long-double-switch.opt"
2981 case "x$with_cpu" in
2983 x) with_cpu=ultrasparc ;;
2984 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2986 tmake_file="${tmake_file} sparc/t-sparc"
2989 tm_file="sparc/biarch64.h ${tm_file}"
2990 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
2991 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2992 extra_options="${extra_options} sparc/long-double-switch.opt"
2993 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2996 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2997 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2998 extra_options="${extra_options} openbsd.opt"
2999 extra_options="${extra_options}"
3002 tmake_file="${tmake_file} sparc/t-sparc"
3005 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
3006 tmake_file="spu/t-spu-elf"
3007 native_system_header_dir=/include
3008 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
3009 extra_modes=spu/spu-modes.def
3010 c_target_objs="${c_target_objs} spu-c.o"
3011 cxx_target_objs="${cxx_target_objs} spu-c.o"
3014 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3015 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3016 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3020 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3021 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3022 tm_file="${tm_file} ./sysroot-suffix.h"
3023 tmake_file="t-sysroot-suffix t-slibgcc"
3024 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3028 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3029 tmake_file="${tmake_file} tilegx/t-tilegx"
3030 extra_objs="${extra_objs} mul-tables.o"
3031 c_target_objs="${c_target_objs} tilegx-c.o"
3032 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3033 extra_headers="feedback.h"
3036 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3041 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3042 tmake_file="${tmake_file} tilepro/t-tilepro"
3043 extra_objs="${extra_objs} mul-tables.o"
3044 c_target_objs="${c_target_objs} tilepro-c.o"
3045 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3046 extra_headers="feedback.h"
3049 target_cpu_default="TARGET_CPU_generic"
3050 tm_file="dbxelf.h elfos.h v850/v850.h"
3051 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3052 tmake_file="${tmake_file} v850/t-v850"
3053 tmake_file="${tmake_file} v850/t-rtems"
3055 c_target_objs="v850-c.o"
3056 cxx_target_objs="v850-c.o"
3061 target_cpu_default="TARGET_CPU_v850e3v5"
3064 target_cpu_default="TARGET_CPU_v850e2v3"
3067 target_cpu_default="TARGET_CPU_v850e2"
3069 v850e1-*-* | v850es-*-*)
3070 target_cpu_default="TARGET_CPU_v850e1"
3073 target_cpu_default="TARGET_CPU_v850e"
3076 target_cpu_default="TARGET_CPU_generic"
3079 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3080 if test x$stabs = xyes
3082 tm_file="${tm_file} dbx.h"
3085 c_target_objs="v850-c.o"
3086 cxx_target_objs="v850-c.o"
3090 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3091 extra_options="${extra_options} vax/elf.opt"
3094 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3095 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3096 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3099 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3100 extra_options="${extra_options} openbsd.opt"
3104 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3105 tmake_file="visium/t-visium visium/t-crtstuff"
3108 # For historical reasons, the target files omit the 'x'.
3109 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3110 tm_p_file=stormy16/stormy16-protos.h
3111 md_file=stormy16/stormy16.md
3112 out_file=stormy16/stormy16.c
3113 extra_options=stormy16/stormy16.opt
3114 tmake_file="stormy16/t-stormy16"
3117 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3118 extra_options="${extra_options} xtensa/elf.opt"
3121 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3122 tmake_file="${tmake_file} xtensa/t-xtensa"
3125 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3126 tmake_file="${tmake_file} xtensa/t-xtensa"
3127 extra_options="${extra_options} xtensa/uclinux.opt"
3130 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3135 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3136 c_target_objs="m32c-pragma.o"
3137 cxx_target_objs="m32c-pragma.o"
3140 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3141 c_target_objs="m32c-pragma.o"
3142 cxx_target_objs="m32c-pragma.o"
3145 echo "*** Configuration ${target} not supported" 1>&2
3151 i[34567]86-*-linux* | x86_64-*-linux*)
3152 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3154 i[34567]86-*-* | x86_64-*-*)
3155 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3157 powerpc*-*-* | rs6000-*-*)
3158 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3164 tmake_file="${tmake_file} t-musl"
3167 tmake_file="${tmake_file} t-uclibc"
3171 # Assume the existence of indirect function support and allow the use of the
3172 # resolver attribute.
3174 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3178 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3179 default_gnu_indirect_function=yes
3185 # Build mkoffload tool
3187 *-intelmic-* | *-intelmicemul-*)
3188 tmake_file="${tmake_file} i386/t-intelmic"
3189 tm_file="${tm_file} i386/intelmic-offload.h"
3193 if [ "$target_has_targetcm" = "no" ]; then
3194 c_target_objs="$c_target_objs default-c.o"
3195 cxx_target_objs="$cxx_target_objs default-c.o"
3198 if [ "$common_out_file" = "" ]; then
3199 if [ "$target_has_targetm_common" = "yes" ]; then
3200 common_out_file="$cpu_type/$cpu_type-common.c"
3202 common_out_file="default-common.c"
3206 # Support for --with-cpu and related options (and a few unrelated options,
3210 echo "--with-cpu must be passed a value" 1>&2
3215 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3216 # to generic if there is no processor scheduler model for the target.
3219 arch_without_sse2=no
3220 arch_without_64bit=no
3223 if test $fbsd_major -ge 6; then
3229 arch_without_sse2=yes
3230 arch_without_64bit=yes
3235 arch_without_sse2=yes
3236 arch_without_64bit=yes
3241 arch_without_sse2=yes
3242 arch_without_64bit=yes
3247 arch_without_sse2=yes
3248 arch_without_64bit=yes
3251 arch_without_sse2=yes
3252 arch_without_64bit=yes
3253 case ${target_noncanonical} in
3266 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3276 i686-*-* | i786-*-*)
3277 case ${target_noncanonical} in
3306 amdfam10-*|barcelona-*)
3310 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3314 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3318 athlon_xp-*|athlon_mp-*|athlon_4-*)
3321 arch_without_sse2=yes
3322 arch_without_64bit=yes
3324 athlon_tbird-*|athlon-*)
3327 arch_without_sse2=yes
3332 arch_without_sse2=yes
3337 arch_without_sse2=yes
3339 pentium3-*|pentium3m-*)
3342 arch_without_sse2=yes
3344 pentium4-*|pentium4m-*)
3383 arch_without_sse2=yes
3388 arch_without_sse2=yes
3389 arch_without_64bit=yes
3394 case ${target_noncanonical} in
3423 amdfam10-*|barcelona-*)
3427 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3431 k8-*|opteron-*|athlon_64-*)
3463 # If there is no $with_cpu option, try to infer one from ${target}.
3464 # This block sets nothing except for with_cpu.
3465 if test x$with_cpu = x ; then
3467 i[34567]86-*-elfiamcu)
3470 i[34567]86-*-*|x86_64-*-*)
3488 frv-*-*linux* | frv400-*-*linux*)
3495 case "$with_arch" in
3497 with_cpu=${default_cf_cpu}
3500 with_cpu=m${default_m68k_cpu}
3505 # For SPE, start with 8540, then upgrade to 8548 if
3506 # --enable-e500-double was requested explicitly or if we were
3507 # configured for e500v2.
3509 if test x$enable_e500_double = xyes; then
3512 case ${target_noncanonical} in
3530 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3539 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3541 i[34567]86-*-*|x86_64-*-*)
3542 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3543 if test x$with_cpu_32 = x; then
3544 with_cpu_32=$with_cpu
3546 if test x$with_cpu_64 = x; then
3547 with_cpu_64=$with_cpu
3555 # Support for --with-arch and related options (and a few unrelated options,
3557 case ${with_arch} in
3559 echo "--with-arch must be passed a value" 1>&2
3564 # If there is no $with_arch option, try to infer one from ${target}.
3565 # This block sets nothing except for with_arch.
3566 if test x$with_arch = x ; then
3568 i[34567]86-*-darwin*|x86_64-*-darwin*)
3569 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3570 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3572 i[34567]86-*-elfiamcu)
3576 # --with-fpmath sets the default ISA to SSE2, which is the same
3577 # ISA supported by Pentium 4.
3578 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3587 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3595 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3597 i[34567]86-*-darwin*|x86_64-*-darwin*)
3598 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3599 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3601 i[34567]86-*-*|x86_64-*-*)
3602 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3603 if test x$with_arch_32 = x; then
3604 with_arch_32=$with_arch
3606 if test x$with_arch_64 = x; then
3607 if test $arch_without_64bit = yes; then
3608 # Set the default 64bit arch to x86-64 if the default arch
3609 # doesn't support 64bit.
3612 with_arch_64=$with_arch
3616 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3617 # Set the default 64bit arch to x86-64 if the default arch
3618 # doesn't support 64bit and we need 64bit ISA.
3619 with_arch_32=$with_arch
3627 # Infer a default setting for --with-float.
3628 if test x$with_float = x; then
3630 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3631 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3632 # comply with IEEE 754.
3638 # Infer a default setting for --with-fpu.
3639 if test x$with_fpu = x; then
3641 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3642 # The R5900 FPU only supports single precision.
3648 # Support --with-fpmath.
3649 if test x$with_fpmath != x; then
3651 i[34567]86-*-* | x86_64-*-*)
3652 case ${with_fpmath} in
3654 tm_file="${tm_file} i386/avxmath.h"
3657 tm_file="${tm_file} i386/ssemath.h"
3660 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3666 echo "--with-fpmath isn't supported for $target." 1>&2
3672 # Similarly for --with-schedule.
3673 if test x$with_schedule = x; then
3676 # Override default PA8000 scheduling model.
3677 with_schedule=7100LC
3682 # Infer a default setting for --with-llsc.
3683 if test x$with_llsc = x; then
3685 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3686 # The R5900 doesn't support LL(D) and SC(D).
3690 # The kernel emulates LL and SC where necessary.
3696 # Validate and mark as valid any --with options supported
3697 # by this target. In order to use a particular --with option
3698 # you must list it in supported_defaults; validating the value
3699 # is optional. This case statement should set nothing besides
3700 # supported_defaults.
3705 supported_defaults="abi cpu arch"
3706 for which in cpu arch; do
3708 eval "val=\$with_$which"
3709 base_val=`echo $val | sed -e 's/\+.*//'`
3710 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
3712 if [ $which = arch ]; then
3713 def=aarch64-arches.def
3714 pattern=AARCH64_ARCH
3716 def=aarch64-cores.def
3717 pattern=AARCH64_CORE
3720 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3722 # Find the base CPU or ARCH id in aarch64-cores.def or
3723 # aarch64-arches.def
3724 if [ x"$base_val" = x ] \
3725 || grep "^$pattern(\"$base_val\"," \
3726 ${srcdir}/config/aarch64/$def \
3729 if [ $which = arch ]; then
3730 base_id=`grep "^$pattern(\"$base_val\"," \
3731 ${srcdir}/config/aarch64/$def | \
3732 sed -e 's/^[^,]*,[ ]*//' | \
3734 # Extract the architecture flags from aarch64-arches.def
3735 ext_mask=`grep "^$pattern(\"$base_val\"," \
3736 ${srcdir}/config/aarch64/$def | \
3740 base_id=`grep "^$pattern(\"$base_val\"," \
3741 ${srcdir}/config/aarch64/$def | \
3742 sed -e 's/^[^,]*,[ ]*//' | \
3746 while [ x"$ext_val" != x ]
3748 ext_val=`echo $ext_val | sed -e 's/\+//'`
3749 ext=`echo $ext_val | sed -e 's/\+.*//'`
3750 base_ext=`echo $ext | sed -e 's/^no//'`
3752 if [ x"$base_ext" = x ] \
3753 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3754 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3757 ext_canon=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3758 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3759 sed -e 's/^[^,]*,[ ]*//' | \
3761 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3762 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3763 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3764 sed -e 's/,.*$//' | \
3766 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3767 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3768 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*[^,]*,[ ]*//' | \
3769 sed -e 's/,.*$//' | \
3773 if [ $ext = $base_ext ]; then
3775 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
3777 # Removing extension
3778 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
3783 echo "Unknown extension used in --with-$which=$val" 1>&2
3786 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3789 ext_mask="(("$ext_mask") << 6)"
3790 if [ x"$base_id" != x ]; then
3791 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3795 echo "Unknown $which used in --with-$which=$val" 1>&2
3802 supported_defaults="cpu tune"
3803 for which in cpu tune; do
3804 eval "val=\$with_$which"
3807 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3808 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3812 echo "Unknown CPU used in --with-$which=$val" 1>&2
3820 supported_defaults="cpu"
3822 if [ x"$with_cpu" = x ] \
3823 || grep "^ARC_CPU ($with_cpu," \
3824 ${srcdir}/config/arc/arc-cpus.def \
3829 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3835 supported_defaults="arch cpu float tune fpu abi mode tls"
3836 for which in cpu tune arch; do
3837 # See if it matches a supported value
3838 eval "val=\$with_$which"
3839 if [ x"$val" != x ]; then
3840 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3841 -v cmd="chk$which $val" \
3842 ${srcdir}/config/arm/arm-cpus.in`
3843 if [ "$cpu" = "error" ]; then
3844 echo "Unknown target in --with-$which=$val" 1>&2
3848 eval "target_${which}_cname=$new_val"
3849 echo "For $val real value is $new_val"
3854 case "$with_float" in
3856 | soft | hard | softfp)
3860 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3865 # see if --with-fpu matches any of the supported FPUs
3866 if [ x"$with_fpu" != x ] ; then
3867 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3868 -v cmd="chkfpu $with_fpu" \
3869 ${srcdir}/config/arm/arm-cpus.in`
3870 if [ "$fpu" = "error"]
3872 echo "Unknown target in --with-$which=$val" 1>&2
3879 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3883 echo "Unknown ABI used in --with-abi=$with_abi"
3888 case "$with_mode" in
3894 echo "Unknown mode used in --with-mode=$with_mode"
3905 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3910 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3911 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3915 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3916 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3920 # Add extra multilibs
3921 if test "x$with_multilib_list" != x; then
3922 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3923 if test "x${arm_multilibs}" != xdefault ; then
3924 for arm_multilib in ${arm_multilibs}; do
3925 case ${arm_multilib} in
3927 tmake_profile_file="arm/t-multilib"
3930 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3937 if test "x${tmake_profile_file}" != x ; then
3938 # arm/t-aprofile and arm/t-rmprofile are only
3939 # designed to work without any with-cpu,
3940 # with-arch, with-mode, with-fpu or with-float
3942 if test "x$with_arch" != x \
3943 || test "x$with_cpu" != x \
3944 || test "x$with_float" != x \
3945 || test "x$with_fpu" != x \
3946 || test "x$with_mode" != x ; then
3947 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
3950 # But pass the default value for float-abi
3951 # through to the multilib selector
3953 tmake_file="${tmake_file} ${tmake_profile_file}"
3954 TM_MULTILIB_CONFIG="$with_multilib_list"
3957 target_cpu_cname=${target_cpu_cname:-arm6}
3958 with_cpu=${with_cpu:-$target_cpu_cname}
3962 supported_defaults=cpu
3967 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3973 fido-*-* | m68k*-*-*)
3974 supported_defaults="arch cpu"
3975 case "$with_arch" in
3977 m68k_arch_family="$with_arch"
3980 echo "Invalid --with-arch=$with_arch" 1>&2
3985 # We always have a $with_cpu setting here.
3987 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3988 m68k_cpu_ident=$with_cpu
3991 m68k_cpu_ident=m68020
3992 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3995 m68k_cpu_ident=m68020
3996 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3999 # We need the C identifier rather than the string.
4000 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4001 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4002 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4003 ${srcdir}/config/m68k/m68k-devices.def`
4004 if [ x"$m68k_cpu_ident" = x ] ; then
4005 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4008 with_cpu="mcpu=$with_cpu"
4014 supported_defaults="arch schedule"
4016 case "$with_arch" in
4017 "" | 1.0 | 1.1 | 2.0)
4021 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4026 case "$with_schedule" in
4027 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4031 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4037 i[34567]86-*-* | x86_64-*-*)
4038 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4039 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4040 eval "val=\$with_$which"
4041 case " $x86_archs " in
4049 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4058 if test x${val} != x; then
4059 case " $x86_64_archs " in
4064 # Allow $x86_cpus --with-cpu=/--with-tune=
4067 case " $x86_cpus " in
4072 echo "Unknown CPU given in --with-$which=$val." 1>&2
4078 echo "Unknown CPU given in --with-$which=$val." 1>&2
4091 supported_defaults="abi arch tune"
4094 riscv-* | riscv32*) xlen=32 ;;
4095 riscv64*) xlen=64 ;;
4096 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4099 # Infer arch from --with-arch, --target, and --with-abi.
4100 case "${with_arch}" in
4101 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4105 # Infer XLEN, but otherwise assume GC.
4106 case "${with_abi}" in
4107 ilp32e) with_arch="rv32e" ;;
4108 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4109 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4110 *) with_arch="rv${xlen}gc" ;;
4114 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4119 # Make sure --with-abi is valid. If it was not specified,
4120 # pick a default based on the ISA, preferring soft-float
4121 # unless the D extension is present.
4122 case "${with_abi}" in
4123 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4126 case "${with_arch}" in
4127 rv32*d* | rv32g*) with_abi=ilp32d ;;
4128 rv32e*) with_abi=ilp32e ;;
4129 rv32*) with_abi=ilp32 ;;
4130 rv64*d* | rv64g*) with_abi=lp64d ;;
4131 rv64*) with_abi=lp64 ;;
4135 echo "--with-abi=${with_abi} is not supported" 1>&2
4140 # Make sure ABI and ISA are compatible.
4141 case "${with_abi},${with_arch}" in
4142 ilp32,rv32* | ilp32e,rv32e* \
4143 | ilp32f,rv32*f* | ilp32f,rv32g* \
4144 | ilp32d,rv32*d* | ilp32d,rv32g* \
4146 | lp64f,rv64*f* | lp64f,rv64g* \
4147 | lp64d,rv64*d* | lp64d,rv64g*)
4150 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4155 # Handle --with-multilib-list.
4156 if test "x${with_multilib_list}" != xdefault; then
4157 tm_file="${tm_file} riscv/withmultilib.h"
4158 tmake_file="${tmake_file} riscv/t-withmultilib"
4160 case ${with_multilib_list} in
4161 ilp32 | ilp32f | ilp32d \
4162 | lp64 | lp64f | lp64d )
4163 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4166 echo "--with-multilib-list=${with_multilib_list} not supported."
4170 # Define macros to select the default multilib.
4171 case ${with_arch} in
4173 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4176 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4179 echo "unsupported --with-arch for --with-multilib-list"
4184 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4187 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4190 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4193 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4196 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4199 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4202 echo "unsupported --with-abi for --with-multilib"
4209 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 lxc1-sxc1 madd4"
4211 case ${with_float} in
4216 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4222 "" | single | double)
4226 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4236 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4241 case ${with_fp_32} in
4246 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4251 case ${with_odd_spreg_32} in
4253 with_odd_spreg_32="odd-spreg"
4256 with_odd_spreg_32="no-odd-spreg"
4262 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4268 "" | 32 | o64 | n32 | 64 | eabi)
4272 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4277 case ${with_divide} in
4278 "" | breaks | traps)
4282 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4287 case ${with_llsc} in
4298 echo "Unknown llsc type used in --with-llsc" 1>&2
4303 case ${with_mips_plt} in
4308 with_mips_plt=no-plt
4313 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4318 case ${with_synci} in
4328 echo "Unknown synci type used in --with-synci" 1>&2
4333 case ${with_lxc1_sxc1} in
4335 with_lxc1_sxc1=lxc1-sxc1
4338 with_lxc1_sxc1=no-lxc1-sxc1
4343 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4348 case ${with_madd4} in
4358 echo "Unknown madd4 type used in --with-madd4" 1>&2
4365 supported_defaults="arch cpu nds32_lib float fpu_config"
4367 # process --with-arch
4368 case "${with_arch}" in
4370 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4374 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4377 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4380 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4384 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4389 case "${with_cpu}" in
4393 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4397 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4402 # process --with-nds32-lib
4403 case "${with_nds32_lib}" in
4405 # the default library is newlib
4406 with_nds32_lib=newlib
4407 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4411 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4415 # for the arch=v3f or arch=v3s under mculib toolchain,
4416 # we would like to set -fno-math-errno as default
4417 case "${with_arch}" in
4419 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4425 tm_defines="${tm_defines} TARGET_DEFAULT_TLSDESC_TRAMPOLINE=1"
4430 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4435 # process --with-float
4436 case "${with_float}" in
4441 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4446 # process --with-config-fpu
4447 case "${with_config_fpu}" in
4452 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4460 supported_defaults="arch"
4461 case "$with_arch" in
4466 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4472 powerpc*-*-* | rs6000-*-*)
4473 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4475 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4476 eval "val=\$with_$which"
4478 default32 | default64)
4483 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4487 with_which="with_$which"
4491 tm_defines="${tm_defines} CONFIG_PPC405CR"
4492 eval "with_$which=405"
4494 "" | common | native \
4495 | power[3456789] | power5+ | power6x \
4496 | powerpc | powerpc64 | powerpc64le \
4498 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4499 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4500 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4501 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4502 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4506 echo "Unknown cpu used in --with-$which=$val." 1>&2
4513 "" | elfv1 | elfv2 )
4517 echo "Unknown ABI used in --with-abi=$with_abi"
4522 if test "x$with_advance_toolchain" != x; then
4523 if test -d "/opt/$with_advance_toolchain/." -a \
4524 -d "/opt/$with_advance_toolchain/bin/." -a \
4525 -d "/opt/$with_advance_toolchain/include/."; then
4527 tm_file="$tm_file ./advance-toolchain.h"
4528 (at="/opt/$with_advance_toolchain"
4529 echo "/* Use Advance Toolchain $at */"
4531 echo "#undef LINK_OS_EXTRA_SPEC32"
4532 echo "#define LINK_OS_EXTRA_SPEC32" \
4533 "\"%(link_os_new_dtags)" \
4534 "-rpath $prefix/lib -rpath $at/lib" \
4535 "-L $prefix/lib -L $at/lib\""
4537 echo "#undef LINK_OS_EXTRA_SPEC64"
4538 echo "#define LINK_OS_EXTRA_SPEC64" \
4539 "\"%(link_os_new_dtags)" \
4540 "-rpath $prefix/lib64 -rpath $at/lib64" \
4541 "-L $prefix/lib64 -L $at/lib64\""
4543 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4544 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4545 "\"--enable-new-dtags\""
4547 echo "#undef DYNAMIC_LINKER_PREFIX"
4548 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4550 echo "#undef MD_EXEC_PREFIX"
4551 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4553 echo "#undef MD_STARTFILE_PREFIX"
4554 echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \
4555 > advance-toolchain.h
4557 echo "Unknown advance-toolchain $with_advance_toolchain"
4562 # Set up the default long double format if the user changed it.
4563 if test x$with_long_double_format = xieee; then
4564 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
4566 elif test x$with_long_double_format = xibm; then
4567 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
4572 supported_defaults="arch mode tune"
4574 for which in arch tune; do
4575 eval "val=\$with_$which"
4577 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12)
4581 echo "Unknown cpu used in --with-$which=$val." 1>&2
4587 case ${with_mode} in
4592 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4598 sh[123456ble]*-*-* | sh-*-*)
4599 supported_defaults="cpu"
4600 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4601 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4604 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4606 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4609 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4610 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4611 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4612 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4618 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4620 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4621 eval "val=\$with_$which"
4623 "" | sparc | sparcv9 | sparc64 \
4625 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4626 | sparclite | f930 | f934 | sparclite86x \
4627 | sparclet | tsc701 \
4628 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4629 | niagara3 | niagara4 | niagara7 | m8)
4633 echo "Unknown cpu used in --with-$which=$val" 1>&2
4639 case ${with_float} in
4644 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4651 supported_defaults="arch tune"
4653 for which in arch tune; do
4654 eval "val=\$with_$which"
4656 "" | cell | celledp)
4660 echo "Unknown cpu used in --with-$which=$val." 1>&2
4668 supported_defaults="arch"
4670 case ${with_arch} in
4671 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4675 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4682 supported_defaults=cpu
4684 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4688 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4694 supported_defaults="cpu"
4698 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4705 # Set some miscellaneous flags for particular targets.
4706 target_cpu_default2=
4709 if test x"$target_cpu_cname" != x
4711 target_cpu_default2=$target_cpu_cname
4716 if test x$with_cpu = x
4718 echo "Don't know the target cpu" 1>&2
4721 target_cpu_default2="\\\"$with_cpu\\\""
4726 if test x$gas = xyes
4728 target_cpu_default2="MASK_GAS"
4732 fido*-*-* | m68k*-*-*)
4733 target_cpu_default2=$m68k_cpu_ident
4734 tmake_file="m68k/t-opts $tmake_file"
4735 if [ x"$m68k_arch_family" != x ]; then
4736 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4740 i[34567]86-*-darwin* | x86_64-*-darwin*)
4742 i[34567]86-*-linux* | x86_64-*-linux*)
4743 extra_objs="${extra_objs} cet.o"
4744 tmake_file="$tmake_file i386/t-linux i386/t-cet"
4746 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4747 tmake_file="$tmake_file i386/t-kfreebsd"
4750 tmake_file="$tmake_file i386/t-gnu"
4752 i[34567]86-*-msdosdjgpp*)
4753 tmake_file="${tmake_file} i386/t-djgpp"
4755 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4757 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4759 i[34567]86-*-mingw* | x86_64-*-mingw*)
4761 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4763 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4769 if test x$gnu_ld = xyes
4771 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4775 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4778 if test x$with_arch != x; then
4779 default_mips_arch=$with_arch
4781 if test x$with_abi != x; then
4782 default_mips_abi=$with_abi
4784 case ${default_mips_arch} in
4785 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4786 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4787 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4788 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4789 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4790 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4791 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
4792 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4793 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4794 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
4796 case ${default_mips_abi} in
4797 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4798 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4799 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4800 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4801 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4803 tmake_file="mips/t-mips $tmake_file"
4806 powerpc*-*-* | rs6000-*-*)
4807 # FIXME: The PowerPC port uses the value set at compile time,
4808 # although it's only cosmetic.
4809 if test "x$with_cpu" != x
4811 target_cpu_default2="\\\"$with_cpu\\\""
4813 out_file="${cpu_type}/${cpu_type}.c"
4814 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
4815 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
4816 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
4819 sh[123456ble]*-*-* | sh-*-*)
4820 c_target_objs="${c_target_objs} sh-c.o"
4821 cxx_target_objs="${cxx_target_objs} sh-c.o"
4825 # Some standard aliases.
4830 xsparcv9 | xsparc64)
4835 if test x$with_tune = x ; then
4846 # The SPARC port checks this value at compile-time.
4847 target_cpu_default2="TARGET_CPU_$with_cpu"
4851 case "x$with_cpu" in
4854 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4855 target_cpu_default2="TARGET_CPU_$with_cpu"
4858 target_cpu_default2="TARGET_CPU_v850e1"
4863 target_cpu_default2="TARGET_CPU_$with_cpu"
4868 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 lxc1-sxc1 madd4"
4869 for option in $all_defaults
4871 eval "val=\$with_"`echo $option | sed s/-/_/g`
4872 if test -n "$val"; then
4873 case " $supported_defaults " in
4877 echo "This target does not support --with-$option." 2>&1
4878 echo "Valid --with options are: $supported_defaults" 2>&1
4885 t="{ \"$option\", \"$val\" }"
4887 t="${t}, { \"$option\", \"$val\" }"
4894 configure_default_options="{ { NULL, NULL} }"
4896 configure_default_options="{ ${t} }"
4899 if test "$target_cpu_default2" != ""
4901 if test "$target_cpu_default" != ""
4903 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4905 target_cpu_default=$target_cpu_default2
4910 i[34567]86-*-* | x86_64-*-*)
4911 if test x$enable_as_accelerator = xyes; then
4912 extra_programs="mkoffload\$(exeext)"