1 # SPDX-License-Identifier: GPL-3.0-or-later
2 # GCC target-specific configuration file.
3 # Copyright (C) 1997-2022 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* \
257 if test "x$enable_obsolete" != xyes; then
258 echo "*** Configuration ${target} is obsolete." >&2
259 echo "*** Specify --enable-obsolete to build it anyway." >&2
260 echo "*** Support will be REMOVED in the next major release of GCC," >&2
261 echo "*** unless a maintainer comes forward." >&2
266 # Unsupported targets list. Do not put an entry in this list unless
267 # it would otherwise be caught by a more permissive pattern. The list
268 # should be in alphabetical order.
270 # Avoid special cases that are not obsolete
281 | i[34567]86-go32-* \
282 | i[34567]86-*-go32* \
286 | m68k-*-uclinuxoldabi* \
287 | mips64orion*-*-rtems* \
289 | powerpc*-*-linux*paired* \
291 | sparc-hal-solaris2* \
294 | *-*-freebsd[12] | *-*-freebsd[1234].* \
295 | *-*-freebsd*aout* \
303 | *-*-solaris2.[0-9] \
304 | *-*-solaris2.[0-9].* \
309 echo "*** Configuration ${target} not supported" 1>&2
314 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
315 # updated in each machine entry. Also set default extra_headers for some
318 cpu_type=`echo ${target} | sed 's/-.*$//'`
324 tmake_file=m32c/t-m32c
325 target_has_targetm_common=no
329 extra_headers="arm_fp16.h arm_neon.h arm_bf16.h arm_acle.h arm_sve.h"
330 c_target_objs="aarch64-c.o"
331 cxx_target_objs="aarch64-c.o"
332 d_target_objs="aarch64-d.o"
333 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"
334 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.cc \$(srcdir)/config/aarch64/aarch64-sve-builtins.h \$(srcdir)/config/aarch64/aarch64-sve-builtins.cc"
335 target_has_targetm_common=yes
339 extra_options="${extra_options} g.opt"
350 c_target_objs="arc-c.o"
351 cxx_target_objs="arc-c.o"
352 extra_options="${extra_options} arc/arc-tables.opt g.opt"
353 extra_headers="arc-simd.h"
357 extra_objs="arm-builtins.o arm-mve-builtins.o aarch-common.o"
358 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"
359 target_type_format_char='%'
360 c_target_objs="arm-c.o"
361 cxx_target_objs="arm-c.o"
362 d_target_objs="arm-d.o"
363 extra_options="${extra_options} arm/arm-tables.opt"
364 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.cc \$(srcdir)/config/arm/arm-mve-builtins.h \$(srcdir)/config/arm/arm-mve-builtins.cc"
368 c_target_objs="avr-c.o"
369 cxx_target_objs="avr-c.o"
378 extra_options="${extra_options} g.opt"
381 target_has_targetm_common=no
383 moxie*) cpu_type=moxie
384 target_has_targetm_common=no
388 extra_headers=math-68881.h
389 extra_options="${extra_options} m68k/m68k-tables.opt"
391 i[34567]86-*-* | x86_64-*-*)
393 c_target_objs="i386-c.o"
394 cxx_target_objs="i386-c.o"
395 d_target_objs="i386-d.o"
396 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"
397 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.cc \$(srcdir)/config/i386/i386-expand.cc \$(srcdir)/config/i386/i386-options.cc"
398 extra_options="${extra_options} fused-madd.opt"
399 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
400 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
401 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
402 immintrin.h x86intrin.h avxintrin.h xopintrin.h
403 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
404 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
405 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
406 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
407 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
408 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
409 shaintrin.h clflushoptintrin.h xsavecintrin.h
410 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
411 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
412 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
413 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
414 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
415 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
416 gfniintrin.h cet.h avx512vbmi2intrin.h
417 avx512vbmi2vlintrin.h avx512vnniintrin.h
418 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
419 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
420 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
421 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h
422 avx512bf16intrin.h enqcmdintrin.h serializeintrin.h
423 avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h
424 tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h
425 amxbf16intrin.h x86gprintrin.h uintrintrin.h
426 hresetintrin.h keylockerintrin.h avxvnniintrin.h
427 mwaitintrin.h avx512fp16intrin.h avx512fp16vlintrin.h"
430 extra_headers=ia64intrin.h
431 extra_options="${extra_options} g.opt fused-madd.opt"
437 extra_options="${extra_options} g.opt"
441 extra_options="${extra_options} g.opt"
444 extra_headers=math-68881.h
445 extra_options="${extra_options} m68k/m68k-tables.opt"
449 extra_options="${extra_options} g.opt"
453 d_target_objs="mips-d.o"
454 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
455 extra_objs="frame-header-opt.o"
456 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
460 extra_headers="larchintrin.h"
461 extra_objs="loongarch-c.o loongarch-builtins.o loongarch-cpu.o loongarch-opts.o loongarch-def.o"
462 extra_gcc_objs="loongarch-driver.o loongarch-cpu.o loongarch-opts.o loongarch-def.o"
463 extra_options="${extra_options} g.opt fused-madd.opt"
467 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
470 extra_options="${extra_options} nds32/nds32-linux.opt"
473 extra_options="${extra_options} nds32/nds32-elf.opt"
478 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"
482 extra_options="${extra_options} g.opt"
486 c_target_objs="nvptx-c.o"
487 cxx_target_objs="nvptx-c.o"
488 extra_options="${extra_options} nvptx/nvptx-gen.opt"
495 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
496 extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
497 extra_objs="${extra_objs} rs6000-builtins.o rs6000-builtin.o"
498 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
499 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
500 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
501 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
502 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
503 extra_headers="${extra_headers} nmmintrin.h immintrin.h x86gprintrin.h"
504 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
505 extra_headers="${extra_headers} amo.h"
507 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower10|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
511 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
512 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.cc \$(srcdir)/config/rs6000/rs6000-call.cc"
513 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.cc"
514 target_gtfiles="$target_gtfiles ./rs6000-builtins.h"
521 extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o riscv-shorten-memrefs.o"
522 d_target_objs="riscv-d.o"
525 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
526 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
527 extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
528 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.cc \$(srcdir)/config/rs6000/rs6000-call.cc"
529 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.cc"
533 c_target_objs="sparc-c.o"
534 cxx_target_objs="sparc-c.o"
535 d_target_objs="sparc-d.o"
536 extra_headers="visintrin.h"
540 d_target_objs="s390-d.o"
541 extra_options="${extra_options} fused-madd.opt"
542 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
544 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
545 sh[123456789lbe]*-*-* | sh-*-*)
547 extra_options="${extra_options} fused-madd.opt"
548 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
555 extra_headers="c6x_intrinsics.h"
556 extra_options="${extra_options} c6x/c6x-tables.opt"
559 extra_options="${extra_options} fused-madd.opt"
569 tm_file=${cpu_type}/${cpu_type}.h
570 tm_d_file=${cpu_type}/${cpu_type}.h
571 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
573 tm_p_file=${cpu_type}/${cpu_type}-protos.h
574 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
578 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
580 extra_modes=${cpu_type}/${cpu_type}-modes.def
582 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
584 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
589 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
592 if test "x$with_multilib_list" = xilp32; then
593 tm_file="aarch64/biarchilp32.h ${tm_file}"
595 tm_file="aarch64/biarchlp64.h ${tm_file}"
599 tm_file="aarch64/biarchilp32.h ${tm_file}"
602 tm_file="aarch64/biarchlp64.h ${tm_file}"
605 echo "Unknown ABI used in --with-abi=$with_abi"
610 if test "x$with_abi" != x; then
611 echo "This target does not support --with-abi."
620 if test "x$with_multilib_list" = xmx32; then
621 tm_file="i386/biarchx32.h ${tm_file}"
623 tm_file="i386/biarch64.h ${tm_file}"
627 tm_file="i386/biarch64.h ${tm_file}"
630 tm_file="i386/biarchx32.h ${tm_file}"
633 echo "Unknown ABI used in --with-abi=$with_abi"
638 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
642 # On a.out targets, we need to use collect2.
649 # Common C libraries.
650 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
652 # 32-bit x86 processors supported by --with-arch=. Each processor
653 # MUST be separated by exactly one space.
654 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
655 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
656 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
657 pentium4 pentium4m pentiumpro prescott lakemont samuel-2 nehemiah \
660 # 64-bit x86 processors supported by --with-arch=. Each processor
661 # MUST be separated by exactly one space.
662 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
663 bdver3 bdver4 znver1 znver2 znver3 btver1 btver2 k8 k8-sse3 opteron \
664 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
665 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
666 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
667 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake \
668 sapphirerapids alderlake rocketlake eden-x2 nano nano-1000 nano-2000 nano-3000 \
669 nano-x2 eden-x4 nano-x4 x86-64 x86-64-v2 x86-64-v3 x86-64-v4 native"
671 # Additional x86 processors supported by --with-cpu=. Each processor
672 # MUST be separated by exactly one space.
673 x86_cpus="generic intel"
675 # Common parts for widely ported systems.
678 tmake_file="t-darwin "
679 tm_file="${tm_file} darwin.h"
680 tm_d_file="${tm_d_file} tm-dwarf2.h"
681 darwin_os=`echo ${target} | sed 's/.*darwin\([0-9.]*\).*$/\1/'`
682 darwin_maj=`expr "$darwin_os" : '\([0-9]*\).*'`
683 macos_min=`expr "$darwin_os" : '[0-9]*\.\([0-9]*\).*'`
685 if test x"${macos_min}" = x; then
689 # Tools hosted on earlier versions of Darwin constrained all object
690 # alignment to be 2^15 or smaller. From Darwin11 (macOS 10.7) the
691 # alignment of non-common is allowed to be up to 2^28. Note that the
692 #Â larger alignment is permitted when targeting 10.6 from 10.7 so that
693 #Â the constraint only need be applied per host (and only if the host
696 *-*-darwin[4-9]* | *-*-darwin10*)
697 tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=15U"
700 tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=28U"
704 # Darwin 4 to 19 correspond to macOS 10.0 to 10.15
705 *-*-darwin[4-9]* | *-*-darwin1[0-9]*)
706 macos_min=`expr $darwin_maj - 4`
709 # Darwin 20 corresponds to macOS 11, Darwin 21 to macOS 12.
710 macos_maj=`expr $darwin_maj - 9`
715 aarch64) macos_maj=11 ;;
716 x86_64) macos_min=6 ;;
720 *-*-darwin*) tm_defines="$tm_defines DARWIN_USE_KERNEL_VERS" ;;
722 # If configuring a cross-compiler then we will have set some
723 #Â default above, but it is probably not what was intended.
724 echo "Warning: Using ${target} is only suitable for Darwin hosts" 1>&2
725 echo "configure with an explicit target version" 1>&2
730 echo "Error: configuring for an unreleased macOS version ${target}" 1>&2
734 tm_defines="$tm_defines DEF_MIN_OSX_VERSION=\\\"${macos_maj}.${macos_min}\\\""
735 tm_defines="$tm_defines DEF_LD64=\\\"${def_ld64}\\\""
736 tm_file="${tm_file} ${cpu_type}/darwin.h"
737 tm_p_file="${tm_p_file} darwin-protos.h"
738 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.cc"
739 extra_options="${extra_options} rpath.opt darwin.opt"
740 c_target_objs="${c_target_objs} darwin-c.o"
741 cxx_target_objs="${cxx_target_objs} darwin-c.o"
742 d_target_objs="${d_target_objs} darwin-d.o"
743 fortran_target_objs="darwin-f.o"
744 target_has_targetcm=yes
745 target_has_targetdm=yes
746 extra_objs="${extra_objs} darwin.o"
747 extra_gcc_objs="darwin-driver.o"
748 default_use_cxa_atexit=yes
750 case ${enable_threads} in
751 "" | yes | posix) thread_file='posix' ;;
757 tmake_file="t-slibgcc"
758 case ${enable_threads} in
763 # Let these non-posix thread selections fall through if requested
766 echo 'Unknown thread configuration for DragonFly BSD'
770 extra_options="$extra_options rpath.opt dragonfly.opt"
771 default_use_cxa_atexit=yes
773 d_target_objs="${d_target_objs} dragonfly-d.o"
774 tmake_file="${tmake_file} t-dragonfly"
775 target_has_targetdm=yes
778 # This is the generic ELF configuration of FreeBSD. Later
779 # machine-specific sections may refine and add to this
782 # Due to tm_file entry ordering issues that vary between cpu
783 # architectures, we only define fbsd_tm_file to allow the
784 # machine-specific section to dictate the final order of all
785 # entries of tm_file with the minor exception that components
786 # of the tm_file set here will always be of the form:
788 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
790 # The machine-specific section should not tamper with this
791 # ordering but may order all other entries of tm_file as it
792 # pleases around the provided core setting.
795 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
796 if test "$fbsd_major" = ""; then
797 echo "Specify the major version number of the targeted FreeBSD release"
798 echo "like this: --target=amd64-unknown-freebsd10.1"
801 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
802 tmake_file="t-slibgcc"
803 case ${enable_threads} in
805 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
811 echo 'Unknown thread configuration for FreeBSD'
815 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
816 extra_options="$extra_options rpath.opt freebsd.opt"
821 default_use_cxa_atexit=yes;;
824 d_target_objs="${d_target_objs} freebsd-d.o"
825 tmake_file="${tmake_file} t-freebsd"
826 target_has_targetdm=yes
829 native_system_header_dir=/include
831 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
832 extra_options="$extra_options gnu-user.opt"
835 case ${enable_threads} in
836 "" | yes | posix) thread_file='posix' ;;
838 tmake_file="t-slibgcc"
840 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
843 native_system_header_dir=/include
846 # Linux C libraries selection switch: glibc / uclibc / bionic.
847 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
850 tm_p_file="${tm_p_file} linux-protos.h"
851 tmake_file="${tmake_file} t-linux"
852 extra_objs="${extra_objs} linux.o"
853 extra_options="${extra_options} linux.opt"
858 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
860 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
861 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
864 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
867 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
870 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
872 default_use_cxa_atexit=yes
875 # Enable compilation for Android by default for *android* targets.
878 tm_defines="$tm_defines ANDROID_DEFAULT=1"
881 tm_defines="$tm_defines ANDROID_DEFAULT=0"
884 c_target_objs="${c_target_objs} glibc-c.o"
885 cxx_target_objs="${cxx_target_objs} glibc-c.o"
886 d_target_objs="${d_target_objs} glibc-d.o"
887 tmake_file="${tmake_file} t-glibc"
888 target_has_targetcm=yes
889 target_has_targetdm=yes
891 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
894 # Linux targets always support .init_array.
895 gcc_cv_initfini_array=yes
900 tm_p_file="${tm_p_file} netbsd-protos.h"
901 tmake_file="t-netbsd t-slibgcc"
902 extra_objs="${extra_objs} netbsd.o"
903 d_target_objs="${d_target_objs} netbsd-d.o"
907 case ${enable_threads} in
908 "" | yes | posix) thread_file='posix' ;;
910 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
911 default_use_cxa_atexit=yes
912 target_has_targetdm=yes
914 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
915 default_gnu_indirect_function=yes
920 tmake_file="t-openbsd"
921 case ${enable_threads} in
927 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
928 default_use_cxa_atexit=yes
931 d_target_objs="${d_target_objs} openbsd-d.o"
932 target_has_targetdm=yes
937 default_use_cxa_atexit=yes
940 case ${enable_threads} in
941 "" | yes | rtems) thread_file='rtems' ;;
942 posix) thread_file='posix' ;;
945 echo 'Unknown thread configuration for RTEMS'
949 tmake_file="${tmake_file} t-rtems"
950 extra_options="${extra_options} rtems.opt"
951 default_use_cxa_atexit=yes
955 extra_options="$extra_options gnu-user.opt"
957 case ${enable_threads} in
958 "" | yes | posix) thread_file='posix' ;;
960 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
966 # i?86-*-solaris2* needs to insert headers between cpu default and
967 # Solaris 2 specific ones.
968 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
969 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
970 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
972 *-*-solaris2.1[1-9]*)
973 # __cxa_atexit was introduced in Solaris 11.4.
974 default_use_cxa_atexit=yes
978 if test x$gnu_ld = xyes; then
979 tm_file="usegld.h ${tm_file}"
981 if test x$gas = xyes; then
982 tm_file="usegas.h ${tm_file}"
984 tm_p_file="${tm_p_file} sol2-protos.h"
985 tmake_file="${tmake_file} t-sol2 t-slibgcc"
986 c_target_objs="${c_target_objs} sol2-c.o"
987 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
988 d_target_objs="${d_target_objs} sol2-d.o"
989 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
990 extra_options="${extra_options} sol2.opt"
991 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
992 "":yes:* | yes:yes:* )
996 target_has_targetdm=yes
999 extra_options="${extra_options} vms/vms.opt"
1000 xmake_file=vms/x-vms
1001 tmake_file="vms/t-vms t-slibgcc"
1003 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.cc"
1004 tm_p_file="${tm_p_file} vms/vms-protos.h"
1005 xm_file="vms/xm-vms.h"
1006 c_target_objs="vms-c.o"
1007 cxx_target_objs="vms-c.o"
1008 fortran_target_objs="vms-f.o"
1009 use_gcc_stdint=provide
1010 tm_file="${tm_file} vms/vms-stdint.h"
1011 if test x$gnu_ld != xyes; then
1012 # Build wrappers for native case.
1013 extra_programs="ld\$(exeext) ar\$(exeext)"
1014 tmake_file="$tmake_file vms/t-vmsnative"
1018 tmake_file=t-vxworks
1021 extra_options="${extra_options} vxworks.opt"
1022 extra_objs="$extra_objs vxworks.o"
1024 c_target_objs="${c_target_objs} vxworks-c.o"
1025 cxx_target_objs="${cxx_target_objs} vxworks-c.o"
1026 extra_headers="${extra_headers} ../vxworks/vxworks-predef.h"
1027 target_has_targetcm="yes"
1029 # This private header exposes a consistent interface for checks on
1030 # the VxWorks version our runtime header files need to perform, based on
1031 # what the system headers adverstise:
1033 extra_headers="${extra_headers} ../vxworks/_vxworks-versions.h"
1035 # Starting from VxWorks 7, the system comes with a Dinkumware
1036 # environment which requires the inclusion of "yvals.h" before other
1037 # system headers. We provide wrapped versions of a few headers to
1038 # accomodate such constraints:
1040 extra_headers="${extra_headers} ../vxworks/_yvals.h"
1041 extra_headers="${extra_headers} ../vxworks/_yvals-wrapper.h"
1043 extra_headers="${extra_headers} ../vxworks/math.h ../vxworks/complex.h"
1044 extra_headers="${extra_headers} ../vxworks/inttypes.h ../vxworks/setjmp.h"
1046 # We provide (a tailored version of) stdint.h
1047 tm_file="${tm_file} vxworks-stdint.h"
1048 use_gcc_stdint=provide
1050 case ${enable_threads} in
1052 "" | yes | vxworks) thread_file='vxworks' ;;
1053 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
1056 # A few common macro definitions conveying general characteristics
1057 # of the configuration at hand. Note that by VxWorks 7, we mean the
1058 # the SR6xx major update or beyond in vendor parlance:
1062 tm_defines="$tm_defines TARGET_VXWORKS7=1"
1067 tm_defines="$tm_defines TARGET_VXWORKS64=1"
1071 # Then a few build configuration controls for VxWorks 7, which
1072 # has specificities on top of which we aim to provide more complete
1077 # VxWorks 7 always has init/fini_array support and it is simpler to
1078 # just leverage this, sticking to what the system toolchain does:
1079 gcc_cv_initfini_array=yes
1083 *-*-elf|arc*-*-elf*)
1084 # Assume that newlib is being used and so __cxa_atexit is provided.
1085 default_use_cxa_atexit=yes
1091 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1092 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
1093 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1094 tmake_file="${tmake_file} aarch64/t-aarch64"
1100 tm_file="${tm_file} fuchsia.h"
1103 tm_file="${tm_file} aarch64/rtems.h rtems.h"
1108 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1111 aarch64_multilibs="${with_multilib_list}"
1112 if test "$aarch64_multilibs" = "default"; then
1113 aarch64_multilibs="lp64,ilp32"
1115 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1116 for aarch64_multilib in ${aarch64_multilibs}; do
1117 case ${aarch64_multilib} in
1119 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1122 echo "--with-multilib-list=${aarch64_multilib} not supported."
1126 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1128 aarch64*-*-freebsd*)
1129 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1130 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1131 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1132 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1135 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
1136 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1137 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1138 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1141 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1142 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1143 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1144 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1147 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1150 aarch64_multilibs="${with_multilib_list}"
1151 if test "$aarch64_multilibs" = "default"; then
1152 # TODO: turn on ILP32 multilib build after its support is mature.
1153 # aarch64_multilibs="lp64,ilp32"
1154 aarch64_multilibs="lp64"
1156 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1157 for aarch64_multilib in ${aarch64_multilibs}; do
1158 case ${aarch64_multilib} in
1160 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1163 echo "--with-multilib-list=${aarch64_multilib} not supported."
1167 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1169 aarch64*-wrs-vxworks*)
1170 tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
1171 tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
1172 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
1175 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1176 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1177 extra_options="${extra_options} alpha/elf.opt"
1180 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1181 tmake_file="${tmake_file} alpha/t-alpha"
1182 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1186 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1187 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1188 tmake_file="${tmake_file} alpha/t-alpha"
1189 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1190 # default x-alpha is only appropriate for dec-osf.
1193 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1194 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1197 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1198 tmake_file="arc/t-multilib arc/t-arc"
1199 extra_gcc_objs="driver-arc.o"
1200 if test "x$with_cpu" != x; then
1201 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1203 if test x${with_endian} = x; then
1205 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1206 *) with_endian=little ;;
1209 case ${with_endian} in
1211 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1213 case ${with_endian} in
1214 big*) tm_file="arc/big.h ${tm_file}"
1218 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}"
1219 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1220 extra_gcc_objs="driver-arc.o"
1221 if test "x$with_cpu" != x; then
1222 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1224 if test x${with_endian} = x; then
1226 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1227 *) with_endian=little ;;
1230 case ${with_endian} in
1232 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1234 case ${with_endian} in
1235 big*) tm_file="arc/big.h ${tm_file}"
1237 # Force .init_array support. The configure script cannot always
1238 # automatically detect that GAS supports it, yet we require it.
1239 gcc_cv_initfini_array=yes
1242 # We only support VxWorks 7 now on ARM, post SR600. Pre SR600
1243 # VxWorks 7 was transitory and major versions prior to 7 were based
1244 # on long deprecated ABI, not supported at all any more regardless
1246 extra_options="${extra_options} arm/vxworks.opt"
1247 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1248 tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1249 tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1250 target_cpu_cname="generic-armv7-a"
1251 need_64bit_hwint=yes
1253 arm*-*-freebsd*) # ARM FreeBSD EABI
1254 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1257 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1260 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1261 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1264 target_cpu_cname="arm1176jzf-s"
1265 if test $fbsd_major -ge 11; then
1266 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1270 target_cpu_cname="generic-armv7-a"
1271 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1274 target_cpu_cname="arm9"
1277 with_tls=${with_tls:-gnu}
1280 target_cpu_cname="strongarm"
1281 tmake_file="${tmake_file} arm/t-arm"
1282 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1283 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1285 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1288 arm*-*-netbsdelf-*eabi*)
1289 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1290 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1293 tm_file="$tm_file arm/netbsd-elf.h"
1294 tmake_file="$tmake_file arm/t-netbsd"
1297 tm_file="${tm_file} arm/aout.h arm/arm.h"
1299 arm*-*-netbsdelf-*eabihf*)
1300 # Hard-float requires at least Arm v5te
1301 target_cpu_cname="arm10e"
1302 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1306 armv6*) target_cpu_cname="arm1176jzf-s";;
1307 armv7*) target_cpu_cname="generic-armv7-a";;
1310 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1311 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"
1312 extra_options="${extra_options} linux-android.opt"
1315 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1318 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1319 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1321 arm*-*-uclinuxfdpiceabi)
1322 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1325 # Generation of floating-point instructions requires at least ARMv5te.
1326 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1327 target_cpu_cname="arm10e"
1329 target_cpu_cname="arm10tdmi"
1331 # Define multilib configuration for arm-linux-androideabi.
1334 tmake_file="$tmake_file arm/t-linux-androideabi"
1337 # The EABI requires the use of __cxa_atexit.
1338 default_use_cxa_atexit=yes
1339 with_tls=${with_tls:-gnu}
1341 arm*-*-uclinux*eabi*) # ARM ucLinux
1342 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1343 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1344 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1345 target_cpu_cname="arm7tdmi"
1346 # The EABI requires the use of __cxa_atexit.
1347 default_use_cxa_atexit=yes
1350 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1351 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1352 tm_file="${tm_file} arm/aout.h arm/arm.h"
1353 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1354 target_cpu_cname="arm7tdmi"
1356 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1359 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1361 default_use_cxa_atexit=yes
1362 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1363 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1364 target_cpu_cname="arm7tdmi"
1367 tm_file="$tm_file newlib-stdint.h"
1368 tmake_file="${tmake_file} arm/t-bpabi"
1372 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1373 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1374 target_cpu_cname="generic-armv7-a"
1377 tm_file="${tm_file} arm/rtems.h rtems.h newlib-stdint.h"
1378 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1381 tm_file="${tm_file} arm/symbian.h"
1382 # We do not include t-bpabi for Symbian OS because the system
1383 # provides its own implementation of the BPABI functions.
1384 tmake_file="${tmake_file} arm/t-symbian"
1385 target_cpu_cname="arm10tdmi"
1388 tm_file="${tm_file} arm/aout.h arm/arm.h"
1391 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1392 if test x${with_avrlibc} != xno; then
1393 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1394 tm_defines="${tm_defines} WITH_AVRLIBC"
1396 # Work out avr_double_comparison which is 2 or 3 and is used in
1397 # target hook FLOAT_LIB_COMPARE_RETURNS_BOOL to determine whether
1398 # DFmode comparisons return 3-state or 2-state results.
1399 case y${with_double_comparison} in
1401 avr_double_comparison=3
1404 avr_double_comparison=2
1407 echo "Error: --with-double-comparison= can only be used with: 'tristate', 'bool', 'libf7'" 1>&2
1411 case "y${with_libf7}" in
1413 # avr_double_comparison as set above.
1416 avr_double_comparison=2
1417 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1419 y | yyes | ymath-symbols)
1420 avr_double_comparison=2
1421 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1422 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1423 tm_defines="${tm_defines} WITH_LIBF7_MATH_SYMBOLS"
1426 avr_double_comparison=2
1427 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1428 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1431 echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
1435 tm_defines="${tm_defines} WITH_DOUBLE_COMPARISON=${avr_double_comparison}"
1436 case y${with_double} in
1439 tm_defines="${tm_defines} HAVE_DOUBLE32"
1443 tm_defines="${tm_defines} HAVE_DOUBLE64"
1447 avr_double_multilib=1
1448 tm_defines="${tm_defines} HAVE_DOUBLE32"
1449 tm_defines="${tm_defines} HAVE_DOUBLE64"
1450 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1454 avr_double_multilib=1
1455 tm_defines="${tm_defines} HAVE_DOUBLE32"
1456 tm_defines="${tm_defines} HAVE_DOUBLE64"
1457 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1460 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1464 case y${with_long_double} in
1467 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1471 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1475 avr_long_double_multilib=1
1476 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1477 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1478 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1482 avr_long_double_multilib=1
1483 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1484 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1485 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1488 avr_long_double=${avr_double}
1489 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1490 if test y${avr_double_multilib} = y1; then
1491 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1492 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1494 tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1498 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1502 if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1503 if test y${with_long_double} != ydouble; then
1504 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
1508 if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1509 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
1512 if test y${avr_double}${avr_long_double} = y6432; then
1513 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
1516 tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1517 tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1518 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1520 extra_gcc_objs="driver-avr.o avr-devices.o"
1521 extra_objs="avr-devices.o avr-log.o"
1524 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1525 tmake_file=bfin/t-bfin-elf
1529 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1530 tmake_file=bfin/t-bfin-uclinux
1533 bfin*-linux-uclibc*)
1534 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"
1535 tmake_file="${tmake_file} bfin/t-bfin-linux"
1539 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1540 tmake_file="${tmake_file} bfin/t-rtems"
1543 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1548 tm_file="elfos.h ${tm_file}"
1549 tmake_file="${tmake_file} bpf/t-bpf"
1551 extra_headers="bpf-helpers.h"
1552 use_gcc_stdint=provide
1553 extra_objs="coreout.o"
1554 target_gtfiles="$target_gtfiles \$(srcdir)/config/bpf/coreout.cc"
1557 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1558 tmake_file="${tmake_file} cr16/t-cr16 "
1561 cris-*-elf | cris-*-none)
1562 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1563 tmake_file="cris/t-cris cris/t-elfmulti"
1565 extra_options="${extra_options} cris/elf.opt"
1569 if test x${with_endian} != x; then
1570 case ${with_endian} in
1573 echo "with_endian=${with_endian} not supported."
1578 if test x${with_float} != x; then
1579 case ${with_float} in
1582 "Unknown floating point type used in --with-float=$with_float"
1587 tm_file="csky/csky.h"
1588 md_file="csky/csky.md"
1589 out_file="csky/csky.cc"
1590 tm_p_file="${tm_p_file} csky/csky-protos.h"
1591 extra_options="${extra_options} csky/csky_tables.opt"
1593 if test x${enable_tpf_debug} = xyes; then
1594 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1599 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1600 tmake_file="csky/t-csky csky/t-csky-elf"
1601 default_use_cxa_atexit=no
1605 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1606 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1610 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1611 # Force .init_array support. The configure script cannot always
1612 # automatically detect that GAS supports it, yet we require it.
1613 gcc_cv_initfini_array=yes
1615 csky-*-linux-uclibc*)
1616 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1617 default_use_cxa_atexit=no
1620 echo "Unknown target $target"
1626 echo "Unknown target $target"
1631 epiphany-*-elf | epiphany-*-rtems*)
1632 tm_file="dbxelf.h elfos.h ${tm_file}"
1633 tmake_file="${tmake_file} epiphany/t-epiphany"
1636 tm_file="${tm_file} epiphany/rtems.h rtems.h newlib-stdint.h"
1639 tm_file="${tm_file} newlib-stdint.h"
1642 extra_options="${extra_options} fused-madd.opt"
1643 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1644 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1645 extra_headers="epiphany_intrinsics.h"
1648 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1651 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1652 tmake_file=frv/t-frv
1655 tm_file="dbxelf.h elfos.h ${tm_file} \
1656 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1657 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1662 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1663 tmake_file="${tmake_file} ft32/t-ft32"
1666 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1667 tmake_file="gcn/t-gcn-hsa"
1668 native_system_header_dir=/include
1669 extra_modes=gcn/gcn-modes.def
1670 extra_objs="${extra_objs} gcn-tree.o"
1671 extra_gcc_objs="driver-gcn.o"
1673 x86_64*-*-linux-gnu )
1674 if test "$ac_cv_search_dlopen" != no; then
1675 extra_programs="${extra_programs} gcn-run\$(exeext)"
1679 if test x$enable_as_accelerator = xyes; then
1680 extra_programs="${extra_programs} mkoffload\$(exeext)"
1681 tm_file="${tm_file} gcn/offload.h"
1683 # Force .init_array support.
1684 gcc_cv_initfini_array=yes
1690 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1691 tmake_file="${tmake_file} moxie/t-moxie"
1696 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1697 tmake_file="${tmake_file} moxie/t-moxie"
1700 tmake_file="${tmake_file} moxie/t-moxie"
1701 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1706 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1707 tmake_file="${tmake_file} moxie/t-moxiebox"
1710 tmake_file="h8300/t-h8300"
1711 tm_file="h8300/h8300.h elfos.h newlib-stdint.h h8300/elf.h"
1714 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1715 tm_file="h8300/h8300.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1718 target_cpu_default="MASK_PA_11|MASK_PA_20"
1719 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1720 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1722 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1723 d_target_objs="${d_target_objs} pa-d.o"
1727 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1728 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1729 pa/pa32-regs.h pa/pa32-linux.h"
1730 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1731 d_target_objs="${d_target_objs} pa-d.o"
1734 target_cpu_default="MASK_PA_11"
1735 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1736 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1737 extra_options="${extra_options} openbsd.opt"
1738 tmake_file="pa/t-pa"
1739 d_target_objs="${d_target_objs} pa-d.o"
1744 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1745 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} \
1746 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1747 tmake_file="${tmake_file}"
1748 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1749 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1751 hppa[12]*-*-hpux10*)
1753 hppa1.1-*-* | hppa2*-*-*)
1754 target_cpu_default="MASK_PA_11"
1757 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1758 pa/pa-hpux.h pa/pa-hpux10.h"
1759 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1762 tm_file="${tm_file} pa/pa-hpux1010.h"
1763 extra_options="${extra_options} pa/pa-hpux1010.opt"
1766 use_gcc_stdint=provide
1767 tm_file="${tm_file} hpux-stdint.h"
1768 tmake_file="pa/t-pa t-slibgcc"
1769 d_target_objs="${d_target_objs} pa-d.o"
1770 case ${enable_threads} in
1772 if test x$have_pthread_h = xyes ; then
1773 tmake_file="${tmake_file} pa/t-dce-thr"
1777 tmake_file="${tmake_file} pa/t-dce-thr"
1782 if test "x$with_dwarf2" != x; then
1783 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1788 target_cpu_default="MASK_PA_11|MASK_PA_20"
1789 if test x$gnu_ld = xyes
1791 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1793 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1794 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1798 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1799 extra_options="${extra_options} pa/pa-hpux1111.opt"
1802 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1803 extra_options="${extra_options} pa/pa-hpux1131.opt"
1806 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1809 extra_options="${extra_options} pa/pa-hpux.opt \
1810 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1811 tmake_file="pa/t-pa t-slibgcc"
1812 d_target_objs="${d_target_objs} pa-d.o"
1813 case x${enable_threads} in
1821 use_gcc_stdint=provide
1822 tm_file="${tm_file} hpux-stdint.h"
1826 tm_file="${tm_file} hpux-stdint.h"
1830 hppa[12]*-*-hpux11*)
1832 hppa1.1-*-* | hppa2*-*-*)
1833 target_cpu_default="MASK_PA_11"
1836 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1837 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1838 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1842 tm_file="${tm_file} pa/pa-hpux1111.h"
1843 extra_options="${extra_options} pa/pa-hpux1111.opt"
1846 tm_file="${tm_file} pa/pa-hpux1131.h"
1847 extra_options="${extra_options} pa/pa-hpux1131.opt"
1850 tmake_file="pa/t-pa t-slibgcc"
1851 d_target_objs="${d_target_objs} pa-d.o"
1852 case x${enable_threads} in
1861 use_gcc_stdint=provide
1862 tm_file="${tm_file} hpux-stdint.h"
1866 tm_file="${tm_file} hpux-stdint.h"
1869 if test "x$with_dwarf2" != x; then
1870 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1874 i[34567]86-*-darwin1[89]* | i[34567]86-*-darwin2*)
1875 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1877 i[34567]86-*-darwin*)
1879 # Baseline choice for a machine that allows m64 support.
1880 with_cpu=${with_cpu:-core2}
1881 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1882 tm_file="${cpu_type}/darwin32-biarch.h ${tm_file} "
1884 x86_64-*-darwin1[89]* | x86_64-*-darwin2*)
1886 tm_defines="${tm_defines} TARGET_64BIT_DEFAULT=(OPTION_MASK_ISA_64BIT|OPTION_MASK_ABI_64)"
1887 tm_defines="${tm_defines} TARGET_BI_ARCH=0"
1888 with_cpu=${with_cpu:-core2}
1889 tmake_file="${tmake_file} t-slibgcc"
1892 with_cpu=${with_cpu:-core2}
1893 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1894 tm_file="${cpu_type}/darwin64-biarch.h ${tm_file} "
1896 i[34567]86-*-elfiamcu)
1897 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1900 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1903 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1906 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"
1909 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1912 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"
1913 tmake_file="i386/t-i386elf t-svr4"
1915 i[34567]86-*-dragonfly*)
1916 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1917 tmake_file="${tmake_file} i386/t-crtstuff"
1919 x86_64-*-dragonfly*)
1920 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"
1921 tmake_file="${tmake_file} i386/t-crtstuff"
1923 i[34567]86-*-freebsd*)
1924 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1927 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"
1929 i[34567]86-*-netbsdelf*)
1930 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1931 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1934 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1935 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1937 i[34567]86-*-openbsd*)
1938 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1939 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1940 extra_options="${extra_options} openbsd.opt"
1945 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1946 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1947 extra_options="${extra_options} openbsd.opt"
1951 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1952 # Intel 80386's running GNU/*
1953 # with ELF format using glibc 2
1954 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1956 i[34567]86-*-linux*)
1957 tm_file="${tm_file} linux.h linux-android.h"
1958 extra_options="${extra_options} linux-android.opt"
1959 if test x$enable_targets = xall; then
1960 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1961 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1962 tmake_file="${tmake_file} i386/t-linux64"
1963 x86_multilibs="${with_multilib_list}"
1964 if test "$x86_multilibs" = "default"; then
1965 x86_multilibs="m64,m32"
1967 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1968 for x86_multilib in ${x86_multilibs}; do
1969 case ${x86_multilib} in
1971 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1974 echo "--with-multilib-list=${x86_with_multilib} not supported."
1978 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1980 if test x$with_cpu = x; then
1981 if test x$with_cpu_64 = x; then
1985 case " $x86_cpus $x86_archs $x86_64_archs " in
1989 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1990 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1996 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1999 i[34567]86-*-kfreebsd*-gnu)
2000 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
2002 i[34567]86-*-kopensolaris*-gnu)
2003 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
2006 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
2010 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
2011 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
2012 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
2015 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
2016 extra_options="${extra_options} linux-android.opt"
2018 x86_64-*-kfreebsd*-gnu)
2019 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
2022 tmake_file="${tmake_file} i386/t-linux64"
2023 x86_multilibs="${with_multilib_list}"
2024 if test "$x86_multilibs" = "default"; then
2027 x86_multilibs="mx32"
2030 x86_multilibs="m64,m32"
2034 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
2035 for x86_multilib in ${x86_multilibs}; do
2036 case ${x86_multilib} in
2038 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
2041 echo "--with-multilib-list=${x86_with_multilib} not supported."
2045 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2047 i[34567]86-pc-msdosdjgpp*)
2048 xm_file=i386/xm-djgpp.h
2049 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
2050 native_system_header_dir=/dev/env/DJDIR/include
2051 extra_options="${extra_options} i386/djgpp.opt"
2056 i[34567]86-*-lynxos*)
2058 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
2059 tmake_file="${tmake_file} t-lynx"
2060 extra_options="${extra_options} lynx.opt"
2065 i[34567]86-*-nto-qnx*)
2066 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
2067 extra_options="${extra_options} i386/nto.opt"
2071 i[34567]86-*-rtems*)
2072 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"
2073 tmake_file="${tmake_file} i386/t-rtems"
2075 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
2076 # Set default arch_32 to pentium4, tune_32 to generic like the other
2077 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
2078 with_arch_32=${with_arch_32:-pentium4}
2079 with_tune_32=${with_tune_32:-generic}
2080 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
2081 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2082 tmake_file="$tmake_file i386/t-sol2"
2084 if test x$with_cpu = x; then
2085 if test x$with_cpu_64 = x; then
2089 case " $x86_cpus $x86_archs $x86_64_archs " in
2093 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2094 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2100 i[4567]86-wrs-vxworks*|x86_64-wrs-vxworks7*)
2101 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
2105 tm_file="${tm_file} i386/x86-64.h"
2108 tm_file="${tm_file} vx-common.h"
2111 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2112 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2115 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2116 tmake_file="${tmake_file} i386/t-vxworks"
2120 i[34567]86-*-cygwin*)
2121 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"
2122 xm_file=i386/xm-cygwin.h
2123 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2124 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc"
2125 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2126 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2127 c_target_objs="${c_target_objs} msformat-c.o"
2128 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2129 d_target_objs="${d_target_objs} winnt-d.o"
2130 target_has_targetdm="yes"
2131 if test x$enable_threads = xyes; then
2134 default_use_cxa_atexit=yes
2139 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"
2140 xm_file=i386/xm-cygwin.h
2141 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
2142 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc"
2143 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2144 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2145 c_target_objs="${c_target_objs} msformat-c.o"
2146 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2147 d_target_objs="${d_target_objs} winnt-d.o"
2148 target_has_targetdm="yes"
2149 if test x$enable_threads = xyes; then
2152 default_use_cxa_atexit=yes
2154 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2156 i[34567]86-*-mingw* | x86_64-*-mingw*)
2157 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
2158 xm_file=i386/xm-mingw32.h
2159 c_target_objs="${c_target_objs} winnt-c.o"
2160 cxx_target_objs="${cxx_target_objs} winnt-c.o"
2161 d_target_objs="${d_target_objs} winnt-d.o"
2162 target_has_targetcm="yes"
2163 target_has_targetdm="yes"
2165 x86_64-*-* | *-w64-*)
2171 if test x$enable_threads = xposix ; then
2172 tm_file="${tm_file} i386/mingw-pthread.h"
2174 tm_file="${tm_file} i386/mingw32.h"
2175 # This makes the logic if mingw's or the w64 feature set has to be used
2178 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2179 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2180 tm_file="${tm_file} i386/mingw-w64.h"
2181 if test x$enable_targets = xall; then
2182 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2183 if test x$with_cpu = x; then
2184 if test x$with_cpu_64 = x; then
2188 case " $x86_cpus $x86_archs $x86_64_archs " in
2192 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2193 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2203 tm_file="${tm_file} i386/mingw-stdint.h"
2204 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2207 tmake_file="${tmake_file} i386/t-mingw-w64"
2210 tmake_file="${tmake_file} i386/t-mingw-w32"
2213 native_system_header_dir=/mingw/include
2214 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc"
2215 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2218 extra_options="${extra_options} i386/mingw-w64.opt"
2223 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2224 c_target_objs="${c_target_objs} msformat-c.o"
2225 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2228 default_use_cxa_atexit=yes
2230 case ${enable_threads} in
2240 tm_file="${tm_file} i386/crtdll.h"
2242 *mingw32msv* | *mingw*)
2247 tmake_file="${tmake_file} i386/t-x86_64-elf"
2248 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2251 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2252 tmake_file="ia64/t-ia64"
2253 target_cpu_default="0"
2254 if test x$gas = xyes
2256 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2258 if test x$gnu_ld = xyes
2260 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2264 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2265 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2266 tmake_file="${tmake_file} ia64/t-ia64"
2269 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2270 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2271 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2274 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
2275 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2276 target_cpu_default="MASK_GNU_AS"
2277 case x$enable_threads in
2283 c_target_objs="ia64-c.o"
2284 cxx_target_objs="ia64-c.o"
2285 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2287 tm_file="${tm_file} hpux-stdint.h"
2290 tm_file="${tm_file} ia64/hpux-unix2003.h"
2295 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2296 tmake_file="${tmake_file} ia64/t-ia64"
2297 target_cpu_default="0"
2298 if test x$gas = xyes
2300 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2302 extra_options="${extra_options} ia64/vms.opt"
2305 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2306 out_file=iq2000/iq2000.cc
2307 md_file=iq2000/iq2000.md
2310 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2311 tmake_file="${tmake_file} lm32/t-lm32"
2314 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2315 tmake_file="${tmake_file} lm32/t-lm32"
2316 tmake_file="${tmake_file} lm32/t-rtems"
2319 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2320 tmake_file="${tmake_file} lm32/t-lm32"
2323 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2326 tm_file="elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2328 m68k-*-elf* | fido-*-elf*)
2331 # Check that $with_cpu makes sense.
2336 echo "Cannot accept --with-cpu=$with_cpu"
2343 default_m68k_cpu=68020
2347 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"
2348 tm_defines="${tm_defines} MOTOROLA=1"
2349 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2350 # Add multilibs for targets other than fido.
2355 tmake_file="$tmake_file m68k/t-mlibs"
2360 default_m68k_cpu=68020
2362 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2363 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2364 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2366 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2367 # with uClibc, using the new GNU/Linux-style
2369 default_m68k_cpu=68020
2371 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h"
2372 extra_options="${extra_options} m68k/uclinux.opt"
2373 tm_defines="${tm_defines} MOTOROLA=1"
2374 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2376 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2377 # with ELF format using glibc 2
2378 # aka the GNU/Linux C library 6.
2379 default_m68k_cpu=68020
2381 with_arch=${with_arch:-m68k}
2382 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2383 extra_options="${extra_options} m68k/ieee.opt"
2384 tm_defines="${tm_defines} MOTOROLA=1"
2385 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2388 default_m68k_cpu=68020
2390 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2391 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h newlib-stdint.h"
2392 tm_defines="${tm_defines} MOTOROLA=1"
2395 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2396 tmake_file=mcore/t-mcore
2402 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2405 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2408 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2409 tm_file="${tm_file} glibc-stdint.h"
2410 c_target_objs="${c_target_objs} microblaze-c.o"
2411 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2412 tmake_file="${tmake_file} microblaze/t-microblaze"
2413 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2415 microblaze*-*-rtems*)
2418 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2421 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2424 tm_file="${tm_file} dbxelf.h"
2425 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2426 c_target_objs="${c_target_objs} microblaze-c.o"
2427 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2428 tmake_file="${tmake_file} microblaze/t-microblaze"
2429 tmake_file="${tmake_file} microblaze/t-rtems"
2434 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2437 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2440 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2441 c_target_objs="${c_target_objs} microblaze-c.o"
2442 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2443 tmake_file="${tmake_file} microblaze/t-microblaze"
2446 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2447 case "x${enable_multilib}" in
2449 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2450 *) echo "Unknown value for enable_multilib"; exit 1
2452 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2456 riscv32be-*|riscv64be-*)
2457 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2460 # Force .init_array support. The configure script cannot always
2461 # automatically detect that GAS supports it, yet we require it.
2462 gcc_cv_initfini_array=yes
2464 riscv*-*-elf* | riscv*-*-rtems*)
2465 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2468 tm_file="${tm_file} riscv/rtems.h rtems.h"
2469 tmake_file="${tmake_file} riscv/t-rtems"
2472 if test "x${with_multilib_generator}" == xdefault; then
2473 case "x${enable_multilib}" in
2475 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2476 *) echo "Unknown value for enable_multilib"; exit 1
2480 tmake_file="${tmake_file} riscv/t-riscv"
2484 riscv32be-*|riscv64be-*)
2485 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2488 # Force .init_array support. The configure script cannot always
2489 # automatically detect that GAS supports it, yet we require it.
2490 gcc_cv_initfini_array=yes
2493 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2494 tmake_file="${tmake_file} riscv/t-riscv"
2498 riscv32be-*|riscv64be-*)
2499 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2502 # Force .init_array support. The configure script cannot always
2503 # automatically detect that GAS supports it, yet we require it.
2504 gcc_cv_initfini_array=yes
2507 loongarch*-*-linux*)
2508 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file}"
2509 tm_file="${tm_file} loongarch/gnu-user.h loongarch/linux.h"
2510 extra_options="${extra_options} linux-android.opt"
2511 tmake_file="${tmake_file} loongarch/t-linux"
2515 # Force .init_array support. The configure script cannot always
2516 # automatically detect that GAS supports it, yet we require it.
2517 gcc_cv_initfini_array=yes
2520 mips*-*-netbsd*) # NetBSD/mips, either endian.
2521 target_cpu_default="MASK_ABICALLS"
2522 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2523 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2526 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"
2527 extra_options="${extra_options} linux-android.opt"
2528 tmake_file="${tmake_file} mips/t-img-linux"
2529 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2530 with_arch_32="mips32r6"
2531 with_arch_64="mips64r6"
2536 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"
2537 extra_options="${extra_options} linux-android.opt"
2538 tmake_file="${tmake_file} mips/t-mti-linux"
2539 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2540 with_arch_32="mips32r2"
2541 with_arch_64="mips64r2"
2545 mips*-*-linux*) # Linux MIPS, either endian.
2546 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"
2547 extra_options="${extra_options} linux-android.opt"
2550 default_mips_arch=mips32r6
2553 default_mips_arch=mips32r2
2556 default_mips_arch=mips32
2558 mips64el-st-linux-gnu)
2559 default_mips_abi=n32
2560 tm_file="${tm_file} mips/st.h"
2561 tmake_file="${tmake_file} mips/t-st"
2562 enable_mips_multilibs="yes"
2564 mips64octeon*-*-linux*)
2565 default_mips_abi=n32
2566 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2567 target_cpu_default=MASK_SOFT_FLOAT_ABI
2568 enable_mips_multilibs="yes"
2570 mipsisa64r6*-*-linux-gnuabi64)
2572 default_mips_arch=mips64r6
2573 enable_mips_multilibs="yes"
2575 mipsisa64r6*-*-linux*)
2576 default_mips_abi=n32
2577 default_mips_arch=mips64r6
2578 enable_mips_multilibs="yes"
2580 mipsisa64r2*-*-linux-gnuabi64)
2582 default_mips_arch=mips64r2
2583 enable_mips_multilibs="yes"
2585 mipsisa64r2*-*-linux*)
2586 default_mips_abi=n32
2587 default_mips_arch=mips64r2
2588 enable_mips_multilibs="yes"
2590 mips64*-*-linux-gnuabi64 | mipsisa64*-*-linux-gnuabi64)
2592 enable_mips_multilibs="yes"
2594 mips64*-*-linux* | mipsisa64*-*-linux*)
2595 default_mips_abi=n32
2596 enable_mips_multilibs="yes"
2599 if test x$enable_targets = xall; then
2600 enable_mips_multilibs="yes"
2602 if test x$enable_mips_multilibs = xyes; then
2603 tmake_file="${tmake_file} mips/t-linux64"
2607 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2608 tmake_file="mips/t-mti-elf"
2609 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2610 with_arch_32="mips32r2"
2611 with_arch_64="mips64r2"
2614 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2615 tmake_file="mips/t-img-elf"
2616 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2617 with_arch_32="mips32r6"
2618 with_arch_64="mips64r6"
2621 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2622 tmake_file="mips/t-sde"
2623 extra_options="${extra_options} mips/sde.opt"
2624 case "${with_newlib}" in
2626 # newlib / libgloss.
2629 # MIPS toolkit libraries.
2630 tm_file="$tm_file mips/sdemtk.h"
2631 tmake_file="$tmake_file mips/t-sdemtk"
2632 case ${enable_threads} in
2634 thread_file='mipssde'
2641 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2644 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2647 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32 MIPS_ABI_DEFAULT=ABI_32"
2650 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6 MIPS_ABI_DEFAULT=ABI_N32"
2653 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2 MIPS_ABI_DEFAULT=ABI_N32"
2656 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_ABI_DEFAULT=ABI_N32"
2660 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2661 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2662 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2663 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2664 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2665 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2666 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2667 tmake_file="mips/t-isa3264"
2670 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6"
2673 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2"
2676 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32"
2679 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6"
2682 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2"
2685 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64"
2689 mipsisa32*-*-elfoabi*)
2690 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2691 tm_file="${tm_file} mips/elfoabi.h"
2693 mipsisa64*-*-elfoabi*)
2694 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2695 tm_file="${tm_file} mips/elfoabi.h"
2698 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2702 mipsisa64sr71k-*-elf*)
2703 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2704 tmake_file=mips/t-sr71k
2705 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2707 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2708 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2709 tmake_file="mips/t-elf mips/t-sb1"
2710 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2712 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2713 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2714 tmake_file="mips/t-elf"
2716 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2717 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2718 tmake_file="mips/t-elf"
2719 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_N32"
2721 mips64-*-elf* | mips64el-*-elf*)
2722 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2723 tmake_file="mips/t-elf"
2724 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2726 mips64vr-*-elf* | mips64vrel-*-elf*)
2727 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2728 tmake_file=mips/t-vr
2729 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2731 mips64orion-*-elf* | mips64orionel-*-elf*)
2732 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2733 tmake_file="mips/t-elf"
2734 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2737 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2738 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2741 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2742 tmake_file="${tmake_file} mips/t-vxworks"
2744 mipstx39-*-elf* | mipstx39el-*-elf*)
2745 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2746 tmake_file="mips/t-r3900"
2748 mmix-knuth-mmixware)
2749 tm_file="${tm_file} newlib-stdint.h"
2753 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2758 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2759 c_target_objs="msp430-c.o"
2760 cxx_target_objs="msp430-c.o"
2761 tmake_file="${tmake_file} msp430/t-msp430"
2762 extra_objs="${extra_objs} msp430-devices.o"
2763 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2764 # Enable .init_array unless it has been explicitly disabled.
2765 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2766 # code since mid-2019 expects it.
2767 if test x${disable_initfini_array} != xyes; then
2768 gcc_cv_initfini_array=yes
2772 # __cxa_atexit increases code size, and we don't need to support
2773 # dynamic shared objects on MSP430, so regular Newlib atexit is a
2774 # fine replacement as it also supports registration of more than 32
2776 default_use_cxa_atexit=no
2777 # This target does not match the generic *-*-elf case above which
2778 # sets use_gcc_stdint=wrap, so explicitly set it here.
2784 target_cpu_default="0"
2785 tm_defines="${tm_defines}"
2790 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2791 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2796 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2797 tmake_file="nds32/t-nds32 nds32/t-elf"
2800 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2801 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2802 gcc_cv_initfini_array=yes
2806 # Handle --enable-default-relax setting.
2807 if test x${enable_default_relax} = xyes; then
2808 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2810 # Handle --with-ext-dsp
2811 if test x${with_ext_dsp} = xyes; then
2812 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2816 tm_file="elfos.h ${tm_file}"
2817 tmake_file="${tmake_file} nios2/t-nios2"
2820 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2823 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2824 extra_options="${extra_options} nios2/elf.opt"
2827 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2828 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2833 tm_file="${tm_file} newlib-stdint.h"
2835 tmake_file="nvptx/t-nvptx"
2836 if test x$enable_as_accelerator = xyes; then
2837 extra_programs="${extra_programs} mkoffload\$(exeext)"
2838 tm_file="${tm_file} nvptx/offload.h"
2842 tm_file="elfos.h ${tm_file}"
2843 tmake_file="${tmake_file} or1k/t-or1k"
2844 # Force .init_array support. The configure script cannot always
2845 # automatically detect that GAS supports it, yet we require it.
2846 gcc_cv_initfini_array=yes
2848 # Handle --with-multilib-list=...
2849 or1k_multilibs="${with_multilib_list}"
2850 if test "$or1k_multilibs" = "default"; then
2851 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2853 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2854 for or1k_multilib in ${or1k_multilibs}; do
2855 case ${or1k_multilib} in
2856 mcmov | msext | msfimm | \
2858 mhard-float | mdouble-float | munordered-float | msoft-float | \
2859 mhard-div | mhard-mul | \
2860 msoft-div | msoft-mul )
2861 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2864 echo "--with-multilib-list=${with_multilib_list} not supported."
2868 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2872 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2873 tm_file="${tm_file} or1k/linux.h"
2876 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2877 extra_options="${extra_options} or1k/elf.opt"
2880 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2881 tmake_file="${tmake_file} or1k/t-rtems"
2886 tm_file="${tm_file} newlib-stdint.h"
2889 # port not yet contributed
2890 #powerpc-*-openbsd*)
2891 # tmake_file="${tmake_file} rs6000/t-fprules"
2895 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2897 *-darwin1[0-9]* | *-darwin9*)
2898 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2899 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2902 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2903 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2906 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2909 # Earlier - ingle arch, with 32b only
2910 # OS X 10.0, the first edition is Darwin4
2913 tmake_file="${tmake_file} t-slibgcc"
2915 powerpc64-*-darwin*)
2916 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2917 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2918 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2920 powerpc*-*-freebsd*)
2921 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2922 extra_options="${extra_options} rs6000/sysv4.opt"
2923 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2926 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2930 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2931 tmake_file="${tmake_file} rs6000/t-freebsd64"
2932 extra_options="${extra_options} rs6000/linux64.opt"
2933 if test $fbsd_major -ge 13; then
2934 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2938 if test $fbsd_major -ge 13; then
2939 tm_file="rs6000/secureplt.h ${tm_file}"
2941 tm_file="${tm_file} rs6000/freebsd.h"
2946 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2947 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2948 tmake_file="${tmake_file} rs6000/t-netbsd"
2949 extra_options="${extra_options} rs6000/sysv4.opt"
2951 powerpc-*-eabisimaltivec*)
2952 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"
2953 extra_options="${extra_options} rs6000/sysv4.opt"
2954 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2958 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"
2959 extra_options="${extra_options} rs6000/sysv4.opt"
2960 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2964 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2965 extra_options="${extra_options} rs6000/sysv4.opt"
2966 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2968 powerpc-*-eabialtivec*)
2969 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"
2970 extra_options="${extra_options} rs6000/sysv4.opt"
2971 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2975 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"
2976 extra_options="${extra_options} rs6000/sysv4.opt"
2977 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2981 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"
2982 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2983 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2986 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2987 extra_options="${extra_options} rs6000/sysv4.opt"
2988 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2989 extra_objs="$extra_objs rs6000-linux.o"
2992 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2994 case ${target}:${with_cpu} in
2995 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2997 maybe_biarch=${cpu_is_64bit}
2998 case ${enable_targets} in
2999 *powerpc64*) maybe_biarch=yes ;;
3000 all) maybe_biarch=yes ;;
3002 case ${target}:${enable_targets}:${maybe_biarch} in
3003 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
3004 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
3005 | powerpcle-*:*powerpc64le*:yes)
3006 if test x$cpu_is_64bit = xyes; then
3007 tm_file="${tm_file} rs6000/default64.h"
3009 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
3010 tmake_file="$tmake_file rs6000/t-linux64"
3013 tmake_file="$tmake_file rs6000/t-linux64le"
3014 case ${enable_targets} in
3015 all | *powerpc64-* | *powerpc-*)
3016 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
3019 case ${enable_targets} in
3020 all | *powerpc64le-* | *powerpcle-*)
3021 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
3024 extra_options="${extra_options} rs6000/linux64.opt"
3027 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
3028 extra_options="${extra_options} rs6000/linux64.opt"
3029 tmake_file="${tmake_file} rs6000/t-linux"
3032 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
3033 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
3037 powerpc*-*-linux*ppc476*)
3038 tm_file="${tm_file} rs6000/476.h"
3039 extra_options="${extra_options} rs6000/476.opt" ;;
3040 powerpc*-*-linux*altivec*)
3041 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
3045 enable_secureplt=yes ;;
3047 if test x${enable_secureplt} = xyes; then
3048 tm_file="rs6000/secureplt.h ${tm_file}"
3051 powerpc*-wrs-vxworks7r*)
3053 # Wind River 7 post SR0600 is mostly like Linux so we setup
3054 # our config in a very similar fashion and adjust to a few
3057 # The system compiler is configured with secureplt by default.
3058 tm_file="${tm_file} rs6000/secureplt.h"
3060 tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h"
3061 tm_file="${tm_file} rs6000/sysv4.h rs6000/biarch64.h rs6000/default64.h rs6000/linux64.h"
3062 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3064 extra_options="${extra_options} rs6000/sysv4.opt linux.opt rs6000/linux64.opt"
3066 tmake_file="${tmake_file} t-linux rs6000/t-linux64 rs6000/t-fprules rs6000/t-ppccomm"
3067 tmake_file="${tmake_file} rs6000/t-vxworks"
3069 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
3070 extra_objs="$extra_objs linux.o rs6000-linux.o"
3072 powerpc-wrs-vxworks*)
3073 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
3074 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
3075 extra_options="${extra_options} rs6000/sysv4.opt"
3076 extra_headers="${extra_headers} ppc-asm.h"
3079 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
3080 tmake_file="${tmake_file} rs6000/t-vxworksmils"
3083 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
3084 tmake_file="${tmake_file} rs6000/t-vxworksae"
3087 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3093 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3094 tmake_file="t-lynx rs6000/t-lynx"
3095 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3101 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"
3102 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3103 extra_options="${extra_options} rs6000/sysv4.opt"
3105 powerpcle-*-eabisim*)
3106 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"
3107 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3108 extra_options="${extra_options} rs6000/sysv4.opt"
3112 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"
3113 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3114 extra_options="${extra_options} rs6000/sysv4.opt"
3118 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3119 tmake_file="${tmake_file} pru/t-pru"
3120 extra_objs="pru-pragma.o pru-passes.o"
3123 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3124 tmake_file="rs6000/t-aix52 t-slibgcc"
3125 if test x$cpu_is_64bit = xyes; then
3126 tm_file="${tm_file} rs6000/biarch64.h"
3127 tmake_file="rs6000/t-aix64 t-slibgcc"
3129 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3130 extra_options="${extra_options} rs6000/aix64.opt"
3134 default_use_cxa_atexit=yes
3136 rs6000-ibm-aix7.2.* | powerpc-ibm-aix7.2.*)
3137 tmake_file="rs6000/t-aix52 t-slibgcc"
3138 if test x$cpu_is_64bit = xyes; then
3139 tm_file="${tm_file} rs6000/biarch64.h"
3140 tmake_file="rs6000/t-aix64 t-slibgcc"
3142 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3143 extra_options="${extra_options} rs6000/aix64.opt"
3147 default_use_cxa_atexit=yes
3149 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3150 tmake_file="rs6000/t-aix52 t-slibgcc"
3151 if test x$cpu_is_64bit = xyes; then
3152 tm_file="${tm_file} rs6000/biarch64.h"
3153 tmake_file="rs6000/t-aix64 t-slibgcc"
3155 tm_file="${tm_file} rs6000/aix.h rs6000/aix73.h rs6000/xcoff.h rs6000/aix-stdint.h"
3156 extra_options="${extra_options} rs6000/aix64.opt"
3160 default_use_cxa_atexit=yes
3163 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3164 target_has_targetm_common=no
3165 c_target_objs="rl78-c.o"
3166 cxx_target_objs="rl78-c.o"
3167 tmake_file="${tmake_file} rl78/t-rl78"
3170 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3171 tmake_file="${tmake_file} rx/t-rx"
3172 extra_options="${extra_options} rx/elf.opt"
3175 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3176 tmake_file="${tmake_file} rx/t-linux"
3179 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3180 c_target_objs="${c_target_objs} s390-c.o"
3181 cxx_target_objs="${cxx_target_objs} s390-c.o"
3182 if test x$enable_targets = xall; then
3183 tmake_file="${tmake_file} s390/t-linux64"
3185 tmake_file="${tmake_file} s390/t-s390"
3188 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3189 tm_p_file="linux-protos.h s390/s390-protos.h"
3190 c_target_objs="${c_target_objs} s390-c.o"
3191 cxx_target_objs="${cxx_target_objs} s390-c.o"
3192 md_file=s390/s390.md
3193 extra_modes=s390/s390-modes.def
3194 out_file=s390/s390.cc
3195 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3198 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h glibc-stdint.h s390/tpf.h"
3199 tm_p_file=s390/s390-protos.h
3200 c_target_objs="${c_target_objs} s390-c.o"
3201 cxx_target_objs="${cxx_target_objs} s390-c.o"
3202 md_file=s390/s390.md
3203 extra_modes=s390/s390-modes.def
3204 out_file=s390/s390.cc
3206 extra_options="${extra_options} s390/tpf.opt"
3207 tmake_file="${tmake_file} s390/t-s390"
3209 sh-*-elf* | sh[12346l]*-*-elf* | \
3210 sh-*-linux* | sh[2346lbe]*-*-linux* | \
3211 sh-*-netbsdelf* | shl*-*-netbsdelf*)
3212 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3213 if test x${with_endian} = x; then
3215 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3216 shbe-*-* | sheb-*-*) with_endian=big,little ;;
3217 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
3218 shl* | sh*-*-linux* | \
3219 sh-superh-elf) with_endian=little,big ;;
3220 sh[1234]*-*-*) with_endian=big ;;
3221 *) with_endian=big,little ;;
3224 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3225 # First word : the default endian.
3226 # Second word: the secondary endian (optional).
3227 case ${with_endian} in
3228 big) TM_ENDIAN_CONFIG=mb ;;
3229 little) TM_ENDIAN_CONFIG=ml ;;
3230 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
3231 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
3232 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
3234 case ${with_endian} in
3235 little*) tm_file="sh/little.h ${tm_file}" ;;
3237 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
3239 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
3240 if test x$enable_fdpic = xyes; then
3241 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3243 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3245 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3246 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3249 sh*-superh-elf) if test x$with_libgloss != xno; then
3251 tm_file="${tm_file} sh/newlib.h"
3253 tm_file="${tm_file} sh/embed-elf.h"
3254 tm_file="${tm_file} sh/superh.h"
3255 extra_options="${extra_options} sh/superh.opt" ;;
3256 *) if test x$with_newlib = xyes \
3257 && test x$with_libgloss = xyes; then
3258 tm_file="${tm_file} sh/newlib.h"
3260 tm_file="${tm_file} sh/embed-elf.h" ;;
3266 tm_file="${tm_file} newlib-stdint.h"
3269 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3270 case `echo ${target} | sed 's/e[lb]-/-/'` in
3271 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
3272 sh4a_single*) sh_cpu_target=sh4a-single ;;
3273 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
3274 sh4al) sh_cpu_target=sh4al ;;
3275 sh4a*) sh_cpu_target=sh4a ;;
3276 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3277 sh4_single*) sh_cpu_target=sh4-single ;;
3278 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3279 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3280 sh3e*) sh_cpu_target=sh3e ;;
3281 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3282 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3283 sh2a_single*) sh_cpu_target=sh2a-single ;;
3284 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3285 sh2a*) sh_cpu_target=sh2a ;;
3286 sh2e*) sh_cpu_target=sh2e ;;
3287 sh2*) sh_cpu_target=sh2 ;;
3288 *) sh_cpu_target=sh1 ;;
3290 # did the user say --without-fp ?
3291 if test x$with_fp = xno; then
3292 case ${sh_cpu_target} in
3294 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3295 sh4*) sh_cpu_target=sh4-nofpu ;;
3296 sh3*) sh_cpu_target=sh3 ;;
3297 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3298 sh2*) sh_cpu_target=sh2 ;;
3299 *) echo --without-fp not available for $target: ignored
3301 tm_defines="$tm_defines STRICT_NOFPU=1"
3303 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3304 case $sh_cpu_default in
3305 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3306 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3307 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3308 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3309 "") sh_cpu_default=${sh_cpu_target} ;;
3310 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3312 sh_multilibs=${with_multilib_list}
3313 if test "$sh_multilibs" = "default" ; then
3315 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3316 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3317 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3318 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3319 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3321 if test x$with_fp = xno; then
3322 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`"
3325 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3326 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3327 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3328 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3329 for sh_multilib in ${sh_multilibs}; do
3330 case ${sh_multilib} in
3331 m1 | m2 | m2e | m3 | m3e | \
3332 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3333 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3334 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3335 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3336 # It is passed to MULTIILIB_OPTIONS verbatim.
3337 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3338 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3340 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3341 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3342 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3344 echo "with_multilib_list=${sh_multilib} not supported."
3349 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3350 if test x${enable_incomplete_targets} = xyes ; then
3351 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3353 tm_file="$tm_file ./sysroot-suffix.h"
3354 tmake_file="$tmake_file t-sysroot-suffix"
3357 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3358 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3361 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3362 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3365 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3368 tmake_file="sparc/t-sparc sparc/t-leon"
3371 tmake_file="sparc/t-sparc sparc/t-leon3"
3374 tmake_file="sparc/t-sparc sparc/t-elf"
3379 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3380 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3383 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3384 extra_options="${extra_options} sparc/long-double-switch.opt"
3387 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3390 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3393 tmake_file="${tmake_file} sparc/t-sparc"
3396 if test x$enable_targets = xall; then
3397 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3398 tmake_file="${tmake_file} sparc/t-linux64"
3400 tm_file="${tm_file} sparc/linux.h"
3401 tmake_file="${tmake_file} sparc/t-linux"
3405 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3406 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3407 extra_options="${extra_options} sparc/long-double-switch.opt"
3408 tmake_file="${tmake_file} sparc/t-sparc"
3411 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3413 sparc64-*-* | sparcv9-*-*)
3414 tm_file="sparc/default64.h ${tm_file}"
3417 test x$with_cpu != x || with_cpu=v9
3420 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3423 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3424 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3427 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3428 extra_options="${extra_options}"
3429 tmake_file="${tmake_file} sparc/t-sparc"
3432 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3433 extra_options="${extra_options}"
3434 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3437 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"
3438 extra_options="${extra_options} sparc/long-double-switch.opt"
3439 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3441 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3442 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3443 extra_options="${extra_options} sparc/long-double-switch.opt"
3444 case "x$with_cpu" in
3446 x) with_cpu=ultrasparc ;;
3447 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3449 tmake_file="${tmake_file} sparc/t-sparc"
3452 tm_file="sparc/biarch64.h ${tm_file}"
3453 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3454 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3455 extra_options="${extra_options} sparc/long-double-switch.opt"
3456 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3459 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3460 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3461 extra_options="${extra_options} openbsd.opt"
3462 extra_options="${extra_options}"
3465 tmake_file="${tmake_file} sparc/t-sparc"
3468 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3469 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3470 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3474 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3475 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3476 tm_file="${tm_file} ./sysroot-suffix.h"
3477 tmake_file="t-sysroot-suffix t-slibgcc"
3478 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3482 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3483 tmake_file="${tmake_file} tilegx/t-tilegx"
3484 extra_objs="${extra_objs} mul-tables.o"
3485 c_target_objs="${c_target_objs} tilegx-c.o"
3486 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3487 extra_headers="feedback.h"
3490 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3495 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3496 tmake_file="${tmake_file} tilepro/t-tilepro"
3497 extra_objs="${extra_objs} mul-tables.o"
3498 c_target_objs="${c_target_objs} tilepro-c.o"
3499 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3500 extra_headers="feedback.h"
3503 target_cpu_default="TARGET_CPU_generic"
3504 tm_file="elfos.h v850/v850.h"
3505 tm_file="${tm_file} v850/rtems.h rtems.h newlib-stdint.h"
3506 tmake_file="${tmake_file} v850/t-v850"
3507 tmake_file="${tmake_file} v850/t-rtems"
3509 c_target_objs="v850-c.o"
3510 cxx_target_objs="v850-c.o"
3515 target_cpu_default="TARGET_CPU_v850e3v5"
3518 target_cpu_default="TARGET_CPU_v850e2v3"
3521 target_cpu_default="TARGET_CPU_v850e2"
3523 v850e1-*-* | v850es-*-*)
3524 target_cpu_default="TARGET_CPU_v850e1"
3527 target_cpu_default="TARGET_CPU_v850e"
3530 target_cpu_default="TARGET_CPU_generic"
3533 tm_file="elfos.h newlib-stdint.h v850/v850.h"
3535 c_target_objs="v850-c.o"
3536 cxx_target_objs="v850-c.o"
3540 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3541 extra_options="${extra_options} vax/elf.opt"
3544 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3545 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3546 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3549 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3550 tmake_file="visium/t-visium visium/t-crtstuff"
3553 # For historical reasons, the target files omit the 'x'.
3554 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3555 tm_p_file=stormy16/stormy16-protos.h
3556 tm_d_file="elfos.h stormy16/stormy16.h"
3557 md_file=stormy16/stormy16.md
3558 out_file=stormy16/stormy16.cc
3559 extra_options=stormy16/stormy16.opt
3560 tmake_file="stormy16/t-stormy16"
3563 tm_file="${tm_file} elfos.h newlib-stdint.h xtensa/elf.h"
3564 extra_options="${extra_options} xtensa/elf.opt"
3567 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3568 tmake_file="${tmake_file} xtensa/t-xtensa"
3571 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3572 tmake_file="${tmake_file} xtensa/t-xtensa"
3573 extra_options="${extra_options} xtensa/uclinux.opt"
3576 tm_file="mn10300/mn10300.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3581 tm_file="elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3582 c_target_objs="m32c-pragma.o"
3583 cxx_target_objs="m32c-pragma.o"
3586 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3587 c_target_objs="m32c-pragma.o"
3588 cxx_target_objs="m32c-pragma.o"
3591 echo "*** Configuration ${target} not supported (ignored)" 1>&2
3596 i[34567]86-*-linux* | x86_64-*-linux*)
3597 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3599 i[34567]86-*-* | x86_64-*-*)
3600 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3602 powerpc*-*-* | rs6000-*-*)
3603 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3609 tmake_file="${tmake_file} t-musl"
3612 tmake_file="${tmake_file} t-uclibc"
3616 # Assume the existence of indirect function support and allow the use of the
3617 # resolver attribute.
3619 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3621 *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
3623 *-*-linux* | *-*-gnu*)
3625 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-* | loongarch*-*)
3626 default_gnu_indirect_function=yes
3632 # Build mkoffload tool
3634 *-intelmic-* | *-intelmicemul-*)
3635 tmake_file="${tmake_file} i386/t-intelmic"
3636 tm_file="${tm_file} i386/intelmic-offload.h"
3640 if [ "$target_has_targetcm" = "no" ]; then
3641 c_target_objs="$c_target_objs default-c.o"
3642 cxx_target_objs="$cxx_target_objs default-c.o"
3645 if [ "$common_out_file" = "" ]; then
3646 if [ "$target_has_targetm_common" = "yes" ]; then
3647 common_out_file="$cpu_type/$cpu_type-common.cc"
3649 common_out_file="default-common.cc"
3653 if [ "$target_has_targetdm" = "no" ]; then
3654 d_target_objs="$d_target_objs default-d.o"
3657 # Support for --with-cpu and related options (and a few unrelated options,
3661 echo "--with-cpu must be passed a value" 1>&2
3666 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3667 # to generic if there is no processor scheduler model for the target.
3670 arch_without_sse2=no
3671 arch_without_64bit=no
3674 if test $fbsd_major -ge 6; then
3680 arch_without_sse2=yes
3681 arch_without_64bit=yes
3686 arch_without_sse2=yes
3687 arch_without_64bit=yes
3692 arch_without_sse2=yes
3693 arch_without_64bit=yes
3698 arch_without_sse2=yes
3699 arch_without_64bit=yes
3702 arch_without_sse2=yes
3703 arch_without_64bit=yes
3704 case ${target_noncanonical} in
3717 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3727 i686-*-* | i786-*-*)
3728 case ${target_noncanonical} in
3765 amdfam10-*|barcelona-*)
3769 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3773 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3777 athlon_xp-*|athlon_mp-*|athlon_4-*)
3780 arch_without_sse2=yes
3781 arch_without_64bit=yes
3783 athlon_tbird-*|athlon-*)
3786 arch_without_sse2=yes
3791 arch_without_sse2=yes
3796 arch_without_sse2=yes
3798 pentium3-*|pentium3m-*)
3801 arch_without_sse2=yes
3803 pentium4-*|pentium4m-*)
3842 arch_without_sse2=yes
3847 arch_without_sse2=yes
3848 arch_without_64bit=yes
3853 case ${target_noncanonical} in
3890 amdfam10-*|barcelona-*)
3894 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3898 k8-*|opteron-*|athlon_64-*)
3930 # If there is no $with_cpu option, try to infer one from ${target}.
3931 # This block sets nothing except for with_cpu.
3932 if test x$with_cpu = x ; then
3934 i[34567]86-*-elfiamcu)
3937 i[34567]86-*-*|x86_64-*-*)
3955 frv-*-*linux* | frv400-*-*linux*)
3962 case "$with_arch" in
3964 with_cpu=${default_cf_cpu}
3967 with_cpu=m${default_m68k_cpu}
3983 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3992 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3994 i[34567]86-*-*|x86_64-*-*)
3995 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3996 if test x$with_cpu_32 = x; then
3997 with_cpu_32=$with_cpu
3999 if test x$with_cpu_64 = x; then
4000 with_cpu_64=$with_cpu
4008 # Support for --with-arch and related options (and a few unrelated options,
4010 case ${with_arch} in
4012 echo "--with-arch must be passed a value" 1>&2
4017 # If there is no $with_arch option, try to infer one from ${target}.
4018 # This block sets nothing except for with_arch.
4019 if test x$with_arch = x ; then
4021 i[34567]86-*-darwin*|x86_64-*-darwin*)
4022 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4023 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4025 i[34567]86-*-elfiamcu)
4029 # --with-fpmath sets the default ISA to SSE2, which is the same
4030 # ISA supported by Pentium 4.
4031 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
4040 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4048 # Avoid overriding --with-arch-32 and --with-arch-64 values.
4050 i[34567]86-*-darwin*|x86_64-*-darwin*)
4051 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4052 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4054 i[34567]86-*-*|x86_64-*-*)
4055 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
4056 if test x$with_arch_32 = x; then
4057 with_arch_32=$with_arch
4059 if test x$with_arch_64 = x; then
4060 if test $arch_without_64bit = yes; then
4061 # Set the default 64bit arch to x86-64 if the default arch
4062 # doesn't support 64bit.
4065 with_arch_64=$with_arch
4069 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
4070 # Set the default 64bit arch to x86-64 if the default arch
4071 # doesn't support 64bit and we need 64bit ISA.
4072 with_arch_32=$with_arch
4080 # Infer a default setting for --with-float.
4081 if test x$with_float = x; then
4083 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4084 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
4085 # comply with IEEE 754.
4091 # Infer a default setting for --with-fpu.
4092 if test x$with_fpu = x; then
4094 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4095 # The R5900 FPU only supports single precision.
4101 # Support --with-fpmath.
4102 if test x$with_fpmath != x; then
4104 i[34567]86-*-* | x86_64-*-*)
4105 case ${with_fpmath} in
4107 tm_file="${tm_file} i386/avxmath.h"
4110 tm_file="${tm_file} i386/ssemath.h"
4113 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4119 echo "--with-fpmath isn't supported for $target." 1>&2
4125 # Similarly for --with-schedule.
4126 if test x$with_schedule = x; then
4129 # Override default PA8000 scheduling model.
4130 with_schedule=7100LC
4135 # Infer a default setting for --with-llsc.
4136 if test x$with_llsc = x; then
4139 # The kernel emulates LL and SC where necessary.
4142 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4143 # The R5900 doesn't support LL(D) and SC(D).
4149 # Validate and mark as valid any --with options supported
4150 # by this target. In order to use a particular --with option
4151 # you must list it in supported_defaults; validating the value
4152 # is optional. This case statement should set nothing besides
4153 # supported_defaults.
4158 supported_defaults="abi cpu cpu_64 arch arch_64 tune tune_64"
4159 if test x$with_cpu_64 != x && test x$with_cpu = x; then
4160 with_cpu=$with_cpu_64
4162 if test x$with_arch_64 != x && test x$with_arch = x; then
4163 with_arch=$with_arch_64
4165 if test x$with_tune_64 != x && test x$with_tune = x; then
4166 with_tune=$with_tune_64
4168 for which in cpu arch tune; do
4169 eval "val=\$with_$which"
4170 base_val=`echo $val | sed -e 's/\+.*//'`
4171 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4173 if [ $which = arch ]; then
4174 def=aarch64-arches.def
4175 pattern=AARCH64_ARCH
4177 def=aarch64-cores.def
4178 pattern=AARCH64_CORE
4181 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
4183 # Find the base CPU or ARCH id in aarch64-cores.def or
4184 # aarch64-arches.def
4185 if [ x"$base_val" = x ] \
4186 || grep "^$pattern(\"$base_val\"," \
4187 ${srcdir}/config/aarch64/$def \
4190 if [ $which = arch ]; then
4191 base_id=`grep "^$pattern(\"$base_val\"," \
4192 ${srcdir}/config/aarch64/$def | \
4193 sed -e 's/^[^,]*,[ ]*//' | \
4195 # Extract the architecture flags from aarch64-arches.def
4196 ext_mask=`grep "^$pattern(\"$base_val\"," \
4197 ${srcdir}/config/aarch64/$def | \
4201 base_id=`grep "^$pattern(\"$base_val\"," \
4202 ${srcdir}/config/aarch64/$def | \
4203 sed -e 's/^[^,]*,[ ]*//' | \
4207 # Disallow extensions in --with-tune=cortex-a53+crc.
4208 if [ $which = tune ] && [ x"$ext_val" != x ]; then
4209 echo "Architecture extensions not supported in --with-$which=$val" 1>&2
4213 # Use the pre-processor to strip flatten the options.
4214 # This makes the format less rigid than if we use
4215 # grep and sed directly here.
4216 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4217 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4218 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4220 # Match one element inside AARCH64_OPT_EXTENSION, we
4221 # consume anything that's not a ,.
4222 elem="[ ]*\([^,]\+\)[ ]*"
4224 # Repeat the pattern for the number of entries in the
4225 # AARCH64_OPT_EXTENSION, currently 6 times.
4226 sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
4228 while [ x"$ext_val" != x ]
4230 ext_val=`echo $ext_val | sed -e 's/\+//'`
4231 ext=`echo $ext_val | sed -e 's/\+.*//'`
4232 base_ext=`echo $ext | sed -e 's/^no//'`
4233 opt_line=`echo -e "$options_parsed" | \
4234 grep "^\"$base_ext\""`
4236 if [ x"$base_ext" = x ] \
4237 || [[ -n $opt_line ]]; then
4239 # These regexp extract the elements based on
4240 # their group match index in the regexp.
4241 ext_canon=`echo -e "$opt_line" | \
4242 sed -e "s/$sed_patt/\2/"`
4243 ext_on=`echo -e "$opt_line" | \
4244 sed -e "s/$sed_patt/\3/"`
4245 ext_off=`echo -e "$opt_line" | \
4246 sed -e "s/$sed_patt/\4/"`
4248 if [ $ext = $base_ext ]; then
4250 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
4252 # Removing extension
4253 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
4258 echo "Unknown extension used in --with-$which=$val" 1>&2
4261 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4264 ext_mask="(("$ext_mask") << TARGET_CPU_NBITS)"
4265 if [ x"$base_id" != x ]; then
4266 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
4270 # Allow --with-$which=native.
4271 if [ "$val" = native ]; then
4274 echo "Unknown $which used in --with-$which=$val" 1>&2
4282 supported_defaults="cpu tune"
4283 for which in cpu tune; do
4284 eval "val=\$with_$which"
4287 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4288 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4292 echo "Unknown CPU used in --with-$which=$val" 1>&2
4300 supported_defaults="cpu fpu"
4303 if [ x"$with_cpu" = x ] \
4304 || grep -q -E "^ARC_CPU[[:blank:]]*\($with_cpu," \
4305 ${srcdir}/config/arc/arc-cpus.def
4310 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4314 # see if --with-fpu matches any of the supported FPUs
4319 fpus | fpus_div | fpus_fma | fpus_all)
4323 fpuda | fpuda_div | fpuda_fma | fpuda_all)
4327 fpud | fpud_div | fpud_fma | fpud_all)
4332 echo "Unknown floating point type used in "\
4333 "--with-fpu=$with_fpu" 1>&2
4338 if [ -n "$flags_ok" ] \
4339 && ! grep -q -E "^ARC_CPU[[:blank:]]*\($new_cpu,[[:blank:]]*$flags_ok," \
4340 ${srcdir}/config/arc/arc-cpus.def
4342 echo "Unknown floating point type used in "\
4343 "--with-fpu=$with_fpu for cpu $new_cpu" 1>&2
4349 # Handle --with-multilib-list.
4350 if test "x${with_multilib_list}" != xdefault; then
4351 TM_MULTILIB_CONFIG="${with_multilib_list}"
4356 supported_defaults="cpu endian float"
4360 supported_defaults="arch cpu float tune fpu abi mode tls"
4361 for which in cpu tune arch; do
4362 # See if it matches a supported value
4363 eval "val=\$with_$which"
4364 if [ x"$val" != x ]; then
4365 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4366 -v cmd="chk$which $val" \
4367 ${srcdir}/config/arm/arm-cpus.in`
4368 if [ "$cpu" = "error" ]; then
4369 echo "Unknown target in --with-$which=$val" 1>&2
4373 eval "target_${which}_cname=$new_val"
4374 echo "For $val real value is $new_val"
4379 case "$with_float" in
4381 | soft | hard | softfp)
4385 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4390 # see if --with-fpu matches any of the supported FPUs
4391 if [ x"$with_fpu" != x ] ; then
4393 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4394 -v cmd="chkfpu $val" \
4395 ${srcdir}/config/arm/arm-cpus.in`
4396 if [ "$fpu" = "error" ]
4398 echo "Unknown target in --with-fpu=$val" 1>&2
4405 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4409 echo "Unknown ABI used in --with-abi=$with_abi"
4414 case "$with_mode" in
4420 echo "Unknown mode used in --with-mode=$with_mode"
4431 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4436 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4437 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4441 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4442 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4446 # Add extra multilibs
4447 if test "x$with_multilib_list" != x; then
4449 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4450 if test "x${arm_multilibs}" != xdefault ; then
4451 for arm_multilib in ${arm_multilibs}; do
4452 case ${arm_multilib} in
4454 tmake_profile_file="arm/t-multilib"
4457 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4458 if test -f "${srcdir}/config/arm/${ml}"; then
4459 tmake_file="${tmake_file} arm/${ml}"
4461 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4466 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4473 if test "x${tmake_profile_file}" != x ; then
4474 # arm/t-aprofile and arm/t-rmprofile are only
4475 # designed to work without any with-cpu,
4476 # with-arch, with-mode, with-fpu or with-float
4478 if test "x$with_arch" != x \
4479 || test "x$with_cpu" != x \
4480 || test "x$with_float" != x \
4481 || test "x$with_fpu" != x \
4482 || test "x$with_mode" != x ; then
4483 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4485 elif test "x$ml" != x ; then
4486 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4489 # But pass the default value for float-abi
4490 # through to the multilib selector
4492 tmake_file="${tmake_file} ${tmake_profile_file}"
4493 TM_MULTILIB_CONFIG="$with_multilib_list"
4496 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4497 with_cpu=${with_cpu:-$target_cpu_cname}
4501 supported_defaults=cpu
4506 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4512 fido-*-* | m68k*-*-*)
4513 supported_defaults="arch cpu"
4514 case "$with_arch" in
4516 m68k_arch_family="$with_arch"
4519 echo "Invalid --with-arch=$with_arch" 1>&2
4524 # We always have a $with_cpu setting here.
4526 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4527 m68k_cpu_ident=$with_cpu
4530 m68k_cpu_ident=m68020
4531 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4534 m68k_cpu_ident=m68020
4535 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4538 # We need the C identifier rather than the string.
4539 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4540 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4541 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4542 ${srcdir}/config/m68k/m68k-devices.def`
4543 if [ x"$m68k_cpu_ident" = x ] ; then
4544 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4547 with_cpu="mcpu=$with_cpu"
4553 supported_defaults="arch tune"
4555 for which in arch tune; do
4556 eval "val=\$with_$which"
4558 "" | fiji | gfx900 | gfx906 )
4562 echo "Unknown cpu used in --with-$which=$val." 1>&2
4567 [ "x$with_arch" = x ] && with_arch=fiji
4571 supported_defaults="arch schedule"
4573 case "$with_arch" in
4574 "" | 1.0 | 1.1 | 2.0)
4578 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4583 case "$with_schedule" in
4584 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4588 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4594 i[34567]86-*-* | x86_64-*-*)
4595 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4596 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4597 eval "val=\$with_$which"
4598 case " $x86_archs " in
4606 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4615 if test x${val} != x; then
4616 case " $x86_64_archs " in
4618 # Disallow x86-64-v* for --with-cpu=/--with-tune=
4619 case "x$which$val" in
4620 xcpu*x86-64-v*|xtune*x86-64-v*)
4621 echo "Unknown CPU given in --with-$which=$val." 1>&2
4630 # Allow $x86_cpus --with-cpu=/--with-tune=
4633 case " $x86_cpus " in
4638 echo "Unknown CPU given in --with-$which=$val." 1>&2
4644 echo "Unknown CPU given in --with-$which=$val." 1>&2
4657 supported_defaults="abi arch tune riscv_attribute isa_spec"
4660 riscv-* | riscv32*) xlen=32 ;;
4661 riscv64*) xlen=64 ;;
4662 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4665 case "${with_isa_spec}" in
4666 ""|default|20191213|201912)
4667 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20191213"
4668 with_isa_spec=20191213
4671 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_2P2"
4674 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20190608"
4675 with_isa_spec=20190608
4678 echo "--with-isa-spec only accept 2.2, 20191213, 201912, 20190608 or 201906" 1>&2
4682 case "${with_riscv_attribute}" in
4684 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4687 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4690 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4693 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4699 # Infer arch from --with-arch, --target, and --with-abi.
4700 case "${with_arch}" in
4701 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4705 # Infer XLEN, but otherwise assume GC.
4706 case "${with_abi}" in
4707 ilp32e) with_arch="rv32e" ;;
4708 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4709 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4710 *) with_arch="rv${xlen}gc" ;;
4714 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4718 PYTHON=`which python || which python3 || which python2`
4719 if test "x${PYTHON}" != x; then
4720 with_arch=`${PYTHON} ${srcdir}/config/riscv/arch-canonicalize -misa-spec=${with_isa_spec} ${with_arch}`
4722 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ARCH=${with_arch}"
4724 # Make sure --with-abi is valid. If it was not specified,
4725 # pick a default based on the ISA, preferring soft-float
4726 # unless the D extension is present.
4727 case "${with_abi}" in
4728 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4731 case "${with_arch}" in
4732 rv32*d* | rv32g*) with_abi=ilp32d ;;
4733 rv32e*) with_abi=ilp32e ;;
4734 rv32*) with_abi=ilp32 ;;
4735 rv64*d* | rv64g*) with_abi=lp64d ;;
4736 rv64*) with_abi=lp64 ;;
4740 echo "--with-abi=${with_abi} is not supported" 1>&2
4744 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ABI=${with_abi}"
4746 # Make sure ABI and ISA are compatible.
4747 case "${with_abi},${with_arch}" in
4748 ilp32,rv32* | ilp32e,rv32e* \
4749 | ilp32f,rv32*f* | ilp32f,rv32g* \
4750 | ilp32d,rv32*d* | ilp32d,rv32g* \
4752 | lp64f,rv64*f* | lp64f,rv64g* \
4753 | lp64d,rv64*d* | lp64d,rv64g*)
4756 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4760 # Handle --with-multilib-generator.
4761 if test "x${with_multilib_generator}" != xdefault; then
4762 if test "x${with_multilib_list}" != xdefault; then
4763 echo "--with-multilib-list= can't used with --with-multilib-generator= at same time" 1>&2
4768 if ${srcdir}/config/riscv/multilib-generator \
4769 -misa-spec=${with_isa_spec} \
4770 `echo ${with_multilib_generator} | sed 's/;/ /g'`\
4771 > t-multilib-config;
4773 tmake_file="${tmake_file} riscv/t-withmultilib-generator"
4775 echo "invalid option for --with-multilib-generator" 1>&2
4780 echo "--with-multilib-generator= is not supported for ${target}, only supported for riscv*-*-elf*" 1>&2
4786 # Handle --with-multilib-list.
4787 if test "x${with_multilib_list}" != xdefault; then
4788 tmake_file="${tmake_file} riscv/t-withmultilib"
4790 case ${with_multilib_list} in
4791 ilp32 | ilp32f | ilp32d \
4792 | lp64 | lp64f | lp64d )
4793 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4796 echo "--with-multilib-list=${with_multilib_list} not supported."
4803 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"
4805 case ${with_float} in
4810 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4816 "" | single | double)
4820 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4830 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4835 case ${with_fp_32} in
4840 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4845 case ${with_odd_spreg_32} in
4847 with_odd_spreg_32="odd-spreg"
4850 with_odd_spreg_32="no-odd-spreg"
4856 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4862 "" | 32 | o64 | n32 | 64 | eabi)
4866 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4871 case ${with_divide} in
4872 "" | breaks | traps)
4876 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4881 case ${with_llsc} in
4892 echo "Unknown llsc type used in --with-llsc" 1>&2
4897 case ${with_mips_plt} in
4902 with_mips_plt=no-plt
4907 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4912 case ${with_synci} in
4922 echo "Unknown synci type used in --with-synci" 1>&2
4927 case ${with_lxc1_sxc1} in
4929 with_lxc1_sxc1=lxc1-sxc1
4932 with_lxc1_sxc1=no-lxc1-sxc1
4937 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4942 case ${with_madd4} in
4952 echo "Unknown madd4 type used in --with-madd4" 1>&2
4959 supported_defaults="abi arch tune fpu"
4963 abi_pattern abi_default \
4964 abiext_pattern abiext_default \
4965 arch_pattern arch_default \
4966 fpu_pattern fpu_default \
4967 tune_pattern tune_default \
4968 triplet_os triplet_abi
4970 # Infer ABI from the triplet.
4972 loongarch64-*-*-*f64)
4976 loongarch64-*-*-*f32)
4980 loongarch64-*-*-*sf)
4985 abi_pattern="lp64[dfs]"
4990 echo "Unsupported target ${target}." 1>&2
4996 abiext_default="base"
4998 # Get the canonical triplet (multiarch specifier).
5000 *-linux-gnu*) triplet_os="linux-gnu";;
5001 *-linux-musl*) triplet_os="linux-musl";;
5003 echo "Unsupported target ${target}." 1>&2
5008 la_canonical_triplet="loongarch64-${triplet_os}${triplet_abi}"
5011 # Perform initial sanity checks on --with-* options.
5012 case ${with_arch} in
5013 "" | loongarch64 | la464) ;; # OK, append here.
5015 if test x${host} != x${target}; then
5016 echo "--with-arch=native is illegal for cross-compiler." 1>&2
5021 echo "Please set a default value for \${with_arch}" \
5022 "according to your target triplet \"${target}\"." 1>&2
5026 echo "Unknown arch in --with-arch=$with_arch" 1>&2
5032 "" | lp64d | lp64f | lp64s) ;; # OK, append here.
5034 echo "Unsupported ABI given in --with-abi=$with_abi" 1>&2
5039 case ${with_abiext} in
5040 "" | base) ;; # OK, append here.
5042 echo "Unsupported ABI extention type $with_abiext" 1>&2
5048 "" | none | 32 | 64) ;; # OK, append here.
5050 # Convert "0" to "none" for upcoming checks.
5054 echo "Unknown fpu type in --with-fpu=$with_fpu" 1>&2
5060 # Set default value for with_abi.
5063 if test x${abi_default} != x; then
5064 with_abi=${abi_default}
5066 with_abi=${abi_pattern}
5071 if echo "${with_abi}" | grep -E "^${abi_pattern}$" > /dev/null; then
5074 echo "Incompatible options:" \
5075 "--with-abi=${with_abi} and --target=${target}." 1>&2
5081 # Set default value for with_abiext (internal)
5082 case ${with_abiext} in
5084 if test x${abiext_default} != x; then
5085 with_abiext=${abiext_default}
5087 with_abiext=${abiext_pattern}
5092 if echo "${with_abiext}" | grep -E "^${abiext_pattern}$" > /dev/null; then
5095 echo "The ABI extension type \"${with_abiext}\"" \
5096 "is incompatible with --target=${target}." 1>&2
5103 # Infer ISA-related default options from the ABI: pass 1
5104 case ${with_abi}/${with_abiext} in
5106 # architectures that support lp64* ABI
5107 arch_pattern="native|loongarch64|la464"
5108 # default architecture for lp64* ABI
5109 arch_default="loongarch64"
5112 echo "Unsupported ABI type ${with_abi}/${with_abiext}." 1>&2
5117 # Infer ISA-related default options from the ABI: pass 2
5118 case ${with_abi}/${with_abiext} in
5127 fpu_pattern="none|32|64"
5131 echo "Unsupported ABI type ${with_abi}/${with_abiext}." 1>&2
5136 ## Set default value for with_arch.
5137 case ${with_arch} in
5139 if test x${arch_default} != x; then
5140 with_arch=${arch_default}
5142 with_arch=${arch_pattern}
5147 if echo "${with_arch}" | grep -E "^${arch_pattern}$" > /dev/null; then
5150 echo "${with_abi}/${with_abiext} ABI cannot be implemented with" \
5151 "--with-arch=${with_arch}." 1>&2
5157 ## Set default value for with_fpu.
5160 if test x${fpu_default} != x; then
5161 with_fpu=${fpu_default}
5163 with_fpu=${fpu_pattern}
5168 if echo "${with_fpu}" | grep -E "^${fpu_pattern}$" > /dev/null; then
5171 echo "${with_abi}/${with_abiext} ABI cannot be implemented with" \
5172 "--with-fpu=${with_fpu}." 1>&2
5179 # Infer default with_tune from with_arch: pass 1
5180 case ${with_arch} in
5183 tune_default="native"
5186 tune_pattern="loongarch64|la464"
5187 tune_default="la464"
5190 # By default, $with_tune == $with_arch
5191 tune_pattern="$with_arch"
5195 ## Set default value for with_tune.
5196 case ${with_tune} in
5198 if test x${tune_default} != x; then
5199 with_tune=${tune_default}
5201 with_tune=${tune_pattern}
5206 if echo "${with_tune}" | grep -E "^${tune_pattern}$" > /dev/null; then
5209 echo "Incompatible options: --with-tune=${with_tune}" \
5210 "and --with-arch=${with_arch}." 1>&2
5216 # Handle --with-multilib-list.
5217 if test x"${with_multilib_list}" = x \
5218 || test x"${with_multilib_list}" = xno \
5219 || test x"${with_multilib_list}" = xdefault \
5220 || test x"${enable_multilib}" != xyes; then
5222 with_multilib_list="${with_abi}/${with_abiext}"
5225 # Check if the configured default ABI combination is included in
5226 # ${with_multilib_list}.
5227 loongarch_multilib_list_sane=no
5229 # This one goes to TM_MULTILIB_CONFIG, for use in t-linux.
5230 loongarch_multilib_list_make=""
5232 # This one goes to tm_defines, for use in loongarch-driver.c.
5233 loongarch_multilib_list_c=""
5235 # ${with_multilib_list} should not contain whitespaces,
5236 # consecutive commas or slashes.
5237 if echo "${with_multilib_list}" \
5238 | grep -E -e "[[:space:]]" -e '[,/][,/]' -e '[,/]$' -e '^[,/]' > /dev/null; then
5239 echo "Invalid argument to --with-multilib-list." 1>&2
5243 unset component idx elem_abi_base elem_abi_ext elem_tmp
5244 for elem in $(echo "${with_multilib_list}" | tr ',' ' '); do
5248 component=$(echo "${elem}" | awk -F'/' '{print $'"${idx}"'}')
5252 # Component 1: Base ABI type
5253 case ${component} in
5254 lp64d) elem_tmp="ABI_BASE_LP64D,";;
5255 lp64f) elem_tmp="ABI_BASE_LP64F,";;
5256 lp64s) elem_tmp="ABI_BASE_LP64S,";;
5258 echo "Unknown base ABI \"${component}\" in --with-multilib-list." 1>&2
5262 loongarch_multilib_list_c="${loongarch_multilib_list_c}${elem_tmp}"
5263 loongarch_multilib_list_make="${loongarch_multilib_list_make}mabi=${component}"
5264 elem_abi_base="${component}"
5268 # Component 2: ABI extension type
5269 case ${component} in
5272 elem_tmp="ABI_EXT_BASE,"
5275 echo "Unknown ABI extension \"${component}\" in --with-multilib-list." 1>&2
5279 loongarch_multilib_list_c="${loongarch_multilib_list_c}${elem_tmp}"
5280 loongarch_multilib_list_make="${loongarch_multilib_list_make}" # Add nothing for now.
5281 elem_abi_ext="${component}"
5285 # Component 3 and on: optional stuff
5286 case ${component} in
5288 # End of component list.
5292 echo "Unknown ABI \"${elem}\" in --with-multilib-list." 1>&2
5300 if test x${elem_abi_base} = x${with_abi} \
5301 && test x${elem_abi_ext} = x${with_abiext}; then
5302 loongarch_multilib_list_sane=yes
5304 loongarch_multilib_list_make="${loongarch_multilib_list_make},"
5307 # Check if the default ABI combination is in the default list.
5308 if test x${loongarch_multilib_list_sane} = xno; then
5309 if test x${with_abiext} = xbase; then
5312 with_abiext="/${with_abiext}"
5315 echo "Default ABI combination (${with_abi}${with_abiext})" \
5316 "not found in --with-multilib-list." 1>&2
5320 # Remove the excessive appending comma.
5321 loongarch_multilib_list_c=${loongarch_multilib_list_c%,}
5322 loongarch_multilib_list_make=${loongarch_multilib_list_make%,}
5326 supported_defaults="arch cpu nds32_lib float fpu_config"
5328 # process --with-arch
5329 case "${with_arch}" in
5331 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
5335 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
5338 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
5341 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
5345 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
5350 case "${with_cpu}" in
5354 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
5358 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
5363 # process --with-nds32-lib
5364 case "${with_nds32_lib}" in
5368 with_nds32_lib=ulibc
5371 with_nds32_lib=glibc
5374 with_nds32_lib=newlib
5375 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
5381 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
5385 # for the arch=v3f or arch=v3s under mculib toolchain,
5386 # we would like to set -fno-math-errno as default
5387 case "${with_arch}" in
5389 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
5397 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
5402 # process --with-float
5403 case "${with_float}" in
5408 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
5413 # process --with-config-fpu
5414 case "${with_config_fpu}" in
5419 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
5427 supported_defaults="arch"
5428 case "$with_arch" in
5433 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
5439 powerpc*-*-* | rs6000-*-*)
5440 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
5442 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5443 eval "val=\$with_$which"
5445 default32 | default64)
5450 echo "$val only valid for --with-cpu and --with-tune." 1>&2
5454 with_which="with_$which"
5458 tm_defines="${tm_defines} CONFIG_PPC405CR"
5459 eval "with_$which=405"
5461 "" | common | native \
5462 | power[3456789] | power10 | power5+ | power6x \
5463 | powerpc | powerpc64 | powerpc64le \
5465 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
5466 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
5467 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
5468 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
5469 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
5473 echo "Unknown cpu used in --with-$which=$val." 1>&2
5480 "" | elfv1 | elfv2 )
5484 echo "Unknown ABI used in --with-abi=$with_abi"
5489 if test "x$with_advance_toolchain" != x; then
5490 if test -d "/opt/$with_advance_toolchain/." -a \
5491 -d "/opt/$with_advance_toolchain/bin/." -a \
5492 -d "/opt/$with_advance_toolchain/include/."; then
5494 tm_file="$tm_file ./advance-toolchain.h"
5495 (at="/opt/$with_advance_toolchain"
5496 echo "/* Use Advance Toolchain $at */"
5498 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
5499 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
5500 "\"--enable-new-dtags\""
5502 echo "#undef DYNAMIC_LINKER_PREFIX"
5503 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
5505 echo "#undef MD_EXEC_PREFIX"
5506 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
5508 echo "#undef MD_STARTFILE_PREFIX"
5509 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
5511 echo "#undef MD_STARTFILE_PREFIX_1"
5512 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
5513 > advance-toolchain.h
5515 echo "Unknown advance-toolchain $with_advance_toolchain"
5520 # Set up the default long double format if the user changed it.
5521 if test x$with_long_double_format = xieee; then
5522 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
5524 elif test x$with_long_double_format = xibm; then
5525 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5530 supported_defaults="arch mode tune"
5532 for which in arch tune; do
5533 eval "val=\$with_$which"
5535 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | z16 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 | arch14 )
5539 echo "Unknown cpu used in --with-$which=$val." 1>&2
5545 case ${with_mode} in
5550 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5556 sh[123456ble]*-*-* | sh-*-*)
5557 supported_defaults="cpu"
5558 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5559 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5562 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5564 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5567 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
5568 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5569 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5570 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5576 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5578 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5579 eval "val=\$with_$which"
5581 "" | sparc | sparcv9 | sparc64 \
5583 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5584 | sparclite | f930 | f934 | sparclite86x \
5585 | sparclet | tsc701 \
5586 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5587 | niagara3 | niagara4 | niagara7 | m8)
5591 echo "Unknown cpu used in --with-$which=$val" 1>&2
5597 case ${with_float} in
5602 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5609 supported_defaults="arch"
5611 case ${with_arch} in
5612 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5616 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5623 supported_defaults=cpu
5625 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5629 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5635 supported_defaults="cpu"
5639 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5646 # Targets for which there is at least one VxWorks port should include
5647 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5648 # of markers from other files in the port, including the vxworks*.h files to
5649 # distinguish VxWorks variants such as VxWorks 7 or 64).
5652 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5653 | sparc*-*-* | x86_64-*-*)
5654 tm_file="vxworks-dummy.h ${tm_file}"
5658 # Set some miscellaneous flags for particular targets.
5659 target_cpu_default2=
5662 if test x"$target_cpu_cname" != x
5664 target_cpu_default2=$target_cpu_cname
5669 if test x$with_cpu = x
5671 echo "Don't know the target cpu" 1>&2
5674 target_cpu_default2="\\\"$with_cpu\\\""
5679 if test x$gas = xyes
5681 target_cpu_default2="MASK_GAS"
5685 fido*-*-* | m68k*-*-*)
5686 target_cpu_default2=$m68k_cpu_ident
5687 tmake_file="m68k/t-opts $tmake_file"
5688 if [ x"$m68k_arch_family" != x ]; then
5689 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5693 i[34567]86-*-darwin* | x86_64-*-darwin*)
5695 i[34567]86-*-linux* | x86_64-*-linux*)
5696 extra_objs="${extra_objs} gnu-property.o"
5697 tmake_file="$tmake_file i386/t-linux i386/t-gnu-property"
5699 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5700 tmake_file="$tmake_file i386/t-kfreebsd"
5703 tmake_file="$tmake_file i386/t-gnu"
5705 i[34567]86-*-msdosdjgpp*)
5706 tmake_file="${tmake_file} i386/t-djgpp"
5708 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5710 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5712 i[34567]86-*-mingw* | x86_64-*-mingw*)
5714 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5716 i[34567]86-*-freebsd*)
5719 tmake_file="${tmake_file} i386/t-freebsd64"
5725 if test x$gnu_ld = xyes
5727 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5731 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5734 if test x$with_arch != x; then
5735 default_mips_arch=$with_arch
5737 if test x$with_abi != x; then
5738 default_mips_abi=$with_abi
5740 case ${default_mips_arch} in
5741 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS1" ;;
5742 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS2" ;;
5743 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3" ;;
5744 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS4" ;;
5745 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32" ;;
5746 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2" ;;
5747 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6" ;;
5748 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64" ;;
5749 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2" ;;
5750 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6" ;;
5752 case ${default_mips_abi} in
5753 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5754 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5755 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5756 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5757 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5759 tmake_file="mips/t-mips $tmake_file"
5763 # Export canonical triplet.
5764 tm_defines="${tm_defines} LA_MULTIARCH_TRIPLET=${la_canonical_triplet}"
5766 # Define macro LA_DISABLE_MULTILIB if --disable-multilib
5767 tm_defines="${tm_defines} TM_MULTILIB_LIST=${loongarch_multilib_list_c}"
5768 if test x$enable_multilib = xyes; then
5769 TM_MULTILIB_CONFIG="${loongarch_multilib_list_make}"
5771 tm_defines="${tm_defines} LA_DISABLE_MULTILIB"
5774 # Let --with- flags initialize the enum variables from loongarch.opt.
5775 # See macro definitions from loongarch-opts.h and loongarch-cpu.h.
5776 case ${with_arch} in
5777 native) tm_defines="${tm_defines} DEFAULT_CPU_ARCH=CPU_NATIVE" ;;
5778 la464) tm_defines="${tm_defines} DEFAULT_CPU_ARCH=CPU_LA464" ;;
5779 loongarch64) tm_defines="${tm_defines} DEFAULT_CPU_ARCH=CPU_LOONGARCH64" ;;
5782 case ${with_tune} in
5783 native) tm_defines="${tm_defines} DEFAULT_CPU_TUNE=CPU_NATIVE" ;;
5784 la464) tm_defines="${tm_defines} DEFAULT_CPU_TUNE=CPU_LA464" ;;
5785 loongarch64) tm_defines="${tm_defines} DEFAULT_CPU_TUNE=CPU_LOONGARCH64" ;;
5789 lp64d) tm_defines="${tm_defines} DEFAULT_ABI_BASE=ABI_BASE_LP64D" ;;
5790 lp64f) tm_defines="${tm_defines} DEFAULT_ABI_BASE=ABI_BASE_LP64F" ;;
5791 lp64s) tm_defines="${tm_defines} DEFAULT_ABI_BASE=ABI_BASE_LP64S" ;;
5794 case ${with_abiext} in
5795 base) tm_defines="${tm_defines} DEFAULT_ABI_EXT=ABI_EXT_BASE" ;;
5799 none) tm_defines="$tm_defines DEFAULT_ISA_EXT_FPU=ISA_EXT_NOFPU" ;;
5800 32) tm_defines="$tm_defines DEFAULT_ISA_EXT_FPU=ISA_EXT_FPU32" ;;
5801 64) tm_defines="$tm_defines DEFAULT_ISA_EXT_FPU=ISA_EXT_FPU64" ;;
5804 tmake_file="loongarch/t-loongarch $tmake_file"
5807 powerpc*-*-* | rs6000-*-*)
5808 # FIXME: The PowerPC port uses the value set at compile time,
5809 # although it's only cosmetic.
5810 if test "x$with_cpu" != x
5812 target_cpu_default2="\\\"$with_cpu\\\""
5814 out_file="${cpu_type}/${cpu_type}.cc"
5815 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5816 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5817 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5818 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5821 sh[123456ble]*-*-* | sh-*-*)
5822 c_target_objs="${c_target_objs} sh-c.o"
5823 cxx_target_objs="${cxx_target_objs} sh-c.o"
5827 # Some standard aliases.
5832 xsparcv9 | xsparc64)
5837 if test x$with_tune = x ; then
5848 # The SPARC port checks this value at compile-time.
5849 target_cpu_default2="TARGET_CPU_$with_cpu"
5853 case "x$with_cpu" in
5856 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5857 target_cpu_default2="TARGET_CPU_$with_cpu"
5860 target_cpu_default2="TARGET_CPU_v850e1"
5865 target_cpu_default2="TARGET_CPU_$with_cpu"
5870 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 isa_spec"
5871 for option in $all_defaults
5873 eval "val=\$with_"`echo $option | sed s/-/_/g`
5874 if test -n "$val"; then
5875 case " $supported_defaults " in
5879 echo "This target does not support --with-$option." 2>&1
5880 echo "Valid --with options are: $supported_defaults" 2>&1
5887 t="{ \"$option\", \"$val\" }"
5889 t="${t}, { \"$option\", \"$val\" }"
5896 configure_default_options="{ { NULL, NULL} }"
5898 configure_default_options="{ ${t} }"
5901 if test "$target_cpu_default2" != ""
5903 if test "$target_cpu_default" != ""
5905 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5907 target_cpu_default=$target_cpu_default2
5912 i[34567]86-*-* | x86_64-*-*)
5913 if test x$enable_as_accelerator = xyes; then
5914 extra_programs="mkoffload\$(exeext)"