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 | hppa[12]*-*-hpux10* \
254 | hppa[12]*-*-hpux11* \
256 if test "x$enable_obsolete" != xyes; then
257 echo "*** Configuration ${target} is obsolete." >&2
258 echo "*** Specify --enable-obsolete to build it anyway." >&2
259 echo "*** Support will be REMOVED in the next major release of GCC," >&2
260 echo "*** unless a maintainer comes forward." >&2
265 # Unsupported targets list. Do not put an entry in this list unless
266 # it would otherwise be caught by a more permissive pattern. The list
267 # should be in alphabetical order.
269 # Avoid special cases that are not obsolete
280 | i[34567]86-go32-* \
281 | i[34567]86-*-go32* \
285 | m68k-*-uclinuxoldabi* \
286 | mips64orion*-*-rtems* \
288 | powerpc*-*-linux*paired* \
290 | sparc-hal-solaris2* \
293 | *-*-freebsd[12] | *-*-freebsd[1234].* \
294 | *-*-freebsd*aout* \
302 | *-*-solaris2.[0-9] \
303 | *-*-solaris2.[0-9].* \
308 echo "*** Configuration ${target} not supported" 1>&2
313 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
314 # updated in each machine entry. Also set default extra_headers for some
317 cpu_type=`echo ${target} | sed 's/-.*$//'`
322 tmake_file=m32c/t-m32c
323 target_has_targetm_common=no
327 extra_headers="arm_fp16.h arm_neon.h arm_bf16.h arm_acle.h arm_sve.h"
328 c_target_objs="aarch64-c.o"
329 cxx_target_objs="aarch64-c.o"
330 d_target_objs="aarch64-d.o"
331 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"
332 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c \$(srcdir)/config/aarch64/aarch64-sve-builtins.h \$(srcdir)/config/aarch64/aarch64-sve-builtins.cc"
333 target_has_targetm_common=yes
337 extra_options="${extra_options} g.opt"
348 c_target_objs="arc-c.o"
349 cxx_target_objs="arc-c.o"
350 extra_options="${extra_options} arc/arc-tables.opt g.opt"
351 extra_headers="arc-simd.h"
355 extra_objs="arm-builtins.o aarch-common.o"
356 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"
357 target_type_format_char='%'
358 c_target_objs="arm-c.o"
359 cxx_target_objs="arm-c.o"
360 d_target_objs="arm-d.o"
361 extra_options="${extra_options} arm/arm-tables.opt"
362 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
366 c_target_objs="avr-c.o"
367 cxx_target_objs="avr-c.o"
376 extra_options="${extra_options} g.opt"
379 target_has_targetm_common=no
381 moxie*) cpu_type=moxie
382 target_has_targetm_common=no
386 extra_headers=math-68881.h
387 extra_options="${extra_options} m68k/m68k-tables.opt"
389 i[34567]86-*-* | x86_64-*-*)
391 c_target_objs="i386-c.o"
392 cxx_target_objs="i386-c.o"
393 d_target_objs="i386-d.o"
394 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"
395 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
396 extra_options="${extra_options} fused-madd.opt"
397 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
398 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
399 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
400 immintrin.h x86intrin.h avxintrin.h xopintrin.h
401 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
402 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
403 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
404 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
405 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
406 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
407 shaintrin.h clflushoptintrin.h xsavecintrin.h
408 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
409 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
410 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
411 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
412 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
413 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
414 gfniintrin.h cet.h avx512vbmi2intrin.h
415 avx512vbmi2vlintrin.h avx512vnniintrin.h
416 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
417 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
418 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
419 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h
420 avx512bf16intrin.h enqcmdintrin.h serializeintrin.h
421 avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h
422 tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h
423 amxbf16intrin.h x86gprintrin.h uintrintrin.h
424 hresetintrin.h keylockerintrin.h avxvnniintrin.h
425 mwaitintrin.h avx512fp16intrin.h avx512fp16vlintrin.h"
428 extra_headers=ia64intrin.h
429 extra_options="${extra_options} g.opt fused-madd.opt"
435 extra_options="${extra_options} g.opt"
439 extra_options="${extra_options} g.opt"
442 extra_headers=math-68881.h
443 extra_options="${extra_options} m68k/m68k-tables.opt"
447 extra_options="${extra_options} g.opt"
451 d_target_objs="mips-d.o"
452 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
453 extra_objs="frame-header-opt.o"
454 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
458 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
461 extra_options="${extra_options} nds32/nds32-linux.opt"
464 extra_options="${extra_options} nds32/nds32-elf.opt"
469 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"
473 extra_options="${extra_options} g.opt"
477 c_target_objs="nvptx-c.o"
478 cxx_target_objs="nvptx-c.o"
485 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
486 extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
487 extra_objs="${extra_objs} rs6000-builtins.o"
488 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
489 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
490 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
491 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
492 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
493 extra_headers="${extra_headers} nmmintrin.h immintrin.h x86gprintrin.h"
494 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
495 extra_headers="${extra_headers} amo.h"
497 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower10|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
501 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
502 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
503 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.c"
504 target_gtfiles="$target_gtfiles ./rs6000-builtins.h"
511 extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o riscv-shorten-memrefs.o"
512 d_target_objs="riscv-d.o"
515 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
516 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
517 extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
518 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
519 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.c"
523 c_target_objs="sparc-c.o"
524 cxx_target_objs="sparc-c.o"
525 d_target_objs="sparc-d.o"
526 extra_headers="visintrin.h"
530 d_target_objs="s390-d.o"
531 extra_options="${extra_options} fused-madd.opt"
532 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
534 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
535 sh[123456789lbe]*-*-* | sh-*-*)
537 extra_options="${extra_options} fused-madd.opt"
538 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
545 extra_headers="c6x_intrinsics.h"
546 extra_options="${extra_options} c6x/c6x-tables.opt"
549 extra_options="${extra_options} fused-madd.opt"
559 tm_file=${cpu_type}/${cpu_type}.h
560 tm_d_file=${cpu_type}/${cpu_type}.h
561 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
563 tm_p_file=${cpu_type}/${cpu_type}-protos.h
564 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
568 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
570 extra_modes=${cpu_type}/${cpu_type}-modes.def
572 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
574 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
579 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
582 if test "x$with_multilib_list" = xilp32; then
583 tm_file="aarch64/biarchilp32.h ${tm_file}"
585 tm_file="aarch64/biarchlp64.h ${tm_file}"
589 tm_file="aarch64/biarchilp32.h ${tm_file}"
592 tm_file="aarch64/biarchlp64.h ${tm_file}"
595 echo "Unknown ABI used in --with-abi=$with_abi"
600 if test "x$with_abi" != x; then
601 echo "This target does not support --with-abi."
610 if test "x$with_multilib_list" = xmx32; then
611 tm_file="i386/biarchx32.h ${tm_file}"
613 tm_file="i386/biarch64.h ${tm_file}"
617 tm_file="i386/biarch64.h ${tm_file}"
620 tm_file="i386/biarchx32.h ${tm_file}"
623 echo "Unknown ABI used in --with-abi=$with_abi"
628 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
632 # On a.out targets, we need to use collect2.
639 # Common C libraries.
640 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
642 # 32-bit x86 processors supported by --with-arch=. Each processor
643 # MUST be separated by exactly one space.
644 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
645 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
646 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
647 pentium4 pentium4m pentiumpro prescott lakemont samuel-2 nehemiah \
650 # 64-bit x86 processors supported by --with-arch=. Each processor
651 # MUST be separated by exactly one space.
652 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
653 bdver3 bdver4 znver1 znver2 znver3 btver1 btver2 k8 k8-sse3 opteron \
654 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
655 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
656 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
657 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake \
658 sapphirerapids alderlake rocketlake eden-x2 nano nano-1000 nano-2000 nano-3000 \
659 nano-x2 eden-x4 nano-x4 x86-64 x86-64-v2 x86-64-v3 x86-64-v4 native"
661 # Additional x86 processors supported by --with-cpu=. Each processor
662 # MUST be separated by exactly one space.
663 x86_cpus="generic intel"
665 # Common parts for widely ported systems.
668 tmake_file="t-darwin "
669 tm_file="${tm_file} darwin.h"
670 tm_d_file="${tm_d_file} tm-dwarf2.h"
671 darwin_os=`echo ${target} | sed 's/.*darwin\([0-9.]*\).*$/\1/'`
672 darwin_maj=`expr "$darwin_os" : '\([0-9]*\).*'`
673 macos_min=`expr "$darwin_os" : '[0-9]*\.\([0-9]*\).*'`
675 if test x"${macos_min}" = x; then
680 # Darwin 4 to 19 correspond to macOS 10.0 to 10.15
681 *-*-darwin[4-9]* | *-*-darwin1[0-9]*)
682 macos_min=`expr $darwin_maj - 4`
685 # Darwin 20 corresponds to macOS 11, Darwin 21 to macOS 12.
686 macos_maj=`expr $darwin_maj - 9`
691 aarch64) macos_maj=11 ;;
692 x86_64) macos_min=6 ;;
696 *-*-darwin*) tm_defines="$tm_defines DARWIN_USE_KERNEL_VERS" ;;
698 # If configuring a cross-compiler then we will have set some
699 #Â default above, but it is probably not what was intended.
700 echo "Warning: Using ${target} is only suitable for Darwin hosts" 1>&2
701 echo "configure with an explicit target version" 1>&2
706 echo "Error: configuring for an unreleased macOS version ${target}" 1>&2
710 tm_defines="$tm_defines DEF_MIN_OSX_VERSION=\\\"${macos_maj}.${macos_min}\\\""
711 tm_defines="$tm_defines DEF_LD64=\\\"${def_ld64}\\\""
712 tm_file="${tm_file} ${cpu_type}/darwin.h"
713 tm_p_file="${tm_p_file} darwin-protos.h"
714 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.c"
715 extra_options="${extra_options} rpath.opt darwin.opt"
716 c_target_objs="${c_target_objs} darwin-c.o"
717 cxx_target_objs="${cxx_target_objs} darwin-c.o"
718 d_target_objs="${d_target_objs} darwin-d.o"
719 fortran_target_objs="darwin-f.o"
720 target_has_targetcm=yes
721 target_has_targetdm=yes
722 extra_objs="${extra_objs} darwin.o"
723 extra_gcc_objs="darwin-driver.o"
724 default_use_cxa_atexit=yes
726 case ${enable_threads} in
727 "" | yes | posix) thread_file='posix' ;;
733 tmake_file="t-slibgcc"
734 case ${enable_threads} in
739 # Let these non-posix thread selections fall through if requested
742 echo 'Unknown thread configuration for DragonFly BSD'
746 extra_options="$extra_options rpath.opt dragonfly.opt"
747 default_use_cxa_atexit=yes
749 d_target_objs="${d_target_objs} dragonfly-d.o"
750 tmake_file="${tmake_file} t-dragonfly"
751 target_has_targetdm=yes
754 # This is the generic ELF configuration of FreeBSD. Later
755 # machine-specific sections may refine and add to this
758 # Due to tm_file entry ordering issues that vary between cpu
759 # architectures, we only define fbsd_tm_file to allow the
760 # machine-specific section to dictate the final order of all
761 # entries of tm_file with the minor exception that components
762 # of the tm_file set here will always be of the form:
764 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
766 # The machine-specific section should not tamper with this
767 # ordering but may order all other entries of tm_file as it
768 # pleases around the provided core setting.
771 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
772 if test "$fbsd_major" = ""; then
773 echo "Specify the major version number of the targeted FreeBSD release"
774 echo "like this: --target=amd64-unknown-freebsd10.1"
777 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
778 tmake_file="t-slibgcc"
779 case ${enable_threads} in
781 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
787 echo 'Unknown thread configuration for FreeBSD'
791 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
792 extra_options="$extra_options rpath.opt freebsd.opt"
797 default_use_cxa_atexit=yes;;
800 d_target_objs="${d_target_objs} freebsd-d.o"
801 tmake_file="${tmake_file} t-freebsd"
802 target_has_targetdm=yes
805 native_system_header_dir=/include
807 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
808 extra_options="$extra_options gnu-user.opt"
811 case ${enable_threads} in
812 "" | yes | posix) thread_file='posix' ;;
814 tmake_file="t-slibgcc"
816 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
819 native_system_header_dir=/include
822 # Linux C libraries selection switch: glibc / uclibc / bionic.
823 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
826 tm_p_file="${tm_p_file} linux-protos.h"
827 tmake_file="${tmake_file} t-linux"
828 extra_objs="${extra_objs} linux.o"
829 extra_options="${extra_options} linux.opt"
834 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
836 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
837 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
840 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
843 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
846 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
848 default_use_cxa_atexit=yes
851 # Enable compilation for Android by default for *android* targets.
854 tm_defines="$tm_defines ANDROID_DEFAULT=1"
857 tm_defines="$tm_defines ANDROID_DEFAULT=0"
860 c_target_objs="${c_target_objs} glibc-c.o"
861 cxx_target_objs="${cxx_target_objs} glibc-c.o"
862 d_target_objs="${d_target_objs} glibc-d.o"
863 tmake_file="${tmake_file} t-glibc"
864 target_has_targetcm=yes
865 target_has_targetdm=yes
867 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
870 # Linux targets always support .init_array.
871 gcc_cv_initfini_array=yes
876 tm_p_file="${tm_p_file} netbsd-protos.h"
877 tmake_file="t-netbsd t-slibgcc"
878 extra_objs="${extra_objs} netbsd.o"
879 d_target_objs="${d_target_objs} netbsd-d.o"
883 case ${enable_threads} in
884 "" | yes | posix) thread_file='posix' ;;
886 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
887 default_use_cxa_atexit=yes
888 target_has_targetdm=yes
890 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
891 default_gnu_indirect_function=yes
896 tmake_file="t-openbsd"
897 case ${enable_threads} in
903 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
904 default_use_cxa_atexit=yes
907 d_target_objs="${d_target_objs} openbsd-d.o"
908 target_has_targetdm=yes
913 default_use_cxa_atexit=yes
916 case ${enable_threads} in
917 "" | yes | rtems) thread_file='rtems' ;;
918 posix) thread_file='posix' ;;
921 echo 'Unknown thread configuration for RTEMS'
925 tmake_file="${tmake_file} t-rtems"
926 extra_options="${extra_options} rtems.opt"
927 default_use_cxa_atexit=yes
931 extra_options="$extra_options gnu-user.opt"
933 case ${enable_threads} in
934 "" | yes | posix) thread_file='posix' ;;
936 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
942 # i?86-*-solaris2* needs to insert headers between cpu default and
943 # Solaris 2 specific ones.
944 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
945 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
946 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
948 *-*-solaris2.1[1-9]*)
949 # __cxa_atexit was introduced in Solaris 11.4.
950 default_use_cxa_atexit=yes
954 if test x$gnu_ld = xyes; then
955 tm_file="usegld.h ${tm_file}"
957 if test x$gas = xyes; then
958 tm_file="usegas.h ${tm_file}"
960 tm_p_file="${tm_p_file} sol2-protos.h"
961 tmake_file="${tmake_file} t-sol2 t-slibgcc"
962 c_target_objs="${c_target_objs} sol2-c.o"
963 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
964 d_target_objs="${d_target_objs} sol2-d.o"
965 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
966 extra_options="${extra_options} sol2.opt"
967 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
968 "":yes:* | yes:yes:* )
972 target_has_targetdm=yes
975 extra_options="${extra_options} vms/vms.opt"
977 tmake_file="vms/t-vms t-slibgcc"
979 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
980 tm_p_file="${tm_p_file} vms/vms-protos.h"
981 xm_file="vms/xm-vms.h"
982 c_target_objs="vms-c.o"
983 cxx_target_objs="vms-c.o"
984 fortran_target_objs="vms-f.o"
985 use_gcc_stdint=provide
986 tm_file="${tm_file} vms/vms-stdint.h"
987 if test x$gnu_ld != xyes; then
988 # Build wrappers for native case.
989 extra_programs="ld\$(exeext) ar\$(exeext)"
990 tmake_file="$tmake_file vms/t-vmsnative"
997 extra_options="${extra_options} vxworks.opt"
998 extra_objs="$extra_objs vxworks.o"
1000 c_target_objs="${c_target_objs} vxworks-c.o"
1001 cxx_target_objs="${cxx_target_objs} vxworks-c.o"
1002 extra_headers="${extra_headers} ../vxworks/vxworks-predef.h"
1003 target_has_targetcm="yes"
1005 # This private header exposes a consistent interface for checks on
1006 # the VxWorks version our runtime header files need to perform, based on
1007 # what the system headers adverstise:
1009 extra_headers="${extra_headers} ../vxworks/_vxworks-versions.h"
1011 # Starting from VxWorks 7, the system comes with a Dinkumware
1012 # environment which requires the inclusion of "yvals.h" before other
1013 # system headers. We provide wrapped versions of a few headers to
1014 # accomodate such constraints:
1016 extra_headers="${extra_headers} ../vxworks/_yvals.h"
1017 extra_headers="${extra_headers} ../vxworks/_yvals-wrapper.h"
1019 extra_headers="${extra_headers} ../vxworks/math.h ../vxworks/complex.h"
1020 extra_headers="${extra_headers} ../vxworks/inttypes.h ../vxworks/setjmp.h"
1022 # We provide stdint.h ...
1024 tm_file="${tm_file} vxworks-stdint.h"
1026 # .. only through the yvals conditional wrapping mentioned above
1027 # to abide by the VxWorks 7 expectations. The final copy is performed
1028 # explicitly by a t-vxworks Makefile rule.
1031 extra_headers="${extra_headers} ../../ginclude/stdint-gcc.h"
1033 case ${enable_threads} in
1035 "" | yes | vxworks) thread_file='vxworks' ;;
1036 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
1039 # A few common macro definitions conveying general characteristics
1040 # of the configuration at hand. Note that by VxWorks 7, we mean the
1041 # the SR6xx major update or beyond in vendor parlance:
1045 tm_defines="$tm_defines TARGET_VXWORKS7=1"
1050 tm_defines="$tm_defines TARGET_VXWORKS64=1"
1054 # Then a few build configuration controls for VxWorks 7, which
1055 # has specificities on top of which we aim to provide more complete
1060 # VxWorks 7 always has init/fini_array support and it is simpler to
1061 # just leverage this, sticking to what the system toolchain does:
1062 gcc_cv_initfini_array=yes
1066 *-*-elf|arc*-*-elf*)
1067 # Assume that newlib is being used and so __cxa_atexit is provided.
1068 default_use_cxa_atexit=yes
1074 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1075 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
1076 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1077 tmake_file="${tmake_file} aarch64/t-aarch64"
1083 tm_file="${tm_file} fuchsia.h"
1086 tm_file="${tm_file} aarch64/rtems.h rtems.h"
1091 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1094 aarch64_multilibs="${with_multilib_list}"
1095 if test "$aarch64_multilibs" = "default"; then
1096 aarch64_multilibs="lp64,ilp32"
1098 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1099 for aarch64_multilib in ${aarch64_multilibs}; do
1100 case ${aarch64_multilib} in
1102 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1105 echo "--with-multilib-list=${aarch64_multilib} not supported."
1109 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1111 aarch64*-*-freebsd*)
1112 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1113 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1114 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1115 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1118 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
1119 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1120 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1121 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1124 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1125 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1126 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1127 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1130 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1133 aarch64_multilibs="${with_multilib_list}"
1134 if test "$aarch64_multilibs" = "default"; then
1135 # TODO: turn on ILP32 multilib build after its support is mature.
1136 # aarch64_multilibs="lp64,ilp32"
1137 aarch64_multilibs="lp64"
1139 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1140 for aarch64_multilib in ${aarch64_multilibs}; do
1141 case ${aarch64_multilib} in
1143 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1146 echo "--with-multilib-list=${aarch64_multilib} not supported."
1150 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1152 aarch64*-wrs-vxworks*)
1153 tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
1154 tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
1155 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
1158 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1159 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1160 extra_options="${extra_options} alpha/elf.opt"
1163 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1164 tmake_file="${tmake_file} alpha/t-alpha"
1165 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1169 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1170 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1171 tmake_file="${tmake_file} alpha/t-alpha"
1172 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1173 # default x-alpha is only appropriate for dec-osf.
1176 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1177 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1180 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1181 tmake_file="arc/t-multilib arc/t-arc"
1182 extra_gcc_objs="driver-arc.o"
1183 if test "x$with_cpu" != x; then
1184 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1186 if test x${with_endian} = x; then
1188 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1189 *) with_endian=little ;;
1192 case ${with_endian} in
1194 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1196 case ${with_endian} in
1197 big*) tm_file="arc/big.h ${tm_file}"
1201 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}"
1202 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1203 extra_gcc_objs="driver-arc.o"
1204 if test "x$with_cpu" != x; then
1205 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1207 if test x${with_endian} = x; then
1209 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1210 *) with_endian=little ;;
1213 case ${with_endian} in
1215 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1217 case ${with_endian} in
1218 big*) tm_file="arc/big.h ${tm_file}"
1220 # Force .init_array support. The configure script cannot always
1221 # automatically detect that GAS supports it, yet we require it.
1222 gcc_cv_initfini_array=yes
1225 # We only support VxWorks 7 now on ARM, post SR600. Pre SR600
1226 # VxWorks 7 was transitory and major versions prior to 7 were based
1227 # on long deprecated ABI, not supported at all any more regardless
1229 extra_options="${extra_options} arm/vxworks.opt"
1230 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1231 tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1232 tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1233 target_cpu_cname="generic-armv7-a"
1234 need_64bit_hwint=yes
1236 arm*-*-freebsd*) # ARM FreeBSD EABI
1237 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1240 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1243 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1244 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1247 target_cpu_cname="arm1176jzf-s"
1248 if test $fbsd_major -ge 11; then
1249 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1253 target_cpu_cname="generic-armv7-a"
1254 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1257 target_cpu_cname="arm9"
1260 with_tls=${with_tls:-gnu}
1263 target_cpu_cname="strongarm"
1264 tmake_file="${tmake_file} arm/t-arm"
1265 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1266 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1268 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1271 arm*-*-netbsdelf-*eabi*)
1272 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1273 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1276 tm_file="$tm_file arm/netbsd-elf.h"
1277 tmake_file="$tmake_file arm/t-netbsd"
1280 tm_file="${tm_file} arm/aout.h arm/arm.h"
1282 arm*-*-netbsdelf-*eabihf*)
1283 # Hard-float requires at least Arm v5te
1284 target_cpu_cname="arm10e"
1285 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1289 armv6*) target_cpu_cname="arm1176jzf-s";;
1290 armv7*) target_cpu_cname="generic-armv7-a";;
1293 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1294 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"
1295 extra_options="${extra_options} linux-android.opt"
1298 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1301 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1302 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1304 arm*-*-uclinuxfdpiceabi)
1305 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1308 # Generation of floating-point instructions requires at least ARMv5te.
1309 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1310 target_cpu_cname="arm10e"
1312 target_cpu_cname="arm10tdmi"
1314 # Define multilib configuration for arm-linux-androideabi.
1317 tmake_file="$tmake_file arm/t-linux-androideabi"
1320 # The EABI requires the use of __cxa_atexit.
1321 default_use_cxa_atexit=yes
1322 with_tls=${with_tls:-gnu}
1324 arm*-*-uclinux*eabi*) # ARM ucLinux
1325 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1326 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1327 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1328 target_cpu_cname="arm7tdmi"
1329 # The EABI requires the use of __cxa_atexit.
1330 default_use_cxa_atexit=yes
1333 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1334 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1335 tm_file="${tm_file} arm/aout.h arm/arm.h"
1336 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1337 target_cpu_cname="arm7tdmi"
1339 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1342 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1344 default_use_cxa_atexit=yes
1345 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1346 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1347 target_cpu_cname="arm7tdmi"
1350 tm_file="$tm_file newlib-stdint.h"
1351 tmake_file="${tmake_file} arm/t-bpabi"
1355 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1356 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1357 target_cpu_cname="generic-armv7-a"
1360 tm_file="${tm_file} arm/rtems.h rtems.h newlib-stdint.h"
1361 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1364 tm_file="${tm_file} arm/symbian.h"
1365 # We do not include t-bpabi for Symbian OS because the system
1366 # provides its own implementation of the BPABI functions.
1367 tmake_file="${tmake_file} arm/t-symbian"
1368 target_cpu_cname="arm10tdmi"
1371 tm_file="${tm_file} arm/aout.h arm/arm.h"
1374 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1375 if test x${with_avrlibc} != xno; then
1376 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1377 tm_defines="${tm_defines} WITH_AVRLIBC"
1379 # Work out avr_double_comparison which is 2 or 3 and is used in
1380 # target hook FLOAT_LIB_COMPARE_RETURNS_BOOL to determine whether
1381 # DFmode comparisons return 3-state or 2-state results.
1382 case y${with_double_comparison} in
1384 avr_double_comparison=3
1387 avr_double_comparison=2
1390 echo "Error: --with-double-comparison= can only be used with: 'tristate', 'bool', 'libf7'" 1>&2
1394 case "y${with_libf7}" in
1396 # avr_double_comparison as set above.
1399 avr_double_comparison=2
1400 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1402 y | yyes | ymath-symbols)
1403 avr_double_comparison=2
1404 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1405 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1406 tm_defines="${tm_defines} WITH_LIBF7_MATH_SYMBOLS"
1409 avr_double_comparison=2
1410 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1411 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1414 echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
1418 tm_defines="${tm_defines} WITH_DOUBLE_COMPARISON=${avr_double_comparison}"
1419 case y${with_double} in
1422 tm_defines="${tm_defines} HAVE_DOUBLE32"
1426 tm_defines="${tm_defines} HAVE_DOUBLE64"
1430 avr_double_multilib=1
1431 tm_defines="${tm_defines} HAVE_DOUBLE32"
1432 tm_defines="${tm_defines} HAVE_DOUBLE64"
1433 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1437 avr_double_multilib=1
1438 tm_defines="${tm_defines} HAVE_DOUBLE32"
1439 tm_defines="${tm_defines} HAVE_DOUBLE64"
1440 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1443 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1447 case y${with_long_double} in
1450 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1454 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1458 avr_long_double_multilib=1
1459 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1460 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1461 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1465 avr_long_double_multilib=1
1466 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1467 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1468 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1471 avr_long_double=${avr_double}
1472 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1473 if test y${avr_double_multilib} = y1; then
1474 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1475 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1477 tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1481 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1485 if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1486 if test y${with_long_double} != ydouble; then
1487 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
1491 if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1492 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
1495 if test y${avr_double}${avr_long_double} = y6432; then
1496 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
1499 tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1500 tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1501 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1503 extra_gcc_objs="driver-avr.o avr-devices.o"
1504 extra_objs="avr-devices.o avr-log.o"
1507 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1508 tmake_file=bfin/t-bfin-elf
1512 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1513 tmake_file=bfin/t-bfin-uclinux
1516 bfin*-linux-uclibc*)
1517 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"
1518 tmake_file="${tmake_file} bfin/t-bfin-linux"
1522 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1523 tmake_file="${tmake_file} bfin/t-rtems"
1526 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1531 tm_file="elfos.h ${tm_file}"
1532 tmake_file="${tmake_file} bpf/t-bpf"
1534 extra_headers="bpf-helpers.h"
1535 use_gcc_stdint=provide
1536 extra_objs="coreout.o"
1537 target_gtfiles="$target_gtfiles \$(srcdir)/config/bpf/coreout.c"
1540 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1541 tmake_file="${tmake_file} cr16/t-cr16 "
1544 cris-*-elf | cris-*-none)
1545 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1546 tmake_file="cris/t-cris cris/t-elfmulti"
1548 extra_options="${extra_options} cris/elf.opt"
1552 if test x${with_endian} != x; then
1553 case ${with_endian} in
1556 echo "with_endian=${with_endian} not supported."
1561 if test x${with_float} != x; then
1562 case ${with_float} in
1565 "Unknown floating point type used in --with-float=$with_float"
1570 tm_file="csky/csky.h"
1571 md_file="csky/csky.md"
1572 out_file="csky/csky.c"
1573 tm_p_file="${tm_p_file} csky/csky-protos.h"
1574 extra_options="${extra_options} csky/csky_tables.opt"
1576 if test x${enable_tpf_debug} = xyes; then
1577 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1582 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1583 tmake_file="csky/t-csky csky/t-csky-elf"
1584 default_use_cxa_atexit=no
1588 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1589 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1593 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1594 # Force .init_array support. The configure script cannot always
1595 # automatically detect that GAS supports it, yet we require it.
1596 gcc_cv_initfini_array=yes
1598 csky-*-linux-uclibc*)
1599 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1600 default_use_cxa_atexit=no
1603 echo "Unknown target $target"
1609 echo "Unknown target $target"
1614 epiphany-*-elf | epiphany-*-rtems*)
1615 tm_file="${tm_file} dbxelf.h elfos.h"
1616 tmake_file="${tmake_file} epiphany/t-epiphany"
1619 tm_file="${tm_file} epiphany/rtems.h rtems.h newlib-stdint.h"
1622 tm_file="${tm_file} newlib-stdint.h"
1625 extra_options="${extra_options} fused-madd.opt"
1626 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1627 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1628 extra_headers="epiphany_intrinsics.h"
1631 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1634 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1635 tmake_file=frv/t-frv
1638 tm_file="dbxelf.h elfos.h ${tm_file} \
1639 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1640 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1645 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1646 tmake_file="${tmake_file} ft32/t-ft32"
1649 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1650 tmake_file="gcn/t-gcn-hsa"
1651 native_system_header_dir=/include
1652 extra_modes=gcn/gcn-modes.def
1653 extra_objs="${extra_objs} gcn-tree.o"
1654 extra_gcc_objs="driver-gcn.o"
1656 x86_64*-*-linux-gnu )
1657 if test "$ac_cv_search_dlopen" != no; then
1658 extra_programs="${extra_programs} gcn-run\$(exeext)"
1662 if test x$enable_as_accelerator = xyes; then
1663 extra_programs="${extra_programs} mkoffload\$(exeext)"
1664 tm_file="${tm_file} gcn/offload.h"
1666 # Force .init_array support.
1667 gcc_cv_initfini_array=yes
1673 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1674 tmake_file="${tmake_file} moxie/t-moxie"
1679 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1680 tmake_file="${tmake_file} moxie/t-moxie"
1683 tmake_file="${tmake_file} moxie/t-moxie"
1684 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1689 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1690 tmake_file="${tmake_file} moxie/t-moxiebox"
1693 tmake_file="h8300/t-h8300"
1694 tm_file="h8300/h8300.h elfos.h newlib-stdint.h h8300/elf.h"
1697 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1698 tm_file="h8300/h8300.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1701 target_cpu_default="MASK_PA_11|MASK_PA_20"
1702 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1703 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1705 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1706 d_target_objs="${d_target_objs} pa-d.o"
1710 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1711 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1712 pa/pa32-regs.h pa/pa32-linux.h"
1713 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1714 d_target_objs="${d_target_objs} pa-d.o"
1717 target_cpu_default="MASK_PA_11"
1718 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1719 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1720 extra_options="${extra_options} openbsd.opt"
1721 tmake_file="pa/t-pa"
1722 d_target_objs="${d_target_objs} pa-d.o"
1727 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1728 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} \
1729 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1730 tmake_file="${tmake_file}"
1731 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1732 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1734 hppa[12]*-*-hpux10*)
1736 hppa1.1-*-* | hppa2*-*-*)
1737 target_cpu_default="MASK_PA_11"
1740 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1741 pa/pa-hpux.h pa/pa-hpux10.h"
1742 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1745 tm_file="${tm_file} pa/pa-hpux1010.h"
1746 extra_options="${extra_options} pa/pa-hpux1010.opt"
1749 use_gcc_stdint=provide
1750 tm_file="${tm_file} hpux-stdint.h"
1751 tmake_file="pa/t-pa t-slibgcc"
1752 d_target_objs="${d_target_objs} pa-d.o"
1753 case ${enable_threads} in
1755 if test x$have_pthread_h = xyes ; then
1756 tmake_file="${tmake_file} pa/t-dce-thr"
1760 tmake_file="${tmake_file} pa/t-dce-thr"
1765 if test "x$with_dwarf2" != x; then
1766 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1771 target_cpu_default="MASK_PA_11|MASK_PA_20"
1772 if test x$gnu_ld = xyes
1774 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1776 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1777 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1781 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1782 extra_options="${extra_options} pa/pa-hpux1111.opt"
1785 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1786 extra_options="${extra_options} pa/pa-hpux1131.opt"
1789 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1792 extra_options="${extra_options} pa/pa-hpux.opt \
1793 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1794 tmake_file="pa/t-pa t-slibgcc"
1795 d_target_objs="${d_target_objs} pa-d.o"
1796 case x${enable_threads} in
1804 use_gcc_stdint=provide
1805 tm_file="${tm_file} hpux-stdint.h"
1809 tm_file="${tm_file} hpux-stdint.h"
1813 hppa[12]*-*-hpux11*)
1815 hppa1.1-*-* | hppa2*-*-*)
1816 target_cpu_default="MASK_PA_11"
1819 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1820 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1821 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1825 tm_file="${tm_file} pa/pa-hpux1111.h"
1826 extra_options="${extra_options} pa/pa-hpux1111.opt"
1829 tm_file="${tm_file} pa/pa-hpux1131.h"
1830 extra_options="${extra_options} pa/pa-hpux1131.opt"
1833 tmake_file="pa/t-pa t-slibgcc"
1834 d_target_objs="${d_target_objs} pa-d.o"
1835 case x${enable_threads} in
1844 use_gcc_stdint=provide
1845 tm_file="${tm_file} hpux-stdint.h"
1849 tm_file="${tm_file} hpux-stdint.h"
1852 if test "x$with_dwarf2" != x; then
1853 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1857 i[34567]86-*-darwin1[89]* | i[34567]86-*-darwin2[0-9]*)
1858 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1860 i[34567]86-*-darwin*)
1862 # Baseline choice for a machine that allows m64 support.
1863 with_cpu=${with_cpu:-core2}
1864 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1865 tm_file="${cpu_type}/darwin32-biarch.h ${tm_file} "
1867 x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
1869 tm_defines="${tm_defines} TARGET_64BIT_DEFAULT=(OPTION_MASK_ISA_64BIT|OPTION_MASK_ABI_64)"
1870 tm_defines="${tm_defines} TARGET_BI_ARCH=0"
1871 with_cpu=${with_cpu:-core2}
1872 tmake_file="${tmake_file} t-slibgcc"
1875 with_cpu=${with_cpu:-core2}
1876 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1877 tm_file="${cpu_type}/darwin64-biarch.h ${tm_file} "
1879 i[34567]86-*-elfiamcu)
1880 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1883 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1886 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1889 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"
1892 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1895 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"
1896 tmake_file="i386/t-i386elf t-svr4"
1898 i[34567]86-*-dragonfly*)
1899 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1900 tmake_file="${tmake_file} i386/t-crtstuff"
1902 x86_64-*-dragonfly*)
1903 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"
1904 tmake_file="${tmake_file} i386/t-crtstuff"
1906 i[34567]86-*-freebsd*)
1907 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1910 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"
1912 i[34567]86-*-netbsdelf*)
1913 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1914 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1917 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1918 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1920 i[34567]86-*-openbsd*)
1921 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1922 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1923 extra_options="${extra_options} openbsd.opt"
1928 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1929 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1930 extra_options="${extra_options} openbsd.opt"
1934 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1935 # Intel 80386's running GNU/*
1936 # with ELF format using glibc 2
1937 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1939 i[34567]86-*-linux*)
1940 tm_file="${tm_file} linux.h linux-android.h"
1941 extra_options="${extra_options} linux-android.opt"
1942 if test x$enable_targets = xall; then
1943 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1944 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1945 tmake_file="${tmake_file} i386/t-linux64"
1946 x86_multilibs="${with_multilib_list}"
1947 if test "$x86_multilibs" = "default"; then
1948 x86_multilibs="m64,m32"
1950 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1951 for x86_multilib in ${x86_multilibs}; do
1952 case ${x86_multilib} in
1954 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1957 echo "--with-multilib-list=${x86_with_multilib} not supported."
1961 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1963 if test x$with_cpu = x; then
1964 if test x$with_cpu_64 = x; then
1968 case " $x86_cpus $x86_archs $x86_64_archs " in
1972 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1973 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1979 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1982 i[34567]86-*-kfreebsd*-gnu)
1983 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1985 i[34567]86-*-kopensolaris*-gnu)
1986 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1989 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1993 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1994 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1995 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1998 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1999 extra_options="${extra_options} linux-android.opt"
2001 x86_64-*-kfreebsd*-gnu)
2002 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
2005 tmake_file="${tmake_file} i386/t-linux64"
2006 x86_multilibs="${with_multilib_list}"
2007 if test "$x86_multilibs" = "default"; then
2010 x86_multilibs="mx32"
2013 x86_multilibs="m64,m32"
2017 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
2018 for x86_multilib in ${x86_multilibs}; do
2019 case ${x86_multilib} in
2021 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
2024 echo "--with-multilib-list=${x86_with_multilib} not supported."
2028 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2030 i[34567]86-pc-msdosdjgpp*)
2031 xm_file=i386/xm-djgpp.h
2032 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
2033 native_system_header_dir=/dev/env/DJDIR/include
2034 extra_options="${extra_options} i386/djgpp.opt"
2039 i[34567]86-*-lynxos*)
2041 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
2042 tmake_file="${tmake_file} t-lynx"
2043 extra_options="${extra_options} lynx.opt"
2048 i[34567]86-*-nto-qnx*)
2049 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
2050 extra_options="${extra_options} i386/nto.opt"
2054 i[34567]86-*-rtems*)
2055 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"
2056 tmake_file="${tmake_file} i386/t-rtems"
2058 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
2059 # Set default arch_32 to pentium4, tune_32 to generic like the other
2060 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
2061 with_arch_32=${with_arch_32:-pentium4}
2062 with_tune_32=${with_tune_32:-generic}
2063 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
2064 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2065 tmake_file="$tmake_file i386/t-sol2"
2067 if test x$with_cpu = x; then
2068 if test x$with_cpu_64 = x; then
2072 case " $x86_cpus $x86_archs $x86_64_archs " in
2076 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2077 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2083 i[4567]86-wrs-vxworks*|x86_64-wrs-vxworks7*)
2084 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
2088 tm_file="${tm_file} i386/x86-64.h"
2091 tm_file="${tm_file} vx-common.h"
2094 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2095 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2098 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2099 tmake_file="${tmake_file} i386/t-vxworks"
2103 i[34567]86-*-cygwin*)
2104 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"
2105 xm_file=i386/xm-cygwin.h
2106 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2107 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2108 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2109 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2110 c_target_objs="${c_target_objs} msformat-c.o"
2111 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2112 d_target_objs="${d_target_objs} winnt-d.o"
2113 target_has_targetdm="yes"
2114 if test x$enable_threads = xyes; then
2117 default_use_cxa_atexit=yes
2122 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"
2123 xm_file=i386/xm-cygwin.h
2124 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
2125 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2126 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2127 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2128 c_target_objs="${c_target_objs} msformat-c.o"
2129 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2130 d_target_objs="${d_target_objs} winnt-d.o"
2131 target_has_targetdm="yes"
2132 if test x$enable_threads = xyes; then
2135 default_use_cxa_atexit=yes
2137 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2139 i[34567]86-*-mingw* | x86_64-*-mingw*)
2140 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
2141 xm_file=i386/xm-mingw32.h
2142 c_target_objs="${c_target_objs} winnt-c.o"
2143 cxx_target_objs="${cxx_target_objs} winnt-c.o"
2144 d_target_objs="${d_target_objs} winnt-d.o"
2145 target_has_targetcm="yes"
2146 target_has_targetdm="yes"
2148 x86_64-*-* | *-w64-*)
2154 if test x$enable_threads = xposix ; then
2155 tm_file="${tm_file} i386/mingw-pthread.h"
2157 tm_file="${tm_file} i386/mingw32.h"
2158 # This makes the logic if mingw's or the w64 feature set has to be used
2161 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2162 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2163 tm_file="${tm_file} i386/mingw-w64.h"
2164 if test x$enable_targets = xall; then
2165 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2166 if test x$with_cpu = x; then
2167 if test x$with_cpu_64 = x; then
2171 case " $x86_cpus $x86_archs $x86_64_archs " in
2175 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2176 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2186 tm_file="${tm_file} i386/mingw-stdint.h"
2187 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2190 tmake_file="${tmake_file} i386/t-mingw-w64"
2193 tmake_file="${tmake_file} i386/t-mingw-w32"
2196 native_system_header_dir=/mingw/include
2197 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2198 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2201 extra_options="${extra_options} i386/mingw-w64.opt"
2206 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2207 c_target_objs="${c_target_objs} msformat-c.o"
2208 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2211 default_use_cxa_atexit=yes
2213 case ${enable_threads} in
2223 tm_file="${tm_file} i386/crtdll.h"
2225 *mingw32msv* | *mingw*)
2230 tmake_file="${tmake_file} i386/t-x86_64-elf"
2231 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2234 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2235 tmake_file="ia64/t-ia64"
2236 target_cpu_default="0"
2237 if test x$gas = xyes
2239 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2241 if test x$gnu_ld = xyes
2243 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2247 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2248 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2249 tmake_file="${tmake_file} ia64/t-ia64"
2252 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2253 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2254 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2257 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
2258 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2259 target_cpu_default="MASK_GNU_AS"
2260 case x$enable_threads in
2266 c_target_objs="ia64-c.o"
2267 cxx_target_objs="ia64-c.o"
2268 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2270 tm_file="${tm_file} hpux-stdint.h"
2273 tm_file="${tm_file} ia64/hpux-unix2003.h"
2278 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2279 tmake_file="${tmake_file} ia64/t-ia64"
2280 target_cpu_default="0"
2281 if test x$gas = xyes
2283 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2285 extra_options="${extra_options} ia64/vms.opt"
2288 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2289 out_file=iq2000/iq2000.c
2290 md_file=iq2000/iq2000.md
2293 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2294 tmake_file="${tmake_file} lm32/t-lm32"
2297 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2298 tmake_file="${tmake_file} lm32/t-lm32"
2299 tmake_file="${tmake_file} lm32/t-rtems"
2302 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2303 tmake_file="${tmake_file} lm32/t-lm32"
2306 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2309 tm_file="elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2311 m68k-*-elf* | fido-*-elf*)
2314 # Check that $with_cpu makes sense.
2319 echo "Cannot accept --with-cpu=$with_cpu"
2326 default_m68k_cpu=68020
2330 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"
2331 tm_defines="${tm_defines} MOTOROLA=1"
2332 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2333 # Add multilibs for targets other than fido.
2338 tmake_file="$tmake_file m68k/t-mlibs"
2343 default_m68k_cpu=68020
2345 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2346 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2347 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2349 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2350 # with uClibc, using the new GNU/Linux-style
2352 default_m68k_cpu=68020
2354 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"
2355 extra_options="${extra_options} m68k/uclinux.opt"
2356 tm_defines="${tm_defines} MOTOROLA=1"
2357 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2359 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2360 # with ELF format using glibc 2
2361 # aka the GNU/Linux C library 6.
2362 default_m68k_cpu=68020
2364 with_arch=${with_arch:-m68k}
2365 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2366 extra_options="${extra_options} m68k/ieee.opt"
2367 tm_defines="${tm_defines} MOTOROLA=1"
2368 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2371 default_m68k_cpu=68020
2373 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2374 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"
2375 tm_defines="${tm_defines} MOTOROLA=1"
2378 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2379 tmake_file=mcore/t-mcore
2385 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2388 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2391 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2392 tm_file="${tm_file} glibc-stdint.h"
2393 c_target_objs="${c_target_objs} microblaze-c.o"
2394 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2395 tmake_file="${tmake_file} microblaze/t-microblaze"
2396 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2398 microblaze*-*-rtems*)
2401 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2404 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2407 tm_file="${tm_file} dbxelf.h"
2408 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2409 c_target_objs="${c_target_objs} microblaze-c.o"
2410 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2411 tmake_file="${tmake_file} microblaze/t-microblaze"
2412 tmake_file="${tmake_file} microblaze/t-rtems"
2417 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2420 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2423 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2424 c_target_objs="${c_target_objs} microblaze-c.o"
2425 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2426 tmake_file="${tmake_file} microblaze/t-microblaze"
2429 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2430 case "x${enable_multilib}" in
2432 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2433 *) echo "Unknown value for enable_multilib"; exit 1
2435 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2439 riscv32be-*|riscv64be-*)
2440 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2443 # Force .init_array support. The configure script cannot always
2444 # automatically detect that GAS supports it, yet we require it.
2445 gcc_cv_initfini_array=yes
2447 riscv*-*-elf* | riscv*-*-rtems*)
2448 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2451 tm_file="${tm_file} riscv/rtems.h rtems.h"
2452 tmake_file="${tmake_file} riscv/t-rtems"
2455 if test "x${with_multilib_generator}" == xdefault; then
2456 case "x${enable_multilib}" in
2458 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2459 *) echo "Unknown value for enable_multilib"; exit 1
2463 tmake_file="${tmake_file} riscv/t-riscv"
2467 riscv32be-*|riscv64be-*)
2468 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2471 # Force .init_array support. The configure script cannot always
2472 # automatically detect that GAS supports it, yet we require it.
2473 gcc_cv_initfini_array=yes
2476 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2477 tmake_file="${tmake_file} riscv/t-riscv"
2481 riscv32be-*|riscv64be-*)
2482 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2485 # Force .init_array support. The configure script cannot always
2486 # automatically detect that GAS supports it, yet we require it.
2487 gcc_cv_initfini_array=yes
2489 mips*-*-netbsd*) # NetBSD/mips, either endian.
2490 target_cpu_default="MASK_ABICALLS"
2491 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2492 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2495 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"
2496 extra_options="${extra_options} linux-android.opt"
2497 tmake_file="${tmake_file} mips/t-img-linux"
2498 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2499 with_arch_32="mips32r6"
2500 with_arch_64="mips64r6"
2505 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"
2506 extra_options="${extra_options} linux-android.opt"
2507 tmake_file="${tmake_file} mips/t-mti-linux"
2508 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2509 with_arch_32="mips32r2"
2510 with_arch_64="mips64r2"
2514 mips*-*-linux*) # Linux MIPS, either endian.
2515 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"
2516 extra_options="${extra_options} linux-android.opt"
2519 default_mips_arch=mips32r6
2522 default_mips_arch=mips32r2
2525 default_mips_arch=mips32
2527 mips64el-st-linux-gnu)
2528 default_mips_abi=n32
2529 tm_file="${tm_file} mips/st.h"
2530 tmake_file="${tmake_file} mips/t-st"
2531 enable_mips_multilibs="yes"
2533 mips64octeon*-*-linux*)
2534 default_mips_abi=n32
2535 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2536 target_cpu_default=MASK_SOFT_FLOAT_ABI
2537 enable_mips_multilibs="yes"
2539 mipsisa64r6*-*-linux-gnuabi64)
2541 default_mips_arch=mips64r6
2542 enable_mips_multilibs="yes"
2544 mipsisa64r6*-*-linux*)
2545 default_mips_abi=n32
2546 default_mips_arch=mips64r6
2547 enable_mips_multilibs="yes"
2549 mipsisa64r2*-*-linux-gnuabi64)
2551 default_mips_arch=mips64r2
2552 enable_mips_multilibs="yes"
2554 mipsisa64r2*-*-linux*)
2555 default_mips_abi=n32
2556 default_mips_arch=mips64r2
2557 enable_mips_multilibs="yes"
2559 mips64*-*-linux-gnuabi64 | mipsisa64*-*-linux-gnuabi64)
2561 enable_mips_multilibs="yes"
2563 mips64*-*-linux* | mipsisa64*-*-linux*)
2564 default_mips_abi=n32
2565 enable_mips_multilibs="yes"
2568 if test x$enable_targets = xall; then
2569 enable_mips_multilibs="yes"
2571 if test x$enable_mips_multilibs = xyes; then
2572 tmake_file="${tmake_file} mips/t-linux64"
2576 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2577 tmake_file="mips/t-mti-elf"
2578 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2579 with_arch_32="mips32r2"
2580 with_arch_64="mips64r2"
2583 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2584 tmake_file="mips/t-img-elf"
2585 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2586 with_arch_32="mips32r6"
2587 with_arch_64="mips64r6"
2590 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2591 tmake_file="mips/t-sde"
2592 extra_options="${extra_options} mips/sde.opt"
2593 case "${with_newlib}" in
2595 # newlib / libgloss.
2598 # MIPS toolkit libraries.
2599 tm_file="$tm_file mips/sdemtk.h"
2600 tmake_file="$tmake_file mips/t-sdemtk"
2601 case ${enable_threads} in
2603 thread_file='mipssde'
2610 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2613 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2616 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32 MIPS_ABI_DEFAULT=ABI_32"
2619 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6 MIPS_ABI_DEFAULT=ABI_N32"
2622 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2 MIPS_ABI_DEFAULT=ABI_N32"
2625 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_ABI_DEFAULT=ABI_N32"
2629 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2630 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2631 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2632 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2633 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2634 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2635 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2636 tmake_file="mips/t-isa3264"
2639 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6"
2642 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2"
2645 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32"
2648 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6"
2651 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2"
2654 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64"
2658 mipsisa32*-*-elfoabi*)
2659 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2660 tm_file="${tm_file} mips/elfoabi.h"
2662 mipsisa64*-*-elfoabi*)
2663 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2664 tm_file="${tm_file} mips/elfoabi.h"
2667 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2671 mipsisa64sr71k-*-elf*)
2672 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2673 tmake_file=mips/t-sr71k
2674 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2676 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2677 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2678 tmake_file="mips/t-elf mips/t-sb1"
2679 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2681 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2682 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2683 tmake_file="mips/t-elf"
2685 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2686 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2687 tmake_file="mips/t-elf"
2688 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_N32"
2690 mips64-*-elf* | mips64el-*-elf*)
2691 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2692 tmake_file="mips/t-elf"
2693 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2695 mips64vr-*-elf* | mips64vrel-*-elf*)
2696 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2697 tmake_file=mips/t-vr
2698 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2700 mips64orion-*-elf* | mips64orionel-*-elf*)
2701 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2702 tmake_file="mips/t-elf"
2703 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2706 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2707 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2710 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2711 tmake_file="${tmake_file} mips/t-vxworks"
2713 mipstx39-*-elf* | mipstx39el-*-elf*)
2714 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2715 tmake_file="mips/t-r3900"
2717 mmix-knuth-mmixware)
2718 tm_file="${tm_file} newlib-stdint.h"
2722 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2727 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2728 c_target_objs="msp430-c.o"
2729 cxx_target_objs="msp430-c.o"
2730 tmake_file="${tmake_file} msp430/t-msp430"
2731 extra_objs="${extra_objs} msp430-devices.o"
2732 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2733 # Enable .init_array unless it has been explicitly disabled.
2734 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2735 # code since mid-2019 expects it.
2736 if test x${disable_initfini_array} != xyes; then
2737 gcc_cv_initfini_array=yes
2741 # __cxa_atexit increases code size, and we don't need to support
2742 # dynamic shared objects on MSP430, so regular Newlib atexit is a
2743 # fine replacement as it also supports registration of more than 32
2745 default_use_cxa_atexit=no
2746 # This target does not match the generic *-*-elf case above which
2747 # sets use_gcc_stdint=wrap, so explicitly set it here.
2753 target_cpu_default="0"
2754 tm_defines="${tm_defines}"
2759 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2760 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2765 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2766 tmake_file="nds32/t-nds32 nds32/t-elf"
2769 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2770 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2771 gcc_cv_initfini_array=yes
2775 # Handle --enable-default-relax setting.
2776 if test x${enable_default_relax} = xyes; then
2777 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2779 # Handle --with-ext-dsp
2780 if test x${with_ext_dsp} = xyes; then
2781 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2785 tm_file="elfos.h ${tm_file}"
2786 tmake_file="${tmake_file} nios2/t-nios2"
2789 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2792 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2793 extra_options="${extra_options} nios2/elf.opt"
2796 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2797 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2802 tm_file="${tm_file} newlib-stdint.h"
2804 tmake_file="nvptx/t-nvptx"
2805 if test x$enable_as_accelerator = xyes; then
2806 extra_programs="${extra_programs} mkoffload\$(exeext)"
2807 tm_file="${tm_file} nvptx/offload.h"
2811 tm_file="elfos.h ${tm_file}"
2812 tmake_file="${tmake_file} or1k/t-or1k"
2813 # Force .init_array support. The configure script cannot always
2814 # automatically detect that GAS supports it, yet we require it.
2815 gcc_cv_initfini_array=yes
2817 # Handle --with-multilib-list=...
2818 or1k_multilibs="${with_multilib_list}"
2819 if test "$or1k_multilibs" = "default"; then
2820 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2822 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2823 for or1k_multilib in ${or1k_multilibs}; do
2824 case ${or1k_multilib} in
2825 mcmov | msext | msfimm | \
2827 mhard-float | mdouble-float | munordered-float | msoft-float | \
2828 mhard-div | mhard-mul | \
2829 msoft-div | msoft-mul )
2830 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2833 echo "--with-multilib-list=${with_multilib_list} not supported."
2837 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2841 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2842 tm_file="${tm_file} or1k/linux.h"
2845 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2846 extra_options="${extra_options} or1k/elf.opt"
2849 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2850 tmake_file="${tmake_file} or1k/t-rtems"
2855 tm_file="${tm_file} newlib-stdint.h"
2858 # port not yet contributed
2859 #powerpc-*-openbsd*)
2860 # tmake_file="${tmake_file} rs6000/t-fprules"
2864 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2866 *-darwin1[0-9]* | *-darwin9*)
2867 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2868 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2871 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2872 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2875 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2878 # Earlier - ingle arch, with 32b only
2879 # OS X 10.0, the first edition is Darwin4
2882 tmake_file="${tmake_file} t-slibgcc"
2884 powerpc64-*-darwin*)
2885 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2886 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2887 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2889 powerpc*-*-freebsd*)
2890 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2891 extra_options="${extra_options} rs6000/sysv4.opt"
2892 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2895 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2899 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2900 tmake_file="${tmake_file} rs6000/t-freebsd64"
2901 extra_options="${extra_options} rs6000/linux64.opt"
2902 if test $fbsd_major -ge 13; then
2903 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2907 if test $fbsd_major -ge 13; then
2908 tm_file="rs6000/secureplt.h ${tm_file}"
2910 tm_file="${tm_file} rs6000/freebsd.h"
2915 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2916 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2917 tmake_file="${tmake_file} rs6000/t-netbsd"
2918 extra_options="${extra_options} rs6000/sysv4.opt"
2920 powerpc-*-eabisimaltivec*)
2921 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"
2922 extra_options="${extra_options} rs6000/sysv4.opt"
2923 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2927 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"
2928 extra_options="${extra_options} rs6000/sysv4.opt"
2929 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2933 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2934 extra_options="${extra_options} rs6000/sysv4.opt"
2935 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2937 powerpc-*-eabialtivec*)
2938 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"
2939 extra_options="${extra_options} rs6000/sysv4.opt"
2940 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2944 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"
2945 extra_options="${extra_options} rs6000/sysv4.opt"
2946 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2950 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"
2951 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2952 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2955 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2956 extra_options="${extra_options} rs6000/sysv4.opt"
2957 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2958 extra_objs="$extra_objs rs6000-linux.o"
2961 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2963 case ${target}:${with_cpu} in
2964 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2966 maybe_biarch=${cpu_is_64bit}
2967 case ${enable_targets} in
2968 *powerpc64*) maybe_biarch=yes ;;
2969 all) maybe_biarch=yes ;;
2971 case ${target}:${enable_targets}:${maybe_biarch} in
2972 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2973 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2974 | powerpcle-*:*powerpc64le*:yes)
2975 if test x$cpu_is_64bit = xyes; then
2976 tm_file="${tm_file} rs6000/default64.h"
2978 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2979 tmake_file="$tmake_file rs6000/t-linux64"
2982 tmake_file="$tmake_file rs6000/t-linux64le"
2983 case ${enable_targets} in
2984 all | *powerpc64-* | *powerpc-*)
2985 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2988 case ${enable_targets} in
2989 all | *powerpc64le-* | *powerpcle-*)
2990 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2993 extra_options="${extra_options} rs6000/linux64.opt"
2996 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2997 extra_options="${extra_options} rs6000/linux64.opt"
2998 tmake_file="${tmake_file} rs6000/t-linux"
3001 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
3002 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
3006 powerpc*-*-linux*ppc476*)
3007 tm_file="${tm_file} rs6000/476.h"
3008 extra_options="${extra_options} rs6000/476.opt" ;;
3009 powerpc*-*-linux*altivec*)
3010 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
3014 enable_secureplt=yes ;;
3016 if test x${enable_secureplt} = xyes; then
3017 tm_file="rs6000/secureplt.h ${tm_file}"
3020 powerpc*-wrs-vxworks7r*)
3022 # Wind River 7 post SR0600 is mostly like Linux so we setup
3023 # our config in a very similar fashion and adjust to a few
3026 # The system compiler is configured with secureplt by default.
3027 tm_file="${tm_file} rs6000/secureplt.h"
3029 tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h"
3030 tm_file="${tm_file} rs6000/sysv4.h rs6000/biarch64.h rs6000/default64.h rs6000/linux64.h"
3031 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3033 extra_options="${extra_options} rs6000/sysv4.opt linux.opt rs6000/linux64.opt"
3035 tmake_file="${tmake_file} t-linux rs6000/t-linux64 rs6000/t-fprules rs6000/t-ppccomm"
3036 tmake_file="${tmake_file} rs6000/t-vxworks"
3038 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
3039 extra_objs="$extra_objs linux.o rs6000-linux.o"
3041 powerpc-wrs-vxworks*)
3042 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
3043 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
3044 extra_options="${extra_options} rs6000/sysv4.opt"
3045 extra_headers="${extra_headers} ppc-asm.h"
3048 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
3049 tmake_file="${tmake_file} rs6000/t-vxworksmils"
3052 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
3053 tmake_file="${tmake_file} rs6000/t-vxworksae"
3056 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3062 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3063 tmake_file="t-lynx rs6000/t-lynx"
3064 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3070 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"
3071 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3072 extra_options="${extra_options} rs6000/sysv4.opt"
3074 powerpcle-*-eabisim*)
3075 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"
3076 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3077 extra_options="${extra_options} rs6000/sysv4.opt"
3081 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"
3082 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3083 extra_options="${extra_options} rs6000/sysv4.opt"
3087 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3088 tmake_file="${tmake_file} pru/t-pru"
3089 extra_objs="pru-pragma.o pru-passes.o"
3092 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3093 tmake_file="rs6000/t-aix52 t-slibgcc"
3094 if test x$cpu_is_64bit = xyes; then
3095 tm_file="${tm_file} rs6000/biarch64.h"
3096 tmake_file="rs6000/t-aix64 t-slibgcc"
3098 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3099 extra_options="${extra_options} rs6000/aix64.opt"
3103 default_use_cxa_atexit=yes
3105 rs6000-ibm-aix7.2.* | powerpc-ibm-aix7.2.*)
3106 tmake_file="rs6000/t-aix52 t-slibgcc"
3107 if test x$cpu_is_64bit = xyes; then
3108 tm_file="${tm_file} rs6000/biarch64.h"
3109 tmake_file="rs6000/t-aix64 t-slibgcc"
3111 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3112 extra_options="${extra_options} rs6000/aix64.opt"
3116 default_use_cxa_atexit=yes
3118 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3119 tmake_file="rs6000/t-aix52 t-slibgcc"
3120 if test x$cpu_is_64bit = xyes; then
3121 tm_file="${tm_file} rs6000/biarch64.h"
3122 tmake_file="rs6000/t-aix64 t-slibgcc"
3124 tm_file="${tm_file} rs6000/aix.h rs6000/aix73.h rs6000/xcoff.h rs6000/aix-stdint.h"
3125 extra_options="${extra_options} rs6000/aix64.opt"
3129 default_use_cxa_atexit=yes
3132 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3133 target_has_targetm_common=no
3134 c_target_objs="rl78-c.o"
3135 cxx_target_objs="rl78-c.o"
3136 tmake_file="${tmake_file} rl78/t-rl78"
3139 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3140 tmake_file="${tmake_file} rx/t-rx"
3141 extra_options="${extra_options} rx/elf.opt"
3144 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3145 tmake_file="${tmake_file} rx/t-linux"
3148 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3149 c_target_objs="${c_target_objs} s390-c.o"
3150 cxx_target_objs="${cxx_target_objs} s390-c.o"
3151 if test x$enable_targets = xall; then
3152 tmake_file="${tmake_file} s390/t-linux64"
3154 tmake_file="${tmake_file} s390/t-s390"
3157 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3158 tm_p_file="linux-protos.h s390/s390-protos.h"
3159 c_target_objs="${c_target_objs} s390-c.o"
3160 cxx_target_objs="${cxx_target_objs} s390-c.o"
3161 md_file=s390/s390.md
3162 extra_modes=s390/s390-modes.def
3163 out_file=s390/s390.c
3164 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3167 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h glibc-stdint.h s390/tpf.h"
3168 tm_p_file=s390/s390-protos.h
3169 c_target_objs="${c_target_objs} s390-c.o"
3170 cxx_target_objs="${cxx_target_objs} s390-c.o"
3171 md_file=s390/s390.md
3172 extra_modes=s390/s390-modes.def
3173 out_file=s390/s390.c
3175 extra_options="${extra_options} s390/tpf.opt"
3176 tmake_file="${tmake_file} s390/t-s390"
3178 sh-*-elf* | sh[12346l]*-*-elf* | \
3179 sh-*-linux* | sh[2346lbe]*-*-linux* | \
3180 sh-*-netbsdelf* | shl*-*-netbsdelf*)
3181 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3182 if test x${with_endian} = x; then
3184 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3185 shbe-*-* | sheb-*-*) with_endian=big,little ;;
3186 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
3187 shl* | sh*-*-linux* | \
3188 sh-superh-elf) with_endian=little,big ;;
3189 sh[1234]*-*-*) with_endian=big ;;
3190 *) with_endian=big,little ;;
3193 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3194 # First word : the default endian.
3195 # Second word: the secondary endian (optional).
3196 case ${with_endian} in
3197 big) TM_ENDIAN_CONFIG=mb ;;
3198 little) TM_ENDIAN_CONFIG=ml ;;
3199 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
3200 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
3201 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
3203 case ${with_endian} in
3204 little*) tm_file="sh/little.h ${tm_file}" ;;
3206 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
3208 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
3209 if test x$enable_fdpic = xyes; then
3210 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3212 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3214 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3215 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3218 sh*-superh-elf) if test x$with_libgloss != xno; then
3220 tm_file="${tm_file} sh/newlib.h"
3222 tm_file="${tm_file} sh/embed-elf.h"
3223 tm_file="${tm_file} sh/superh.h"
3224 extra_options="${extra_options} sh/superh.opt" ;;
3225 *) if test x$with_newlib = xyes \
3226 && test x$with_libgloss = xyes; then
3227 tm_file="${tm_file} sh/newlib.h"
3229 tm_file="${tm_file} sh/embed-elf.h" ;;
3235 tm_file="${tm_file} newlib-stdint.h"
3238 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3239 case `echo ${target} | sed 's/e[lb]-/-/'` in
3240 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
3241 sh4a_single*) sh_cpu_target=sh4a-single ;;
3242 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
3243 sh4al) sh_cpu_target=sh4al ;;
3244 sh4a*) sh_cpu_target=sh4a ;;
3245 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3246 sh4_single*) sh_cpu_target=sh4-single ;;
3247 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3248 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3249 sh3e*) sh_cpu_target=sh3e ;;
3250 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3251 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3252 sh2a_single*) sh_cpu_target=sh2a-single ;;
3253 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3254 sh2a*) sh_cpu_target=sh2a ;;
3255 sh2e*) sh_cpu_target=sh2e ;;
3256 sh2*) sh_cpu_target=sh2 ;;
3257 *) sh_cpu_target=sh1 ;;
3259 # did the user say --without-fp ?
3260 if test x$with_fp = xno; then
3261 case ${sh_cpu_target} in
3263 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3264 sh4*) sh_cpu_target=sh4-nofpu ;;
3265 sh3*) sh_cpu_target=sh3 ;;
3266 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3267 sh2*) sh_cpu_target=sh2 ;;
3268 *) echo --without-fp not available for $target: ignored
3270 tm_defines="$tm_defines STRICT_NOFPU=1"
3272 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3273 case $sh_cpu_default in
3274 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3275 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3276 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3277 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3278 "") sh_cpu_default=${sh_cpu_target} ;;
3279 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3281 sh_multilibs=${with_multilib_list}
3282 if test "$sh_multilibs" = "default" ; then
3284 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3285 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3286 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3287 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3288 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3290 if test x$with_fp = xno; then
3291 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`"
3294 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3295 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3296 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3297 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3298 for sh_multilib in ${sh_multilibs}; do
3299 case ${sh_multilib} in
3300 m1 | m2 | m2e | m3 | m3e | \
3301 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3302 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3303 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3304 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3305 # It is passed to MULTIILIB_OPTIONS verbatim.
3306 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3307 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3309 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3310 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3311 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3313 echo "with_multilib_list=${sh_multilib} not supported."
3318 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3319 if test x${enable_incomplete_targets} = xyes ; then
3320 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3322 tm_file="$tm_file ./sysroot-suffix.h"
3323 tmake_file="$tmake_file t-sysroot-suffix"
3326 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3327 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3330 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3331 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3334 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3337 tmake_file="sparc/t-sparc sparc/t-leon"
3340 tmake_file="sparc/t-sparc sparc/t-leon3"
3343 tmake_file="sparc/t-sparc sparc/t-elf"
3348 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3349 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3352 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3353 extra_options="${extra_options} sparc/long-double-switch.opt"
3356 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3359 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3362 tmake_file="${tmake_file} sparc/t-sparc"
3365 if test x$enable_targets = xall; then
3366 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3367 tmake_file="${tmake_file} sparc/t-linux64"
3369 tm_file="${tm_file} sparc/linux.h"
3370 tmake_file="${tmake_file} sparc/t-linux"
3374 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3375 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3376 extra_options="${extra_options} sparc/long-double-switch.opt"
3377 tmake_file="${tmake_file} sparc/t-sparc"
3380 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3382 sparc64-*-* | sparcv9-*-*)
3383 tm_file="sparc/default64.h ${tm_file}"
3386 test x$with_cpu != x || with_cpu=v9
3389 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3392 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3393 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3396 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3397 extra_options="${extra_options}"
3398 tmake_file="${tmake_file} sparc/t-sparc"
3401 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3402 extra_options="${extra_options}"
3403 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3406 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"
3407 extra_options="${extra_options} sparc/long-double-switch.opt"
3408 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3410 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3411 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3412 extra_options="${extra_options} sparc/long-double-switch.opt"
3413 case "x$with_cpu" in
3415 x) with_cpu=ultrasparc ;;
3416 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3418 tmake_file="${tmake_file} sparc/t-sparc"
3421 tm_file="sparc/biarch64.h ${tm_file}"
3422 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3423 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3424 extra_options="${extra_options} sparc/long-double-switch.opt"
3425 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3428 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3429 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3430 extra_options="${extra_options} openbsd.opt"
3431 extra_options="${extra_options}"
3434 tmake_file="${tmake_file} sparc/t-sparc"
3437 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3438 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3439 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3443 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3444 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3445 tm_file="${tm_file} ./sysroot-suffix.h"
3446 tmake_file="t-sysroot-suffix t-slibgcc"
3447 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3451 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3452 tmake_file="${tmake_file} tilegx/t-tilegx"
3453 extra_objs="${extra_objs} mul-tables.o"
3454 c_target_objs="${c_target_objs} tilegx-c.o"
3455 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3456 extra_headers="feedback.h"
3459 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3464 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3465 tmake_file="${tmake_file} tilepro/t-tilepro"
3466 extra_objs="${extra_objs} mul-tables.o"
3467 c_target_objs="${c_target_objs} tilepro-c.o"
3468 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3469 extra_headers="feedback.h"
3472 target_cpu_default="TARGET_CPU_generic"
3473 tm_file="elfos.h v850/v850.h"
3474 tm_file="${tm_file} v850/rtems.h rtems.h newlib-stdint.h"
3475 tmake_file="${tmake_file} v850/t-v850"
3476 tmake_file="${tmake_file} v850/t-rtems"
3478 c_target_objs="v850-c.o"
3479 cxx_target_objs="v850-c.o"
3484 target_cpu_default="TARGET_CPU_v850e3v5"
3487 target_cpu_default="TARGET_CPU_v850e2v3"
3490 target_cpu_default="TARGET_CPU_v850e2"
3492 v850e1-*-* | v850es-*-*)
3493 target_cpu_default="TARGET_CPU_v850e1"
3496 target_cpu_default="TARGET_CPU_v850e"
3499 target_cpu_default="TARGET_CPU_generic"
3502 tm_file="elfos.h newlib-stdint.h v850/v850.h"
3504 c_target_objs="v850-c.o"
3505 cxx_target_objs="v850-c.o"
3509 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3510 extra_options="${extra_options} vax/elf.opt"
3513 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3514 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3515 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3518 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3519 tmake_file="visium/t-visium visium/t-crtstuff"
3522 # For historical reasons, the target files omit the 'x'.
3523 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3524 tm_p_file=stormy16/stormy16-protos.h
3525 tm_d_file="elfos.h stormy16/stormy16.h"
3526 md_file=stormy16/stormy16.md
3527 out_file=stormy16/stormy16.c
3528 extra_options=stormy16/stormy16.opt
3529 tmake_file="stormy16/t-stormy16"
3532 tm_file="${tm_file} elfos.h newlib-stdint.h xtensa/elf.h"
3533 extra_options="${extra_options} xtensa/elf.opt"
3536 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3537 tmake_file="${tmake_file} xtensa/t-xtensa"
3540 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3541 tmake_file="${tmake_file} xtensa/t-xtensa"
3542 extra_options="${extra_options} xtensa/uclinux.opt"
3545 tm_file="mn10300/mn10300.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3550 tm_file="elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3551 c_target_objs="m32c-pragma.o"
3552 cxx_target_objs="m32c-pragma.o"
3555 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3556 c_target_objs="m32c-pragma.o"
3557 cxx_target_objs="m32c-pragma.o"
3560 echo "*** Configuration ${target} not supported" 1>&2
3566 i[34567]86-*-linux* | x86_64-*-linux*)
3567 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3569 i[34567]86-*-* | x86_64-*-*)
3570 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3572 powerpc*-*-* | rs6000-*-*)
3573 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3579 tmake_file="${tmake_file} t-musl"
3582 tmake_file="${tmake_file} t-uclibc"
3586 # Assume the existence of indirect function support and allow the use of the
3587 # resolver attribute.
3589 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3591 *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
3593 *-*-linux* | *-*-gnu*)
3595 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3596 default_gnu_indirect_function=yes
3602 # Build mkoffload tool
3604 *-intelmic-* | *-intelmicemul-*)
3605 tmake_file="${tmake_file} i386/t-intelmic"
3606 tm_file="${tm_file} i386/intelmic-offload.h"
3610 if [ "$target_has_targetcm" = "no" ]; then
3611 c_target_objs="$c_target_objs default-c.o"
3612 cxx_target_objs="$cxx_target_objs default-c.o"
3615 if [ "$common_out_file" = "" ]; then
3616 if [ "$target_has_targetm_common" = "yes" ]; then
3617 common_out_file="$cpu_type/$cpu_type-common.c"
3619 common_out_file="default-common.c"
3623 if [ "$target_has_targetdm" = "no" ]; then
3624 d_target_objs="$d_target_objs default-d.o"
3627 # Support for --with-cpu and related options (and a few unrelated options,
3631 echo "--with-cpu must be passed a value" 1>&2
3636 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3637 # to generic if there is no processor scheduler model for the target.
3640 arch_without_sse2=no
3641 arch_without_64bit=no
3644 if test $fbsd_major -ge 6; then
3650 arch_without_sse2=yes
3651 arch_without_64bit=yes
3656 arch_without_sse2=yes
3657 arch_without_64bit=yes
3662 arch_without_sse2=yes
3663 arch_without_64bit=yes
3668 arch_without_sse2=yes
3669 arch_without_64bit=yes
3672 arch_without_sse2=yes
3673 arch_without_64bit=yes
3674 case ${target_noncanonical} in
3687 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3697 i686-*-* | i786-*-*)
3698 case ${target_noncanonical} in
3735 amdfam10-*|barcelona-*)
3739 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3743 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3747 athlon_xp-*|athlon_mp-*|athlon_4-*)
3750 arch_without_sse2=yes
3751 arch_without_64bit=yes
3753 athlon_tbird-*|athlon-*)
3756 arch_without_sse2=yes
3761 arch_without_sse2=yes
3766 arch_without_sse2=yes
3768 pentium3-*|pentium3m-*)
3771 arch_without_sse2=yes
3773 pentium4-*|pentium4m-*)
3812 arch_without_sse2=yes
3817 arch_without_sse2=yes
3818 arch_without_64bit=yes
3823 case ${target_noncanonical} in
3860 amdfam10-*|barcelona-*)
3864 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3868 k8-*|opteron-*|athlon_64-*)
3900 # If there is no $with_cpu option, try to infer one from ${target}.
3901 # This block sets nothing except for with_cpu.
3902 if test x$with_cpu = x ; then
3904 i[34567]86-*-elfiamcu)
3907 i[34567]86-*-*|x86_64-*-*)
3925 frv-*-*linux* | frv400-*-*linux*)
3932 case "$with_arch" in
3934 with_cpu=${default_cf_cpu}
3937 with_cpu=m${default_m68k_cpu}
3953 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3962 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3964 i[34567]86-*-*|x86_64-*-*)
3965 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3966 if test x$with_cpu_32 = x; then
3967 with_cpu_32=$with_cpu
3969 if test x$with_cpu_64 = x; then
3970 with_cpu_64=$with_cpu
3978 # Support for --with-arch and related options (and a few unrelated options,
3980 case ${with_arch} in
3982 echo "--with-arch must be passed a value" 1>&2
3987 # If there is no $with_arch option, try to infer one from ${target}.
3988 # This block sets nothing except for with_arch.
3989 if test x$with_arch = x ; then
3991 i[34567]86-*-darwin*|x86_64-*-darwin*)
3992 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3993 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3995 i[34567]86-*-elfiamcu)
3999 # --with-fpmath sets the default ISA to SSE2, which is the same
4000 # ISA supported by Pentium 4.
4001 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
4010 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4018 # Avoid overriding --with-arch-32 and --with-arch-64 values.
4020 i[34567]86-*-darwin*|x86_64-*-darwin*)
4021 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4022 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4024 i[34567]86-*-*|x86_64-*-*)
4025 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
4026 if test x$with_arch_32 = x; then
4027 with_arch_32=$with_arch
4029 if test x$with_arch_64 = x; then
4030 if test $arch_without_64bit = yes; then
4031 # Set the default 64bit arch to x86-64 if the default arch
4032 # doesn't support 64bit.
4035 with_arch_64=$with_arch
4039 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
4040 # Set the default 64bit arch to x86-64 if the default arch
4041 # doesn't support 64bit and we need 64bit ISA.
4042 with_arch_32=$with_arch
4050 # Infer a default setting for --with-float.
4051 if test x$with_float = x; then
4053 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4054 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
4055 # comply with IEEE 754.
4061 # Infer a default setting for --with-fpu.
4062 if test x$with_fpu = x; then
4064 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4065 # The R5900 FPU only supports single precision.
4071 # Support --with-fpmath.
4072 if test x$with_fpmath != x; then
4074 i[34567]86-*-* | x86_64-*-*)
4075 case ${with_fpmath} in
4077 tm_file="${tm_file} i386/avxmath.h"
4080 tm_file="${tm_file} i386/ssemath.h"
4083 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4089 echo "--with-fpmath isn't supported for $target." 1>&2
4095 # Similarly for --with-schedule.
4096 if test x$with_schedule = x; then
4099 # Override default PA8000 scheduling model.
4100 with_schedule=7100LC
4105 # Infer a default setting for --with-llsc.
4106 if test x$with_llsc = x; then
4109 # The kernel emulates LL and SC where necessary.
4112 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4113 # The R5900 doesn't support LL(D) and SC(D).
4119 # Validate and mark as valid any --with options supported
4120 # by this target. In order to use a particular --with option
4121 # you must list it in supported_defaults; validating the value
4122 # is optional. This case statement should set nothing besides
4123 # supported_defaults.
4128 supported_defaults="abi cpu cpu_64 arch arch_64 tune tune_64"
4129 if test x$with_cpu_64 != x && test x$with_cpu = x; then
4130 with_cpu=$with_cpu_64
4132 if test x$with_arch_64 != x && test x$with_arch = x; then
4133 with_arch=$with_arch_64
4135 if test x$with_tune_64 != x && test x$with_tune = x; then
4136 with_tune=$with_tune_64
4138 for which in cpu arch tune; do
4139 eval "val=\$with_$which"
4140 base_val=`echo $val | sed -e 's/\+.*//'`
4141 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4143 if [ $which = arch ]; then
4144 def=aarch64-arches.def
4145 pattern=AARCH64_ARCH
4147 def=aarch64-cores.def
4148 pattern=AARCH64_CORE
4151 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
4153 # Find the base CPU or ARCH id in aarch64-cores.def or
4154 # aarch64-arches.def
4155 if [ x"$base_val" = x ] \
4156 || grep "^$pattern(\"$base_val\"," \
4157 ${srcdir}/config/aarch64/$def \
4160 if [ $which = arch ]; then
4161 base_id=`grep "^$pattern(\"$base_val\"," \
4162 ${srcdir}/config/aarch64/$def | \
4163 sed -e 's/^[^,]*,[ ]*//' | \
4165 # Extract the architecture flags from aarch64-arches.def
4166 ext_mask=`grep "^$pattern(\"$base_val\"," \
4167 ${srcdir}/config/aarch64/$def | \
4171 base_id=`grep "^$pattern(\"$base_val\"," \
4172 ${srcdir}/config/aarch64/$def | \
4173 sed -e 's/^[^,]*,[ ]*//' | \
4177 # Disallow extensions in --with-tune=cortex-a53+crc.
4178 if [ $which = tune ] && [ x"$ext_val" != x ]; then
4179 echo "Architecture extensions not supported in --with-$which=$val" 1>&2
4183 # Use the pre-processor to strip flatten the options.
4184 # This makes the format less rigid than if we use
4185 # grep and sed directly here.
4186 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4187 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4188 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4190 # Match one element inside AARCH64_OPT_EXTENSION, we
4191 # consume anything that's not a ,.
4192 elem="[ ]*\([^,]\+\)[ ]*"
4194 # Repeat the pattern for the number of entries in the
4195 # AARCH64_OPT_EXTENSION, currently 6 times.
4196 sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
4198 while [ x"$ext_val" != x ]
4200 ext_val=`echo $ext_val | sed -e 's/\+//'`
4201 ext=`echo $ext_val | sed -e 's/\+.*//'`
4202 base_ext=`echo $ext | sed -e 's/^no//'`
4203 opt_line=`echo -e "$options_parsed" | \
4204 grep "^\"$base_ext\""`
4206 if [ x"$base_ext" = x ] \
4207 || [[ -n $opt_line ]]; then
4209 # These regexp extract the elements based on
4210 # their group match index in the regexp.
4211 ext_canon=`echo -e "$opt_line" | \
4212 sed -e "s/$sed_patt/\2/"`
4213 ext_on=`echo -e "$opt_line" | \
4214 sed -e "s/$sed_patt/\3/"`
4215 ext_off=`echo -e "$opt_line" | \
4216 sed -e "s/$sed_patt/\4/"`
4218 if [ $ext = $base_ext ]; then
4220 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
4222 # Removing extension
4223 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
4228 echo "Unknown extension used in --with-$which=$val" 1>&2
4231 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4234 ext_mask="(("$ext_mask") << 6)"
4235 if [ x"$base_id" != x ]; then
4236 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
4240 # Allow --with-$which=native.
4241 if [ "$val" = native ]; then
4244 echo "Unknown $which used in --with-$which=$val" 1>&2
4252 supported_defaults="cpu tune"
4253 for which in cpu tune; do
4254 eval "val=\$with_$which"
4257 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4258 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4262 echo "Unknown CPU used in --with-$which=$val" 1>&2
4270 supported_defaults="cpu fpu"
4273 if [ x"$with_cpu" = x ] \
4274 || grep -q -E "^ARC_CPU[[:blank:]]*\($with_cpu," \
4275 ${srcdir}/config/arc/arc-cpus.def
4280 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4284 # see if --with-fpu matches any of the supported FPUs
4289 fpus | fpus_div | fpus_fma | fpus_all)
4293 fpuda | fpuda_div | fpuda_fma | fpuda_all)
4297 fpud | fpud_div | fpud_fma | fpud_all)
4302 echo "Unknown floating point type used in "\
4303 "--with-fpu=$with_fpu" 1>&2
4308 if [ -n "$flags_ok" ] \
4309 && ! grep -q -E "^ARC_CPU[[:blank:]]*\($new_cpu,[[:blank:]]*$flags_ok," \
4310 ${srcdir}/config/arc/arc-cpus.def
4312 echo "Unknown floating point type used in "\
4313 "--with-fpu=$with_fpu for cpu $new_cpu" 1>&2
4319 supported_defaults="cpu endian float"
4323 supported_defaults="arch cpu float tune fpu abi mode tls"
4324 for which in cpu tune arch; do
4325 # See if it matches a supported value
4326 eval "val=\$with_$which"
4327 if [ x"$val" != x ]; then
4328 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4329 -v cmd="chk$which $val" \
4330 ${srcdir}/config/arm/arm-cpus.in`
4331 if [ "$cpu" = "error" ]; then
4332 echo "Unknown target in --with-$which=$val" 1>&2
4336 eval "target_${which}_cname=$new_val"
4337 echo "For $val real value is $new_val"
4342 case "$with_float" in
4344 | soft | hard | softfp)
4348 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4353 # see if --with-fpu matches any of the supported FPUs
4354 if [ x"$with_fpu" != x ] ; then
4356 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4357 -v cmd="chkfpu $val" \
4358 ${srcdir}/config/arm/arm-cpus.in`
4359 if [ "$fpu" = "error" ]
4361 echo "Unknown target in --with-fpu=$val" 1>&2
4368 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4372 echo "Unknown ABI used in --with-abi=$with_abi"
4377 case "$with_mode" in
4383 echo "Unknown mode used in --with-mode=$with_mode"
4394 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4399 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4400 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4404 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4405 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4409 # Add extra multilibs
4410 if test "x$with_multilib_list" != x; then
4412 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4413 if test "x${arm_multilibs}" != xdefault ; then
4414 for arm_multilib in ${arm_multilibs}; do
4415 case ${arm_multilib} in
4417 tmake_profile_file="arm/t-multilib"
4420 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4421 if test -f "${srcdir}/config/arm/${ml}"; then
4422 tmake_file="${tmake_file} arm/${ml}"
4424 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4429 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4436 if test "x${tmake_profile_file}" != x ; then
4437 # arm/t-aprofile and arm/t-rmprofile are only
4438 # designed to work without any with-cpu,
4439 # with-arch, with-mode, with-fpu or with-float
4441 if test "x$with_arch" != x \
4442 || test "x$with_cpu" != x \
4443 || test "x$with_float" != x \
4444 || test "x$with_fpu" != x \
4445 || test "x$with_mode" != x ; then
4446 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4448 elif test "x$ml" != x ; then
4449 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4452 # But pass the default value for float-abi
4453 # through to the multilib selector
4455 tmake_file="${tmake_file} ${tmake_profile_file}"
4456 TM_MULTILIB_CONFIG="$with_multilib_list"
4459 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4460 with_cpu=${with_cpu:-$target_cpu_cname}
4464 supported_defaults=cpu
4469 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4475 fido-*-* | m68k*-*-*)
4476 supported_defaults="arch cpu"
4477 case "$with_arch" in
4479 m68k_arch_family="$with_arch"
4482 echo "Invalid --with-arch=$with_arch" 1>&2
4487 # We always have a $with_cpu setting here.
4489 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4490 m68k_cpu_ident=$with_cpu
4493 m68k_cpu_ident=m68020
4494 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4497 m68k_cpu_ident=m68020
4498 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4501 # We need the C identifier rather than the string.
4502 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4503 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4504 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4505 ${srcdir}/config/m68k/m68k-devices.def`
4506 if [ x"$m68k_cpu_ident" = x ] ; then
4507 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4510 with_cpu="mcpu=$with_cpu"
4516 supported_defaults="arch tune"
4518 for which in arch tune; do
4519 eval "val=\$with_$which"
4521 "" | fiji | gfx900 | gfx906 )
4525 echo "Unknown cpu used in --with-$which=$val." 1>&2
4530 [ "x$with_arch" = x ] && with_arch=fiji
4534 supported_defaults="arch schedule"
4536 case "$with_arch" in
4537 "" | 1.0 | 1.1 | 2.0)
4541 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4546 case "$with_schedule" in
4547 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4551 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4557 i[34567]86-*-* | x86_64-*-*)
4558 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4559 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4560 eval "val=\$with_$which"
4561 case " $x86_archs " in
4569 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4578 if test x${val} != x; then
4579 case " $x86_64_archs " in
4581 # Disallow x86-64-v* for --with-cpu=/--with-tune=
4582 case "x$which$val" in
4583 xcpu*x86-64-v*|xtune*x86-64-v*)
4584 echo "Unknown CPU given in --with-$which=$val." 1>&2
4593 # Allow $x86_cpus --with-cpu=/--with-tune=
4596 case " $x86_cpus " in
4601 echo "Unknown CPU given in --with-$which=$val." 1>&2
4607 echo "Unknown CPU given in --with-$which=$val." 1>&2
4620 supported_defaults="abi arch tune riscv_attribute isa_spec"
4623 riscv-* | riscv32*) xlen=32 ;;
4624 riscv64*) xlen=64 ;;
4625 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4628 case "${with_isa_spec}" in
4630 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_2P2"
4633 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20191213"
4636 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20190608"
4639 echo "--with-isa-spec only accept 2.2, 20191213, 201912, 20190608 or 201906" 1>&2
4643 case "${with_riscv_attribute}" in
4645 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4648 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4651 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4654 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4660 # Infer arch from --with-arch, --target, and --with-abi.
4661 case "${with_arch}" in
4662 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4666 # Infer XLEN, but otherwise assume GC.
4667 case "${with_abi}" in
4668 ilp32e) with_arch="rv32e" ;;
4669 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4670 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4671 *) with_arch="rv${xlen}gc" ;;
4675 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4679 PYTHON=`which python || which python3 || which python2`
4680 if test "x${PYTHON}" != x; then
4681 with_arch=`${PYTHON} ${srcdir}/config/riscv/arch-canonicalize ${with_arch}`
4683 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ARCH=${with_arch}"
4685 # Make sure --with-abi is valid. If it was not specified,
4686 # pick a default based on the ISA, preferring soft-float
4687 # unless the D extension is present.
4688 case "${with_abi}" in
4689 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4692 case "${with_arch}" in
4693 rv32*d* | rv32g*) with_abi=ilp32d ;;
4694 rv32e*) with_abi=ilp32e ;;
4695 rv32*) with_abi=ilp32 ;;
4696 rv64*d* | rv64g*) with_abi=lp64d ;;
4697 rv64*) with_abi=lp64 ;;
4701 echo "--with-abi=${with_abi} is not supported" 1>&2
4705 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ABI=${with_abi}"
4707 # Make sure ABI and ISA are compatible.
4708 case "${with_abi},${with_arch}" in
4709 ilp32,rv32* | ilp32e,rv32e* \
4710 | ilp32f,rv32*f* | ilp32f,rv32g* \
4711 | ilp32d,rv32*d* | ilp32d,rv32g* \
4713 | lp64f,rv64*f* | lp64f,rv64g* \
4714 | lp64d,rv64*d* | lp64d,rv64g*)
4717 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4721 # Handle --with-multilib-generator.
4722 if test "x${with_multilib_generator}" != xdefault; then
4723 if test "x${with_multilib_list}" != xdefault; then
4724 echo "--with-multilib-list= can't used with --with-multilib-generator= at same time" 1>&2
4729 if ${srcdir}/config/riscv/multilib-generator \
4730 `echo ${with_multilib_generator} | sed 's/;/ /g'`\
4731 > t-multilib-config;
4733 tmake_file="${tmake_file} riscv/t-withmultilib-generator"
4735 echo "invalid option for --with-multilib-generator" 1>&2
4740 echo "--with-multilib-generator= is not supported for ${target}, only supported for riscv*-*-elf*" 1>&2
4746 # Handle --with-multilib-list.
4747 if test "x${with_multilib_list}" != xdefault; then
4748 tmake_file="${tmake_file} riscv/t-withmultilib"
4750 case ${with_multilib_list} in
4751 ilp32 | ilp32f | ilp32d \
4752 | lp64 | lp64f | lp64d )
4753 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4756 echo "--with-multilib-list=${with_multilib_list} not supported."
4763 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"
4765 case ${with_float} in
4770 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4776 "" | single | double)
4780 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4790 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4795 case ${with_fp_32} in
4800 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4805 case ${with_odd_spreg_32} in
4807 with_odd_spreg_32="odd-spreg"
4810 with_odd_spreg_32="no-odd-spreg"
4816 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4822 "" | 32 | o64 | n32 | 64 | eabi)
4826 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4831 case ${with_divide} in
4832 "" | breaks | traps)
4836 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4841 case ${with_llsc} in
4852 echo "Unknown llsc type used in --with-llsc" 1>&2
4857 case ${with_mips_plt} in
4862 with_mips_plt=no-plt
4867 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4872 case ${with_synci} in
4882 echo "Unknown synci type used in --with-synci" 1>&2
4887 case ${with_lxc1_sxc1} in
4889 with_lxc1_sxc1=lxc1-sxc1
4892 with_lxc1_sxc1=no-lxc1-sxc1
4897 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4902 case ${with_madd4} in
4912 echo "Unknown madd4 type used in --with-madd4" 1>&2
4919 supported_defaults="arch cpu nds32_lib float fpu_config"
4921 # process --with-arch
4922 case "${with_arch}" in
4924 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4928 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4931 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4934 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4938 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4943 case "${with_cpu}" in
4947 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4951 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4956 # process --with-nds32-lib
4957 case "${with_nds32_lib}" in
4961 with_nds32_lib=ulibc
4964 with_nds32_lib=glibc
4967 with_nds32_lib=newlib
4968 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4974 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4978 # for the arch=v3f or arch=v3s under mculib toolchain,
4979 # we would like to set -fno-math-errno as default
4980 case "${with_arch}" in
4982 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4990 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4995 # process --with-float
4996 case "${with_float}" in
5001 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
5006 # process --with-config-fpu
5007 case "${with_config_fpu}" in
5012 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
5020 supported_defaults="arch"
5021 case "$with_arch" in
5026 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
5032 powerpc*-*-* | rs6000-*-*)
5033 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
5035 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5036 eval "val=\$with_$which"
5038 default32 | default64)
5043 echo "$val only valid for --with-cpu and --with-tune." 1>&2
5047 with_which="with_$which"
5051 tm_defines="${tm_defines} CONFIG_PPC405CR"
5052 eval "with_$which=405"
5054 "" | common | native \
5055 | power[3456789] | power10 | power5+ | power6x \
5056 | powerpc | powerpc64 | powerpc64le \
5058 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
5059 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
5060 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
5061 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
5062 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
5066 echo "Unknown cpu used in --with-$which=$val." 1>&2
5073 "" | elfv1 | elfv2 )
5077 echo "Unknown ABI used in --with-abi=$with_abi"
5082 if test "x$with_advance_toolchain" != x; then
5083 if test -d "/opt/$with_advance_toolchain/." -a \
5084 -d "/opt/$with_advance_toolchain/bin/." -a \
5085 -d "/opt/$with_advance_toolchain/include/."; then
5087 tm_file="$tm_file ./advance-toolchain.h"
5088 (at="/opt/$with_advance_toolchain"
5089 echo "/* Use Advance Toolchain $at */"
5091 echo "#undef LINK_OS_EXTRA_SPEC32"
5092 echo "#define LINK_OS_EXTRA_SPEC32" \
5093 "\"%(link_os_new_dtags)" \
5094 "-rpath $prefix/lib -rpath $at/lib\""
5096 echo "#undef LINK_OS_EXTRA_SPEC64"
5097 echo "#define LINK_OS_EXTRA_SPEC64" \
5098 "\"%(link_os_new_dtags)" \
5099 "-rpath $prefix/lib64 -rpath $at/lib64\""
5101 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
5102 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
5103 "\"--enable-new-dtags\""
5105 echo "#undef DYNAMIC_LINKER_PREFIX"
5106 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
5108 echo "#undef MD_EXEC_PREFIX"
5109 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
5111 echo "#undef MD_STARTFILE_PREFIX"
5112 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
5114 echo "#undef MD_STARTFILE_PREFIX_1"
5115 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
5116 > advance-toolchain.h
5118 echo "Unknown advance-toolchain $with_advance_toolchain"
5123 # Set up the default long double format if the user changed it.
5124 if test x$with_long_double_format = xieee; then
5125 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
5127 elif test x$with_long_double_format = xibm; then
5128 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5133 supported_defaults="arch mode tune"
5135 for which in arch tune; do
5136 eval "val=\$with_$which"
5138 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 | arch14 )
5142 echo "Unknown cpu used in --with-$which=$val." 1>&2
5148 case ${with_mode} in
5153 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5159 sh[123456ble]*-*-* | sh-*-*)
5160 supported_defaults="cpu"
5161 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5162 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5165 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5167 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5170 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
5171 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5172 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5173 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5179 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5181 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5182 eval "val=\$with_$which"
5184 "" | sparc | sparcv9 | sparc64 \
5186 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5187 | sparclite | f930 | f934 | sparclite86x \
5188 | sparclet | tsc701 \
5189 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5190 | niagara3 | niagara4 | niagara7 | m8)
5194 echo "Unknown cpu used in --with-$which=$val" 1>&2
5200 case ${with_float} in
5205 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5212 supported_defaults="arch"
5214 case ${with_arch} in
5215 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5219 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5226 supported_defaults=cpu
5228 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5232 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5238 supported_defaults="cpu"
5242 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5249 # Targets for which there is at least one VxWorks port should include
5250 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5251 # of markers from other files in the port, including the vxworks*.h files to
5252 # distinguish VxWorks variants such as VxWorks 7 or 64).
5255 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5256 | sparc*-*-* | x86_64-*-*)
5257 tm_file="vxworks-dummy.h ${tm_file}"
5261 # Set some miscellaneous flags for particular targets.
5262 target_cpu_default2=
5265 if test x"$target_cpu_cname" != x
5267 target_cpu_default2=$target_cpu_cname
5272 if test x$with_cpu = x
5274 echo "Don't know the target cpu" 1>&2
5277 target_cpu_default2="\\\"$with_cpu\\\""
5282 if test x$gas = xyes
5284 target_cpu_default2="MASK_GAS"
5288 fido*-*-* | m68k*-*-*)
5289 target_cpu_default2=$m68k_cpu_ident
5290 tmake_file="m68k/t-opts $tmake_file"
5291 if [ x"$m68k_arch_family" != x ]; then
5292 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5296 i[34567]86-*-darwin* | x86_64-*-darwin*)
5298 i[34567]86-*-linux* | x86_64-*-linux*)
5299 extra_objs="${extra_objs} gnu-property.o"
5300 tmake_file="$tmake_file i386/t-linux i386/t-gnu-property"
5302 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5303 tmake_file="$tmake_file i386/t-kfreebsd"
5306 tmake_file="$tmake_file i386/t-gnu"
5308 i[34567]86-*-msdosdjgpp*)
5309 tmake_file="${tmake_file} i386/t-djgpp"
5311 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5313 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5315 i[34567]86-*-mingw* | x86_64-*-mingw*)
5317 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5319 i[34567]86-*-freebsd*)
5322 tmake_file="${tmake_file} i386/t-freebsd64"
5328 if test x$gnu_ld = xyes
5330 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5334 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5337 if test x$with_arch != x; then
5338 default_mips_arch=$with_arch
5340 if test x$with_abi != x; then
5341 default_mips_abi=$with_abi
5343 case ${default_mips_arch} in
5344 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS1" ;;
5345 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS2" ;;
5346 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3" ;;
5347 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS4" ;;
5348 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32" ;;
5349 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2" ;;
5350 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6" ;;
5351 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64" ;;
5352 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2" ;;
5353 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6" ;;
5355 case ${default_mips_abi} in
5356 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5357 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5358 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5359 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5360 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5362 tmake_file="mips/t-mips $tmake_file"
5365 powerpc*-*-* | rs6000-*-*)
5366 # FIXME: The PowerPC port uses the value set at compile time,
5367 # although it's only cosmetic.
5368 if test "x$with_cpu" != x
5370 target_cpu_default2="\\\"$with_cpu\\\""
5372 out_file="${cpu_type}/${cpu_type}.c"
5373 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5374 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5375 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5376 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5379 sh[123456ble]*-*-* | sh-*-*)
5380 c_target_objs="${c_target_objs} sh-c.o"
5381 cxx_target_objs="${cxx_target_objs} sh-c.o"
5385 # Some standard aliases.
5390 xsparcv9 | xsparc64)
5395 if test x$with_tune = x ; then
5406 # The SPARC port checks this value at compile-time.
5407 target_cpu_default2="TARGET_CPU_$with_cpu"
5411 case "x$with_cpu" in
5414 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5415 target_cpu_default2="TARGET_CPU_$with_cpu"
5418 target_cpu_default2="TARGET_CPU_v850e1"
5423 target_cpu_default2="TARGET_CPU_$with_cpu"
5428 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"
5429 for option in $all_defaults
5431 eval "val=\$with_"`echo $option | sed s/-/_/g`
5432 if test -n "$val"; then
5433 case " $supported_defaults " in
5437 echo "This target does not support --with-$option." 2>&1
5438 echo "Valid --with options are: $supported_defaults" 2>&1
5445 t="{ \"$option\", \"$val\" }"
5447 t="${t}, { \"$option\", \"$val\" }"
5454 configure_default_options="{ { NULL, NULL} }"
5456 configure_default_options="{ ${t} }"
5459 if test "$target_cpu_default2" != ""
5461 if test "$target_cpu_default" != ""
5463 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5465 target_cpu_default=$target_cpu_default2
5470 i[34567]86-*-* | x86_64-*-*)
5471 if test x$enable_as_accelerator = xyes; then
5472 extra_programs="mkoffload\$(exeext)"