1 # SPDX-License-Identifier: GPL-3.0-or-later
2 # GCC target-specific configuration file.
3 # Copyright (C) 1997-2021 Free Software Foundation, Inc.
5 #This file is part of GCC.
7 #GCC is free software; you can redistribute it and/or modify it under
8 #the terms of the GNU General Public License as published by the Free
9 #Software Foundation; either version 3, or (at your option) any later
12 #GCC is distributed in the hope that it will be useful, but WITHOUT
13 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 #FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 #You should have received a copy of the GNU General Public License
18 #along with GCC; see the file COPYING3. If not see
19 #<http://www.gnu.org/licenses/>.
21 # This is the GCC target-specific configuration file
22 # where a configuration type is mapped to different system-specific
23 # definitions and files. This is invoked by the autoconf-generated
24 # configure script. Putting it in a separate shell file lets us skip
25 # running autoconf when modifying target-specific information.
27 # When you change the cases in the OS or target switches, consider
28 # updating ../libgcc/config.host also.
30 # This file switches on the shell variable ${target}, and also uses the
31 # following shell variables:
33 # with_* Various variables as set by configure.
35 # enable_threads Either the name, yes or no depending on whether
36 # threads support was requested.
38 # default_use_cxa_atexit
39 # The default value for the $enable___cxa_atexit
40 # variable. enable___cxa_atexit needs to be set to
41 # "yes" for the correct operation of C++ destructors
42 # but it relies upon the presence of a non-standard C
43 # library function called __cxa_atexit.
44 # Since not all C libraries provide __cxa_atexit the
45 # default value of $default_use_cxa_atexit is set to
46 # "no" except for targets which are known to be OK.
48 # default_gnu_indirect_function
49 # The default value for the $enable_gnu_indirect_function
50 # variable. enable_gnu_indirect_function relies
51 # upon the presence of a non-standard gnu ifunc support
52 # in the assembler, linker and dynamic linker.
53 # Since not all libraries provide the dynamic linking
54 # support, the default value of
55 # $default_gnu_indirect_function is set to
56 # "no" except for targets which are known to be OK.
58 # gas_flag Either yes or no depending on whether GNU as was
61 # gnu_ld_flag Either yes or no depending on whether GNU ld was
64 # This file sets the following shell variables for use by the
65 # autoconf-generated configure script:
67 # cpu_type The name of the cpu, if different from the first
68 # chunk of the canonical target name.
70 # tm_defines List of target macros to define for all compilations.
72 # tm_file A list of target macro files, if different from
73 # "$cpu_type/$cpu_type.h". Usually it's constructed
74 # per target in a way like this:
75 # tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h"
76 # Note that the preferred order is:
77 # - specific target header "${cpu_type}/${cpu_type.h}"
78 # - generic headers like dbxelf.h elfos.h, etc.
79 # - specializing target headers like ${cpu_type.h}/elf.h
80 # This helps to keep OS specific stuff out of the CPU
81 # defining header ${cpu_type}/${cpu_type.h}.
83 # It is possible to include automatically-generated
84 # build-directory files by prefixing them with "./".
85 # All other files should relative to $srcdir/config.
87 # tm_p_file Location of file with declarations for functions
90 # tm_d_file A list of headers with definitions of target hook
91 # macros for the D compiler.
93 # out_file The name of the machine description C support
94 # file, if different from "$cpu_type/$cpu_type.c".
96 # common_out_file The name of the source file for code shared between
97 # the compiler proper and the driver.
99 # md_file The name of the machine-description file, if
100 # different from "$cpu_type/$cpu_type.md".
102 # tmake_file A list of machine-description-specific
103 # makefile-fragments, if different from
104 # "$cpu_type/t-$cpu_type".
106 # extra_modes The name of the file containing a list of extra
107 # machine modes, if necessary and different from
108 # "$cpu_type/$cpu_type-modes.def".
110 # extra_objs List of extra objects that should be linked into
111 # the compiler proper (cc1, cc1obj, cc1plus)
112 # depending on target.
114 # extra_gcc_objs List of extra objects that should be linked into
115 # the compiler driver (gcc) depending on target.
117 # extra_headers List of used header files from the directory
118 # config/${cpu_type}.
120 # user_headers_inc_next_pre
121 # List of header file names of internal gcc header
122 # files, which should be prefixed by an include_next.
123 # user_headers_inc_next_post
124 # List of header file names of internal gcc header
125 # files, which should be postfixed by an include_next.
126 # use_gcc_tgmath If set, add tgmath.h to the list of used header
129 # use_gcc_stdint If "wrap", install a version of stdint.h that
130 # wraps the system's copy for hosted compilations;
131 # if "provide", provide a version of systems without
132 # such a system header; otherwise "none", do not
133 # provide such a header at all.
135 # extra_programs List of extra executables compiled for this target
136 # machine, used when linking.
138 # extra_options List of target-dependent .opt files.
140 # c_target_objs List of extra target-dependent objects that be
141 # linked into the C compiler only.
143 # cxx_target_objs List of extra target-dependent objects that be
144 # linked into the C++ compiler only.
146 # d_target_objs List of extra target-dependent objects that be
147 # linked into the D compiler only.
149 # fortran_target_objs List of extra target-dependent objects that be
150 # linked into the fortran compiler only.
152 # target_gtfiles List of extra source files with type information.
154 # xm_defines List of macros to define when compiling for the
157 # xm_file List of files to include when compiling for the
160 # use_collect2 Set to yes or no, depending on whether collect2
163 # target_cpu_default Set to override the default target model.
165 # gdb_needs_out_file_path
166 # Set to yes if gdb needs a dir command with
167 # `dirname $out_file`.
169 # thread_file Set to control which thread package to use.
171 # gas Set to yes or no depending on whether the target
172 # system normally uses GNU as.
174 # configure_default_options
175 # Set to an initializer for configure_default_options
176 # in configargs.h, based on --with-cpu et cetera.
178 # native_system_header_dir
179 # Where system header files are found for this
180 # target. This defaults to /usr/include. If
181 # the --with-sysroot configure option or the
182 # --sysroot command line option is used this
183 # will be relative to the sysroot.
184 # target_type_format_char
185 # The default character to be used for formatting
187 # .type symbol_name, ${t_t_f_c}<property>
190 # The following variables are used in each case-construct to build up the
191 # outgoing variables:
193 # gnu_ld Set to yes or no depending on whether the target
194 # system normally uses GNU ld.
196 # target_has_targetcm Set to yes or no depending on whether the target
197 # has its own definition of targetcm.
199 # target_has_targetm_common Set to yes or no depending on whether the
200 # target has its own definition of targetm_common.
202 # target_has_targetdm Set to yes or no depending on whether the target
203 # has its own definition of targetdm.
209 user_headers_inc_next_pre=
210 user_headers_inc_next_post=
221 target_has_targetcm=no
222 target_has_targetm_common=yes
223 target_has_targetdm=no
226 # Set this to force installation and use of collect2.
228 # Set this to override the default target model.
230 # Set this if gdb needs a dir command with `dirname $out_file`
231 gdb_needs_out_file_path=
232 # Set this to control which thread package will be used.
234 # Reinitialize these from the flag values every loop pass, since some
235 # configure entries modify them.
237 gnu_ld="$gnu_ld_flag"
238 default_use_cxa_atexit=no
239 default_gnu_indirect_function=no
242 native_system_header_dir=/usr/include
243 target_type_format_char='@'
245 # Don't carry these over build->host->target. Please.
249 # Obsolete configurations.
253 if test "x$enable_obsolete" != xyes; then
254 echo "*** Configuration ${target} is obsolete." >&2
255 echo "*** Specify --enable-obsolete to build it anyway." >&2
256 echo "*** Support will be REMOVED in the next major release of GCC," >&2
257 echo "*** unless a maintainer comes forward." >&2
262 # Unsupported targets list. Do not put an entry in this list unless
263 # it would otherwise be caught by a more permissive pattern. The list
264 # should be in alphabetical order.
266 # Avoid special cases that are not obsolete
277 | i[34567]86-go32-* \
278 | i[34567]86-*-go32* \
279 | m68k-*-uclinuxoldabi* \
280 | mips64orion*-*-rtems* \
282 | powerpc*-*-linux*paired* \
284 | sparc-hal-solaris2* \
287 | *-*-freebsd[12] | *-*-freebsd[1234].* \
288 | *-*-freebsd*aout* \
296 | *-*-solaris2.[0-9] \
297 | *-*-solaris2.[0-9].* \
302 echo "*** Configuration ${target} not supported" 1>&2
307 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
308 # updated in each machine entry. Also set default extra_headers for some
311 cpu_type=`echo ${target} | sed 's/-.*$//'`
316 tmake_file=m32c/t-m32c
317 target_has_targetm_common=no
321 extra_headers="arm_fp16.h arm_neon.h arm_bf16.h arm_acle.h arm_sve.h"
322 c_target_objs="aarch64-c.o"
323 cxx_target_objs="aarch64-c.o"
324 d_target_objs="aarch64-d.o"
325 extra_objs="aarch64-builtins.o aarch-common.o aarch64-sve-builtins.o aarch64-sve-builtins-shapes.o aarch64-sve-builtins-base.o aarch64-sve-builtins-sve2.o cortex-a57-fma-steering.o aarch64-speculation.o falkor-tag-collision-avoidance.o aarch64-bti-insert.o aarch64-cc-fusion.o"
326 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c \$(srcdir)/config/aarch64/aarch64-sve-builtins.h \$(srcdir)/config/aarch64/aarch64-sve-builtins.cc"
327 target_has_targetm_common=yes
331 extra_options="${extra_options} g.opt"
342 c_target_objs="arc-c.o"
343 cxx_target_objs="arc-c.o"
344 extra_options="${extra_options} arc/arc-tables.opt g.opt"
345 extra_headers="arc-simd.h"
349 extra_objs="arm-builtins.o aarch-common.o"
350 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h arm_bf16.h arm_mve_types.h arm_mve.h arm_cde.h"
351 target_type_format_char='%'
352 c_target_objs="arm-c.o"
353 cxx_target_objs="arm-c.o"
354 d_target_objs="arm-d.o"
355 extra_options="${extra_options} arm/arm-tables.opt"
356 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
360 c_target_objs="avr-c.o"
361 cxx_target_objs="avr-c.o"
370 extra_options="${extra_options} g.opt"
373 target_has_targetm_common=no
375 moxie*) cpu_type=moxie
376 target_has_targetm_common=no
380 extra_headers=math-68881.h
381 extra_options="${extra_options} m68k/m68k-tables.opt"
383 i[34567]86-*-* | x86_64-*-*)
385 c_target_objs="i386-c.o"
386 cxx_target_objs="i386-c.o"
387 d_target_objs="i386-d.o"
388 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o i386-options.o i386-builtins.o i386-expand.o i386-features.o"
389 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
390 extra_options="${extra_options} fused-madd.opt"
391 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
392 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
393 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
394 immintrin.h x86intrin.h avxintrin.h xopintrin.h
395 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
396 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
397 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
398 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
399 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
400 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
401 shaintrin.h clflushoptintrin.h xsavecintrin.h
402 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
403 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
404 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
405 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
406 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
407 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
408 gfniintrin.h cet.h avx512vbmi2intrin.h
409 avx512vbmi2vlintrin.h avx512vnniintrin.h
410 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
411 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
412 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
413 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h
414 avx512bf16intrin.h enqcmdintrin.h serializeintrin.h
415 avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h
416 tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h
417 amxbf16intrin.h x86gprintrin.h uintrintrin.h
418 hresetintrin.h keylockerintrin.h avxvnniintrin.h
422 extra_headers=ia64intrin.h
423 extra_options="${extra_options} g.opt fused-madd.opt"
429 extra_options="${extra_options} g.opt"
433 extra_options="${extra_options} g.opt"
436 extra_headers=math-68881.h
437 extra_options="${extra_options} m68k/m68k-tables.opt"
441 extra_options="${extra_options} g.opt"
445 d_target_objs="mips-d.o"
446 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
447 extra_objs="frame-header-opt.o"
448 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
452 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
455 extra_options="${extra_options} nds32/nds32-linux.opt"
458 extra_options="${extra_options} nds32/nds32-elf.opt"
463 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"
467 extra_options="${extra_options} g.opt"
471 c_target_objs="nvptx-c.o"
472 cxx_target_objs="nvptx-c.o"
479 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
480 extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
481 extra_objs="${extra_objs} rs6000-builtins.o"
482 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
483 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
484 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
485 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
486 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.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]|xpower10|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
494 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
495 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
496 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.c"
497 target_gtfiles="$target_gtfiles ./rs6000-builtins.h"
504 extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o riscv-shorten-memrefs.o"
505 d_target_objs="riscv-d.o"
508 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
509 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
510 extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
511 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
512 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.c"
516 c_target_objs="sparc-c.o"
517 cxx_target_objs="sparc-c.o"
518 d_target_objs="sparc-d.o"
519 extra_headers="visintrin.h"
523 d_target_objs="s390-d.o"
524 extra_options="${extra_options} fused-madd.opt"
525 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
527 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
528 sh[123456789lbe]*-*-* | sh-*-*)
530 extra_options="${extra_options} fused-madd.opt"
531 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
538 extra_headers="c6x_intrinsics.h"
539 extra_options="${extra_options} c6x/c6x-tables.opt"
542 extra_options="${extra_options} fused-madd.opt"
552 tm_file=${cpu_type}/${cpu_type}.h
553 tm_d_file=${cpu_type}/${cpu_type}.h
554 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
556 tm_p_file=${cpu_type}/${cpu_type}-protos.h
557 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
561 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
563 extra_modes=${cpu_type}/${cpu_type}-modes.def
565 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
567 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
572 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
575 if test "x$with_multilib_list" = xilp32; then
576 tm_file="aarch64/biarchilp32.h ${tm_file}"
578 tm_file="aarch64/biarchlp64.h ${tm_file}"
582 tm_file="aarch64/biarchilp32.h ${tm_file}"
585 tm_file="aarch64/biarchlp64.h ${tm_file}"
588 echo "Unknown ABI used in --with-abi=$with_abi"
593 if test "x$with_abi" != x; then
594 echo "This target does not support --with-abi."
603 if test "x$with_multilib_list" = xmx32; then
604 tm_file="i386/biarchx32.h ${tm_file}"
606 tm_file="i386/biarch64.h ${tm_file}"
610 tm_file="i386/biarch64.h ${tm_file}"
613 tm_file="i386/biarchx32.h ${tm_file}"
616 echo "Unknown ABI used in --with-abi=$with_abi"
621 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
625 # On a.out targets, we need to use collect2.
632 # Common C libraries.
633 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
635 # 32-bit x86 processors supported by --with-arch=. Each processor
636 # MUST be separated by exactly one space.
637 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
638 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
639 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
640 pentium4 pentium4m pentiumpro prescott lakemont samuel-2 nehemiah \
643 # 64-bit x86 processors supported by --with-arch=. Each processor
644 # MUST be separated by exactly one space.
645 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
646 bdver3 bdver4 znver1 znver2 znver3 btver1 btver2 k8 k8-sse3 opteron \
647 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
648 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
649 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
650 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake \
651 sapphirerapids alderlake rocketlake eden-x2 nano nano-1000 nano-2000 nano-3000 \
652 nano-x2 eden-x4 nano-x4 x86-64 x86-64-v2 x86-64-v3 x86-64-v4 native"
654 # Additional x86 processors supported by --with-cpu=. Each processor
655 # MUST be separated by exactly one space.
656 x86_cpus="generic intel"
658 # Common parts for widely ported systems.
661 tmake_file="t-darwin "
662 tm_file="${tm_file} darwin.h"
663 darwin_os=`echo ${target} | sed 's/.*darwin\([0-9.]*\).*$/\1/'`
664 darwin_maj=`expr "$darwin_os" : '\([0-9]*\).*'`
665 macos_min=`expr "$darwin_os" : '[0-9]*\.\([0-9]*\).*'`
667 if test x"${macos_min}" = x; then
672 # Darwin 4 to 19 correspond to macOS 10.0 to 10.15
673 *-*-darwin[4-9]* | *-*-darwin1[0-9]*)
674 macos_min=`expr $darwin_maj - 4`
677 # Darwin 20 corresponds to macOS 11.
683 aarch64) macos_maj=11 ;;
684 x86_64) macos_min=6 ;;
688 *-*-darwin*) tm_defines="$tm_defines DARWIN_USE_KERNEL_VERS" ;;
690 # If configuring a cross-compiler then we will have set some
691 #Â default above, but it is probably not what was intended.
692 echo "Warning: Using ${target} is only suitable for Darwin hosts" 1>&2
693 echo "configure with an explicit target version" 1>&2
698 echo "Error: configuring for an unreleased macOS version ${target}" 1>&2
702 tm_defines="$tm_defines DEF_MIN_OSX_VERSION=\\\"${macos_maj}.${macos_min}\\\""
703 tm_defines="$tm_defines DEF_LD64=\\\"${def_ld64}\\\""
704 tm_file="${tm_file} ${cpu_type}/darwin.h"
705 tm_p_file="${tm_p_file} darwin-protos.h"
706 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.c"
707 extra_options="${extra_options} rpath.opt darwin.opt"
708 c_target_objs="${c_target_objs} darwin-c.o"
709 cxx_target_objs="${cxx_target_objs} darwin-c.o"
710 d_target_objs="${d_target_objs} darwin-d.o"
711 fortran_target_objs="darwin-f.o"
712 target_has_targetcm=yes
713 target_has_targetdm=yes
714 extra_objs="${extra_objs} darwin.o"
715 extra_gcc_objs="darwin-driver.o"
716 default_use_cxa_atexit=yes
718 case ${enable_threads} in
719 "" | yes | posix) thread_file='posix' ;;
725 tmake_file="t-slibgcc"
726 case ${enable_threads} in
731 # Let these non-posix thread selections fall through if requested
734 echo 'Unknown thread configuration for DragonFly BSD'
738 extra_options="$extra_options rpath.opt dragonfly.opt"
739 default_use_cxa_atexit=yes
741 d_target_objs="${d_target_objs} dragonfly-d.o"
742 tmake_file="${tmake_file} t-dragonfly"
743 target_has_targetdm=yes
746 # This is the generic ELF configuration of FreeBSD. Later
747 # machine-specific sections may refine and add to this
750 # Due to tm_file entry ordering issues that vary between cpu
751 # architectures, we only define fbsd_tm_file to allow the
752 # machine-specific section to dictate the final order of all
753 # entries of tm_file with the minor exception that components
754 # of the tm_file set here will always be of the form:
756 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
758 # The machine-specific section should not tamper with this
759 # ordering but may order all other entries of tm_file as it
760 # pleases around the provided core setting.
763 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
764 if test "$fbsd_major" = ""; then
765 echo "Specify the major version number of the targeted FreeBSD release"
766 echo "like this: --target=amd64-unknown-freebsd10.1"
769 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
770 tmake_file="t-slibgcc"
771 case ${enable_threads} in
773 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
779 echo 'Unknown thread configuration for FreeBSD'
783 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
784 extra_options="$extra_options rpath.opt freebsd.opt"
789 default_use_cxa_atexit=yes;;
792 d_target_objs="${d_target_objs} freebsd-d.o"
793 tmake_file="${tmake_file} t-freebsd"
794 target_has_targetdm=yes
797 native_system_header_dir=/include
799 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
800 extra_options="$extra_options gnu-user.opt"
803 case ${enable_threads} in
804 "" | yes | posix) thread_file='posix' ;;
806 tmake_file="t-slibgcc"
808 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
811 native_system_header_dir=/include
814 # Linux C libraries selection switch: glibc / uclibc / bionic.
815 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
818 tm_p_file="${tm_p_file} linux-protos.h"
819 tmake_file="${tmake_file} t-linux"
820 extra_objs="${extra_objs} linux.o"
821 extra_options="${extra_options} linux.opt"
826 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
828 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
829 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
832 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
835 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
838 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
840 default_use_cxa_atexit=yes
843 # Enable compilation for Android by default for *android* targets.
846 tm_defines="$tm_defines ANDROID_DEFAULT=1"
849 tm_defines="$tm_defines ANDROID_DEFAULT=0"
852 c_target_objs="${c_target_objs} glibc-c.o"
853 cxx_target_objs="${cxx_target_objs} glibc-c.o"
854 d_target_objs="${d_target_objs} glibc-d.o"
855 tmake_file="${tmake_file} t-glibc"
856 target_has_targetcm=yes
857 target_has_targetdm=yes
859 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
862 # Linux targets always support .init_array.
863 gcc_cv_initfini_array=yes
868 tm_p_file="${tm_p_file} netbsd-protos.h"
869 tmake_file="t-netbsd t-slibgcc"
870 extra_objs="${extra_objs} netbsd.o"
871 d_target_objs="${d_target_objs} netbsd-d.o"
875 case ${enable_threads} in
876 "" | yes | posix) thread_file='posix' ;;
878 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
879 default_use_cxa_atexit=yes
880 target_has_targetdm=yes
882 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
883 default_gnu_indirect_function=yes
888 tmake_file="t-openbsd"
889 case ${enable_threads} in
895 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
896 default_use_cxa_atexit=yes
899 d_target_objs="${d_target_objs} openbsd-d.o"
900 target_has_targetdm=yes
905 default_use_cxa_atexit=yes
908 case ${enable_threads} in
909 "" | yes | rtems) thread_file='rtems' ;;
910 posix) thread_file='posix' ;;
913 echo 'Unknown thread configuration for RTEMS'
917 tmake_file="${tmake_file} t-rtems"
918 extra_options="${extra_options} rtems.opt"
919 default_use_cxa_atexit=yes
923 extra_options="$extra_options gnu-user.opt"
925 case ${enable_threads} in
926 "" | yes | posix) thread_file='posix' ;;
928 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
934 # i?86-*-solaris2* needs to insert headers between cpu default and
935 # Solaris 2 specific ones.
936 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
937 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
938 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
940 *-*-solaris2.1[1-9]*)
941 # __cxa_atexit was introduced in Solaris 11.4.
942 default_use_cxa_atexit=yes
946 if test x$gnu_ld = xyes; then
947 tm_file="usegld.h ${tm_file}"
949 if test x$gas = xyes; then
950 tm_file="usegas.h ${tm_file}"
952 tm_p_file="${tm_p_file} sol2-protos.h"
953 tmake_file="${tmake_file} t-sol2 t-slibgcc"
954 c_target_objs="${c_target_objs} sol2-c.o"
955 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
956 d_target_objs="${d_target_objs} sol2-d.o"
957 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
958 extra_options="${extra_options} sol2.opt"
959 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
960 "":yes:* | yes:yes:* )
964 target_has_targetdm=yes
967 extra_options="${extra_options} vms/vms.opt"
969 tmake_file="vms/t-vms t-slibgcc"
971 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
972 tm_p_file="${tm_p_file} vms/vms-protos.h"
973 xm_file="vms/xm-vms.h"
974 c_target_objs="vms-c.o"
975 cxx_target_objs="vms-c.o"
976 fortran_target_objs="vms-f.o"
977 use_gcc_stdint=provide
978 tm_file="${tm_file} vms/vms-stdint.h"
979 if test x$gnu_ld != xyes; then
980 # Build wrappers for native case.
981 extra_programs="ld\$(exeext) ar\$(exeext)"
982 tmake_file="$tmake_file vms/t-vmsnative"
989 extra_options="${extra_options} vxworks.opt"
990 extra_objs="$extra_objs vxworks.o"
992 c_target_objs="${c_target_objs} vxworks-c.o"
993 cxx_target_objs="${cxx_target_objs} vxworks-c.o"
994 extra_headers="${extra_headers} ../vxworks/vxworks-predef.h"
995 target_has_targetcm="yes"
997 # This private header exposes a consistent interface for checks on
998 # the VxWorks version our runtime header files need to perform, based on
999 # what the system headers adverstise:
1001 extra_headers="${extra_headers} ../vxworks/_vxworks-versions.h"
1003 # Starting from VxWorks 7, the system comes with a Dinkumware
1004 # environment which requires the inclusion of "yvals.h" before other
1005 # system headers. We provide wrapped versions of a few headers to
1006 # accomodate such constraints:
1008 extra_headers="${extra_headers} ../vxworks/_yvals.h"
1009 extra_headers="${extra_headers} ../vxworks/_yvals-wrapper.h"
1011 extra_headers="${extra_headers} ../vxworks/math.h ../vxworks/complex.h"
1012 extra_headers="${extra_headers} ../vxworks/inttypes.h ../vxworks/setjmp.h"
1014 # We provide stdint.h ...
1016 tm_file="${tm_file} vxworks-stdint.h"
1018 # .. only through the yvals conditional wrapping mentioned above
1019 # to abide by the VxWorks 7 expectations. The final copy is performed
1020 # explicitly by a t-vxworks Makefile rule.
1023 extra_headers="${extra_headers} ../../ginclude/stdint-gcc.h"
1025 case ${enable_threads} in
1027 "" | yes | vxworks) thread_file='vxworks' ;;
1028 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
1031 # A few common macro definitions conveying general characteristics
1032 # of the configuration at hand. Note that by VxWorks 7, we mean the
1033 # the SR6xx major update or beyond in vendor parlance:
1037 tm_defines="$tm_defines TARGET_VXWORKS7=1"
1042 tm_defines="$tm_defines TARGET_VXWORKS64=1"
1046 # Then a few build configuration controls for VxWorks 7, which
1047 # has specificities on top of which we aim to provide more complete
1052 # VxWorks 7 always has init/fini_array support and it is simpler to
1053 # just leverage this, sticking to what the system toolchain does:
1054 gcc_cv_initfini_array=yes
1058 *-*-elf|arc*-*-elf*)
1059 # Assume that newlib is being used and so __cxa_atexit is provided.
1060 default_use_cxa_atexit=yes
1066 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1067 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
1068 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1069 tmake_file="${tmake_file} aarch64/t-aarch64"
1075 tm_file="${tm_file} fuchsia.h"
1078 tm_file="${tm_file} aarch64/rtems.h rtems.h"
1083 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1086 aarch64_multilibs="${with_multilib_list}"
1087 if test "$aarch64_multilibs" = "default"; then
1088 aarch64_multilibs="lp64,ilp32"
1090 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1091 for aarch64_multilib in ${aarch64_multilibs}; do
1092 case ${aarch64_multilib} in
1094 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1097 echo "--with-multilib-list=${aarch64_multilib} not supported."
1101 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1103 aarch64*-*-freebsd*)
1104 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1105 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1106 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1107 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1110 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
1111 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1112 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1113 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1116 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1117 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1118 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1119 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1122 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1125 aarch64_multilibs="${with_multilib_list}"
1126 if test "$aarch64_multilibs" = "default"; then
1127 # TODO: turn on ILP32 multilib build after its support is mature.
1128 # aarch64_multilibs="lp64,ilp32"
1129 aarch64_multilibs="lp64"
1131 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1132 for aarch64_multilib in ${aarch64_multilibs}; do
1133 case ${aarch64_multilib} in
1135 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1138 echo "--with-multilib-list=${aarch64_multilib} not supported."
1142 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1144 aarch64*-wrs-vxworks*)
1145 tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
1146 tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
1147 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
1150 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1151 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1152 extra_options="${extra_options} alpha/elf.opt"
1155 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1156 tmake_file="${tmake_file} alpha/t-alpha"
1157 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1161 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1162 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1163 tmake_file="${tmake_file} alpha/t-alpha"
1164 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1165 # default x-alpha is only appropriate for dec-osf.
1168 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1169 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1172 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1173 tmake_file="arc/t-multilib arc/t-arc"
1174 extra_gcc_objs="driver-arc.o"
1175 if test "x$with_cpu" != x; then
1176 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1178 if test x${with_endian} = x; then
1180 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1181 *) with_endian=little ;;
1184 case ${with_endian} in
1186 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1188 case ${with_endian} in
1189 big*) tm_file="arc/big.h ${tm_file}"
1193 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}"
1194 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1195 extra_gcc_objs="driver-arc.o"
1196 if test "x$with_cpu" != x; then
1197 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1199 if test x${with_endian} = x; then
1201 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1202 *) with_endian=little ;;
1205 case ${with_endian} in
1207 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1209 case ${with_endian} in
1210 big*) tm_file="arc/big.h ${tm_file}"
1212 # Force .init_array support. The configure script cannot always
1213 # automatically detect that GAS supports it, yet we require it.
1214 gcc_cv_initfini_array=yes
1217 # We only support VxWorks 7 now on ARM, post SR600. Pre SR600
1218 # VxWorks 7 was transitory and major versions prior to 7 were based
1219 # on long deprecated ABI, not supported at all any more regardless
1221 extra_options="${extra_options} arm/vxworks.opt"
1222 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1223 tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1224 tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1225 target_cpu_cname="generic-armv7-a"
1226 need_64bit_hwint=yes
1228 arm*-*-freebsd*) # ARM FreeBSD EABI
1229 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1232 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1235 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1236 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1239 target_cpu_cname="arm1176jzf-s"
1240 if test $fbsd_major -ge 11; then
1241 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1245 target_cpu_cname="generic-armv7-a"
1246 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1249 target_cpu_cname="arm9"
1252 with_tls=${with_tls:-gnu}
1255 target_cpu_cname="strongarm"
1256 tmake_file="${tmake_file} arm/t-arm"
1257 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1258 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1260 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1263 arm*-*-netbsdelf-*eabi*)
1264 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1265 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1268 tm_file="$tm_file arm/netbsd-elf.h"
1269 tmake_file="$tmake_file arm/t-netbsd"
1272 tm_file="${tm_file} arm/aout.h arm/arm.h"
1274 arm*-*-netbsdelf-*eabihf*)
1275 # Hard-float requires at least Arm v5te
1276 target_cpu_cname="arm10e"
1277 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1281 armv6*) target_cpu_cname="arm1176jzf-s";;
1282 armv7*) target_cpu_cname="generic-armv7-a";;
1285 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1286 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"
1287 extra_options="${extra_options} linux-android.opt"
1290 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1293 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1294 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1296 arm*-*-uclinuxfdpiceabi)
1297 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1300 # Generation of floating-point instructions requires at least ARMv5te.
1301 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1302 target_cpu_cname="arm10e"
1304 target_cpu_cname="arm10tdmi"
1306 # Define multilib configuration for arm-linux-androideabi.
1309 tmake_file="$tmake_file arm/t-linux-androideabi"
1312 # The EABI requires the use of __cxa_atexit.
1313 default_use_cxa_atexit=yes
1314 with_tls=${with_tls:-gnu}
1316 arm*-*-uclinux*eabi*) # ARM ucLinux
1317 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1318 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1319 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1320 target_cpu_cname="arm7tdmi"
1321 # The EABI requires the use of __cxa_atexit.
1322 default_use_cxa_atexit=yes
1325 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1326 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1327 tm_file="${tm_file} arm/aout.h arm/arm.h"
1328 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1329 target_cpu_cname="arm7tdmi"
1331 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1334 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1336 default_use_cxa_atexit=yes
1337 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1338 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1339 target_cpu_cname="arm7tdmi"
1342 tm_file="$tm_file newlib-stdint.h"
1343 tmake_file="${tmake_file} arm/t-bpabi"
1347 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1348 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1349 target_cpu_cname="generic-armv7-a"
1352 tm_file="${tm_file} arm/rtems.h rtems.h newlib-stdint.h"
1353 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1356 tm_file="${tm_file} arm/symbian.h"
1357 # We do not include t-bpabi for Symbian OS because the system
1358 # provides its own implementation of the BPABI functions.
1359 tmake_file="${tmake_file} arm/t-symbian"
1360 target_cpu_cname="arm10tdmi"
1363 tm_file="${tm_file} arm/aout.h arm/arm.h"
1366 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1367 if test x${with_avrlibc} != xno; then
1368 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1369 tm_defines="${tm_defines} WITH_AVRLIBC"
1371 # Work out avr_double_comparison which is 2 or 3 and is used in
1372 # target hook FLOAT_LIB_COMPARE_RETURNS_BOOL to determine whether
1373 # DFmode comparisons return 3-state or 2-state results.
1374 case y${with_double_comparison} in
1376 avr_double_comparison=3
1379 avr_double_comparison=2
1382 echo "Error: --with-double-comparison= can only be used with: 'tristate', 'bool', 'libf7'" 1>&2
1386 case "y${with_libf7}" in
1388 # avr_double_comparison as set above.
1391 avr_double_comparison=2
1392 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1394 y | yyes | ymath-symbols)
1395 avr_double_comparison=2
1396 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1397 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1398 tm_defines="${tm_defines} WITH_LIBF7_MATH_SYMBOLS"
1401 avr_double_comparison=2
1402 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1403 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1406 echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
1410 tm_defines="${tm_defines} WITH_DOUBLE_COMPARISON=${avr_double_comparison}"
1411 case y${with_double} in
1414 tm_defines="${tm_defines} HAVE_DOUBLE32"
1418 tm_defines="${tm_defines} HAVE_DOUBLE64"
1422 avr_double_multilib=1
1423 tm_defines="${tm_defines} HAVE_DOUBLE32"
1424 tm_defines="${tm_defines} HAVE_DOUBLE64"
1425 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1429 avr_double_multilib=1
1430 tm_defines="${tm_defines} HAVE_DOUBLE32"
1431 tm_defines="${tm_defines} HAVE_DOUBLE64"
1432 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1435 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1439 case y${with_long_double} in
1442 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1446 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1450 avr_long_double_multilib=1
1451 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1452 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1453 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1457 avr_long_double_multilib=1
1458 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1459 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1460 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1463 avr_long_double=${avr_double}
1464 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1465 if test y${avr_double_multilib} = y1; then
1466 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1467 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1469 tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1473 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1477 if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1478 if test y${with_long_double} != ydouble; then
1479 echo "Error: --with-double=${with_double} requests a multilib for double, but long double is always 32 bits wide due to --with-long-double=${with_long_double}" 1>&2
1483 if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1484 echo "Error: --with-long-double=${with_long_double} requests a multilib for long double, but double is always 64 bits wide due to --with-double=64" 1>&2
1487 if test y${avr_double}${avr_long_double} = y6432; then
1488 echo "Error: double default of 64 bits from --with-double=${with_double} conflicts with default of 32 bits for long double from --with-long-double=${with_long_double}" 1>&2
1491 tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1492 tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1493 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1495 extra_gcc_objs="driver-avr.o avr-devices.o"
1496 extra_objs="avr-devices.o avr-log.o"
1499 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1500 tmake_file=bfin/t-bfin-elf
1504 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1505 tmake_file=bfin/t-bfin-uclinux
1508 bfin*-linux-uclibc*)
1509 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"
1510 tmake_file="${tmake_file} bfin/t-bfin-linux"
1514 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1515 tmake_file="${tmake_file} bfin/t-rtems"
1518 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1523 tm_file="elfos.h ${tm_file}"
1524 tmake_file="${tmake_file} bpf/t-bpf"
1526 extra_headers="bpf-helpers.h"
1527 use_gcc_stdint=provide
1530 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1531 tmake_file="${tmake_file} cr16/t-cr16 "
1534 cris-*-elf | cris-*-none)
1535 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1536 tmake_file="cris/t-cris cris/t-elfmulti"
1538 extra_options="${extra_options} cris/elf.opt"
1542 if test x${with_endian} != x; then
1543 case ${with_endian} in
1546 echo "with_endian=${with_endian} not supported."
1551 if test x${with_float} != x; then
1552 case ${with_float} in
1555 "Unknown floating point type used in --with-float=$with_float"
1560 tm_file="csky/csky.h"
1561 md_file="csky/csky.md"
1562 out_file="csky/csky.c"
1563 tm_p_file="${tm_p_file} csky/csky-protos.h"
1564 extra_options="${extra_options} csky/csky_tables.opt"
1566 if test x${enable_tpf_debug} = xyes; then
1567 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1572 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1573 tmake_file="csky/t-csky csky/t-csky-elf"
1574 default_use_cxa_atexit=no
1578 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1579 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1583 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1584 # Force .init_array support. The configure script cannot always
1585 # automatically detect that GAS supports it, yet we require it.
1586 gcc_cv_initfini_array=yes
1588 csky-*-linux-uclibc*)
1589 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1590 default_use_cxa_atexit=no
1593 echo "Unknown target $target"
1599 echo "Unknown target $target"
1604 epiphany-*-elf | epiphany-*-rtems*)
1605 tm_file="${tm_file} dbxelf.h elfos.h"
1606 tmake_file="${tmake_file} epiphany/t-epiphany"
1609 tm_file="${tm_file} epiphany/rtems.h rtems.h newlib-stdint.h"
1612 tm_file="${tm_file} newlib-stdint.h"
1615 extra_options="${extra_options} fused-madd.opt"
1616 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1617 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1618 extra_headers="epiphany_intrinsics.h"
1621 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1624 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1625 tmake_file=frv/t-frv
1628 tm_file="dbxelf.h elfos.h ${tm_file} \
1629 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1630 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1635 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1636 tmake_file="${tmake_file} ft32/t-ft32"
1639 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1640 tmake_file="gcn/t-gcn-hsa"
1641 native_system_header_dir=/include
1642 extra_modes=gcn/gcn-modes.def
1643 extra_objs="${extra_objs} gcn-tree.o"
1644 extra_gcc_objs="driver-gcn.o"
1646 x86_64*-*-linux-gnu )
1647 if test "$ac_cv_search_dlopen" != no; then
1648 extra_programs="${extra_programs} gcn-run\$(exeext)"
1652 if test x$enable_as_accelerator = xyes; then
1653 extra_programs="${extra_programs} mkoffload\$(exeext)"
1654 tm_file="${tm_file} gcn/offload.h"
1656 # Force .init_array support.
1657 gcc_cv_initfini_array=yes
1663 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1664 tmake_file="${tmake_file} moxie/t-moxie"
1669 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1670 tmake_file="${tmake_file} moxie/t-moxie"
1673 tmake_file="${tmake_file} moxie/t-moxie"
1674 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1679 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1680 tmake_file="${tmake_file} moxie/t-moxiebox"
1683 tmake_file="h8300/t-h8300"
1684 tm_file="h8300/h8300.h elfos.h newlib-stdint.h h8300/elf.h"
1687 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1688 tm_file="h8300/h8300.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1691 target_cpu_default="MASK_PA_11|MASK_PA_20"
1692 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1693 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1695 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1696 d_target_objs="${d_target_objs} pa-d.o"
1700 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1701 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1702 pa/pa32-regs.h pa/pa32-linux.h"
1703 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1704 d_target_objs="${d_target_objs} pa-d.o"
1707 target_cpu_default="MASK_PA_11"
1708 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1709 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1710 extra_options="${extra_options} openbsd.opt"
1711 tmake_file="pa/t-pa"
1712 d_target_objs="${d_target_objs} pa-d.o"
1717 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1718 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} \
1719 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1720 tmake_file="${tmake_file}"
1721 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1722 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1724 hppa[12]*-*-hpux10*)
1726 hppa1.1-*-* | hppa2*-*-*)
1727 target_cpu_default="MASK_PA_11"
1730 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1731 pa/pa-hpux.h pa/pa-hpux10.h"
1732 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1735 tm_file="${tm_file} pa/pa-hpux1010.h"
1736 extra_options="${extra_options} pa/pa-hpux1010.opt"
1739 use_gcc_stdint=provide
1740 tm_file="${tm_file} hpux-stdint.h"
1741 tmake_file="pa/t-pa t-slibgcc"
1742 d_target_objs="${d_target_objs} pa-d.o"
1743 case ${enable_threads} in
1745 if test x$have_pthread_h = xyes ; then
1746 tmake_file="${tmake_file} pa/t-dce-thr"
1750 tmake_file="${tmake_file} pa/t-dce-thr"
1755 if test "x$with_dwarf2" != x; then
1756 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1761 target_cpu_default="MASK_PA_11|MASK_PA_20"
1762 if test x$gnu_ld = xyes
1764 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1766 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1767 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1771 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1772 extra_options="${extra_options} pa/pa-hpux1111.opt"
1775 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1776 extra_options="${extra_options} pa/pa-hpux1131.opt"
1779 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1782 extra_options="${extra_options} pa/pa-hpux.opt \
1783 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1784 tmake_file="pa/t-pa t-slibgcc"
1785 d_target_objs="${d_target_objs} pa-d.o"
1786 case x${enable_threads} in
1794 use_gcc_stdint=provide
1795 tm_file="${tm_file} hpux-stdint.h"
1799 tm_file="${tm_file} hpux-stdint.h"
1803 hppa[12]*-*-hpux11*)
1805 hppa1.1-*-* | hppa2*-*-*)
1806 target_cpu_default="MASK_PA_11"
1809 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1810 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1811 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1815 tm_file="${tm_file} pa/pa-hpux1111.h"
1816 extra_options="${extra_options} pa/pa-hpux1111.opt"
1819 tm_file="${tm_file} pa/pa-hpux1131.h"
1820 extra_options="${extra_options} pa/pa-hpux1131.opt"
1823 tmake_file="pa/t-pa t-slibgcc"
1824 d_target_objs="${d_target_objs} pa-d.o"
1825 case x${enable_threads} in
1834 use_gcc_stdint=provide
1835 tm_file="${tm_file} hpux-stdint.h"
1839 tm_file="${tm_file} hpux-stdint.h"
1842 if test "x$with_dwarf2" != x; then
1843 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1847 i[34567]86-*-darwin1[89]* | i[34567]86-*-darwin2[0-9]*)
1848 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1850 i[34567]86-*-darwin*)
1852 # Baseline choice for a machine that allows m64 support.
1853 with_cpu=${with_cpu:-core2}
1854 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1855 tm_file="${cpu_type}/darwin32-biarch.h ${tm_file} "
1857 x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
1859 tm_defines="${tm_defines} TARGET_64BIT_DEFAULT=(OPTION_MASK_ISA_64BIT|OPTION_MASK_ABI_64)"
1860 tm_defines="${tm_defines} TARGET_BI_ARCH=0"
1861 with_cpu=${with_cpu:-core2}
1862 tmake_file="${tmake_file} t-slibgcc"
1865 with_cpu=${with_cpu:-core2}
1866 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1867 tm_file="${cpu_type}/darwin64-biarch.h ${tm_file} "
1869 i[34567]86-*-elfiamcu)
1870 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1873 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1876 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1879 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"
1882 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1885 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"
1886 tmake_file="i386/t-i386elf t-svr4"
1888 i[34567]86-*-dragonfly*)
1889 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1890 tmake_file="${tmake_file} i386/t-crtstuff"
1892 x86_64-*-dragonfly*)
1893 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"
1894 tmake_file="${tmake_file} i386/t-crtstuff"
1896 i[34567]86-*-freebsd*)
1897 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1900 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"
1902 i[34567]86-*-netbsdelf*)
1903 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1904 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1907 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1908 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1910 i[34567]86-*-openbsd*)
1911 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1912 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1913 extra_options="${extra_options} openbsd.opt"
1918 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1919 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1920 extra_options="${extra_options} openbsd.opt"
1924 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1925 # Intel 80386's running GNU/*
1926 # with ELF format using glibc 2
1927 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1929 i[34567]86-*-linux*)
1930 tm_file="${tm_file} linux.h linux-android.h"
1931 extra_options="${extra_options} linux-android.opt"
1932 if test x$enable_targets = xall; then
1933 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1934 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1935 tmake_file="${tmake_file} i386/t-linux64"
1936 x86_multilibs="${with_multilib_list}"
1937 if test "$x86_multilibs" = "default"; then
1938 x86_multilibs="m64,m32"
1940 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1941 for x86_multilib in ${x86_multilibs}; do
1942 case ${x86_multilib} in
1944 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1947 echo "--with-multilib-list=${x86_with_multilib} not supported."
1951 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1953 if test x$with_cpu = x; then
1954 if test x$with_cpu_64 = x; then
1958 case " $x86_cpus $x86_archs $x86_64_archs " in
1962 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1963 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1969 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1972 i[34567]86-*-kfreebsd*-gnu)
1973 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1975 i[34567]86-*-kopensolaris*-gnu)
1976 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1979 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1983 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1984 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1985 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1988 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1989 extra_options="${extra_options} linux-android.opt"
1991 x86_64-*-kfreebsd*-gnu)
1992 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1995 tmake_file="${tmake_file} i386/t-linux64"
1996 x86_multilibs="${with_multilib_list}"
1997 if test "$x86_multilibs" = "default"; then
2000 x86_multilibs="mx32"
2003 x86_multilibs="m64,m32"
2007 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
2008 for x86_multilib in ${x86_multilibs}; do
2009 case ${x86_multilib} in
2011 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
2014 echo "--with-multilib-list=${x86_with_multilib} not supported."
2018 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2020 i[34567]86-pc-msdosdjgpp*)
2021 xm_file=i386/xm-djgpp.h
2022 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
2023 native_system_header_dir=/dev/env/DJDIR/include
2024 extra_options="${extra_options} i386/djgpp.opt"
2029 i[34567]86-*-lynxos*)
2031 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
2032 tmake_file="${tmake_file} t-lynx"
2033 extra_options="${extra_options} lynx.opt"
2038 i[34567]86-*-nto-qnx*)
2039 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
2040 extra_options="${extra_options} i386/nto.opt"
2044 i[34567]86-*-rtems*)
2045 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"
2046 tmake_file="${tmake_file} i386/t-rtems"
2048 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
2049 # Set default arch_32 to pentium4, tune_32 to generic like the other
2050 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
2051 with_arch_32=${with_arch_32:-pentium4}
2052 with_tune_32=${with_tune_32:-generic}
2053 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
2054 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2055 tmake_file="$tmake_file i386/t-sol2"
2057 if test x$with_cpu = x; then
2058 if test x$with_cpu_64 = x; then
2062 case " $x86_cpus $x86_archs $x86_64_archs " in
2066 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2067 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2073 i[4567]86-wrs-vxworks*|x86_64-wrs-vxworks7*)
2074 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
2078 tm_file="${tm_file} i386/x86-64.h"
2081 tm_file="${tm_file} vx-common.h"
2084 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2085 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2088 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2089 tmake_file="${tmake_file} i386/t-vxworks"
2093 i[34567]86-*-cygwin*)
2094 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"
2095 xm_file=i386/xm-cygwin.h
2096 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2097 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2098 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2099 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2100 c_target_objs="${c_target_objs} msformat-c.o"
2101 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2102 d_target_objs="${d_target_objs} winnt-d.o"
2103 target_has_targetdm="yes"
2104 if test x$enable_threads = xyes; then
2107 default_use_cxa_atexit=yes
2112 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"
2113 xm_file=i386/xm-cygwin.h
2114 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
2115 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2116 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2117 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2118 c_target_objs="${c_target_objs} msformat-c.o"
2119 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2120 d_target_objs="${d_target_objs} winnt-d.o"
2121 target_has_targetdm="yes"
2122 if test x$enable_threads = xyes; then
2125 default_use_cxa_atexit=yes
2127 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2129 i[34567]86-*-mingw* | x86_64-*-mingw*)
2130 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
2131 xm_file=i386/xm-mingw32.h
2132 c_target_objs="${c_target_objs} winnt-c.o"
2133 cxx_target_objs="${cxx_target_objs} winnt-c.o"
2134 d_target_objs="${d_target_objs} winnt-d.o"
2135 target_has_targetcm="yes"
2136 target_has_targetdm="yes"
2138 x86_64-*-* | *-w64-*)
2144 if test x$enable_threads = xposix ; then
2145 tm_file="${tm_file} i386/mingw-pthread.h"
2147 tm_file="${tm_file} i386/mingw32.h"
2148 # This makes the logic if mingw's or the w64 feature set has to be used
2151 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2152 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2153 tm_file="${tm_file} i386/mingw-w64.h"
2154 if test x$enable_targets = xall; then
2155 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2156 if test x$with_cpu = x; then
2157 if test x$with_cpu_64 = x; then
2161 case " $x86_cpus $x86_archs $x86_64_archs " in
2165 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2166 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2176 tm_file="${tm_file} i386/mingw-stdint.h"
2177 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2180 tmake_file="${tmake_file} i386/t-mingw-w64"
2183 tmake_file="${tmake_file} i386/t-mingw-w32"
2186 native_system_header_dir=/mingw/include
2187 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2188 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2191 extra_options="${extra_options} i386/mingw-w64.opt"
2196 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2197 c_target_objs="${c_target_objs} msformat-c.o"
2198 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2201 default_use_cxa_atexit=yes
2203 case ${enable_threads} in
2213 tm_file="${tm_file} i386/crtdll.h"
2215 *mingw32msv* | *mingw*)
2220 tmake_file="${tmake_file} i386/t-x86_64-elf"
2221 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2224 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2225 tmake_file="ia64/t-ia64"
2226 target_cpu_default="0"
2227 if test x$gas = xyes
2229 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2231 if test x$gnu_ld = xyes
2233 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2237 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2238 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2239 tmake_file="${tmake_file} ia64/t-ia64"
2242 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2243 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2244 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2247 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
2248 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2249 target_cpu_default="MASK_GNU_AS"
2250 case x$enable_threads in
2256 c_target_objs="ia64-c.o"
2257 cxx_target_objs="ia64-c.o"
2258 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2260 tm_file="${tm_file} hpux-stdint.h"
2263 tm_file="${tm_file} ia64/hpux-unix2003.h"
2268 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2269 tmake_file="${tmake_file} ia64/t-ia64"
2270 target_cpu_default="0"
2271 if test x$gas = xyes
2273 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2275 extra_options="${extra_options} ia64/vms.opt"
2278 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2279 out_file=iq2000/iq2000.c
2280 md_file=iq2000/iq2000.md
2283 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2284 tmake_file="${tmake_file} lm32/t-lm32"
2287 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2288 tmake_file="${tmake_file} lm32/t-lm32"
2289 tmake_file="${tmake_file} lm32/t-rtems"
2292 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2293 tmake_file="${tmake_file} lm32/t-lm32"
2296 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2299 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2302 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
2303 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2305 if test x$enable_threads = xyes; then
2310 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
2311 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2313 if test x$enable_threads = xyes; then
2317 m68k-*-elf* | fido-*-elf*)
2320 # Check that $with_cpu makes sense.
2325 echo "Cannot accept --with-cpu=$with_cpu"
2332 default_m68k_cpu=68020
2336 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"
2337 tm_defines="${tm_defines} MOTOROLA=1"
2338 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2339 # Add multilibs for targets other than fido.
2344 tmake_file="$tmake_file m68k/t-mlibs"
2349 default_m68k_cpu=68020
2351 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2352 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2353 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2356 default_m68k_cpu=68020
2358 # needed to unconfuse gdb
2359 tm_defines="${tm_defines} OBSD_OLD_GAS"
2360 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
2361 extra_options="${extra_options} openbsd.opt"
2362 tmake_file="t-openbsd m68k/t-openbsd"
2363 # we need collect2 until our bug is fixed...
2366 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2367 # with uClibc, using the new GNU/Linux-style
2369 default_m68k_cpu=68020
2371 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"
2372 extra_options="${extra_options} m68k/uclinux.opt"
2373 tm_defines="${tm_defines} MOTOROLA=1"
2374 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2376 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2377 # with ELF format using glibc 2
2378 # aka the GNU/Linux C library 6.
2379 default_m68k_cpu=68020
2381 with_arch=${with_arch:-m68k}
2382 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2383 extra_options="${extra_options} m68k/ieee.opt"
2384 tm_defines="${tm_defines} MOTOROLA=1"
2385 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2388 default_m68k_cpu=68020
2390 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2391 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"
2392 tm_defines="${tm_defines} MOTOROLA=1"
2395 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2396 tmake_file=mcore/t-mcore
2402 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2405 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2408 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2409 tm_file="${tm_file} glibc-stdint.h"
2410 c_target_objs="${c_target_objs} microblaze-c.o"
2411 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2412 tmake_file="${tmake_file} microblaze/t-microblaze"
2413 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2415 microblaze*-*-rtems*)
2418 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2421 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2424 tm_file="${tm_file} dbxelf.h"
2425 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2426 c_target_objs="${c_target_objs} microblaze-c.o"
2427 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2428 tmake_file="${tmake_file} microblaze/t-microblaze"
2429 tmake_file="${tmake_file} microblaze/t-rtems"
2434 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2437 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2440 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2441 c_target_objs="${c_target_objs} microblaze-c.o"
2442 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2443 tmake_file="${tmake_file} microblaze/t-microblaze"
2446 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2447 case "x${enable_multilib}" in
2449 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2450 *) echo "Unknown value for enable_multilib"; exit 1
2452 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2456 riscv32be-*|riscv64be-*)
2457 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2460 # Force .init_array support. The configure script cannot always
2461 # automatically detect that GAS supports it, yet we require it.
2462 gcc_cv_initfini_array=yes
2464 riscv*-*-elf* | riscv*-*-rtems*)
2465 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2468 tm_file="${tm_file} riscv/rtems.h rtems.h"
2469 tmake_file="${tmake_file} riscv/t-rtems"
2472 if test "x${with_multilib_generator}" == xdefault; then
2473 case "x${enable_multilib}" in
2475 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2476 *) echo "Unknown value for enable_multilib"; exit 1
2480 tmake_file="${tmake_file} riscv/t-riscv"
2484 riscv32be-*|riscv64be-*)
2485 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2488 # Force .init_array support. The configure script cannot always
2489 # automatically detect that GAS supports it, yet we require it.
2490 gcc_cv_initfini_array=yes
2493 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2494 tmake_file="${tmake_file} riscv/t-riscv"
2498 riscv32be-*|riscv64be-*)
2499 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2502 # Force .init_array support. The configure script cannot always
2503 # automatically detect that GAS supports it, yet we require it.
2504 gcc_cv_initfini_array=yes
2506 mips*-*-netbsd*) # NetBSD/mips, either endian.
2507 target_cpu_default="MASK_ABICALLS"
2508 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2509 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2512 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"
2513 extra_options="${extra_options} linux-android.opt"
2514 tmake_file="${tmake_file} mips/t-img-linux"
2515 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2516 with_arch_32="mips32r6"
2517 with_arch_64="mips64r6"
2522 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"
2523 extra_options="${extra_options} linux-android.opt"
2524 tmake_file="${tmake_file} mips/t-mti-linux"
2525 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2526 with_arch_32="mips32r2"
2527 with_arch_64="mips64r2"
2531 mips*-*-linux*) # Linux MIPS, either endian.
2532 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"
2533 extra_options="${extra_options} linux-android.opt"
2536 default_mips_arch=mips32r6
2539 default_mips_arch=mips32r2
2542 default_mips_arch=mips32
2544 mips64el-st-linux-gnu)
2545 default_mips_abi=n32
2546 tm_file="${tm_file} mips/st.h"
2547 tmake_file="${tmake_file} mips/t-st"
2548 enable_mips_multilibs="yes"
2550 mips64octeon*-*-linux*)
2551 default_mips_abi=n32
2552 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2553 target_cpu_default=MASK_SOFT_FLOAT_ABI
2554 enable_mips_multilibs="yes"
2556 mipsisa64r6*-*-linux-gnuabi64)
2558 default_mips_arch=mips64r6
2559 enable_mips_multilibs="yes"
2561 mipsisa64r6*-*-linux*)
2562 default_mips_abi=n32
2563 default_mips_arch=mips64r6
2564 enable_mips_multilibs="yes"
2566 mipsisa64r2*-*-linux-gnuabi64)
2568 default_mips_arch=mips64r2
2569 enable_mips_multilibs="yes"
2571 mipsisa64r2*-*-linux*)
2572 default_mips_abi=n32
2573 default_mips_arch=mips64r2
2574 enable_mips_multilibs="yes"
2576 mips64*-*-linux-gnuabi64 | mipsisa64*-*-linux-gnuabi64)
2578 enable_mips_multilibs="yes"
2580 mips64*-*-linux* | mipsisa64*-*-linux*)
2581 default_mips_abi=n32
2582 enable_mips_multilibs="yes"
2585 if test x$enable_targets = xall; then
2586 enable_mips_multilibs="yes"
2588 if test x$enable_mips_multilibs = xyes; then
2589 tmake_file="${tmake_file} mips/t-linux64"
2593 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2594 tmake_file="mips/t-mti-elf"
2595 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2596 with_arch_32="mips32r2"
2597 with_arch_64="mips64r2"
2600 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2601 tmake_file="mips/t-img-elf"
2602 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2603 with_arch_32="mips32r6"
2604 with_arch_64="mips64r6"
2607 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2608 tmake_file="mips/t-sde"
2609 extra_options="${extra_options} mips/sde.opt"
2610 case "${with_newlib}" in
2612 # newlib / libgloss.
2615 # MIPS toolkit libraries.
2616 tm_file="$tm_file mips/sdemtk.h"
2617 tmake_file="$tmake_file mips/t-sdemtk"
2618 case ${enable_threads} in
2620 thread_file='mipssde'
2627 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2630 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2633 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2636 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2639 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2642 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2646 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2647 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2648 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2649 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2650 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2651 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2652 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2653 tmake_file="mips/t-isa3264"
2656 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2659 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2662 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2665 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2668 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2671 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2675 mipsisa32*-*-elfoabi*)
2676 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2677 tm_file="${tm_file} mips/elfoabi.h"
2679 mipsisa64*-*-elfoabi*)
2680 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2681 tm_file="${tm_file} mips/elfoabi.h"
2684 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2688 mipsisa64sr71k-*-elf*)
2689 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2690 tmake_file=mips/t-sr71k
2691 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2693 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2694 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2695 tmake_file="mips/t-elf mips/t-sb1"
2696 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2698 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2699 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2700 tmake_file="mips/t-elf"
2702 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2703 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2704 tmake_file="mips/t-elf"
2705 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2707 mips64-*-elf* | mips64el-*-elf*)
2708 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2709 tmake_file="mips/t-elf"
2710 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2712 mips64vr-*-elf* | mips64vrel-*-elf*)
2713 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2714 tmake_file=mips/t-vr
2715 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2717 mips64orion-*-elf* | mips64orionel-*-elf*)
2718 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2719 tmake_file="mips/t-elf"
2720 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2723 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2724 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2727 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2728 tmake_file="${tmake_file} mips/t-vxworks"
2730 mipstx39-*-elf* | mipstx39el-*-elf*)
2731 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2732 tmake_file="mips/t-r3900"
2734 mmix-knuth-mmixware)
2735 tm_file="${tm_file} newlib-stdint.h"
2739 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2740 if test x$stabs = xyes
2742 tm_file="${tm_file} dbx.h"
2748 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2749 c_target_objs="msp430-c.o"
2750 cxx_target_objs="msp430-c.o"
2751 tmake_file="${tmake_file} msp430/t-msp430"
2752 extra_objs="${extra_objs} msp430-devices.o"
2753 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2754 # Enable .init_array unless it has been explicitly disabled.
2755 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2756 # code since mid-2019 expects it.
2757 if test x${disable_initfini_array} != xyes; then
2758 gcc_cv_initfini_array=yes
2762 # __cxa_atexit increases code size, and we don't need to support
2763 # dynamic shared objects on MSP430, so regular Newlib atexit is a
2764 # fine replacement as it also supports registration of more than 32
2766 default_use_cxa_atexit=no
2767 # This target does not match the generic *-*-elf case above which
2768 # sets use_gcc_stdint=wrap, so explicitly set it here.
2774 target_cpu_default="0"
2775 tm_defines="${tm_defines}"
2780 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2781 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2786 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2787 tmake_file="nds32/t-nds32 nds32/t-elf"
2790 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2791 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2792 gcc_cv_initfini_array=yes
2796 # Handle --enable-default-relax setting.
2797 if test x${enable_default_relax} = xyes; then
2798 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2800 # Handle --with-ext-dsp
2801 if test x${with_ext_dsp} = xyes; then
2802 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2806 tm_file="elfos.h ${tm_file}"
2807 tmake_file="${tmake_file} nios2/t-nios2"
2810 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2813 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2814 extra_options="${extra_options} nios2/elf.opt"
2817 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2818 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2823 tm_file="${tm_file} newlib-stdint.h"
2825 tmake_file="nvptx/t-nvptx"
2826 if test x$enable_as_accelerator = xyes; then
2827 extra_programs="${extra_programs} mkoffload\$(exeext)"
2828 tm_file="${tm_file} nvptx/offload.h"
2832 tm_file="elfos.h ${tm_file}"
2833 tmake_file="${tmake_file} or1k/t-or1k"
2834 # Force .init_array support. The configure script cannot always
2835 # automatically detect that GAS supports it, yet we require it.
2836 gcc_cv_initfini_array=yes
2838 # Handle --with-multilib-list=...
2839 or1k_multilibs="${with_multilib_list}"
2840 if test "$or1k_multilibs" = "default"; then
2841 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2843 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2844 for or1k_multilib in ${or1k_multilibs}; do
2845 case ${or1k_multilib} in
2846 mcmov | msext | msfimm | \
2848 mhard-float | mdouble-float | munordered-float | msoft-float | \
2849 mhard-div | mhard-mul | \
2850 msoft-div | msoft-mul )
2851 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2854 echo "--with-multilib-list=${with_multilib_list} not supported."
2858 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2862 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2863 tm_file="${tm_file} or1k/linux.h"
2866 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2867 extra_options="${extra_options} or1k/elf.opt"
2870 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2871 tmake_file="${tmake_file} or1k/t-rtems"
2876 tm_file="${tm_file} newlib-stdint.h"
2879 # port not yet contributed
2880 #powerpc-*-openbsd*)
2881 # tmake_file="${tmake_file} rs6000/t-fprules"
2885 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2887 *-darwin1[0-9]* | *-darwin9*)
2888 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2889 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2892 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2893 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2896 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2899 # Earlier - ingle arch, with 32b only
2900 # OS X 10.0, the first edition is Darwin4
2903 tmake_file="${tmake_file} t-slibgcc"
2905 powerpc64-*-darwin*)
2906 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2907 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2908 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2910 powerpc*-*-freebsd*)
2911 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2912 extra_options="${extra_options} rs6000/sysv4.opt"
2913 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2916 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2920 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2921 tmake_file="${tmake_file} rs6000/t-freebsd64"
2922 extra_options="${extra_options} rs6000/linux64.opt"
2923 if test $fbsd_major -ge 13; then
2924 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2928 if test $fbsd_major -ge 13; then
2929 tm_file="rs6000/secureplt.h ${tm_file}"
2931 tm_file="${tm_file} rs6000/freebsd.h"
2936 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2937 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2938 tmake_file="${tmake_file} rs6000/t-netbsd"
2939 extra_options="${extra_options} rs6000/sysv4.opt"
2941 powerpc-*-eabisimaltivec*)
2942 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h"
2943 extra_options="${extra_options} rs6000/sysv4.opt"
2944 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2948 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
2949 extra_options="${extra_options} rs6000/sysv4.opt"
2950 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2954 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2955 extra_options="${extra_options} rs6000/sysv4.opt"
2956 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2958 powerpc-*-eabialtivec*)
2959 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
2960 extra_options="${extra_options} rs6000/sysv4.opt"
2961 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2965 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h"
2966 extra_options="${extra_options} rs6000/sysv4.opt"
2967 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2971 tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/rtems.h rtems.h"
2972 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2973 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2976 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2977 extra_options="${extra_options} rs6000/sysv4.opt"
2978 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2979 extra_objs="$extra_objs rs6000-linux.o"
2982 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2984 case ${target}:${with_cpu} in
2985 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2987 maybe_biarch=${cpu_is_64bit}
2988 case ${enable_targets} in
2989 *powerpc64*) maybe_biarch=yes ;;
2990 all) maybe_biarch=yes ;;
2992 case ${target}:${enable_targets}:${maybe_biarch} in
2993 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2994 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2995 | powerpcle-*:*powerpc64le*:yes)
2996 if test x$cpu_is_64bit = xyes; then
2997 tm_file="${tm_file} rs6000/default64.h"
2999 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
3000 tmake_file="$tmake_file rs6000/t-linux64"
3003 tmake_file="$tmake_file rs6000/t-linux64le"
3004 case ${enable_targets} in
3005 all | *powerpc64-* | *powerpc-*)
3006 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
3009 case ${enable_targets} in
3010 all | *powerpc64le-* | *powerpcle-*)
3011 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
3014 extra_options="${extra_options} rs6000/linux64.opt"
3017 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
3018 extra_options="${extra_options} rs6000/linux64.opt"
3019 tmake_file="${tmake_file} rs6000/t-linux"
3022 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
3023 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
3027 powerpc*-*-linux*ppc476*)
3028 tm_file="${tm_file} rs6000/476.h"
3029 extra_options="${extra_options} rs6000/476.opt" ;;
3030 powerpc*-*-linux*altivec*)
3031 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
3035 enable_secureplt=yes ;;
3037 if test x${enable_secureplt} = xyes; then
3038 tm_file="rs6000/secureplt.h ${tm_file}"
3041 powerpc*-wrs-vxworks7r*)
3043 # Wind River 7 post SR0600 is mostly like Linux so we setup
3044 # our config in a very similar fashion and adjust to a few
3047 # The system compiler is configured with secureplt by default.
3048 tm_file="${tm_file} rs6000/secureplt.h"
3050 tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h"
3051 tm_file="${tm_file} rs6000/sysv4.h rs6000/biarch64.h rs6000/default64.h rs6000/linux64.h"
3052 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3054 extra_options="${extra_options} rs6000/sysv4.opt linux.opt rs6000/linux64.opt"
3056 tmake_file="${tmake_file} t-linux rs6000/t-linux64 rs6000/t-fprules rs6000/t-ppccomm"
3057 tmake_file="${tmake_file} rs6000/t-vxworks"
3059 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
3060 extra_objs="$extra_objs linux.o rs6000-linux.o"
3062 powerpc-wrs-vxworks*)
3063 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
3064 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
3065 extra_options="${extra_options} rs6000/sysv4.opt"
3066 extra_headers="${extra_headers} ppc-asm.h"
3069 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
3070 tmake_file="${tmake_file} rs6000/t-vxworksmils"
3073 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
3074 tmake_file="${tmake_file} rs6000/t-vxworksae"
3077 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3083 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3084 tmake_file="t-lynx rs6000/t-lynx"
3085 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3091 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
3092 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3093 extra_options="${extra_options} rs6000/sysv4.opt"
3095 powerpcle-*-eabisim*)
3096 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h"
3097 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3098 extra_options="${extra_options} rs6000/sysv4.opt"
3102 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h"
3103 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3104 extra_options="${extra_options} rs6000/sysv4.opt"
3108 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3109 tmake_file="${tmake_file} pru/t-pru"
3110 extra_objs="pru-pragma.o pru-passes.o"
3113 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3114 tmake_file="rs6000/t-aix52 t-slibgcc"
3115 if test x$cpu_is_64bit = xyes; then
3116 tm_file="${tm_file} rs6000/biarch64.h"
3117 tmake_file="rs6000/t-aix64 t-slibgcc"
3119 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3120 extra_options="${extra_options} rs6000/aix64.opt"
3124 default_use_cxa_atexit=yes
3126 rs6000-ibm-aix7.2.* | powerpc-ibm-aix7.2.*)
3127 tmake_file="rs6000/t-aix52 t-slibgcc"
3128 if test x$cpu_is_64bit = xyes; then
3129 tm_file="${tm_file} rs6000/biarch64.h"
3130 tmake_file="rs6000/t-aix64 t-slibgcc"
3132 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3133 extra_options="${extra_options} rs6000/aix64.opt"
3137 default_use_cxa_atexit=yes
3139 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3140 tmake_file="rs6000/t-aix52 t-slibgcc"
3141 if test x$cpu_is_64bit = xyes; then
3142 tm_file="${tm_file} rs6000/biarch64.h"
3143 tmake_file="rs6000/t-aix64 t-slibgcc"
3145 tm_file="${tm_file} rs6000/aix.h rs6000/aix73.h rs6000/xcoff.h rs6000/aix-stdint.h"
3146 extra_options="${extra_options} rs6000/aix64.opt"
3150 default_use_cxa_atexit=yes
3153 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3154 target_has_targetm_common=no
3155 c_target_objs="rl78-c.o"
3156 cxx_target_objs="rl78-c.o"
3157 tmake_file="${tmake_file} rl78/t-rl78"
3160 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3161 tmake_file="${tmake_file} rx/t-rx"
3162 extra_options="${extra_options} rx/elf.opt"
3165 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3166 tmake_file="${tmake_file} rx/t-linux"
3169 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3170 c_target_objs="${c_target_objs} s390-c.o"
3171 cxx_target_objs="${cxx_target_objs} s390-c.o"
3172 if test x$enable_targets = xall; then
3173 tmake_file="${tmake_file} s390/t-linux64"
3175 tmake_file="${tmake_file} s390/t-s390"
3178 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3179 tm_p_file="linux-protos.h s390/s390-protos.h"
3180 c_target_objs="${c_target_objs} s390-c.o"
3181 cxx_target_objs="${cxx_target_objs} s390-c.o"
3182 md_file=s390/s390.md
3183 extra_modes=s390/s390-modes.def
3184 out_file=s390/s390.c
3185 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3188 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h glibc-stdint.h s390/tpf.h"
3189 tm_p_file=s390/s390-protos.h
3190 c_target_objs="${c_target_objs} s390-c.o"
3191 cxx_target_objs="${cxx_target_objs} s390-c.o"
3192 md_file=s390/s390.md
3193 extra_modes=s390/s390-modes.def
3194 out_file=s390/s390.c
3196 extra_options="${extra_options} s390/tpf.opt"
3197 tmake_file="${tmake_file} s390/t-s390"
3199 sh-*-elf* | sh[12346l]*-*-elf* | \
3200 sh-*-linux* | sh[2346lbe]*-*-linux* | \
3201 sh-*-netbsdelf* | shl*-*-netbsdelf*)
3202 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3203 if test x${with_endian} = x; then
3205 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3206 shbe-*-* | sheb-*-*) with_endian=big,little ;;
3207 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
3208 shl* | sh*-*-linux* | \
3209 sh-superh-elf) with_endian=little,big ;;
3210 sh[1234]*-*-*) with_endian=big ;;
3211 *) with_endian=big,little ;;
3214 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3215 # First word : the default endian.
3216 # Second word: the secondary endian (optional).
3217 case ${with_endian} in
3218 big) TM_ENDIAN_CONFIG=mb ;;
3219 little) TM_ENDIAN_CONFIG=ml ;;
3220 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
3221 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
3222 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
3224 case ${with_endian} in
3225 little*) tm_file="sh/little.h ${tm_file}" ;;
3227 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
3229 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
3230 if test x$enable_fdpic = xyes; then
3231 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3233 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3235 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3236 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3239 sh*-superh-elf) if test x$with_libgloss != xno; then
3241 tm_file="${tm_file} sh/newlib.h"
3243 tm_file="${tm_file} sh/embed-elf.h"
3244 tm_file="${tm_file} sh/superh.h"
3245 extra_options="${extra_options} sh/superh.opt" ;;
3246 *) if test x$with_newlib = xyes \
3247 && test x$with_libgloss = xyes; then
3248 tm_file="${tm_file} sh/newlib.h"
3250 tm_file="${tm_file} sh/embed-elf.h" ;;
3256 tm_file="${tm_file} newlib-stdint.h"
3259 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3260 case `echo ${target} | sed 's/e[lb]-/-/'` in
3261 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
3262 sh4a_single*) sh_cpu_target=sh4a-single ;;
3263 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
3264 sh4al) sh_cpu_target=sh4al ;;
3265 sh4a*) sh_cpu_target=sh4a ;;
3266 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3267 sh4_single*) sh_cpu_target=sh4-single ;;
3268 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3269 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3270 sh3e*) sh_cpu_target=sh3e ;;
3271 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3272 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3273 sh2a_single*) sh_cpu_target=sh2a-single ;;
3274 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3275 sh2a*) sh_cpu_target=sh2a ;;
3276 sh2e*) sh_cpu_target=sh2e ;;
3277 sh2*) sh_cpu_target=sh2 ;;
3278 *) sh_cpu_target=sh1 ;;
3280 # did the user say --without-fp ?
3281 if test x$with_fp = xno; then
3282 case ${sh_cpu_target} in
3284 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3285 sh4*) sh_cpu_target=sh4-nofpu ;;
3286 sh3*) sh_cpu_target=sh3 ;;
3287 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3288 sh2*) sh_cpu_target=sh2 ;;
3289 *) echo --without-fp not available for $target: ignored
3291 tm_defines="$tm_defines STRICT_NOFPU=1"
3293 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3294 case $sh_cpu_default in
3295 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3296 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3297 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3298 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3299 "") sh_cpu_default=${sh_cpu_target} ;;
3300 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3302 sh_multilibs=${with_multilib_list}
3303 if test "$sh_multilibs" = "default" ; then
3305 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3306 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3307 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3308 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3309 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3311 if test x$with_fp = xno; then
3312 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`"
3315 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3316 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3317 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3318 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3319 for sh_multilib in ${sh_multilibs}; do
3320 case ${sh_multilib} in
3321 m1 | m2 | m2e | m3 | m3e | \
3322 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3323 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3324 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3325 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3326 # It is passed to MULTIILIB_OPTIONS verbatim.
3327 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3328 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3330 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3331 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3332 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3334 echo "with_multilib_list=${sh_multilib} not supported."
3339 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3340 if test x${enable_incomplete_targets} = xyes ; then
3341 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3343 tm_file="$tm_file ./sysroot-suffix.h"
3344 tmake_file="$tmake_file t-sysroot-suffix"
3347 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3348 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3351 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3352 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3355 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3358 tmake_file="sparc/t-sparc sparc/t-leon"
3361 tmake_file="sparc/t-sparc sparc/t-leon3"
3364 tmake_file="sparc/t-sparc sparc/t-elf"
3369 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3370 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3373 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3374 extra_options="${extra_options} sparc/long-double-switch.opt"
3377 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3380 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3383 tmake_file="${tmake_file} sparc/t-sparc"
3386 if test x$enable_targets = xall; then
3387 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3388 tmake_file="${tmake_file} sparc/t-linux64"
3390 tm_file="${tm_file} sparc/linux.h"
3391 tmake_file="${tmake_file} sparc/t-linux"
3395 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3396 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3397 extra_options="${extra_options} sparc/long-double-switch.opt"
3398 tmake_file="${tmake_file} sparc/t-sparc"
3401 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3403 sparc64-*-* | sparcv9-*-*)
3404 tm_file="sparc/default64.h ${tm_file}"
3407 test x$with_cpu != x || with_cpu=v9
3410 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3413 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3414 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3417 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3418 extra_options="${extra_options}"
3419 tmake_file="${tmake_file} sparc/t-sparc"
3422 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3423 extra_options="${extra_options}"
3424 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3427 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"
3428 extra_options="${extra_options} sparc/long-double-switch.opt"
3429 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3431 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3432 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3433 extra_options="${extra_options} sparc/long-double-switch.opt"
3434 case "x$with_cpu" in
3436 x) with_cpu=ultrasparc ;;
3437 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3439 tmake_file="${tmake_file} sparc/t-sparc"
3442 tm_file="sparc/biarch64.h ${tm_file}"
3443 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3444 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3445 extra_options="${extra_options} sparc/long-double-switch.opt"
3446 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3449 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3450 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3451 extra_options="${extra_options} openbsd.opt"
3452 extra_options="${extra_options}"
3455 tmake_file="${tmake_file} sparc/t-sparc"
3458 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3459 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3460 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3464 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3465 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3466 tm_file="${tm_file} ./sysroot-suffix.h"
3467 tmake_file="t-sysroot-suffix t-slibgcc"
3468 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3472 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3473 tmake_file="${tmake_file} tilegx/t-tilegx"
3474 extra_objs="${extra_objs} mul-tables.o"
3475 c_target_objs="${c_target_objs} tilegx-c.o"
3476 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3477 extra_headers="feedback.h"
3480 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3485 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3486 tmake_file="${tmake_file} tilepro/t-tilepro"
3487 extra_objs="${extra_objs} mul-tables.o"
3488 c_target_objs="${c_target_objs} tilepro-c.o"
3489 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3490 extra_headers="feedback.h"
3493 target_cpu_default="TARGET_CPU_generic"
3494 tm_file="elfos.h v850/v850.h"
3495 tm_file="${tm_file} v850/rtems.h rtems.h newlib-stdint.h"
3496 tmake_file="${tmake_file} v850/t-v850"
3497 tmake_file="${tmake_file} v850/t-rtems"
3499 c_target_objs="v850-c.o"
3500 cxx_target_objs="v850-c.o"
3505 target_cpu_default="TARGET_CPU_v850e3v5"
3508 target_cpu_default="TARGET_CPU_v850e2v3"
3511 target_cpu_default="TARGET_CPU_v850e2"
3513 v850e1-*-* | v850es-*-*)
3514 target_cpu_default="TARGET_CPU_v850e1"
3517 target_cpu_default="TARGET_CPU_v850e"
3520 target_cpu_default="TARGET_CPU_generic"
3523 tm_file="elfos.h newlib-stdint.h v850/v850.h"
3525 c_target_objs="v850-c.o"
3526 cxx_target_objs="v850-c.o"
3530 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3531 extra_options="${extra_options} vax/elf.opt"
3534 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3535 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3536 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3539 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3540 extra_options="${extra_options} openbsd.opt"
3544 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3545 tmake_file="visium/t-visium visium/t-crtstuff"
3548 # For historical reasons, the target files omit the 'x'.
3549 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3550 tm_p_file=stormy16/stormy16-protos.h
3551 tm_d_file="elfos.h stormy16/stormy16.h"
3552 md_file=stormy16/stormy16.md
3553 out_file=stormy16/stormy16.c
3554 extra_options=stormy16/stormy16.opt
3555 tmake_file="stormy16/t-stormy16"
3558 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3559 extra_options="${extra_options} xtensa/elf.opt"
3562 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3563 tmake_file="${tmake_file} xtensa/t-xtensa"
3566 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3567 tmake_file="${tmake_file} xtensa/t-xtensa"
3568 extra_options="${extra_options} xtensa/uclinux.opt"
3571 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3576 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3577 c_target_objs="m32c-pragma.o"
3578 cxx_target_objs="m32c-pragma.o"
3581 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3582 c_target_objs="m32c-pragma.o"
3583 cxx_target_objs="m32c-pragma.o"
3586 echo "*** Configuration ${target} not supported" 1>&2
3592 i[34567]86-*-linux* | x86_64-*-linux*)
3593 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3595 i[34567]86-*-* | x86_64-*-*)
3596 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3598 powerpc*-*-* | rs6000-*-*)
3599 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3605 tmake_file="${tmake_file} t-musl"
3608 tmake_file="${tmake_file} t-uclibc"
3612 # Assume the existence of indirect function support and allow the use of the
3613 # resolver attribute.
3615 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3617 *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
3619 *-*-linux* | *-*-gnu*)
3621 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3622 default_gnu_indirect_function=yes
3628 # Build mkoffload tool
3630 *-intelmic-* | *-intelmicemul-*)
3631 tmake_file="${tmake_file} i386/t-intelmic"
3632 tm_file="${tm_file} i386/intelmic-offload.h"
3636 if [ "$target_has_targetcm" = "no" ]; then
3637 c_target_objs="$c_target_objs default-c.o"
3638 cxx_target_objs="$cxx_target_objs default-c.o"
3641 if [ "$common_out_file" = "" ]; then
3642 if [ "$target_has_targetm_common" = "yes" ]; then
3643 common_out_file="$cpu_type/$cpu_type-common.c"
3645 common_out_file="default-common.c"
3649 if [ "$target_has_targetdm" = "no" ]; then
3650 d_target_objs="$d_target_objs default-d.o"
3653 # Support for --with-cpu and related options (and a few unrelated options,
3657 echo "--with-cpu must be passed a value" 1>&2
3662 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3663 # to generic if there is no processor scheduler model for the target.
3666 arch_without_sse2=no
3667 arch_without_64bit=no
3670 if test $fbsd_major -ge 6; then
3676 arch_without_sse2=yes
3677 arch_without_64bit=yes
3682 arch_without_sse2=yes
3683 arch_without_64bit=yes
3688 arch_without_sse2=yes
3689 arch_without_64bit=yes
3694 arch_without_sse2=yes
3695 arch_without_64bit=yes
3698 arch_without_sse2=yes
3699 arch_without_64bit=yes
3700 case ${target_noncanonical} in
3713 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3723 i686-*-* | i786-*-*)
3724 case ${target_noncanonical} in
3761 amdfam10-*|barcelona-*)
3765 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3769 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3773 athlon_xp-*|athlon_mp-*|athlon_4-*)
3776 arch_without_sse2=yes
3777 arch_without_64bit=yes
3779 athlon_tbird-*|athlon-*)
3782 arch_without_sse2=yes
3787 arch_without_sse2=yes
3792 arch_without_sse2=yes
3794 pentium3-*|pentium3m-*)
3797 arch_without_sse2=yes
3799 pentium4-*|pentium4m-*)
3838 arch_without_sse2=yes
3843 arch_without_sse2=yes
3844 arch_without_64bit=yes
3849 case ${target_noncanonical} in
3886 amdfam10-*|barcelona-*)
3890 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3894 k8-*|opteron-*|athlon_64-*)
3926 # If there is no $with_cpu option, try to infer one from ${target}.
3927 # This block sets nothing except for with_cpu.
3928 if test x$with_cpu = x ; then
3930 i[34567]86-*-elfiamcu)
3933 i[34567]86-*-*|x86_64-*-*)
3951 frv-*-*linux* | frv400-*-*linux*)
3958 case "$with_arch" in
3960 with_cpu=${default_cf_cpu}
3963 with_cpu=m${default_m68k_cpu}
3979 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3988 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3990 i[34567]86-*-*|x86_64-*-*)
3991 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3992 if test x$with_cpu_32 = x; then
3993 with_cpu_32=$with_cpu
3995 if test x$with_cpu_64 = x; then
3996 with_cpu_64=$with_cpu
4004 # Support for --with-arch and related options (and a few unrelated options,
4006 case ${with_arch} in
4008 echo "--with-arch must be passed a value" 1>&2
4013 # If there is no $with_arch option, try to infer one from ${target}.
4014 # This block sets nothing except for with_arch.
4015 if test x$with_arch = x ; then
4017 i[34567]86-*-darwin*|x86_64-*-darwin*)
4018 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4019 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4021 i[34567]86-*-elfiamcu)
4025 # --with-fpmath sets the default ISA to SSE2, which is the same
4026 # ISA supported by Pentium 4.
4027 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
4036 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4044 # Avoid overriding --with-arch-32 and --with-arch-64 values.
4046 i[34567]86-*-darwin*|x86_64-*-darwin*)
4047 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4048 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4050 i[34567]86-*-*|x86_64-*-*)
4051 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
4052 if test x$with_arch_32 = x; then
4053 with_arch_32=$with_arch
4055 if test x$with_arch_64 = x; then
4056 if test $arch_without_64bit = yes; then
4057 # Set the default 64bit arch to x86-64 if the default arch
4058 # doesn't support 64bit.
4061 with_arch_64=$with_arch
4065 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
4066 # Set the default 64bit arch to x86-64 if the default arch
4067 # doesn't support 64bit and we need 64bit ISA.
4068 with_arch_32=$with_arch
4076 # Infer a default setting for --with-float.
4077 if test x$with_float = x; then
4079 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4080 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
4081 # comply with IEEE 754.
4087 # Infer a default setting for --with-fpu.
4088 if test x$with_fpu = x; then
4090 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4091 # The R5900 FPU only supports single precision.
4097 # Support --with-fpmath.
4098 if test x$with_fpmath != x; then
4100 i[34567]86-*-* | x86_64-*-*)
4101 case ${with_fpmath} in
4103 tm_file="${tm_file} i386/avxmath.h"
4106 tm_file="${tm_file} i386/ssemath.h"
4109 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4115 echo "--with-fpmath isn't supported for $target." 1>&2
4121 # Similarly for --with-schedule.
4122 if test x$with_schedule = x; then
4125 # Override default PA8000 scheduling model.
4126 with_schedule=7100LC
4131 # Infer a default setting for --with-llsc.
4132 if test x$with_llsc = x; then
4135 # The kernel emulates LL and SC where necessary.
4138 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4139 # The R5900 doesn't support LL(D) and SC(D).
4145 # Validate and mark as valid any --with options supported
4146 # by this target. In order to use a particular --with option
4147 # you must list it in supported_defaults; validating the value
4148 # is optional. This case statement should set nothing besides
4149 # supported_defaults.
4154 supported_defaults="abi cpu cpu_64 arch arch_64 tune tune_64"
4155 if test x$with_cpu_64 != x && test x$with_cpu = x; then
4156 with_cpu=$with_cpu_64
4158 if test x$with_arch_64 != x && test x$with_arch = x; then
4159 with_arch=$with_arch_64
4161 if test x$with_tune_64 != x && test x$with_tune = x; then
4162 with_tune=$with_tune_64
4164 for which in cpu arch tune; do
4165 eval "val=\$with_$which"
4166 base_val=`echo $val | sed -e 's/\+.*//'`
4167 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4169 if [ $which = arch ]; then
4170 def=aarch64-arches.def
4171 pattern=AARCH64_ARCH
4173 def=aarch64-cores.def
4174 pattern=AARCH64_CORE
4177 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
4179 # Find the base CPU or ARCH id in aarch64-cores.def or
4180 # aarch64-arches.def
4181 if [ x"$base_val" = x ] \
4182 || grep "^$pattern(\"$base_val\"," \
4183 ${srcdir}/config/aarch64/$def \
4186 if [ $which = arch ]; then
4187 base_id=`grep "^$pattern(\"$base_val\"," \
4188 ${srcdir}/config/aarch64/$def | \
4189 sed -e 's/^[^,]*,[ ]*//' | \
4191 # Extract the architecture flags from aarch64-arches.def
4192 ext_mask=`grep "^$pattern(\"$base_val\"," \
4193 ${srcdir}/config/aarch64/$def | \
4197 base_id=`grep "^$pattern(\"$base_val\"," \
4198 ${srcdir}/config/aarch64/$def | \
4199 sed -e 's/^[^,]*,[ ]*//' | \
4203 # Disallow extensions in --with-tune=cortex-a53+crc.
4204 if [ $which = tune ] && [ x"$ext_val" != x ]; then
4205 echo "Architecture extensions not supported in --with-$which=$val" 1>&2
4209 # Use the pre-processor to strip flatten the options.
4210 # This makes the format less rigid than if we use
4211 # grep and sed directly here.
4212 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4213 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4214 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4216 # Match one element inside AARCH64_OPT_EXTENSION, we
4217 # consume anything that's not a ,.
4218 elem="[ ]*\([^,]\+\)[ ]*"
4220 # Repeat the pattern for the number of entries in the
4221 # AARCH64_OPT_EXTENSION, currently 6 times.
4222 sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
4224 while [ x"$ext_val" != x ]
4226 ext_val=`echo $ext_val | sed -e 's/\+//'`
4227 ext=`echo $ext_val | sed -e 's/\+.*//'`
4228 base_ext=`echo $ext | sed -e 's/^no//'`
4229 opt_line=`echo -e "$options_parsed" | \
4230 grep "^\"$base_ext\""`
4232 if [ x"$base_ext" = x ] \
4233 || [[ -n $opt_line ]]; then
4235 # These regexp extract the elements based on
4236 # their group match index in the regexp.
4237 ext_canon=`echo -e "$opt_line" | \
4238 sed -e "s/$sed_patt/\2/"`
4239 ext_on=`echo -e "$opt_line" | \
4240 sed -e "s/$sed_patt/\3/"`
4241 ext_off=`echo -e "$opt_line" | \
4242 sed -e "s/$sed_patt/\4/"`
4244 if [ $ext = $base_ext ]; then
4246 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
4248 # Removing extension
4249 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
4254 echo "Unknown extension used in --with-$which=$val" 1>&2
4257 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4260 ext_mask="(("$ext_mask") << 6)"
4261 if [ x"$base_id" != x ]; then
4262 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
4266 # Allow --with-$which=native.
4267 if [ "$val" = native ]; then
4270 echo "Unknown $which used in --with-$which=$val" 1>&2
4278 supported_defaults="cpu tune"
4279 for which in cpu tune; do
4280 eval "val=\$with_$which"
4283 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4284 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4288 echo "Unknown CPU used in --with-$which=$val" 1>&2
4296 supported_defaults="cpu fpu"
4299 if [ x"$with_cpu" = x ] \
4300 || grep -q -E "^ARC_CPU[[:blank:]]*\($with_cpu," \
4301 ${srcdir}/config/arc/arc-cpus.def
4306 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4310 # see if --with-fpu matches any of the supported FPUs
4315 fpus | fpus_div | fpus_fma | fpus_all)
4319 fpuda | fpuda_div | fpuda_fma | fpuda_all)
4323 fpud | fpud_div | fpud_fma | fpud_all)
4328 echo "Unknown floating point type used in "\
4329 "--with-fpu=$with_fpu" 1>&2
4334 if [ -n "$flags_ok" ] \
4335 && ! grep -q -E "^ARC_CPU[[:blank:]]*\($new_cpu,[[:blank:]]*$flags_ok," \
4336 ${srcdir}/config/arc/arc-cpus.def
4338 echo "Unknown floating point type used in "\
4339 "--with-fpu=$with_fpu for cpu $new_cpu" 1>&2
4345 supported_defaults="cpu endian float"
4349 supported_defaults="arch cpu float tune fpu abi mode tls"
4350 for which in cpu tune arch; do
4351 # See if it matches a supported value
4352 eval "val=\$with_$which"
4353 if [ x"$val" != x ]; then
4354 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4355 -v cmd="chk$which $val" \
4356 ${srcdir}/config/arm/arm-cpus.in`
4357 if [ "$cpu" = "error" ]; then
4358 echo "Unknown target in --with-$which=$val" 1>&2
4362 eval "target_${which}_cname=$new_val"
4363 echo "For $val real value is $new_val"
4368 case "$with_float" in
4370 | soft | hard | softfp)
4374 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4379 # see if --with-fpu matches any of the supported FPUs
4380 if [ x"$with_fpu" != x ] ; then
4382 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4383 -v cmd="chkfpu $val" \
4384 ${srcdir}/config/arm/arm-cpus.in`
4385 if [ "$fpu" = "error" ]
4387 echo "Unknown target in --with-fpu=$val" 1>&2
4394 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4398 echo "Unknown ABI used in --with-abi=$with_abi"
4403 case "$with_mode" in
4409 echo "Unknown mode used in --with-mode=$with_mode"
4420 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4425 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4426 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4430 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4431 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4435 # Add extra multilibs
4436 if test "x$with_multilib_list" != x; then
4438 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4439 if test "x${arm_multilibs}" != xdefault ; then
4440 for arm_multilib in ${arm_multilibs}; do
4441 case ${arm_multilib} in
4443 tmake_profile_file="arm/t-multilib"
4446 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4447 if test -f "${srcdir}/config/arm/${ml}"; then
4448 tmake_file="${tmake_file} arm/${ml}"
4450 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4455 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4462 if test "x${tmake_profile_file}" != x ; then
4463 # arm/t-aprofile and arm/t-rmprofile are only
4464 # designed to work without any with-cpu,
4465 # with-arch, with-mode, with-fpu or with-float
4467 if test "x$with_arch" != x \
4468 || test "x$with_cpu" != x \
4469 || test "x$with_float" != x \
4470 || test "x$with_fpu" != x \
4471 || test "x$with_mode" != x ; then
4472 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4474 elif test "x$ml" != x ; then
4475 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4478 # But pass the default value for float-abi
4479 # through to the multilib selector
4481 tmake_file="${tmake_file} ${tmake_profile_file}"
4482 TM_MULTILIB_CONFIG="$with_multilib_list"
4485 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4486 with_cpu=${with_cpu:-$target_cpu_cname}
4490 supported_defaults=cpu
4495 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4501 fido-*-* | m68k*-*-*)
4502 supported_defaults="arch cpu"
4503 case "$with_arch" in
4505 m68k_arch_family="$with_arch"
4508 echo "Invalid --with-arch=$with_arch" 1>&2
4513 # We always have a $with_cpu setting here.
4515 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4516 m68k_cpu_ident=$with_cpu
4519 m68k_cpu_ident=m68020
4520 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4523 m68k_cpu_ident=m68020
4524 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4527 # We need the C identifier rather than the string.
4528 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4529 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4530 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4531 ${srcdir}/config/m68k/m68k-devices.def`
4532 if [ x"$m68k_cpu_ident" = x ] ; then
4533 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4536 with_cpu="mcpu=$with_cpu"
4542 supported_defaults="arch tune"
4544 for which in arch tune; do
4545 eval "val=\$with_$which"
4547 "" | fiji | gfx900 | gfx906 )
4551 echo "Unknown cpu used in --with-$which=$val." 1>&2
4556 [ "x$with_arch" = x ] && with_arch=fiji
4560 supported_defaults="arch schedule"
4562 case "$with_arch" in
4563 "" | 1.0 | 1.1 | 2.0)
4567 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4572 case "$with_schedule" in
4573 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4577 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4583 i[34567]86-*-* | x86_64-*-*)
4584 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4585 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4586 eval "val=\$with_$which"
4587 case " $x86_archs " in
4595 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4604 if test x${val} != x; then
4605 case " $x86_64_archs " in
4607 # Disallow x86-64-v* for --with-cpu=/--with-tune=
4608 case "x$which$val" in
4609 xcpu*x86-64-v*|xtune*x86-64-v*)
4610 echo "Unknown CPU given in --with-$which=$val." 1>&2
4619 # Allow $x86_cpus --with-cpu=/--with-tune=
4622 case " $x86_cpus " in
4627 echo "Unknown CPU given in --with-$which=$val." 1>&2
4633 echo "Unknown CPU given in --with-$which=$val." 1>&2
4646 supported_defaults="abi arch tune riscv_attribute isa_spec"
4649 riscv-* | riscv32*) xlen=32 ;;
4650 riscv64*) xlen=64 ;;
4651 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4654 case "${with_isa_spec}" in
4656 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_2P2"
4659 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20191213"
4662 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20190608"
4665 echo "--with-isa-spec only accept 2.2, 20191213, 201912, 20190608 or 201906" 1>&2
4669 case "${with_riscv_attribute}" in
4671 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4674 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4677 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4680 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4686 # Infer arch from --with-arch, --target, and --with-abi.
4687 case "${with_arch}" in
4688 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4692 # Infer XLEN, but otherwise assume GC.
4693 case "${with_abi}" in
4694 ilp32e) with_arch="rv32e" ;;
4695 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4696 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4697 *) with_arch="rv${xlen}gc" ;;
4701 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4705 PYTHON=`which python || which python3 || which python2`
4706 if test "x${PYTHON}" != x; then
4707 with_arch=`${PYTHON} ${srcdir}/config/riscv/arch-canonicalize ${with_arch}`
4709 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ARCH=${with_arch}"
4711 # Make sure --with-abi is valid. If it was not specified,
4712 # pick a default based on the ISA, preferring soft-float
4713 # unless the D extension is present.
4714 case "${with_abi}" in
4715 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4718 case "${with_arch}" in
4719 rv32*d* | rv32g*) with_abi=ilp32d ;;
4720 rv32e*) with_abi=ilp32e ;;
4721 rv32*) with_abi=ilp32 ;;
4722 rv64*d* | rv64g*) with_abi=lp64d ;;
4723 rv64*) with_abi=lp64 ;;
4727 echo "--with-abi=${with_abi} is not supported" 1>&2
4731 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ABI=${with_abi}"
4733 # Make sure ABI and ISA are compatible.
4734 case "${with_abi},${with_arch}" in
4735 ilp32,rv32* | ilp32e,rv32e* \
4736 | ilp32f,rv32*f* | ilp32f,rv32g* \
4737 | ilp32d,rv32*d* | ilp32d,rv32g* \
4739 | lp64f,rv64*f* | lp64f,rv64g* \
4740 | lp64d,rv64*d* | lp64d,rv64g*)
4743 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4747 # Handle --with-multilib-generator.
4748 if test "x${with_multilib_generator}" != xdefault; then
4749 if test "x${with_multilib_list}" != xdefault; then
4750 echo "--with-multilib-list= can't used with --with-multilib-generator= at same time" 1>&2
4755 if ${srcdir}/config/riscv/multilib-generator \
4756 `echo ${with_multilib_generator} | sed 's/;/ /g'`\
4757 > t-multilib-config;
4759 tmake_file="${tmake_file} riscv/t-withmultilib-generator"
4761 echo "invalid option for --with-multilib-generator" 1>&2
4766 echo "--with-multilib-generator= is not supported for ${target}, only supported for riscv*-*-elf*" 1>&2
4772 # Handle --with-multilib-list.
4773 if test "x${with_multilib_list}" != xdefault; then
4774 tmake_file="${tmake_file} riscv/t-withmultilib"
4776 case ${with_multilib_list} in
4777 ilp32 | ilp32f | ilp32d \
4778 | lp64 | lp64f | lp64d )
4779 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4782 echo "--with-multilib-list=${with_multilib_list} not supported."
4789 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"
4791 case ${with_float} in
4796 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4802 "" | single | double)
4806 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4816 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4821 case ${with_fp_32} in
4826 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4831 case ${with_odd_spreg_32} in
4833 with_odd_spreg_32="odd-spreg"
4836 with_odd_spreg_32="no-odd-spreg"
4842 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4848 "" | 32 | o64 | n32 | 64 | eabi)
4852 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4857 case ${with_divide} in
4858 "" | breaks | traps)
4862 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4867 case ${with_llsc} in
4878 echo "Unknown llsc type used in --with-llsc" 1>&2
4883 case ${with_mips_plt} in
4888 with_mips_plt=no-plt
4893 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4898 case ${with_synci} in
4908 echo "Unknown synci type used in --with-synci" 1>&2
4913 case ${with_lxc1_sxc1} in
4915 with_lxc1_sxc1=lxc1-sxc1
4918 with_lxc1_sxc1=no-lxc1-sxc1
4923 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4928 case ${with_madd4} in
4938 echo "Unknown madd4 type used in --with-madd4" 1>&2
4945 supported_defaults="arch cpu nds32_lib float fpu_config"
4947 # process --with-arch
4948 case "${with_arch}" in
4950 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4954 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4957 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4960 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4964 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4969 case "${with_cpu}" in
4973 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4977 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4982 # process --with-nds32-lib
4983 case "${with_nds32_lib}" in
4987 with_nds32_lib=ulibc
4990 with_nds32_lib=glibc
4993 with_nds32_lib=newlib
4994 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
5000 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
5004 # for the arch=v3f or arch=v3s under mculib toolchain,
5005 # we would like to set -fno-math-errno as default
5006 case "${with_arch}" in
5008 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
5016 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
5021 # process --with-float
5022 case "${with_float}" in
5027 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
5032 # process --with-config-fpu
5033 case "${with_config_fpu}" in
5038 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
5046 supported_defaults="arch"
5047 case "$with_arch" in
5052 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
5058 powerpc*-*-* | rs6000-*-*)
5059 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
5061 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5062 eval "val=\$with_$which"
5064 default32 | default64)
5069 echo "$val only valid for --with-cpu and --with-tune." 1>&2
5073 with_which="with_$which"
5077 tm_defines="${tm_defines} CONFIG_PPC405CR"
5078 eval "with_$which=405"
5080 "" | common | native \
5081 | power[3456789] | power10 | power5+ | power6x \
5082 | powerpc | powerpc64 | powerpc64le \
5084 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
5085 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
5086 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
5087 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
5088 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
5092 echo "Unknown cpu used in --with-$which=$val." 1>&2
5099 "" | elfv1 | elfv2 )
5103 echo "Unknown ABI used in --with-abi=$with_abi"
5108 if test "x$with_advance_toolchain" != x; then
5109 if test -d "/opt/$with_advance_toolchain/." -a \
5110 -d "/opt/$with_advance_toolchain/bin/." -a \
5111 -d "/opt/$with_advance_toolchain/include/."; then
5113 tm_file="$tm_file ./advance-toolchain.h"
5114 (at="/opt/$with_advance_toolchain"
5115 echo "/* Use Advance Toolchain $at */"
5117 echo "#undef LINK_OS_EXTRA_SPEC32"
5118 echo "#define LINK_OS_EXTRA_SPEC32" \
5119 "\"%(link_os_new_dtags)" \
5120 "-rpath $prefix/lib -rpath $at/lib\""
5122 echo "#undef LINK_OS_EXTRA_SPEC64"
5123 echo "#define LINK_OS_EXTRA_SPEC64" \
5124 "\"%(link_os_new_dtags)" \
5125 "-rpath $prefix/lib64 -rpath $at/lib64\""
5127 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
5128 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
5129 "\"--enable-new-dtags\""
5131 echo "#undef DYNAMIC_LINKER_PREFIX"
5132 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
5134 echo "#undef MD_EXEC_PREFIX"
5135 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
5137 echo "#undef MD_STARTFILE_PREFIX"
5138 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
5140 echo "#undef MD_STARTFILE_PREFIX_1"
5141 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
5142 > advance-toolchain.h
5144 echo "Unknown advance-toolchain $with_advance_toolchain"
5149 # Set up the default long double format if the user changed it.
5150 if test x$with_long_double_format = xieee; then
5151 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
5153 elif test x$with_long_double_format = xibm; then
5154 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5159 supported_defaults="arch mode tune"
5161 for which in arch tune; do
5162 eval "val=\$with_$which"
5164 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 | arch14 )
5168 echo "Unknown cpu used in --with-$which=$val." 1>&2
5174 case ${with_mode} in
5179 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5185 sh[123456ble]*-*-* | sh-*-*)
5186 supported_defaults="cpu"
5187 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5188 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5191 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5193 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5196 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
5197 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5198 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5199 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5205 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5207 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5208 eval "val=\$with_$which"
5210 "" | sparc | sparcv9 | sparc64 \
5212 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5213 | sparclite | f930 | f934 | sparclite86x \
5214 | sparclet | tsc701 \
5215 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5216 | niagara3 | niagara4 | niagara7 | m8)
5220 echo "Unknown cpu used in --with-$which=$val" 1>&2
5226 case ${with_float} in
5231 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5238 supported_defaults="arch"
5240 case ${with_arch} in
5241 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5245 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5252 supported_defaults=cpu
5254 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5258 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5264 supported_defaults="cpu"
5268 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5275 # Targets for which there is at least one VxWorks port should include
5276 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5277 # of markers from other files in the port, including the vxworks*.h files to
5278 # distinguish VxWorks variants such as VxWorks 7 or 64).
5281 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5282 | sparc*-*-* | x86_64-*-*)
5283 tm_file="vxworks-dummy.h ${tm_file}"
5287 # Set some miscellaneous flags for particular targets.
5288 target_cpu_default2=
5291 if test x"$target_cpu_cname" != x
5293 target_cpu_default2=$target_cpu_cname
5298 if test x$with_cpu = x
5300 echo "Don't know the target cpu" 1>&2
5303 target_cpu_default2="\\\"$with_cpu\\\""
5308 if test x$gas = xyes
5310 target_cpu_default2="MASK_GAS"
5314 fido*-*-* | m68k*-*-*)
5315 target_cpu_default2=$m68k_cpu_ident
5316 tmake_file="m68k/t-opts $tmake_file"
5317 if [ x"$m68k_arch_family" != x ]; then
5318 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5322 i[34567]86-*-darwin* | x86_64-*-darwin*)
5324 i[34567]86-*-linux* | x86_64-*-linux*)
5325 extra_objs="${extra_objs} gnu-property.o"
5326 tmake_file="$tmake_file i386/t-linux i386/t-gnu-property"
5328 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5329 tmake_file="$tmake_file i386/t-kfreebsd"
5332 tmake_file="$tmake_file i386/t-gnu"
5334 i[34567]86-*-msdosdjgpp*)
5335 tmake_file="${tmake_file} i386/t-djgpp"
5337 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5339 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5341 i[34567]86-*-mingw* | x86_64-*-mingw*)
5343 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5345 i[34567]86-*-freebsd*)
5348 tmake_file="${tmake_file} i386/t-freebsd64"
5354 if test x$gnu_ld = xyes
5356 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5360 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5363 if test x$with_arch != x; then
5364 default_mips_arch=$with_arch
5366 if test x$with_abi != x; then
5367 default_mips_abi=$with_abi
5369 case ${default_mips_arch} in
5370 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
5371 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
5372 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
5373 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
5374 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
5375 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
5376 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
5377 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
5378 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
5379 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
5381 case ${default_mips_abi} in
5382 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5383 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5384 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5385 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5386 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5388 tmake_file="mips/t-mips $tmake_file"
5391 powerpc*-*-* | rs6000-*-*)
5392 # FIXME: The PowerPC port uses the value set at compile time,
5393 # although it's only cosmetic.
5394 if test "x$with_cpu" != x
5396 target_cpu_default2="\\\"$with_cpu\\\""
5398 out_file="${cpu_type}/${cpu_type}.c"
5399 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5400 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5401 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5402 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5405 sh[123456ble]*-*-* | sh-*-*)
5406 c_target_objs="${c_target_objs} sh-c.o"
5407 cxx_target_objs="${cxx_target_objs} sh-c.o"
5411 # Some standard aliases.
5416 xsparcv9 | xsparc64)
5421 if test x$with_tune = x ; then
5432 # The SPARC port checks this value at compile-time.
5433 target_cpu_default2="TARGET_CPU_$with_cpu"
5437 case "x$with_cpu" in
5440 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5441 target_cpu_default2="TARGET_CPU_$with_cpu"
5444 target_cpu_default2="TARGET_CPU_v850e1"
5449 target_cpu_default2="TARGET_CPU_$with_cpu"
5454 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"
5455 for option in $all_defaults
5457 eval "val=\$with_"`echo $option | sed s/-/_/g`
5458 if test -n "$val"; then
5459 case " $supported_defaults " in
5463 echo "This target does not support --with-$option." 2>&1
5464 echo "Valid --with options are: $supported_defaults" 2>&1
5471 t="{ \"$option\", \"$val\" }"
5473 t="${t}, { \"$option\", \"$val\" }"
5480 configure_default_options="{ { NULL, NULL} }"
5482 configure_default_options="{ ${t} }"
5485 if test "$target_cpu_default2" != ""
5487 if test "$target_cpu_default" != ""
5489 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5491 target_cpu_default=$target_cpu_default2
5496 i[34567]86-*-* | x86_64-*-*)
5497 if test x$enable_as_accelerator = xyes; then
5498 extra_programs="mkoffload\$(exeext)"