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 (a tailored version of) stdint.h
1023 tm_file="${tm_file} vxworks-stdint.h"
1024 use_gcc_stdint=provide
1026 case ${enable_threads} in
1028 "" | yes | vxworks) thread_file='vxworks' ;;
1029 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
1032 # A few common macro definitions conveying general characteristics
1033 # of the configuration at hand. Note that by VxWorks 7, we mean the
1034 # the SR6xx major update or beyond in vendor parlance:
1038 tm_defines="$tm_defines TARGET_VXWORKS7=1"
1043 tm_defines="$tm_defines TARGET_VXWORKS64=1"
1047 # Then a few build configuration controls for VxWorks 7, which
1048 # has specificities on top of which we aim to provide more complete
1053 # VxWorks 7 always has init/fini_array support and it is simpler to
1054 # just leverage this, sticking to what the system toolchain does:
1055 gcc_cv_initfini_array=yes
1059 *-*-elf|arc*-*-elf*)
1060 # Assume that newlib is being used and so __cxa_atexit is provided.
1061 default_use_cxa_atexit=yes
1067 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1068 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
1069 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1070 tmake_file="${tmake_file} aarch64/t-aarch64"
1076 tm_file="${tm_file} fuchsia.h"
1079 tm_file="${tm_file} aarch64/rtems.h rtems.h"
1084 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1087 aarch64_multilibs="${with_multilib_list}"
1088 if test "$aarch64_multilibs" = "default"; then
1089 aarch64_multilibs="lp64,ilp32"
1091 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1092 for aarch64_multilib in ${aarch64_multilibs}; do
1093 case ${aarch64_multilib} in
1095 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1098 echo "--with-multilib-list=${aarch64_multilib} not supported."
1102 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1104 aarch64*-*-freebsd*)
1105 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1106 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1107 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1108 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1111 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
1112 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1113 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1114 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1117 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1118 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1119 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1120 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1123 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1126 aarch64_multilibs="${with_multilib_list}"
1127 if test "$aarch64_multilibs" = "default"; then
1128 # TODO: turn on ILP32 multilib build after its support is mature.
1129 # aarch64_multilibs="lp64,ilp32"
1130 aarch64_multilibs="lp64"
1132 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1133 for aarch64_multilib in ${aarch64_multilibs}; do
1134 case ${aarch64_multilib} in
1136 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1139 echo "--with-multilib-list=${aarch64_multilib} not supported."
1143 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1145 aarch64*-wrs-vxworks*)
1146 tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
1147 tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
1148 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
1151 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1152 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1153 extra_options="${extra_options} alpha/elf.opt"
1156 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1157 tmake_file="${tmake_file} alpha/t-alpha"
1158 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1162 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1163 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1164 tmake_file="${tmake_file} alpha/t-alpha"
1165 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1166 # default x-alpha is only appropriate for dec-osf.
1169 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1170 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1173 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1174 tmake_file="arc/t-multilib arc/t-arc"
1175 extra_gcc_objs="driver-arc.o"
1176 if test "x$with_cpu" != x; then
1177 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1179 if test x${with_endian} = x; then
1181 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1182 *) with_endian=little ;;
1185 case ${with_endian} in
1187 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1189 case ${with_endian} in
1190 big*) tm_file="arc/big.h ${tm_file}"
1194 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}"
1195 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1196 extra_gcc_objs="driver-arc.o"
1197 if test "x$with_cpu" != x; then
1198 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1200 if test x${with_endian} = x; then
1202 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1203 *) with_endian=little ;;
1206 case ${with_endian} in
1208 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1210 case ${with_endian} in
1211 big*) tm_file="arc/big.h ${tm_file}"
1213 # Force .init_array support. The configure script cannot always
1214 # automatically detect that GAS supports it, yet we require it.
1215 gcc_cv_initfini_array=yes
1218 # We only support VxWorks 7 now on ARM, post SR600. Pre SR600
1219 # VxWorks 7 was transitory and major versions prior to 7 were based
1220 # on long deprecated ABI, not supported at all any more regardless
1222 extra_options="${extra_options} arm/vxworks.opt"
1223 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1224 tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1225 tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1226 target_cpu_cname="generic-armv7-a"
1227 need_64bit_hwint=yes
1229 arm*-*-freebsd*) # ARM FreeBSD EABI
1230 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1233 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1236 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1237 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1240 target_cpu_cname="arm1176jzf-s"
1241 if test $fbsd_major -ge 11; then
1242 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1246 target_cpu_cname="generic-armv7-a"
1247 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1250 target_cpu_cname="arm9"
1253 with_tls=${with_tls:-gnu}
1256 target_cpu_cname="strongarm"
1257 tmake_file="${tmake_file} arm/t-arm"
1258 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1259 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1261 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1264 arm*-*-netbsdelf-*eabi*)
1265 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1266 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1269 tm_file="$tm_file arm/netbsd-elf.h"
1270 tmake_file="$tmake_file arm/t-netbsd"
1273 tm_file="${tm_file} arm/aout.h arm/arm.h"
1275 arm*-*-netbsdelf-*eabihf*)
1276 # Hard-float requires at least Arm v5te
1277 target_cpu_cname="arm10e"
1278 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1282 armv6*) target_cpu_cname="arm1176jzf-s";;
1283 armv7*) target_cpu_cname="generic-armv7-a";;
1286 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1287 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"
1288 extra_options="${extra_options} linux-android.opt"
1291 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1294 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1295 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1297 arm*-*-uclinuxfdpiceabi)
1298 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1301 # Generation of floating-point instructions requires at least ARMv5te.
1302 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1303 target_cpu_cname="arm10e"
1305 target_cpu_cname="arm10tdmi"
1307 # Define multilib configuration for arm-linux-androideabi.
1310 tmake_file="$tmake_file arm/t-linux-androideabi"
1313 # The EABI requires the use of __cxa_atexit.
1314 default_use_cxa_atexit=yes
1315 with_tls=${with_tls:-gnu}
1317 arm*-*-uclinux*eabi*) # ARM ucLinux
1318 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1319 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1320 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1321 target_cpu_cname="arm7tdmi"
1322 # The EABI requires the use of __cxa_atexit.
1323 default_use_cxa_atexit=yes
1326 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1327 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1328 tm_file="${tm_file} arm/aout.h arm/arm.h"
1329 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1330 target_cpu_cname="arm7tdmi"
1332 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1335 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1337 default_use_cxa_atexit=yes
1338 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1339 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1340 target_cpu_cname="arm7tdmi"
1343 tm_file="$tm_file newlib-stdint.h"
1344 tmake_file="${tmake_file} arm/t-bpabi"
1348 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1349 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1350 target_cpu_cname="generic-armv7-a"
1353 tm_file="${tm_file} arm/rtems.h rtems.h newlib-stdint.h"
1354 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1357 tm_file="${tm_file} arm/symbian.h"
1358 # We do not include t-bpabi for Symbian OS because the system
1359 # provides its own implementation of the BPABI functions.
1360 tmake_file="${tmake_file} arm/t-symbian"
1361 target_cpu_cname="arm10tdmi"
1364 tm_file="${tm_file} arm/aout.h arm/arm.h"
1367 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1368 if test x${with_avrlibc} != xno; then
1369 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1370 tm_defines="${tm_defines} WITH_AVRLIBC"
1372 # Work out avr_double_comparison which is 2 or 3 and is used in
1373 # target hook FLOAT_LIB_COMPARE_RETURNS_BOOL to determine whether
1374 # DFmode comparisons return 3-state or 2-state results.
1375 case y${with_double_comparison} in
1377 avr_double_comparison=3
1380 avr_double_comparison=2
1383 echo "Error: --with-double-comparison= can only be used with: 'tristate', 'bool', 'libf7'" 1>&2
1387 case "y${with_libf7}" in
1389 # avr_double_comparison as set above.
1392 avr_double_comparison=2
1393 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1395 y | yyes | ymath-symbols)
1396 avr_double_comparison=2
1397 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1398 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1399 tm_defines="${tm_defines} WITH_LIBF7_MATH_SYMBOLS"
1402 avr_double_comparison=2
1403 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1404 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1407 echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
1411 tm_defines="${tm_defines} WITH_DOUBLE_COMPARISON=${avr_double_comparison}"
1412 case y${with_double} in
1415 tm_defines="${tm_defines} HAVE_DOUBLE32"
1419 tm_defines="${tm_defines} HAVE_DOUBLE64"
1423 avr_double_multilib=1
1424 tm_defines="${tm_defines} HAVE_DOUBLE32"
1425 tm_defines="${tm_defines} HAVE_DOUBLE64"
1426 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
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"
1436 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1440 case y${with_long_double} in
1443 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1447 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1451 avr_long_double_multilib=1
1452 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1453 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1454 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
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"
1464 avr_long_double=${avr_double}
1465 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1466 if test y${avr_double_multilib} = y1; then
1467 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1468 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1470 tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1474 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1478 if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1479 if test y${with_long_double} != ydouble; then
1480 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
1484 if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1485 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
1488 if test y${avr_double}${avr_long_double} = y6432; then
1489 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
1492 tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1493 tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1494 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1496 extra_gcc_objs="driver-avr.o avr-devices.o"
1497 extra_objs="avr-devices.o avr-log.o"
1500 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1501 tmake_file=bfin/t-bfin-elf
1505 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1506 tmake_file=bfin/t-bfin-uclinux
1509 bfin*-linux-uclibc*)
1510 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"
1511 tmake_file="${tmake_file} bfin/t-bfin-linux"
1515 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1516 tmake_file="${tmake_file} bfin/t-rtems"
1519 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1524 tm_file="elfos.h ${tm_file}"
1525 tmake_file="${tmake_file} bpf/t-bpf"
1527 extra_headers="bpf-helpers.h"
1528 use_gcc_stdint=provide
1529 extra_objs="coreout.o"
1530 target_gtfiles="$target_gtfiles \$(srcdir)/config/bpf/coreout.c"
1533 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1534 tmake_file="${tmake_file} cr16/t-cr16 "
1537 cris-*-elf | cris-*-none)
1538 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1539 tmake_file="cris/t-cris cris/t-elfmulti"
1541 extra_options="${extra_options} cris/elf.opt"
1545 if test x${with_endian} != x; then
1546 case ${with_endian} in
1549 echo "with_endian=${with_endian} not supported."
1554 if test x${with_float} != x; then
1555 case ${with_float} in
1558 "Unknown floating point type used in --with-float=$with_float"
1563 tm_file="csky/csky.h"
1564 md_file="csky/csky.md"
1565 out_file="csky/csky.c"
1566 tm_p_file="${tm_p_file} csky/csky-protos.h"
1567 extra_options="${extra_options} csky/csky_tables.opt"
1569 if test x${enable_tpf_debug} = xyes; then
1570 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1575 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1576 tmake_file="csky/t-csky csky/t-csky-elf"
1577 default_use_cxa_atexit=no
1581 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1582 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1586 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1587 # Force .init_array support. The configure script cannot always
1588 # automatically detect that GAS supports it, yet we require it.
1589 gcc_cv_initfini_array=yes
1591 csky-*-linux-uclibc*)
1592 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1593 default_use_cxa_atexit=no
1596 echo "Unknown target $target"
1602 echo "Unknown target $target"
1607 epiphany-*-elf | epiphany-*-rtems*)
1608 tm_file="${tm_file} dbxelf.h elfos.h"
1609 tmake_file="${tmake_file} epiphany/t-epiphany"
1612 tm_file="${tm_file} epiphany/rtems.h rtems.h newlib-stdint.h"
1615 tm_file="${tm_file} newlib-stdint.h"
1618 extra_options="${extra_options} fused-madd.opt"
1619 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1620 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1621 extra_headers="epiphany_intrinsics.h"
1624 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1627 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1628 tmake_file=frv/t-frv
1631 tm_file="dbxelf.h elfos.h ${tm_file} \
1632 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1633 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1638 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1639 tmake_file="${tmake_file} ft32/t-ft32"
1642 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1643 tmake_file="gcn/t-gcn-hsa"
1644 native_system_header_dir=/include
1645 extra_modes=gcn/gcn-modes.def
1646 extra_objs="${extra_objs} gcn-tree.o"
1647 extra_gcc_objs="driver-gcn.o"
1649 x86_64*-*-linux-gnu )
1650 if test "$ac_cv_search_dlopen" != no; then
1651 extra_programs="${extra_programs} gcn-run\$(exeext)"
1655 if test x$enable_as_accelerator = xyes; then
1656 extra_programs="${extra_programs} mkoffload\$(exeext)"
1657 tm_file="${tm_file} gcn/offload.h"
1659 # Force .init_array support.
1660 gcc_cv_initfini_array=yes
1666 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1667 tmake_file="${tmake_file} moxie/t-moxie"
1672 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1673 tmake_file="${tmake_file} moxie/t-moxie"
1676 tmake_file="${tmake_file} moxie/t-moxie"
1677 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1682 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1683 tmake_file="${tmake_file} moxie/t-moxiebox"
1686 tmake_file="h8300/t-h8300"
1687 tm_file="h8300/h8300.h elfos.h newlib-stdint.h h8300/elf.h"
1690 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1691 tm_file="h8300/h8300.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1694 target_cpu_default="MASK_PA_11|MASK_PA_20"
1695 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1696 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1698 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1699 d_target_objs="${d_target_objs} pa-d.o"
1703 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1704 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1705 pa/pa32-regs.h pa/pa32-linux.h"
1706 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1707 d_target_objs="${d_target_objs} pa-d.o"
1710 target_cpu_default="MASK_PA_11"
1711 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1712 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1713 extra_options="${extra_options} openbsd.opt"
1714 tmake_file="pa/t-pa"
1715 d_target_objs="${d_target_objs} pa-d.o"
1720 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1721 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} \
1722 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1723 tmake_file="${tmake_file}"
1724 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1725 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1727 hppa[12]*-*-hpux10*)
1729 hppa1.1-*-* | hppa2*-*-*)
1730 target_cpu_default="MASK_PA_11"
1733 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1734 pa/pa-hpux.h pa/pa-hpux10.h"
1735 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1738 tm_file="${tm_file} pa/pa-hpux1010.h"
1739 extra_options="${extra_options} pa/pa-hpux1010.opt"
1742 use_gcc_stdint=provide
1743 tm_file="${tm_file} hpux-stdint.h"
1744 tmake_file="pa/t-pa t-slibgcc"
1745 d_target_objs="${d_target_objs} pa-d.o"
1746 case ${enable_threads} in
1748 if test x$have_pthread_h = xyes ; then
1749 tmake_file="${tmake_file} pa/t-dce-thr"
1753 tmake_file="${tmake_file} pa/t-dce-thr"
1758 if test "x$with_dwarf2" != x; then
1759 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1764 target_cpu_default="MASK_PA_11|MASK_PA_20"
1765 if test x$gnu_ld = xyes
1767 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1769 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1770 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1774 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1775 extra_options="${extra_options} pa/pa-hpux1111.opt"
1778 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1779 extra_options="${extra_options} pa/pa-hpux1131.opt"
1782 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1785 extra_options="${extra_options} pa/pa-hpux.opt \
1786 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1787 tmake_file="pa/t-pa t-slibgcc"
1788 d_target_objs="${d_target_objs} pa-d.o"
1789 case x${enable_threads} in
1797 use_gcc_stdint=provide
1798 tm_file="${tm_file} hpux-stdint.h"
1802 tm_file="${tm_file} hpux-stdint.h"
1806 hppa[12]*-*-hpux11*)
1808 hppa1.1-*-* | hppa2*-*-*)
1809 target_cpu_default="MASK_PA_11"
1812 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1813 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1814 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1818 tm_file="${tm_file} pa/pa-hpux1111.h"
1819 extra_options="${extra_options} pa/pa-hpux1111.opt"
1822 tm_file="${tm_file} pa/pa-hpux1131.h"
1823 extra_options="${extra_options} pa/pa-hpux1131.opt"
1826 tmake_file="pa/t-pa t-slibgcc"
1827 d_target_objs="${d_target_objs} pa-d.o"
1828 case x${enable_threads} in
1837 use_gcc_stdint=provide
1838 tm_file="${tm_file} hpux-stdint.h"
1842 tm_file="${tm_file} hpux-stdint.h"
1845 if test "x$with_dwarf2" != x; then
1846 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1850 i[34567]86-*-darwin1[89]* | i[34567]86-*-darwin2[0-9]*)
1851 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1853 i[34567]86-*-darwin*)
1855 # Baseline choice for a machine that allows m64 support.
1856 with_cpu=${with_cpu:-core2}
1857 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1858 tm_file="${cpu_type}/darwin32-biarch.h ${tm_file} "
1860 x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
1862 tm_defines="${tm_defines} TARGET_64BIT_DEFAULT=(OPTION_MASK_ISA_64BIT|OPTION_MASK_ABI_64)"
1863 tm_defines="${tm_defines} TARGET_BI_ARCH=0"
1864 with_cpu=${with_cpu:-core2}
1865 tmake_file="${tmake_file} t-slibgcc"
1868 with_cpu=${with_cpu:-core2}
1869 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1870 tm_file="${cpu_type}/darwin64-biarch.h ${tm_file} "
1872 i[34567]86-*-elfiamcu)
1873 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1876 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1879 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1882 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"
1885 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1888 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"
1889 tmake_file="i386/t-i386elf t-svr4"
1891 i[34567]86-*-dragonfly*)
1892 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1893 tmake_file="${tmake_file} i386/t-crtstuff"
1895 x86_64-*-dragonfly*)
1896 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"
1897 tmake_file="${tmake_file} i386/t-crtstuff"
1899 i[34567]86-*-freebsd*)
1900 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1903 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"
1905 i[34567]86-*-netbsdelf*)
1906 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1907 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1910 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1911 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1913 i[34567]86-*-openbsd*)
1914 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1915 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1916 extra_options="${extra_options} openbsd.opt"
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/x86-64.h i386/openbsdelf.h"
1923 extra_options="${extra_options} openbsd.opt"
1927 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1928 # Intel 80386's running GNU/*
1929 # with ELF format using glibc 2
1930 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1932 i[34567]86-*-linux*)
1933 tm_file="${tm_file} linux.h linux-android.h"
1934 extra_options="${extra_options} linux-android.opt"
1935 if test x$enable_targets = xall; then
1936 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1937 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1938 tmake_file="${tmake_file} i386/t-linux64"
1939 x86_multilibs="${with_multilib_list}"
1940 if test "$x86_multilibs" = "default"; then
1941 x86_multilibs="m64,m32"
1943 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1944 for x86_multilib in ${x86_multilibs}; do
1945 case ${x86_multilib} in
1947 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1950 echo "--with-multilib-list=${x86_with_multilib} not supported."
1954 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1956 if test x$with_cpu = x; then
1957 if test x$with_cpu_64 = x; then
1961 case " $x86_cpus $x86_archs $x86_64_archs " in
1965 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1966 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1972 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1975 i[34567]86-*-kfreebsd*-gnu)
1976 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1978 i[34567]86-*-kopensolaris*-gnu)
1979 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1982 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1986 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1987 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1988 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1991 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1992 extra_options="${extra_options} linux-android.opt"
1994 x86_64-*-kfreebsd*-gnu)
1995 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1998 tmake_file="${tmake_file} i386/t-linux64"
1999 x86_multilibs="${with_multilib_list}"
2000 if test "$x86_multilibs" = "default"; then
2003 x86_multilibs="mx32"
2006 x86_multilibs="m64,m32"
2010 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
2011 for x86_multilib in ${x86_multilibs}; do
2012 case ${x86_multilib} in
2014 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
2017 echo "--with-multilib-list=${x86_with_multilib} not supported."
2021 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2023 i[34567]86-pc-msdosdjgpp*)
2024 xm_file=i386/xm-djgpp.h
2025 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
2026 native_system_header_dir=/dev/env/DJDIR/include
2027 extra_options="${extra_options} i386/djgpp.opt"
2032 i[34567]86-*-lynxos*)
2034 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
2035 tmake_file="${tmake_file} t-lynx"
2036 extra_options="${extra_options} lynx.opt"
2041 i[34567]86-*-nto-qnx*)
2042 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
2043 extra_options="${extra_options} i386/nto.opt"
2047 i[34567]86-*-rtems*)
2048 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"
2049 tmake_file="${tmake_file} i386/t-rtems"
2051 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
2052 # Set default arch_32 to pentium4, tune_32 to generic like the other
2053 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
2054 with_arch_32=${with_arch_32:-pentium4}
2055 with_tune_32=${with_tune_32:-generic}
2056 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
2057 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2058 tmake_file="$tmake_file i386/t-sol2"
2060 if test x$with_cpu = x; then
2061 if test x$with_cpu_64 = x; then
2065 case " $x86_cpus $x86_archs $x86_64_archs " in
2069 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2070 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2076 i[4567]86-wrs-vxworks*|x86_64-wrs-vxworks7*)
2077 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
2081 tm_file="${tm_file} i386/x86-64.h"
2084 tm_file="${tm_file} vx-common.h"
2087 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2088 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2091 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2092 tmake_file="${tmake_file} i386/t-vxworks"
2096 i[34567]86-*-cygwin*)
2097 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"
2098 xm_file=i386/xm-cygwin.h
2099 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2100 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2101 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2102 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2103 c_target_objs="${c_target_objs} msformat-c.o"
2104 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2105 d_target_objs="${d_target_objs} winnt-d.o"
2106 target_has_targetdm="yes"
2107 if test x$enable_threads = xyes; then
2110 default_use_cxa_atexit=yes
2115 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"
2116 xm_file=i386/xm-cygwin.h
2117 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
2118 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2119 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2120 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2121 c_target_objs="${c_target_objs} msformat-c.o"
2122 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2123 d_target_objs="${d_target_objs} winnt-d.o"
2124 target_has_targetdm="yes"
2125 if test x$enable_threads = xyes; then
2128 default_use_cxa_atexit=yes
2130 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2132 i[34567]86-*-mingw* | x86_64-*-mingw*)
2133 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
2134 xm_file=i386/xm-mingw32.h
2135 c_target_objs="${c_target_objs} winnt-c.o"
2136 cxx_target_objs="${cxx_target_objs} winnt-c.o"
2137 d_target_objs="${d_target_objs} winnt-d.o"
2138 target_has_targetcm="yes"
2139 target_has_targetdm="yes"
2141 x86_64-*-* | *-w64-*)
2147 if test x$enable_threads = xposix ; then
2148 tm_file="${tm_file} i386/mingw-pthread.h"
2150 tm_file="${tm_file} i386/mingw32.h"
2151 # This makes the logic if mingw's or the w64 feature set has to be used
2154 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2155 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2156 tm_file="${tm_file} i386/mingw-w64.h"
2157 if test x$enable_targets = xall; then
2158 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2159 if test x$with_cpu = x; then
2160 if test x$with_cpu_64 = x; then
2164 case " $x86_cpus $x86_archs $x86_64_archs " in
2168 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2169 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2179 tm_file="${tm_file} i386/mingw-stdint.h"
2180 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2183 tmake_file="${tmake_file} i386/t-mingw-w64"
2186 tmake_file="${tmake_file} i386/t-mingw-w32"
2189 native_system_header_dir=/mingw/include
2190 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2191 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2194 extra_options="${extra_options} i386/mingw-w64.opt"
2199 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2200 c_target_objs="${c_target_objs} msformat-c.o"
2201 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2204 default_use_cxa_atexit=yes
2206 case ${enable_threads} in
2216 tm_file="${tm_file} i386/crtdll.h"
2218 *mingw32msv* | *mingw*)
2223 tmake_file="${tmake_file} i386/t-x86_64-elf"
2224 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2227 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2228 tmake_file="ia64/t-ia64"
2229 target_cpu_default="0"
2230 if test x$gas = xyes
2232 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2234 if test x$gnu_ld = xyes
2236 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2240 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2241 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2242 tmake_file="${tmake_file} ia64/t-ia64"
2245 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2246 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2247 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2250 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
2251 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2252 target_cpu_default="MASK_GNU_AS"
2253 case x$enable_threads in
2259 c_target_objs="ia64-c.o"
2260 cxx_target_objs="ia64-c.o"
2261 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2263 tm_file="${tm_file} hpux-stdint.h"
2266 tm_file="${tm_file} ia64/hpux-unix2003.h"
2271 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2272 tmake_file="${tmake_file} ia64/t-ia64"
2273 target_cpu_default="0"
2274 if test x$gas = xyes
2276 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2278 extra_options="${extra_options} ia64/vms.opt"
2281 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2282 out_file=iq2000/iq2000.c
2283 md_file=iq2000/iq2000.md
2286 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2287 tmake_file="${tmake_file} lm32/t-lm32"
2290 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2291 tmake_file="${tmake_file} lm32/t-lm32"
2292 tmake_file="${tmake_file} lm32/t-rtems"
2295 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2296 tmake_file="${tmake_file} lm32/t-lm32"
2299 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2302 tm_file="elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2304 m68k-*-elf* | fido-*-elf*)
2307 # Check that $with_cpu makes sense.
2312 echo "Cannot accept --with-cpu=$with_cpu"
2319 default_m68k_cpu=68020
2323 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"
2324 tm_defines="${tm_defines} MOTOROLA=1"
2325 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2326 # Add multilibs for targets other than fido.
2331 tmake_file="$tmake_file m68k/t-mlibs"
2336 default_m68k_cpu=68020
2338 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2339 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2340 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2342 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2343 # with uClibc, using the new GNU/Linux-style
2345 default_m68k_cpu=68020
2347 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"
2348 extra_options="${extra_options} m68k/uclinux.opt"
2349 tm_defines="${tm_defines} MOTOROLA=1"
2350 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2352 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2353 # with ELF format using glibc 2
2354 # aka the GNU/Linux C library 6.
2355 default_m68k_cpu=68020
2357 with_arch=${with_arch:-m68k}
2358 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2359 extra_options="${extra_options} m68k/ieee.opt"
2360 tm_defines="${tm_defines} MOTOROLA=1"
2361 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2364 default_m68k_cpu=68020
2366 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2367 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"
2368 tm_defines="${tm_defines} MOTOROLA=1"
2371 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2372 tmake_file=mcore/t-mcore
2378 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2381 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2384 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2385 tm_file="${tm_file} glibc-stdint.h"
2386 c_target_objs="${c_target_objs} microblaze-c.o"
2387 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2388 tmake_file="${tmake_file} microblaze/t-microblaze"
2389 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2391 microblaze*-*-rtems*)
2394 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2397 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2400 tm_file="${tm_file} dbxelf.h"
2401 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2402 c_target_objs="${c_target_objs} microblaze-c.o"
2403 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2404 tmake_file="${tmake_file} microblaze/t-microblaze"
2405 tmake_file="${tmake_file} microblaze/t-rtems"
2410 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2413 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2416 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2417 c_target_objs="${c_target_objs} microblaze-c.o"
2418 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2419 tmake_file="${tmake_file} microblaze/t-microblaze"
2422 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2423 case "x${enable_multilib}" in
2425 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2426 *) echo "Unknown value for enable_multilib"; exit 1
2428 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2432 riscv32be-*|riscv64be-*)
2433 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2436 # Force .init_array support. The configure script cannot always
2437 # automatically detect that GAS supports it, yet we require it.
2438 gcc_cv_initfini_array=yes
2440 riscv*-*-elf* | riscv*-*-rtems*)
2441 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2444 tm_file="${tm_file} riscv/rtems.h rtems.h"
2445 tmake_file="${tmake_file} riscv/t-rtems"
2448 if test "x${with_multilib_generator}" == xdefault; then
2449 case "x${enable_multilib}" in
2451 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2452 *) echo "Unknown value for enable_multilib"; exit 1
2456 tmake_file="${tmake_file} riscv/t-riscv"
2460 riscv32be-*|riscv64be-*)
2461 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2464 # Force .init_array support. The configure script cannot always
2465 # automatically detect that GAS supports it, yet we require it.
2466 gcc_cv_initfini_array=yes
2469 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2470 tmake_file="${tmake_file} riscv/t-riscv"
2474 riscv32be-*|riscv64be-*)
2475 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2478 # Force .init_array support. The configure script cannot always
2479 # automatically detect that GAS supports it, yet we require it.
2480 gcc_cv_initfini_array=yes
2482 mips*-*-netbsd*) # NetBSD/mips, either endian.
2483 target_cpu_default="MASK_ABICALLS"
2484 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2485 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2488 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"
2489 extra_options="${extra_options} linux-android.opt"
2490 tmake_file="${tmake_file} mips/t-img-linux"
2491 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2492 with_arch_32="mips32r6"
2493 with_arch_64="mips64r6"
2498 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"
2499 extra_options="${extra_options} linux-android.opt"
2500 tmake_file="${tmake_file} mips/t-mti-linux"
2501 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2502 with_arch_32="mips32r2"
2503 with_arch_64="mips64r2"
2507 mips*-*-linux*) # Linux MIPS, either endian.
2508 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"
2509 extra_options="${extra_options} linux-android.opt"
2512 default_mips_arch=mips32r6
2515 default_mips_arch=mips32r2
2518 default_mips_arch=mips32
2520 mips64el-st-linux-gnu)
2521 default_mips_abi=n32
2522 tm_file="${tm_file} mips/st.h"
2523 tmake_file="${tmake_file} mips/t-st"
2524 enable_mips_multilibs="yes"
2526 mips64octeon*-*-linux*)
2527 default_mips_abi=n32
2528 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2529 target_cpu_default=MASK_SOFT_FLOAT_ABI
2530 enable_mips_multilibs="yes"
2532 mipsisa64r6*-*-linux-gnuabi64)
2534 default_mips_arch=mips64r6
2535 enable_mips_multilibs="yes"
2537 mipsisa64r6*-*-linux*)
2538 default_mips_abi=n32
2539 default_mips_arch=mips64r6
2540 enable_mips_multilibs="yes"
2542 mipsisa64r2*-*-linux-gnuabi64)
2544 default_mips_arch=mips64r2
2545 enable_mips_multilibs="yes"
2547 mipsisa64r2*-*-linux*)
2548 default_mips_abi=n32
2549 default_mips_arch=mips64r2
2550 enable_mips_multilibs="yes"
2552 mips64*-*-linux-gnuabi64 | mipsisa64*-*-linux-gnuabi64)
2554 enable_mips_multilibs="yes"
2556 mips64*-*-linux* | mipsisa64*-*-linux*)
2557 default_mips_abi=n32
2558 enable_mips_multilibs="yes"
2561 if test x$enable_targets = xall; then
2562 enable_mips_multilibs="yes"
2564 if test x$enable_mips_multilibs = xyes; then
2565 tmake_file="${tmake_file} mips/t-linux64"
2569 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2570 tmake_file="mips/t-mti-elf"
2571 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2572 with_arch_32="mips32r2"
2573 with_arch_64="mips64r2"
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-img-elf"
2578 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2579 with_arch_32="mips32r6"
2580 with_arch_64="mips64r6"
2583 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2584 tmake_file="mips/t-sde"
2585 extra_options="${extra_options} mips/sde.opt"
2586 case "${with_newlib}" in
2588 # newlib / libgloss.
2591 # MIPS toolkit libraries.
2592 tm_file="$tm_file mips/sdemtk.h"
2593 tmake_file="$tmake_file mips/t-sdemtk"
2594 case ${enable_threads} in
2596 thread_file='mipssde'
2603 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2606 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2609 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32 MIPS_ABI_DEFAULT=ABI_32"
2612 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6 MIPS_ABI_DEFAULT=ABI_N32"
2615 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2 MIPS_ABI_DEFAULT=ABI_N32"
2618 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_ABI_DEFAULT=ABI_N32"
2622 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2623 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2624 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2625 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2626 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2627 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2628 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2629 tmake_file="mips/t-isa3264"
2632 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6"
2635 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2"
2638 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32"
2641 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6"
2644 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2"
2647 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64"
2651 mipsisa32*-*-elfoabi*)
2652 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2653 tm_file="${tm_file} mips/elfoabi.h"
2655 mipsisa64*-*-elfoabi*)
2656 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2657 tm_file="${tm_file} mips/elfoabi.h"
2660 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2664 mipsisa64sr71k-*-elf*)
2665 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2666 tmake_file=mips/t-sr71k
2667 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2669 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2670 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2671 tmake_file="mips/t-elf mips/t-sb1"
2672 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2674 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2675 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2676 tmake_file="mips/t-elf"
2678 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2679 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2680 tmake_file="mips/t-elf"
2681 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_N32"
2683 mips64-*-elf* | mips64el-*-elf*)
2684 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2685 tmake_file="mips/t-elf"
2686 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2688 mips64vr-*-elf* | mips64vrel-*-elf*)
2689 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2690 tmake_file=mips/t-vr
2691 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2693 mips64orion-*-elf* | mips64orionel-*-elf*)
2694 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2695 tmake_file="mips/t-elf"
2696 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2699 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2700 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2703 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2704 tmake_file="${tmake_file} mips/t-vxworks"
2706 mipstx39-*-elf* | mipstx39el-*-elf*)
2707 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2708 tmake_file="mips/t-r3900"
2710 mmix-knuth-mmixware)
2711 tm_file="${tm_file} newlib-stdint.h"
2715 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2720 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2721 c_target_objs="msp430-c.o"
2722 cxx_target_objs="msp430-c.o"
2723 tmake_file="${tmake_file} msp430/t-msp430"
2724 extra_objs="${extra_objs} msp430-devices.o"
2725 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2726 # Enable .init_array unless it has been explicitly disabled.
2727 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2728 # code since mid-2019 expects it.
2729 if test x${disable_initfini_array} != xyes; then
2730 gcc_cv_initfini_array=yes
2734 # __cxa_atexit increases code size, and we don't need to support
2735 # dynamic shared objects on MSP430, so regular Newlib atexit is a
2736 # fine replacement as it also supports registration of more than 32
2738 default_use_cxa_atexit=no
2739 # This target does not match the generic *-*-elf case above which
2740 # sets use_gcc_stdint=wrap, so explicitly set it here.
2746 target_cpu_default="0"
2747 tm_defines="${tm_defines}"
2752 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2753 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2758 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2759 tmake_file="nds32/t-nds32 nds32/t-elf"
2762 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2763 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2764 gcc_cv_initfini_array=yes
2768 # Handle --enable-default-relax setting.
2769 if test x${enable_default_relax} = xyes; then
2770 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2772 # Handle --with-ext-dsp
2773 if test x${with_ext_dsp} = xyes; then
2774 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2778 tm_file="elfos.h ${tm_file}"
2779 tmake_file="${tmake_file} nios2/t-nios2"
2782 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2785 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2786 extra_options="${extra_options} nios2/elf.opt"
2789 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2790 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2795 tm_file="${tm_file} newlib-stdint.h"
2797 tmake_file="nvptx/t-nvptx"
2798 if test x$enable_as_accelerator = xyes; then
2799 extra_programs="${extra_programs} mkoffload\$(exeext)"
2800 tm_file="${tm_file} nvptx/offload.h"
2804 tm_file="elfos.h ${tm_file}"
2805 tmake_file="${tmake_file} or1k/t-or1k"
2806 # Force .init_array support. The configure script cannot always
2807 # automatically detect that GAS supports it, yet we require it.
2808 gcc_cv_initfini_array=yes
2810 # Handle --with-multilib-list=...
2811 or1k_multilibs="${with_multilib_list}"
2812 if test "$or1k_multilibs" = "default"; then
2813 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2815 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2816 for or1k_multilib in ${or1k_multilibs}; do
2817 case ${or1k_multilib} in
2818 mcmov | msext | msfimm | \
2820 mhard-float | mdouble-float | munordered-float | msoft-float | \
2821 mhard-div | mhard-mul | \
2822 msoft-div | msoft-mul )
2823 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2826 echo "--with-multilib-list=${with_multilib_list} not supported."
2830 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2834 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2835 tm_file="${tm_file} or1k/linux.h"
2838 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2839 extra_options="${extra_options} or1k/elf.opt"
2842 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2843 tmake_file="${tmake_file} or1k/t-rtems"
2848 tm_file="${tm_file} newlib-stdint.h"
2851 # port not yet contributed
2852 #powerpc-*-openbsd*)
2853 # tmake_file="${tmake_file} rs6000/t-fprules"
2857 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2859 *-darwin1[0-9]* | *-darwin9*)
2860 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2861 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2864 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2865 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2868 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2871 # Earlier - ingle arch, with 32b only
2872 # OS X 10.0, the first edition is Darwin4
2875 tmake_file="${tmake_file} t-slibgcc"
2877 powerpc64-*-darwin*)
2878 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2879 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2880 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2882 powerpc*-*-freebsd*)
2883 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2884 extra_options="${extra_options} rs6000/sysv4.opt"
2885 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2888 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2892 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2893 tmake_file="${tmake_file} rs6000/t-freebsd64"
2894 extra_options="${extra_options} rs6000/linux64.opt"
2895 if test $fbsd_major -ge 13; then
2896 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2900 if test $fbsd_major -ge 13; then
2901 tm_file="rs6000/secureplt.h ${tm_file}"
2903 tm_file="${tm_file} rs6000/freebsd.h"
2908 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2909 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2910 tmake_file="${tmake_file} rs6000/t-netbsd"
2911 extra_options="${extra_options} rs6000/sysv4.opt"
2913 powerpc-*-eabisimaltivec*)
2914 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"
2915 extra_options="${extra_options} rs6000/sysv4.opt"
2916 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2920 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"
2921 extra_options="${extra_options} rs6000/sysv4.opt"
2922 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2926 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2927 extra_options="${extra_options} rs6000/sysv4.opt"
2928 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2930 powerpc-*-eabialtivec*)
2931 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"
2932 extra_options="${extra_options} rs6000/sysv4.opt"
2933 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2937 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"
2938 extra_options="${extra_options} rs6000/sysv4.opt"
2939 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2943 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"
2944 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2945 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2948 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2949 extra_options="${extra_options} rs6000/sysv4.opt"
2950 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2951 extra_objs="$extra_objs rs6000-linux.o"
2954 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2956 case ${target}:${with_cpu} in
2957 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2959 maybe_biarch=${cpu_is_64bit}
2960 case ${enable_targets} in
2961 *powerpc64*) maybe_biarch=yes ;;
2962 all) maybe_biarch=yes ;;
2964 case ${target}:${enable_targets}:${maybe_biarch} in
2965 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2966 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2967 | powerpcle-*:*powerpc64le*:yes)
2968 if test x$cpu_is_64bit = xyes; then
2969 tm_file="${tm_file} rs6000/default64.h"
2971 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2972 tmake_file="$tmake_file rs6000/t-linux64"
2975 tmake_file="$tmake_file rs6000/t-linux64le"
2976 case ${enable_targets} in
2977 all | *powerpc64-* | *powerpc-*)
2978 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2981 case ${enable_targets} in
2982 all | *powerpc64le-* | *powerpcle-*)
2983 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2986 extra_options="${extra_options} rs6000/linux64.opt"
2989 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2990 extra_options="${extra_options} rs6000/linux64.opt"
2991 tmake_file="${tmake_file} rs6000/t-linux"
2994 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2995 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2999 powerpc*-*-linux*ppc476*)
3000 tm_file="${tm_file} rs6000/476.h"
3001 extra_options="${extra_options} rs6000/476.opt" ;;
3002 powerpc*-*-linux*altivec*)
3003 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
3007 enable_secureplt=yes ;;
3009 if test x${enable_secureplt} = xyes; then
3010 tm_file="rs6000/secureplt.h ${tm_file}"
3013 powerpc*-wrs-vxworks7r*)
3015 # Wind River 7 post SR0600 is mostly like Linux so we setup
3016 # our config in a very similar fashion and adjust to a few
3019 # The system compiler is configured with secureplt by default.
3020 tm_file="${tm_file} rs6000/secureplt.h"
3022 tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h"
3023 tm_file="${tm_file} rs6000/sysv4.h rs6000/biarch64.h rs6000/default64.h rs6000/linux64.h"
3024 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3026 extra_options="${extra_options} rs6000/sysv4.opt linux.opt rs6000/linux64.opt"
3028 tmake_file="${tmake_file} t-linux rs6000/t-linux64 rs6000/t-fprules rs6000/t-ppccomm"
3029 tmake_file="${tmake_file} rs6000/t-vxworks"
3031 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
3032 extra_objs="$extra_objs linux.o rs6000-linux.o"
3034 powerpc-wrs-vxworks*)
3035 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
3036 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
3037 extra_options="${extra_options} rs6000/sysv4.opt"
3038 extra_headers="${extra_headers} ppc-asm.h"
3041 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
3042 tmake_file="${tmake_file} rs6000/t-vxworksmils"
3045 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
3046 tmake_file="${tmake_file} rs6000/t-vxworksae"
3049 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3055 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3056 tmake_file="t-lynx rs6000/t-lynx"
3057 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3063 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"
3064 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3065 extra_options="${extra_options} rs6000/sysv4.opt"
3067 powerpcle-*-eabisim*)
3068 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"
3069 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3070 extra_options="${extra_options} rs6000/sysv4.opt"
3074 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"
3075 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3076 extra_options="${extra_options} rs6000/sysv4.opt"
3080 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3081 tmake_file="${tmake_file} pru/t-pru"
3082 extra_objs="pru-pragma.o pru-passes.o"
3085 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3086 tmake_file="rs6000/t-aix52 t-slibgcc"
3087 if test x$cpu_is_64bit = xyes; then
3088 tm_file="${tm_file} rs6000/biarch64.h"
3089 tmake_file="rs6000/t-aix64 t-slibgcc"
3091 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3092 extra_options="${extra_options} rs6000/aix64.opt"
3096 default_use_cxa_atexit=yes
3098 rs6000-ibm-aix7.2.* | powerpc-ibm-aix7.2.*)
3099 tmake_file="rs6000/t-aix52 t-slibgcc"
3100 if test x$cpu_is_64bit = xyes; then
3101 tm_file="${tm_file} rs6000/biarch64.h"
3102 tmake_file="rs6000/t-aix64 t-slibgcc"
3104 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3105 extra_options="${extra_options} rs6000/aix64.opt"
3109 default_use_cxa_atexit=yes
3111 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3112 tmake_file="rs6000/t-aix52 t-slibgcc"
3113 if test x$cpu_is_64bit = xyes; then
3114 tm_file="${tm_file} rs6000/biarch64.h"
3115 tmake_file="rs6000/t-aix64 t-slibgcc"
3117 tm_file="${tm_file} rs6000/aix.h rs6000/aix73.h rs6000/xcoff.h rs6000/aix-stdint.h"
3118 extra_options="${extra_options} rs6000/aix64.opt"
3122 default_use_cxa_atexit=yes
3125 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3126 target_has_targetm_common=no
3127 c_target_objs="rl78-c.o"
3128 cxx_target_objs="rl78-c.o"
3129 tmake_file="${tmake_file} rl78/t-rl78"
3132 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3133 tmake_file="${tmake_file} rx/t-rx"
3134 extra_options="${extra_options} rx/elf.opt"
3137 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3138 tmake_file="${tmake_file} rx/t-linux"
3141 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3142 c_target_objs="${c_target_objs} s390-c.o"
3143 cxx_target_objs="${cxx_target_objs} s390-c.o"
3144 if test x$enable_targets = xall; then
3145 tmake_file="${tmake_file} s390/t-linux64"
3147 tmake_file="${tmake_file} s390/t-s390"
3150 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3151 tm_p_file="linux-protos.h s390/s390-protos.h"
3152 c_target_objs="${c_target_objs} s390-c.o"
3153 cxx_target_objs="${cxx_target_objs} s390-c.o"
3154 md_file=s390/s390.md
3155 extra_modes=s390/s390-modes.def
3156 out_file=s390/s390.c
3157 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3160 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h glibc-stdint.h s390/tpf.h"
3161 tm_p_file=s390/s390-protos.h
3162 c_target_objs="${c_target_objs} s390-c.o"
3163 cxx_target_objs="${cxx_target_objs} s390-c.o"
3164 md_file=s390/s390.md
3165 extra_modes=s390/s390-modes.def
3166 out_file=s390/s390.c
3168 extra_options="${extra_options} s390/tpf.opt"
3169 tmake_file="${tmake_file} s390/t-s390"
3171 sh-*-elf* | sh[12346l]*-*-elf* | \
3172 sh-*-linux* | sh[2346lbe]*-*-linux* | \
3173 sh-*-netbsdelf* | shl*-*-netbsdelf*)
3174 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3175 if test x${with_endian} = x; then
3177 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3178 shbe-*-* | sheb-*-*) with_endian=big,little ;;
3179 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
3180 shl* | sh*-*-linux* | \
3181 sh-superh-elf) with_endian=little,big ;;
3182 sh[1234]*-*-*) with_endian=big ;;
3183 *) with_endian=big,little ;;
3186 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3187 # First word : the default endian.
3188 # Second word: the secondary endian (optional).
3189 case ${with_endian} in
3190 big) TM_ENDIAN_CONFIG=mb ;;
3191 little) TM_ENDIAN_CONFIG=ml ;;
3192 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
3193 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
3194 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
3196 case ${with_endian} in
3197 little*) tm_file="sh/little.h ${tm_file}" ;;
3199 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
3201 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
3202 if test x$enable_fdpic = xyes; then
3203 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3205 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3207 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3208 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3211 sh*-superh-elf) if test x$with_libgloss != xno; then
3213 tm_file="${tm_file} sh/newlib.h"
3215 tm_file="${tm_file} sh/embed-elf.h"
3216 tm_file="${tm_file} sh/superh.h"
3217 extra_options="${extra_options} sh/superh.opt" ;;
3218 *) if test x$with_newlib = xyes \
3219 && test x$with_libgloss = xyes; then
3220 tm_file="${tm_file} sh/newlib.h"
3222 tm_file="${tm_file} sh/embed-elf.h" ;;
3228 tm_file="${tm_file} newlib-stdint.h"
3231 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3232 case `echo ${target} | sed 's/e[lb]-/-/'` in
3233 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
3234 sh4a_single*) sh_cpu_target=sh4a-single ;;
3235 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
3236 sh4al) sh_cpu_target=sh4al ;;
3237 sh4a*) sh_cpu_target=sh4a ;;
3238 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3239 sh4_single*) sh_cpu_target=sh4-single ;;
3240 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3241 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3242 sh3e*) sh_cpu_target=sh3e ;;
3243 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3244 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3245 sh2a_single*) sh_cpu_target=sh2a-single ;;
3246 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3247 sh2a*) sh_cpu_target=sh2a ;;
3248 sh2e*) sh_cpu_target=sh2e ;;
3249 sh2*) sh_cpu_target=sh2 ;;
3250 *) sh_cpu_target=sh1 ;;
3252 # did the user say --without-fp ?
3253 if test x$with_fp = xno; then
3254 case ${sh_cpu_target} in
3256 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3257 sh4*) sh_cpu_target=sh4-nofpu ;;
3258 sh3*) sh_cpu_target=sh3 ;;
3259 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3260 sh2*) sh_cpu_target=sh2 ;;
3261 *) echo --without-fp not available for $target: ignored
3263 tm_defines="$tm_defines STRICT_NOFPU=1"
3265 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3266 case $sh_cpu_default in
3267 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3268 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3269 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3270 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3271 "") sh_cpu_default=${sh_cpu_target} ;;
3272 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3274 sh_multilibs=${with_multilib_list}
3275 if test "$sh_multilibs" = "default" ; then
3277 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3278 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3279 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3280 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3281 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3283 if test x$with_fp = xno; then
3284 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`"
3287 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3288 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3289 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3290 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3291 for sh_multilib in ${sh_multilibs}; do
3292 case ${sh_multilib} in
3293 m1 | m2 | m2e | m3 | m3e | \
3294 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3295 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3296 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3297 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3298 # It is passed to MULTIILIB_OPTIONS verbatim.
3299 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3300 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3302 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3303 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3304 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3306 echo "with_multilib_list=${sh_multilib} not supported."
3311 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3312 if test x${enable_incomplete_targets} = xyes ; then
3313 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3315 tm_file="$tm_file ./sysroot-suffix.h"
3316 tmake_file="$tmake_file t-sysroot-suffix"
3319 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3320 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3323 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3324 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3327 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3330 tmake_file="sparc/t-sparc sparc/t-leon"
3333 tmake_file="sparc/t-sparc sparc/t-leon3"
3336 tmake_file="sparc/t-sparc sparc/t-elf"
3341 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3342 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3345 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3346 extra_options="${extra_options} sparc/long-double-switch.opt"
3349 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3352 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3355 tmake_file="${tmake_file} sparc/t-sparc"
3358 if test x$enable_targets = xall; then
3359 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3360 tmake_file="${tmake_file} sparc/t-linux64"
3362 tm_file="${tm_file} sparc/linux.h"
3363 tmake_file="${tmake_file} sparc/t-linux"
3367 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3368 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3369 extra_options="${extra_options} sparc/long-double-switch.opt"
3370 tmake_file="${tmake_file} sparc/t-sparc"
3373 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3375 sparc64-*-* | sparcv9-*-*)
3376 tm_file="sparc/default64.h ${tm_file}"
3379 test x$with_cpu != x || with_cpu=v9
3382 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3385 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3386 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3389 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3390 extra_options="${extra_options}"
3391 tmake_file="${tmake_file} sparc/t-sparc"
3394 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3395 extra_options="${extra_options}"
3396 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3399 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"
3400 extra_options="${extra_options} sparc/long-double-switch.opt"
3401 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3403 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3404 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3405 extra_options="${extra_options} sparc/long-double-switch.opt"
3406 case "x$with_cpu" in
3408 x) with_cpu=ultrasparc ;;
3409 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3411 tmake_file="${tmake_file} sparc/t-sparc"
3414 tm_file="sparc/biarch64.h ${tm_file}"
3415 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3416 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3417 extra_options="${extra_options} sparc/long-double-switch.opt"
3418 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3421 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3422 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3423 extra_options="${extra_options} openbsd.opt"
3424 extra_options="${extra_options}"
3427 tmake_file="${tmake_file} sparc/t-sparc"
3430 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3431 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3432 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3436 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3437 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3438 tm_file="${tm_file} ./sysroot-suffix.h"
3439 tmake_file="t-sysroot-suffix t-slibgcc"
3440 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3444 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3445 tmake_file="${tmake_file} tilegx/t-tilegx"
3446 extra_objs="${extra_objs} mul-tables.o"
3447 c_target_objs="${c_target_objs} tilegx-c.o"
3448 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3449 extra_headers="feedback.h"
3452 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3457 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3458 tmake_file="${tmake_file} tilepro/t-tilepro"
3459 extra_objs="${extra_objs} mul-tables.o"
3460 c_target_objs="${c_target_objs} tilepro-c.o"
3461 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3462 extra_headers="feedback.h"
3465 target_cpu_default="TARGET_CPU_generic"
3466 tm_file="elfos.h v850/v850.h"
3467 tm_file="${tm_file} v850/rtems.h rtems.h newlib-stdint.h"
3468 tmake_file="${tmake_file} v850/t-v850"
3469 tmake_file="${tmake_file} v850/t-rtems"
3471 c_target_objs="v850-c.o"
3472 cxx_target_objs="v850-c.o"
3477 target_cpu_default="TARGET_CPU_v850e3v5"
3480 target_cpu_default="TARGET_CPU_v850e2v3"
3483 target_cpu_default="TARGET_CPU_v850e2"
3485 v850e1-*-* | v850es-*-*)
3486 target_cpu_default="TARGET_CPU_v850e1"
3489 target_cpu_default="TARGET_CPU_v850e"
3492 target_cpu_default="TARGET_CPU_generic"
3495 tm_file="elfos.h newlib-stdint.h v850/v850.h"
3497 c_target_objs="v850-c.o"
3498 cxx_target_objs="v850-c.o"
3502 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3503 extra_options="${extra_options} vax/elf.opt"
3506 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3507 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3508 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3511 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3512 tmake_file="visium/t-visium visium/t-crtstuff"
3515 # For historical reasons, the target files omit the 'x'.
3516 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3517 tm_p_file=stormy16/stormy16-protos.h
3518 tm_d_file="elfos.h stormy16/stormy16.h"
3519 md_file=stormy16/stormy16.md
3520 out_file=stormy16/stormy16.c
3521 extra_options=stormy16/stormy16.opt
3522 tmake_file="stormy16/t-stormy16"
3525 tm_file="${tm_file} elfos.h newlib-stdint.h xtensa/elf.h"
3526 extra_options="${extra_options} xtensa/elf.opt"
3529 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3530 tmake_file="${tmake_file} xtensa/t-xtensa"
3533 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3534 tmake_file="${tmake_file} xtensa/t-xtensa"
3535 extra_options="${extra_options} xtensa/uclinux.opt"
3538 tm_file="mn10300/mn10300.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3543 tm_file="elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3544 c_target_objs="m32c-pragma.o"
3545 cxx_target_objs="m32c-pragma.o"
3548 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3549 c_target_objs="m32c-pragma.o"
3550 cxx_target_objs="m32c-pragma.o"
3553 echo "*** Configuration ${target} not supported" 1>&2
3559 i[34567]86-*-linux* | x86_64-*-linux*)
3560 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3562 i[34567]86-*-* | x86_64-*-*)
3563 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3565 powerpc*-*-* | rs6000-*-*)
3566 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3572 tmake_file="${tmake_file} t-musl"
3575 tmake_file="${tmake_file} t-uclibc"
3579 # Assume the existence of indirect function support and allow the use of the
3580 # resolver attribute.
3582 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3584 *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
3586 *-*-linux* | *-*-gnu*)
3588 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3589 default_gnu_indirect_function=yes
3595 # Build mkoffload tool
3597 *-intelmic-* | *-intelmicemul-*)
3598 tmake_file="${tmake_file} i386/t-intelmic"
3599 tm_file="${tm_file} i386/intelmic-offload.h"
3603 if [ "$target_has_targetcm" = "no" ]; then
3604 c_target_objs="$c_target_objs default-c.o"
3605 cxx_target_objs="$cxx_target_objs default-c.o"
3608 if [ "$common_out_file" = "" ]; then
3609 if [ "$target_has_targetm_common" = "yes" ]; then
3610 common_out_file="$cpu_type/$cpu_type-common.c"
3612 common_out_file="default-common.c"
3616 if [ "$target_has_targetdm" = "no" ]; then
3617 d_target_objs="$d_target_objs default-d.o"
3620 # Support for --with-cpu and related options (and a few unrelated options,
3624 echo "--with-cpu must be passed a value" 1>&2
3629 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3630 # to generic if there is no processor scheduler model for the target.
3633 arch_without_sse2=no
3634 arch_without_64bit=no
3637 if test $fbsd_major -ge 6; then
3643 arch_without_sse2=yes
3644 arch_without_64bit=yes
3649 arch_without_sse2=yes
3650 arch_without_64bit=yes
3655 arch_without_sse2=yes
3656 arch_without_64bit=yes
3661 arch_without_sse2=yes
3662 arch_without_64bit=yes
3665 arch_without_sse2=yes
3666 arch_without_64bit=yes
3667 case ${target_noncanonical} in
3680 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3690 i686-*-* | i786-*-*)
3691 case ${target_noncanonical} in
3728 amdfam10-*|barcelona-*)
3732 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3736 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3740 athlon_xp-*|athlon_mp-*|athlon_4-*)
3743 arch_without_sse2=yes
3744 arch_without_64bit=yes
3746 athlon_tbird-*|athlon-*)
3749 arch_without_sse2=yes
3754 arch_without_sse2=yes
3759 arch_without_sse2=yes
3761 pentium3-*|pentium3m-*)
3764 arch_without_sse2=yes
3766 pentium4-*|pentium4m-*)
3805 arch_without_sse2=yes
3810 arch_without_sse2=yes
3811 arch_without_64bit=yes
3816 case ${target_noncanonical} in
3853 amdfam10-*|barcelona-*)
3857 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3861 k8-*|opteron-*|athlon_64-*)
3893 # If there is no $with_cpu option, try to infer one from ${target}.
3894 # This block sets nothing except for with_cpu.
3895 if test x$with_cpu = x ; then
3897 i[34567]86-*-elfiamcu)
3900 i[34567]86-*-*|x86_64-*-*)
3918 frv-*-*linux* | frv400-*-*linux*)
3925 case "$with_arch" in
3927 with_cpu=${default_cf_cpu}
3930 with_cpu=m${default_m68k_cpu}
3946 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3955 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3957 i[34567]86-*-*|x86_64-*-*)
3958 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3959 if test x$with_cpu_32 = x; then
3960 with_cpu_32=$with_cpu
3962 if test x$with_cpu_64 = x; then
3963 with_cpu_64=$with_cpu
3971 # Support for --with-arch and related options (and a few unrelated options,
3973 case ${with_arch} in
3975 echo "--with-arch must be passed a value" 1>&2
3980 # If there is no $with_arch option, try to infer one from ${target}.
3981 # This block sets nothing except for with_arch.
3982 if test x$with_arch = x ; then
3984 i[34567]86-*-darwin*|x86_64-*-darwin*)
3985 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3986 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3988 i[34567]86-*-elfiamcu)
3992 # --with-fpmath sets the default ISA to SSE2, which is the same
3993 # ISA supported by Pentium 4.
3994 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
4003 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4011 # Avoid overriding --with-arch-32 and --with-arch-64 values.
4013 i[34567]86-*-darwin*|x86_64-*-darwin*)
4014 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4015 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4017 i[34567]86-*-*|x86_64-*-*)
4018 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
4019 if test x$with_arch_32 = x; then
4020 with_arch_32=$with_arch
4022 if test x$with_arch_64 = x; then
4023 if test $arch_without_64bit = yes; then
4024 # Set the default 64bit arch to x86-64 if the default arch
4025 # doesn't support 64bit.
4028 with_arch_64=$with_arch
4032 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
4033 # Set the default 64bit arch to x86-64 if the default arch
4034 # doesn't support 64bit and we need 64bit ISA.
4035 with_arch_32=$with_arch
4043 # Infer a default setting for --with-float.
4044 if test x$with_float = x; then
4046 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4047 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
4048 # comply with IEEE 754.
4054 # Infer a default setting for --with-fpu.
4055 if test x$with_fpu = x; then
4057 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4058 # The R5900 FPU only supports single precision.
4064 # Support --with-fpmath.
4065 if test x$with_fpmath != x; then
4067 i[34567]86-*-* | x86_64-*-*)
4068 case ${with_fpmath} in
4070 tm_file="${tm_file} i386/avxmath.h"
4073 tm_file="${tm_file} i386/ssemath.h"
4076 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4082 echo "--with-fpmath isn't supported for $target." 1>&2
4088 # Similarly for --with-schedule.
4089 if test x$with_schedule = x; then
4092 # Override default PA8000 scheduling model.
4093 with_schedule=7100LC
4098 # Infer a default setting for --with-llsc.
4099 if test x$with_llsc = x; then
4102 # The kernel emulates LL and SC where necessary.
4105 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4106 # The R5900 doesn't support LL(D) and SC(D).
4112 # Validate and mark as valid any --with options supported
4113 # by this target. In order to use a particular --with option
4114 # you must list it in supported_defaults; validating the value
4115 # is optional. This case statement should set nothing besides
4116 # supported_defaults.
4121 supported_defaults="abi cpu cpu_64 arch arch_64 tune tune_64"
4122 if test x$with_cpu_64 != x && test x$with_cpu = x; then
4123 with_cpu=$with_cpu_64
4125 if test x$with_arch_64 != x && test x$with_arch = x; then
4126 with_arch=$with_arch_64
4128 if test x$with_tune_64 != x && test x$with_tune = x; then
4129 with_tune=$with_tune_64
4131 for which in cpu arch tune; do
4132 eval "val=\$with_$which"
4133 base_val=`echo $val | sed -e 's/\+.*//'`
4134 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4136 if [ $which = arch ]; then
4137 def=aarch64-arches.def
4138 pattern=AARCH64_ARCH
4140 def=aarch64-cores.def
4141 pattern=AARCH64_CORE
4144 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
4146 # Find the base CPU or ARCH id in aarch64-cores.def or
4147 # aarch64-arches.def
4148 if [ x"$base_val" = x ] \
4149 || grep "^$pattern(\"$base_val\"," \
4150 ${srcdir}/config/aarch64/$def \
4153 if [ $which = arch ]; then
4154 base_id=`grep "^$pattern(\"$base_val\"," \
4155 ${srcdir}/config/aarch64/$def | \
4156 sed -e 's/^[^,]*,[ ]*//' | \
4158 # Extract the architecture flags from aarch64-arches.def
4159 ext_mask=`grep "^$pattern(\"$base_val\"," \
4160 ${srcdir}/config/aarch64/$def | \
4164 base_id=`grep "^$pattern(\"$base_val\"," \
4165 ${srcdir}/config/aarch64/$def | \
4166 sed -e 's/^[^,]*,[ ]*//' | \
4170 # Disallow extensions in --with-tune=cortex-a53+crc.
4171 if [ $which = tune ] && [ x"$ext_val" != x ]; then
4172 echo "Architecture extensions not supported in --with-$which=$val" 1>&2
4176 # Use the pre-processor to strip flatten the options.
4177 # This makes the format less rigid than if we use
4178 # grep and sed directly here.
4179 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4180 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4181 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4183 # Match one element inside AARCH64_OPT_EXTENSION, we
4184 # consume anything that's not a ,.
4185 elem="[ ]*\([^,]\+\)[ ]*"
4187 # Repeat the pattern for the number of entries in the
4188 # AARCH64_OPT_EXTENSION, currently 6 times.
4189 sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
4191 while [ x"$ext_val" != x ]
4193 ext_val=`echo $ext_val | sed -e 's/\+//'`
4194 ext=`echo $ext_val | sed -e 's/\+.*//'`
4195 base_ext=`echo $ext | sed -e 's/^no//'`
4196 opt_line=`echo -e "$options_parsed" | \
4197 grep "^\"$base_ext\""`
4199 if [ x"$base_ext" = x ] \
4200 || [[ -n $opt_line ]]; then
4202 # These regexp extract the elements based on
4203 # their group match index in the regexp.
4204 ext_canon=`echo -e "$opt_line" | \
4205 sed -e "s/$sed_patt/\2/"`
4206 ext_on=`echo -e "$opt_line" | \
4207 sed -e "s/$sed_patt/\3/"`
4208 ext_off=`echo -e "$opt_line" | \
4209 sed -e "s/$sed_patt/\4/"`
4211 if [ $ext = $base_ext ]; then
4213 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
4215 # Removing extension
4216 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
4221 echo "Unknown extension used in --with-$which=$val" 1>&2
4224 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4227 ext_mask="(("$ext_mask") << 6)"
4228 if [ x"$base_id" != x ]; then
4229 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
4233 # Allow --with-$which=native.
4234 if [ "$val" = native ]; then
4237 echo "Unknown $which used in --with-$which=$val" 1>&2
4245 supported_defaults="cpu tune"
4246 for which in cpu tune; do
4247 eval "val=\$with_$which"
4250 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4251 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4255 echo "Unknown CPU used in --with-$which=$val" 1>&2
4263 supported_defaults="cpu fpu"
4266 if [ x"$with_cpu" = x ] \
4267 || grep -q -E "^ARC_CPU[[:blank:]]*\($with_cpu," \
4268 ${srcdir}/config/arc/arc-cpus.def
4273 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4277 # see if --with-fpu matches any of the supported FPUs
4282 fpus | fpus_div | fpus_fma | fpus_all)
4286 fpuda | fpuda_div | fpuda_fma | fpuda_all)
4290 fpud | fpud_div | fpud_fma | fpud_all)
4295 echo "Unknown floating point type used in "\
4296 "--with-fpu=$with_fpu" 1>&2
4301 if [ -n "$flags_ok" ] \
4302 && ! grep -q -E "^ARC_CPU[[:blank:]]*\($new_cpu,[[:blank:]]*$flags_ok," \
4303 ${srcdir}/config/arc/arc-cpus.def
4305 echo "Unknown floating point type used in "\
4306 "--with-fpu=$with_fpu for cpu $new_cpu" 1>&2
4312 # Handle --with-multilib-list.
4313 if test "x${with_multilib_list}" != xdefault; then
4314 TM_MULTILIB_CONFIG="${with_multilib_list}"
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_NEW_DTAGS_SPEC"
5092 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
5093 "\"--enable-new-dtags\""
5095 echo "#undef DYNAMIC_LINKER_PREFIX"
5096 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
5098 echo "#undef MD_EXEC_PREFIX"
5099 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
5101 echo "#undef MD_STARTFILE_PREFIX"
5102 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
5104 echo "#undef MD_STARTFILE_PREFIX_1"
5105 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
5106 > advance-toolchain.h
5108 echo "Unknown advance-toolchain $with_advance_toolchain"
5113 # Set up the default long double format if the user changed it.
5114 if test x$with_long_double_format = xieee; then
5115 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
5117 elif test x$with_long_double_format = xibm; then
5118 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5123 supported_defaults="arch mode tune"
5125 for which in arch tune; do
5126 eval "val=\$with_$which"
5128 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 | arch14 )
5132 echo "Unknown cpu used in --with-$which=$val." 1>&2
5138 case ${with_mode} in
5143 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5149 sh[123456ble]*-*-* | sh-*-*)
5150 supported_defaults="cpu"
5151 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5152 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5155 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5157 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5160 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
5161 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5162 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5163 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5169 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5171 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5172 eval "val=\$with_$which"
5174 "" | sparc | sparcv9 | sparc64 \
5176 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5177 | sparclite | f930 | f934 | sparclite86x \
5178 | sparclet | tsc701 \
5179 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5180 | niagara3 | niagara4 | niagara7 | m8)
5184 echo "Unknown cpu used in --with-$which=$val" 1>&2
5190 case ${with_float} in
5195 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5202 supported_defaults="arch"
5204 case ${with_arch} in
5205 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5209 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5216 supported_defaults=cpu
5218 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5222 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5228 supported_defaults="cpu"
5232 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5239 # Targets for which there is at least one VxWorks port should include
5240 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5241 # of markers from other files in the port, including the vxworks*.h files to
5242 # distinguish VxWorks variants such as VxWorks 7 or 64).
5245 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5246 | sparc*-*-* | x86_64-*-*)
5247 tm_file="vxworks-dummy.h ${tm_file}"
5251 # Set some miscellaneous flags for particular targets.
5252 target_cpu_default2=
5255 if test x"$target_cpu_cname" != x
5257 target_cpu_default2=$target_cpu_cname
5262 if test x$with_cpu = x
5264 echo "Don't know the target cpu" 1>&2
5267 target_cpu_default2="\\\"$with_cpu\\\""
5272 if test x$gas = xyes
5274 target_cpu_default2="MASK_GAS"
5278 fido*-*-* | m68k*-*-*)
5279 target_cpu_default2=$m68k_cpu_ident
5280 tmake_file="m68k/t-opts $tmake_file"
5281 if [ x"$m68k_arch_family" != x ]; then
5282 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5286 i[34567]86-*-darwin* | x86_64-*-darwin*)
5288 i[34567]86-*-linux* | x86_64-*-linux*)
5289 extra_objs="${extra_objs} gnu-property.o"
5290 tmake_file="$tmake_file i386/t-linux i386/t-gnu-property"
5292 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5293 tmake_file="$tmake_file i386/t-kfreebsd"
5296 tmake_file="$tmake_file i386/t-gnu"
5298 i[34567]86-*-msdosdjgpp*)
5299 tmake_file="${tmake_file} i386/t-djgpp"
5301 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5303 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5305 i[34567]86-*-mingw* | x86_64-*-mingw*)
5307 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5309 i[34567]86-*-freebsd*)
5312 tmake_file="${tmake_file} i386/t-freebsd64"
5318 if test x$gnu_ld = xyes
5320 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5324 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5327 if test x$with_arch != x; then
5328 default_mips_arch=$with_arch
5330 if test x$with_abi != x; then
5331 default_mips_abi=$with_abi
5333 case ${default_mips_arch} in
5334 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS1" ;;
5335 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS2" ;;
5336 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3" ;;
5337 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS4" ;;
5338 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32" ;;
5339 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2" ;;
5340 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6" ;;
5341 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64" ;;
5342 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2" ;;
5343 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6" ;;
5345 case ${default_mips_abi} in
5346 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5347 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5348 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5349 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5350 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5352 tmake_file="mips/t-mips $tmake_file"
5355 powerpc*-*-* | rs6000-*-*)
5356 # FIXME: The PowerPC port uses the value set at compile time,
5357 # although it's only cosmetic.
5358 if test "x$with_cpu" != x
5360 target_cpu_default2="\\\"$with_cpu\\\""
5362 out_file="${cpu_type}/${cpu_type}.c"
5363 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5364 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5365 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5366 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5369 sh[123456ble]*-*-* | sh-*-*)
5370 c_target_objs="${c_target_objs} sh-c.o"
5371 cxx_target_objs="${cxx_target_objs} sh-c.o"
5375 # Some standard aliases.
5380 xsparcv9 | xsparc64)
5385 if test x$with_tune = x ; then
5396 # The SPARC port checks this value at compile-time.
5397 target_cpu_default2="TARGET_CPU_$with_cpu"
5401 case "x$with_cpu" in
5404 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5405 target_cpu_default2="TARGET_CPU_$with_cpu"
5408 target_cpu_default2="TARGET_CPU_v850e1"
5413 target_cpu_default2="TARGET_CPU_$with_cpu"
5418 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"
5419 for option in $all_defaults
5421 eval "val=\$with_"`echo $option | sed s/-/_/g`
5422 if test -n "$val"; then
5423 case " $supported_defaults " in
5427 echo "This target does not support --with-$option." 2>&1
5428 echo "Valid --with options are: $supported_defaults" 2>&1
5435 t="{ \"$option\", \"$val\" }"
5437 t="${t}, { \"$option\", \"$val\" }"
5444 configure_default_options="{ { NULL, NULL} }"
5446 configure_default_options="{ ${t} }"
5449 if test "$target_cpu_default2" != ""
5451 if test "$target_cpu_default" != ""
5453 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5455 target_cpu_default=$target_cpu_default2
5460 i[34567]86-*-* | x86_64-*-*)
5461 if test x$enable_as_accelerator = xyes; then
5462 extra_programs="mkoffload\$(exeext)"