1 # SPDX-License-Identifier: GPL-3.0-or-later
2 # GCC target-specific configuration file.
3 # Copyright (C) 1997-2023 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} 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 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 # tm_rust_file list of headers with definitions of target hook
94 # macros for the Rust compiler.
96 # out_file The name of the machine description C support
97 # file, if different from "$cpu_type/$cpu_type.c".
99 # common_out_file The name of the source file for code shared between
100 # the compiler proper and the driver.
102 # md_file The name of the machine-description file, if
103 # different from "$cpu_type/$cpu_type.md".
105 # tmake_file A list of machine-description-specific
106 # makefile-fragments, if different from
107 # "$cpu_type/t-$cpu_type".
109 # extra_modes The name of the file containing a list of extra
110 # machine modes, if necessary and different from
111 # "$cpu_type/$cpu_type-modes.def".
113 # extra_objs List of extra objects that should be linked into
114 # the compiler proper (cc1, cc1obj, cc1plus)
115 # depending on target.
117 # extra_gcc_objs List of extra objects that should be linked into
118 # the compiler driver (gcc) depending on target.
120 # extra_headers List of used header files from the directory
121 # config/${cpu_type}.
123 # user_headers_inc_next_pre
124 # List of header file names of internal gcc header
125 # files, which should be prefixed by an include_next.
126 # user_headers_inc_next_post
127 # List of header file names of internal gcc header
128 # files, which should be postfixed by an include_next.
129 # use_gcc_tgmath If set, add tgmath.h to the list of used header
132 # use_gcc_stdint If "wrap", install a version of stdint.h that
133 # wraps the system's copy for hosted compilations;
134 # if "provide", provide a version of systems without
135 # such a system header; otherwise "none", do not
136 # provide such a header at all.
138 # extra_programs List of extra executables compiled for this target
139 # machine, used when linking.
141 # extra_options List of target-dependent .opt files.
143 # c_target_objs List of extra target-dependent objects that be
144 # linked into the C compiler only.
146 # cxx_target_objs List of extra target-dependent objects that be
147 # linked into the C++ compiler only.
149 # d_target_objs List of extra target-dependent objects that be
150 # linked into the D compiler only.
152 # fortran_target_objs List of extra target-dependent objects that be
153 # linked into the fortran compiler only.
155 # rust_target_objs List of extra target-dependent objects that be
156 # linked into the Rust compiler only.
158 # target_gtfiles List of extra source files with type information.
160 # xm_defines List of macros to define when compiling for the
163 # xm_file List of files to include when compiling for the
166 # use_collect2 Set to yes or no, depending on whether collect2
169 # target_cpu_default Set to override the default target model.
171 # gdb_needs_out_file_path
172 # Set to yes if gdb needs a dir command with
173 # `dirname $out_file`.
175 # thread_file Set to control which thread package to use.
177 # gas Set to yes or no depending on whether the target
178 # system normally uses GNU as.
180 # configure_default_options
181 # Set to an initializer for configure_default_options
182 # in configargs.h, based on --with-cpu et cetera.
184 # native_system_header_dir
185 # Where system header files are found for this
186 # target. This defaults to /usr/include. If
187 # the --with-sysroot configure option or the
188 # --sysroot command line option is used this
189 # will be relative to the sysroot.
190 # target_type_format_char
191 # The default character to be used for formatting
193 # .type symbol_name, ${t_t_f_c}<property>
196 # The following variables are used in each case-construct to build up the
197 # outgoing variables:
199 # gnu_ld Set to yes or no depending on whether the target
200 # system normally uses GNU ld.
202 # target_has_targetcm Set to yes or no depending on whether the target
203 # has its own definition of targetcm.
205 # target_has_targetm_common Set to yes or no depending on whether the
206 # target has its own definition of targetm_common.
208 # target_has_targetdm Set to yes or no depending on whether the target
209 # has its own definition of targetdm.
211 # target_has_targetrustm Set to yes or no depending on whether the target
212 # has its own definition of targetrustm.
218 user_headers_inc_next_pre=
219 user_headers_inc_next_post=
231 target_has_targetcm=no
232 target_has_targetm_common=yes
233 target_has_targetdm=no
234 target_has_targetrustm=no
237 # Set this to force installation and use of collect2.
239 # Set this to override the default target model.
241 # Set this if gdb needs a dir command with `dirname $out_file`
242 gdb_needs_out_file_path=
243 # Set this to control which thread package will be used.
245 # Reinitialize these from the flag values every loop pass, since some
246 # configure entries modify them.
248 gnu_ld="$gnu_ld_flag"
249 default_use_cxa_atexit=no
250 default_gnu_indirect_function=no
253 native_system_header_dir=/usr/include
254 target_type_format_char='@'
256 # Don't carry these over build->host->target. Please.
260 # Determine Solaris minor version
261 case ${target}:`uname -v` in
262 # Only do this on Solaris. Illumos uses illumos-* instead.
263 *-*-solaris2.11*:11.*)
264 # Restrict to native configurations.
265 if test x$host = x$target; then
266 uname_version="`uname -v`"
267 # Prepend dot as needed below.
268 target_min=".`expr "$uname_version" : '11\.\([0-9]*\)'`"
273 # Obsolete configurations.
274 case ${target}${target_min} in
275 *-*-solaris2.11.[0-3]* \
277 if test "x$enable_obsolete" != xyes; then
278 echo "*** Configuration ${target}${target_min} is obsolete." >&2
279 echo "*** Specify --enable-obsolete to build it anyway." >&2
280 echo "*** Support will be REMOVED in the next major release of GCC," >&2
281 echo "*** unless a maintainer comes forward." >&2
286 # Unsupported targets list. Do not put an entry in this list unless
287 # it would otherwise be caught by a more permissive pattern. The list
288 # should be in alphabetical order.
290 # Avoid special cases that are not obsolete
301 | i[34567]86-go32-* \
302 | i[34567]86-*-go32* \
306 | m68k-*-uclinuxoldabi* \
307 | mips64orion*-*-rtems* \
309 | powerpc*-*-linux*paired* \
311 | sparc-hal-solaris2* \
314 | *-*-freebsd[12] | *-*-freebsd[1234].* \
315 | *-*-freebsd*aout* \
323 | *-*-solaris2.[0-9] \
324 | *-*-solaris2.[0-9].* \
329 echo "*** Configuration ${target} not supported" 1>&2
334 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
335 # updated in each machine entry. Also set default extra_headers for some
338 cpu_type=`echo ${target} | sed 's/-.*$//'`
343 tmake_file=m32c/t-m32c
344 target_has_targetm_common=no
348 extra_headers="arm_fp16.h arm_neon.h arm_bf16.h arm_acle.h arm_sve.h"
349 c_target_objs="aarch64-c.o"
350 cxx_target_objs="aarch64-c.o"
351 d_target_objs="aarch64-d.o"
352 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 aarch-bti-insert.o aarch64-cc-fusion.o"
353 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.cc \$(srcdir)/config/aarch64/aarch64-sve-builtins.h \$(srcdir)/config/aarch64/aarch64-sve-builtins.cc"
354 target_has_targetm_common=yes
358 extra_options="${extra_options} g.opt"
369 c_target_objs="arc-c.o"
370 cxx_target_objs="arc-c.o"
371 extra_options="${extra_options} arc/arc-tables.opt g.opt"
372 extra_headers="arc-simd.h"
376 extra_objs="arm-builtins.o arm-mve-builtins.o arm-mve-builtins-shapes.o arm-mve-builtins-base.o aarch-common.o aarch-bti-insert.o"
377 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"
378 target_type_format_char='%'
379 c_target_objs="arm-c.o"
380 cxx_target_objs="arm-c.o"
381 d_target_objs="arm-d.o"
382 extra_options="${extra_options} arm/arm-tables.opt"
383 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.cc \$(srcdir)/config/arm/arm-mve-builtins.h \$(srcdir)/config/arm/arm-mve-builtins.cc"
387 c_target_objs="avr-c.o"
388 cxx_target_objs="avr-c.o"
397 extra_options="${extra_options} g.opt"
400 target_has_targetm_common=no
402 moxie*) cpu_type=moxie
403 target_has_targetm_common=no
407 extra_headers=math-68881.h
408 extra_options="${extra_options} m68k/m68k-tables.opt"
410 i[34567]86-*-* | x86_64-*-*)
412 c_target_objs="i386-c.o"
413 cxx_target_objs="i386-c.o"
414 d_target_objs="i386-d.o"
415 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"
416 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.cc \$(srcdir)/config/i386/i386-expand.cc \$(srcdir)/config/i386/i386-options.cc"
417 extra_options="${extra_options} fused-madd.opt"
418 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
419 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
420 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
421 immintrin.h x86intrin.h avxintrin.h xopintrin.h
422 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
423 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
424 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
425 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
426 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
427 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
428 shaintrin.h clflushoptintrin.h xsavecintrin.h
429 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
430 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
431 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
432 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
433 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
434 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
435 gfniintrin.h cet.h avx512vbmi2intrin.h
436 avx512vbmi2vlintrin.h avx512vnniintrin.h
437 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
438 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
439 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
440 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h
441 avx512bf16intrin.h enqcmdintrin.h serializeintrin.h
442 avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h
443 tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h
444 amxbf16intrin.h x86gprintrin.h uintrintrin.h
445 hresetintrin.h keylockerintrin.h avxvnniintrin.h
446 mwaitintrin.h avx512fp16intrin.h avx512fp16vlintrin.h
447 avxifmaintrin.h avxvnniint8intrin.h avxneconvertintrin.h
448 cmpccxaddintrin.h amxfp16intrin.h prfchiintrin.h
449 raointintrin.h amxcomplexintrin.h avxvnniint16intrin.h
450 sm3intrin.h sha512intrin.h sm4intrin.h"
453 extra_headers=ia64intrin.h
454 extra_options="${extra_options} g.opt fused-madd.opt"
460 extra_options="${extra_options} g.opt"
464 extra_options="${extra_options} g.opt"
467 extra_headers=math-68881.h
468 extra_options="${extra_options} m68k/m68k-tables.opt"
472 extra_options="${extra_options} g.opt"
476 d_target_objs="mips-d.o"
477 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
478 extra_objs="frame-header-opt.o"
479 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
483 extra_headers="larchintrin.h lsxintrin.h lasxintrin.h"
484 extra_objs="loongarch-c.o loongarch-builtins.o loongarch-cpu.o loongarch-opts.o loongarch-def.o"
485 extra_gcc_objs="loongarch-driver.o loongarch-cpu.o loongarch-opts.o loongarch-def.o"
486 extra_options="${extra_options} g.opt fused-madd.opt"
490 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
493 extra_options="${extra_options} nds32/nds32-linux.opt"
496 extra_options="${extra_options} nds32/nds32-elf.opt"
501 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"
505 extra_options="${extra_options} g.opt"
509 c_target_objs="nvptx-c.o"
510 cxx_target_objs="nvptx-c.o"
511 extra_options="${extra_options} nvptx/nvptx-gen.opt"
518 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
519 extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
520 extra_objs="${extra_objs} rs6000-builtins.o rs6000-builtin.o"
521 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
522 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
523 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
524 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
525 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
526 extra_headers="${extra_headers} nmmintrin.h immintrin.h x86gprintrin.h"
527 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
528 extra_headers="${extra_headers} amo.h"
530 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower10|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
534 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
535 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.cc \$(srcdir)/config/rs6000/rs6000-call.cc"
536 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.cc"
537 target_gtfiles="$target_gtfiles ./rs6000-builtins.h"
544 extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o riscv-shorten-memrefs.o riscv-selftests.o riscv-string.o"
545 extra_objs="${extra_objs} riscv-v.o riscv-vsetvl.o riscv-vector-costs.o"
546 extra_objs="${extra_objs} riscv-vector-builtins.o riscv-vector-builtins-shapes.o riscv-vector-builtins-bases.o"
547 extra_objs="${extra_objs} thead.o"
548 d_target_objs="riscv-d.o"
549 extra_headers="riscv_vector.h"
550 target_gtfiles="$target_gtfiles \$(srcdir)/config/riscv/riscv-vector-builtins.cc"
551 target_gtfiles="$target_gtfiles \$(srcdir)/config/riscv/riscv-vector-builtins.h"
554 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
555 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
556 extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
557 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.cc \$(srcdir)/config/rs6000/rs6000-call.cc"
558 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.cc"
562 c_target_objs="sparc-c.o"
563 cxx_target_objs="sparc-c.o"
564 d_target_objs="sparc-d.o"
565 extra_headers="visintrin.h"
569 d_target_objs="s390-d.o"
570 extra_options="${extra_options} fused-madd.opt"
571 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
573 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
574 sh[123456789lbe]*-*-* | sh-*-*)
576 extra_options="${extra_options} fused-madd.opt"
577 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
584 extra_headers="c6x_intrinsics.h"
585 extra_options="${extra_options} c6x/c6x-tables.opt"
588 extra_options="${extra_options} fused-madd.opt"
589 extra_objs="xtensa-dynconfig.o"
593 tm_file=${cpu_type}/${cpu_type}.h
594 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
596 tm_p_file=${cpu_type}/${cpu_type}-protos.h
600 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-d.h
602 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-d.h"
606 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-rust.h
608 tm_rust_file="${cpu_type}/${cpu_type}-rust.h"
610 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-rust.cc
612 rust_target_objs="${rust_target_objs} ${cpu_type}-rust.o"
616 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
618 extra_modes=${cpu_type}/${cpu_type}-modes.def
620 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
622 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
627 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
630 if test "x$with_multilib_list" = xilp32; then
631 tm_file="aarch64/biarchilp32.h ${tm_file}"
633 tm_file="aarch64/biarchlp64.h ${tm_file}"
637 tm_file="aarch64/biarchilp32.h ${tm_file}"
640 tm_file="aarch64/biarchlp64.h ${tm_file}"
643 echo "Unknown ABI used in --with-abi=$with_abi"
648 if test "x$with_abi" != x; then
649 echo "This target does not support --with-abi."
658 if test "x$with_multilib_list" = xmx32; then
659 tm_file="i386/biarchx32.h ${tm_file}"
661 tm_file="i386/biarch64.h ${tm_file}"
665 tm_file="i386/biarch64.h ${tm_file}"
668 tm_file="i386/biarchx32.h ${tm_file}"
671 echo "Unknown ABI used in --with-abi=$with_abi"
676 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
680 # On a.out targets, we need to use collect2.
687 # Common C libraries.
688 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
690 # 32-bit x86 processors supported by --with-arch=. Each processor
691 # MUST be separated by exactly one space.
692 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
693 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
694 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
695 pentium4 pentium4m pentiumpro prescott lakemont samuel-2 nehemiah \
698 # 64-bit x86 processors supported by --with-arch=. Each processor
699 # MUST be separated by exactly one space.
700 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
701 bdver3 bdver4 znver1 znver2 znver3 znver4 btver1 btver2 k8 k8-sse3 opteron \
702 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
703 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
704 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
705 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake \
706 sapphirerapids alderlake rocketlake eden-x2 nano nano-1000 nano-2000 nano-3000 \
707 nano-x2 eden-x4 nano-x4 lujiazui x86-64 x86-64-v2 x86-64-v3 x86-64-v4 \
708 sierraforest graniterapids graniterapids-d grandridge arrowlake arrowlake-s \
711 # Additional x86 processors supported by --with-cpu=. Each processor
712 # MUST be separated by exactly one space.
713 x86_cpus="generic intel"
715 # Common parts for widely ported systems.
718 tmake_file="t-darwin "
719 tm_file="${tm_file} darwin.h"
720 darwin_os=`echo ${target} | sed 's/.*darwin\([0-9.]*\).*$/\1/'`
721 darwin_maj=`expr "$darwin_os" : '\([0-9]*\).*'`
722 macos_min=`expr "$darwin_os" : '[0-9]*\.\([0-9]*\).*'`
724 if test x"${macos_min}" = x; then
728 # Tools hosted on earlier versions of Darwin constrained all object
729 # alignment to be 2^15 or smaller. From Darwin11 (macOS 10.7) the
730 # alignment of non-common is allowed to be up to 2^28. Note that the
731 #Â larger alignment is permitted when targeting 10.6 from 10.7 so that
732 #Â the constraint only need be applied per host (and only if the host
735 *-*-darwin[4-9]* | *-*-darwin10*)
736 tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=15U"
739 tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=28U"
743 # Darwin 4 to 19 correspond to macOS 10.0 to 10.15
744 *-*-darwin[4-9]* | *-*-darwin1[0-9]*)
745 macos_min=`expr $darwin_maj - 4`
748 # Darwin 20 corresponds to macOS 11, Darwin 21 to macOS 12.
749 macos_maj=`expr $darwin_maj - 9`
754 aarch64) macos_maj=11 ;;
755 x86_64) macos_min=6 ;;
759 *-*-darwin*) tm_defines="$tm_defines DARWIN_USE_KERNEL_VERS" ;;
761 # If configuring a cross-compiler then we will have set some
762 #Â default above, but it is probably not what was intended.
763 echo "Warning: Using ${target} is only suitable for Darwin hosts" 1>&2
764 echo "configure with an explicit target version" 1>&2
769 echo "Error: configuring for an unreleased macOS version ${target}" 1>&2
773 tm_defines="$tm_defines DEF_MIN_OSX_VERSION=\\\"${macos_maj}.${macos_min}\\\""
774 tm_defines="$tm_defines DEF_LD64=\\\"${def_ld64}\\\""
775 tm_file="${tm_file} ${cpu_type}/darwin.h"
776 tm_p_file="${tm_p_file} darwin-protos.h"
777 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.cc"
778 extra_options="${extra_options} rpath.opt darwin.opt"
779 c_target_objs="${c_target_objs} darwin-c.o"
780 cxx_target_objs="${cxx_target_objs} darwin-c.o"
781 d_target_objs="${d_target_objs} darwin-d.o"
782 fortran_target_objs="darwin-f.o"
783 rust_target_objs="${rust_target_objs} darwin-rust.o"
784 target_has_targetcm=yes
785 target_has_targetdm=yes
786 target_has_targetrustm=yes
787 extra_objs="${extra_objs} darwin.o"
788 extra_gcc_objs="darwin-driver.o"
789 default_use_cxa_atexit=yes
791 case ${enable_threads} in
792 "" | yes | posix) thread_file='posix' ;;
798 tmake_file="t-slibgcc"
799 case ${enable_threads} in
804 # Let these non-posix thread selections fall through if requested
807 echo 'Unknown thread configuration for DragonFly BSD'
811 extra_options="$extra_options rpath.opt dragonfly.opt"
812 default_use_cxa_atexit=yes
814 d_target_objs="${d_target_objs} dragonfly-d.o"
815 tmake_file="${tmake_file} t-dragonfly"
816 target_has_targetdm=yes
819 # This is the generic ELF configuration of FreeBSD. Later
820 # machine-specific sections may refine and add to this
823 # Due to tm_file entry ordering issues that vary between cpu
824 # architectures, we only define fbsd_tm_file to allow the
825 # machine-specific section to dictate the final order of all
826 # entries of tm_file with the minor exception that components
827 # of the tm_file set here will always be of the form:
829 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
831 # The machine-specific section should not tamper with this
832 # ordering but may order all other entries of tm_file as it
833 # pleases around the provided core setting.
836 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
837 if test "$fbsd_major" = ""; then
838 echo "Specify the major version number of the targeted FreeBSD release"
839 echo "like this: --target=amd64-unknown-freebsd10.1"
842 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
843 tmake_file="t-slibgcc"
844 case ${enable_threads} in
846 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
852 echo 'Unknown thread configuration for FreeBSD'
856 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
857 extra_options="$extra_options rpath.opt freebsd.opt"
862 default_use_cxa_atexit=yes;;
865 d_target_objs="${d_target_objs} freebsd-d.o"
866 tmake_file="${tmake_file} t-freebsd"
867 target_has_targetdm=yes
868 rust_target_objs="${rust_target_objs} freebsd-rust.o"
869 target_has_targetrustm=yes
872 native_system_header_dir=/include
874 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
875 extra_options="$extra_options gnu-user.opt"
878 case ${enable_threads} in
879 "" | yes | posix) thread_file='posix' ;;
881 tmake_file="t-slibgcc"
883 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
886 native_system_header_dir=/include
889 # Linux C libraries selection switch: glibc / uclibc / bionic.
890 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
893 tm_p_file="${tm_p_file} linux-protos.h"
894 tmake_file="${tmake_file} t-linux"
895 extra_objs="${extra_objs} linux.o"
896 extra_options="${extra_options} linux.opt"
901 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
903 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
904 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
907 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
910 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
913 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
915 default_use_cxa_atexit=yes
918 # Enable compilation for Android by default for *android* targets.
921 tm_defines="$tm_defines ANDROID_DEFAULT=1"
924 tm_defines="$tm_defines ANDROID_DEFAULT=0"
927 c_target_objs="${c_target_objs} glibc-c.o"
928 cxx_target_objs="${cxx_target_objs} glibc-c.o"
929 tmake_file="${tmake_file} t-glibc"
930 target_has_targetcm=yes
932 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
935 # Linux targets always support .init_array.
936 gcc_cv_initfini_array=yes
941 d_target_objs="${d_target_objs} linux-d.o"
942 target_has_targetdm=yes
945 d_target_objs="${d_target_objs} kfreebsd-d.o"
946 target_has_targetdm=yes
948 *-*-kopensolaris*-gnu)
949 d_target_objs="${d_target_objs} kopensolaris-d.o"
950 target_has_targetdm=yes
953 d_target_objs="${d_target_objs} gnu-d.o"
954 target_has_targetdm=yes
959 tm_p_file="${tm_p_file} netbsd-protos.h"
960 tmake_file="t-netbsd t-slibgcc"
961 extra_objs="${extra_objs} netbsd.o"
962 d_target_objs="${d_target_objs} netbsd-d.o"
966 case ${enable_threads} in
967 "" | yes | posix) thread_file='posix' ;;
969 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
970 default_use_cxa_atexit=yes
971 target_has_targetdm=yes
973 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
974 default_gnu_indirect_function=yes
977 rust_target_objs="${rust_target_objs} netbsd-rust.o"
978 target_has_targetrustm=yes
981 tmake_file="t-openbsd"
982 case ${enable_threads} in
988 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
989 default_use_cxa_atexit=yes
992 d_target_objs="${d_target_objs} openbsd-d.o"
993 target_has_targetdm=yes
998 default_use_cxa_atexit=yes
1001 case ${enable_threads} in
1002 "" | yes | rtems) thread_file='rtems' ;;
1003 posix) thread_file='posix' ;;
1006 echo 'Unknown thread configuration for RTEMS'
1010 tmake_file="${tmake_file} t-rtems"
1011 extra_options="${extra_options} rtems.opt"
1012 default_use_cxa_atexit=yes
1016 extra_options="$extra_options gnu-user.opt"
1018 case ${enable_threads} in
1019 "" | yes | posix) thread_file='posix' ;;
1021 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
1027 # i?86-*-solaris2* needs to insert headers between cpu default and
1028 # Solaris 2 specific ones.
1029 sol2_tm_file_head="elfos.h ${cpu_type}/sysv4.h"
1030 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
1031 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
1033 *-*-solaris2.1[1-9]*)
1034 # __cxa_atexit was introduced in Solaris 11.4.
1035 default_use_cxa_atexit=yes
1039 if test x$gnu_ld = xyes; then
1040 tm_file="usegld.h ${tm_file}"
1042 if test x$gas = xyes; then
1043 tm_file="usegas.h ${tm_file}"
1045 tm_p_file="${tm_p_file} sol2-protos.h"
1046 tmake_file="${tmake_file} t-sol2 t-slibgcc"
1047 c_target_objs="${c_target_objs} sol2-c.o"
1048 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
1049 d_target_objs="${d_target_objs} sol2-d.o"
1050 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
1051 extra_options="${extra_options} sol2.opt"
1052 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
1053 "":yes:* | yes:yes:* )
1057 target_has_targetdm=yes
1060 extra_options="${extra_options} vms/vms.opt"
1061 xmake_file=vms/x-vms
1062 tmake_file="vms/t-vms t-slibgcc"
1064 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.cc"
1065 tm_p_file="${tm_p_file} vms/vms-protos.h"
1066 xm_file="vms/xm-vms.h"
1067 c_target_objs="vms-c.o"
1068 cxx_target_objs="vms-c.o"
1069 fortran_target_objs="vms-f.o"
1070 use_gcc_stdint=provide
1071 tm_file="${tm_file} vms/vms-stdint.h"
1072 if test x$gnu_ld != xyes; then
1073 # Build wrappers for native case.
1074 extra_programs="ld\$(exeext) ar\$(exeext)"
1075 tmake_file="$tmake_file vms/t-vmsnative"
1079 tmake_file=t-vxworks
1082 extra_options="${extra_options} vxworks.opt"
1083 extra_objs="$extra_objs vxworks.o"
1085 c_target_objs="${c_target_objs} vxworks-c.o"
1086 cxx_target_objs="${cxx_target_objs} vxworks-c.o"
1087 extra_headers="${extra_headers} ../vxworks/vxworks-predef.h"
1088 target_has_targetcm="yes"
1090 extra_gcc_objs="vxworks-driver.o"
1092 # This private header exposes a consistent interface for checks on
1093 # the VxWorks version our runtime header files need to perform, based on
1094 # what the system headers adverstise:
1096 extra_headers="${extra_headers} ../vxworks/_vxworks-versions.h"
1098 # Starting from VxWorks 7, the system comes with a Dinkumware
1099 # environment which requires the inclusion of "yvals.h" before other
1100 # system headers. We provide wrapped versions of a few headers to
1101 # accomodate such constraints:
1103 extra_headers="${extra_headers} ../vxworks/_yvals.h"
1104 extra_headers="${extra_headers} ../vxworks/_yvals-wrapper.h"
1106 extra_headers="${extra_headers} ../vxworks/math.h ../vxworks/complex.h"
1107 extra_headers="${extra_headers} ../vxworks/inttypes.h ../vxworks/setjmp.h"
1109 # We provide (a tailored version of) stdint.h
1110 tm_file="${tm_file} vxworks-stdint.h"
1111 use_gcc_stdint=provide
1113 case ${enable_threads} in
1115 "" | yes | vxworks) thread_file='vxworks' ;;
1116 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
1119 # A few common macro definitions conveying general characteristics
1120 # of the configuration at hand. Note that by VxWorks 7, we mean the
1121 # the SR6xx major update or beyond in vendor parlance:
1125 tm_defines="$tm_defines TARGET_VXWORKS7=1"
1130 tm_defines="$tm_defines TARGET_VXWORKS64=1"
1134 # Then a few build configuration controls for VxWorks 7, which
1135 # has specificities on top of which we aim to provide more complete
1140 # VxWorks 7 always has init/fini_array support and it is simpler to
1141 # just leverage this, sticking to what the system toolchain does:
1142 gcc_cv_initfini_array=yes
1146 *-*-elf|arc*-*-elf*)
1147 # Assume that newlib is being used and so __cxa_atexit is provided.
1148 default_use_cxa_atexit=yes
1151 case "${with_newlib}-${with_headers}" in
1152 no-no) use_gcc_stdint=provide ;;
1159 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1160 tm_file="${tm_file} elfos.h newlib-stdint.h"
1161 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1162 tmake_file="${tmake_file} aarch64/t-aarch64"
1168 tm_file="${tm_file} fuchsia.h"
1171 tm_file="${tm_file} aarch64/rtems.h rtems.h"
1176 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1179 aarch64_multilibs="${with_multilib_list}"
1180 if test "$aarch64_multilibs" = "default"; then
1181 aarch64_multilibs="lp64,ilp32"
1183 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1184 for aarch64_multilib in ${aarch64_multilibs}; do
1185 case ${aarch64_multilib} in
1187 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1190 echo "--with-multilib-list=${aarch64_multilib} not supported."
1194 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1196 aarch64*-*-freebsd*)
1197 tm_file="${tm_file} elfos.h ${fbsd_tm_file}"
1198 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1199 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1200 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1203 tm_file="${tm_file} elfos.h ${nbsd_tm_file}"
1204 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1205 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1206 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1209 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h"
1210 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1211 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1212 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1215 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1218 aarch64_multilibs="${with_multilib_list}"
1219 if test "$aarch64_multilibs" = "default"; then
1220 # TODO: turn on ILP32 multilib build after its support is mature.
1221 # aarch64_multilibs="lp64,ilp32"
1222 aarch64_multilibs="lp64"
1224 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1225 for aarch64_multilib in ${aarch64_multilibs}; do
1226 case ${aarch64_multilib} in
1228 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1231 echo "--with-multilib-list=${aarch64_multilib} not supported."
1235 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1237 aarch64*-wrs-vxworks*)
1238 tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
1239 tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
1240 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
1243 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1244 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1245 extra_options="${extra_options} alpha/elf.opt"
1248 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1249 tmake_file="${tmake_file} alpha/t-alpha"
1250 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1254 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1255 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1256 tmake_file="${tmake_file} alpha/t-alpha"
1257 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1258 # default x-alpha is only appropriate for dec-osf.
1261 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1262 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1265 tm_file="arc/arc-arch.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1266 tmake_file="arc/t-multilib arc/t-arc"
1267 extra_gcc_objs="driver-arc.o"
1268 if test "x$with_cpu" != x; then
1269 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1271 if test x${with_endian} = x; then
1273 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1274 *) with_endian=little ;;
1277 case ${with_endian} in
1279 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1281 case ${with_endian} in
1282 big*) tm_file="arc/big.h ${tm_file}"
1286 tm_file="arc/arc-arch.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arc/linux.h ${tm_file}"
1287 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1288 extra_gcc_objs="driver-arc.o"
1289 if test "x$with_cpu" != x; then
1290 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1292 if test x${with_endian} = x; then
1294 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1295 *) with_endian=little ;;
1298 case ${with_endian} in
1300 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1302 case ${with_endian} in
1303 big*) tm_file="arc/big.h ${tm_file}"
1305 # Force .init_array support. The configure script cannot always
1306 # automatically detect that GAS supports it, yet we require it.
1307 gcc_cv_initfini_array=yes
1310 # We only support VxWorks 7 now on ARM, post SR600. Pre SR600
1311 # VxWorks 7 was transitory and major versions prior to 7 were based
1312 # on long deprecated ABI, not supported at all any more regardless
1314 extra_options="${extra_options} arm/vxworks.opt"
1315 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1316 tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1317 tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1318 target_cpu_cname="generic-armv7-a"
1319 need_64bit_hwint=yes
1321 arm*-*-freebsd*) # ARM FreeBSD EABI
1322 tm_file="elfos.h ${fbsd_tm_file} arm/elf.h"
1325 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1328 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1329 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1332 target_cpu_cname="arm1176jzf-s"
1333 if test $fbsd_major -ge 11; then
1334 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1338 target_cpu_cname="generic-armv7-a"
1339 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1342 target_cpu_cname="arm9"
1345 with_tls=${with_tls:-gnu}
1348 target_cpu_cname="strongarm"
1349 tmake_file="${tmake_file} arm/t-arm"
1350 tm_file="elfos.h ${nbsd_tm_file} arm/elf.h"
1351 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1353 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1356 arm*-*-netbsdelf-*eabi*)
1357 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1358 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1361 tm_file="$tm_file arm/netbsd-elf.h"
1362 tmake_file="$tmake_file arm/t-netbsd"
1365 tm_file="${tm_file} arm/aout.h arm/arm.h"
1367 arm*-*-netbsdelf-*eabihf*)
1368 # Hard-float requires at least Arm v5te
1369 target_cpu_cname="arm10e"
1370 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1374 armv6*) target_cpu_cname="arm1176jzf-s";;
1375 armv7*) target_cpu_cname="generic-armv7-a";;
1378 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1379 tm_file="elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
1380 extra_options="${extra_options} linux-android.opt"
1383 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1386 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1387 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1389 arm*-*-uclinuxfdpiceabi)
1390 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1393 # Define with_float to "hard" if not already defined and
1394 # target name ends with "hf"
1395 case $target:$with_float in
1400 # Generation of floating-point instructions requires at least ARMv5te.
1401 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1402 target_cpu_cname="arm10e"
1404 target_cpu_cname="arm10tdmi"
1406 # Define multilib configuration for arm-linux-androideabi.
1409 tmake_file="$tmake_file arm/t-linux-androideabi"
1412 # The EABI requires the use of __cxa_atexit.
1413 default_use_cxa_atexit=yes
1414 with_tls=${with_tls:-gnu}
1416 arm*-*-uclinux*eabi*) # ARM ucLinux
1417 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1418 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1419 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1420 target_cpu_cname="arm7tdmi"
1421 # The EABI requires the use of __cxa_atexit.
1422 default_use_cxa_atexit=yes
1425 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1426 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1427 tm_file="${tm_file} arm/aout.h arm/arm.h"
1428 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1429 target_cpu_cname="arm7tdmi"
1431 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1434 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1436 default_use_cxa_atexit=yes
1437 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1438 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1439 target_cpu_cname="arm7tdmi"
1442 tm_file="$tm_file newlib-stdint.h"
1443 tmake_file="${tmake_file} arm/t-bpabi"
1447 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1448 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1449 target_cpu_cname="generic-armv7-a"
1452 tm_file="${tm_file} arm/rtems.h rtems.h newlib-stdint.h"
1453 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1456 tm_file="${tm_file} arm/symbian.h"
1457 # We do not include t-bpabi for Symbian OS because the system
1458 # provides its own implementation of the BPABI functions.
1459 tmake_file="${tmake_file} arm/t-symbian"
1460 target_cpu_cname="arm10tdmi"
1463 tm_file="${tm_file} arm/aout.h arm/arm.h"
1466 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h avr/avr-stdint.h"
1467 if test x${with_avrlibc} != xno; then
1468 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1469 tm_defines="${tm_defines} WITH_AVRLIBC"
1471 # Work out avr_double_comparison which is 2 or 3 and is used in
1472 # target hook FLOAT_LIB_COMPARE_RETURNS_BOOL to determine whether
1473 # DFmode comparisons return 3-state or 2-state results.
1474 case y${with_double_comparison} in
1476 avr_double_comparison=3
1479 avr_double_comparison=2
1482 echo "Error: --with-double-comparison= can only be used with: 'tristate', 'bool', 'libf7'" 1>&2
1486 case "y${with_libf7}" in
1488 # avr_double_comparison as set above.
1491 avr_double_comparison=2
1492 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1494 y | yyes | ymath-symbols)
1495 avr_double_comparison=2
1496 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1497 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1498 tm_defines="${tm_defines} WITH_LIBF7_MATH_SYMBOLS"
1501 avr_double_comparison=2
1502 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1503 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1506 echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
1510 tm_defines="${tm_defines} WITH_DOUBLE_COMPARISON=${avr_double_comparison}"
1511 case y${with_double} in
1514 tm_defines="${tm_defines} HAVE_DOUBLE32"
1518 tm_defines="${tm_defines} HAVE_DOUBLE64"
1522 avr_double_multilib=1
1523 tm_defines="${tm_defines} HAVE_DOUBLE32"
1524 tm_defines="${tm_defines} HAVE_DOUBLE64"
1525 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1529 avr_double_multilib=1
1530 tm_defines="${tm_defines} HAVE_DOUBLE32"
1531 tm_defines="${tm_defines} HAVE_DOUBLE64"
1532 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1535 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1539 case y${with_long_double} in
1542 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1546 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1550 avr_long_double_multilib=1
1551 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1552 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1553 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1557 avr_long_double_multilib=1
1558 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1559 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1560 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1563 avr_long_double=${avr_double}
1564 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1565 if test y${avr_double_multilib} = y1; then
1566 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1567 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1569 tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1573 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1577 if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1578 if test y${with_long_double} != ydouble; then
1579 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
1583 if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1584 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
1587 if test y${avr_double}${avr_long_double} = y6432; then
1588 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
1591 tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1592 tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1593 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1595 extra_gcc_objs="driver-avr.o avr-devices.o"
1596 extra_objs="avr-devices.o avr-log.o"
1599 tm_file="${tm_file} elfos.h newlib-stdint.h bfin/elf.h"
1600 tmake_file=bfin/t-bfin-elf
1604 tm_file="${tm_file} elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1605 tmake_file=bfin/t-bfin-uclinux
1608 bfin*-linux-uclibc*)
1609 tm_file="${tm_file} elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/linux.h ./linux-sysroot-suffix.h"
1610 tmake_file="${tmake_file} bfin/t-bfin-linux"
1614 tm_file="${tm_file} elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1615 tmake_file="${tmake_file} bfin/t-rtems"
1618 tm_file="${tm_file} elfos.h newlib-stdint.h bfin/elf.h"
1623 tm_file="elfos.h ${tm_file}"
1624 tmake_file="${tmake_file} bpf/t-bpf"
1626 extra_headers="bpf-helpers.h"
1627 use_gcc_stdint=provide
1628 extra_objs="coreout.o core-builtins.o"
1629 target_gtfiles="$target_gtfiles \$(srcdir)/config/bpf/coreout.cc \$(srcdir)/config/bpf/core-builtins.cc"
1631 cris-*-elf | cris-*-none)
1632 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1633 tmake_file="cris/t-cris cris/t-elfmulti"
1635 extra_options="${extra_options} cris/elf.opt"
1639 if test x${with_endian} != x; then
1640 case ${with_endian} in
1643 echo "with_endian=${with_endian} not supported."
1648 if test x${with_float} != x; then
1649 case ${with_float} in
1650 soft | hard | softfp) ;;
1652 "Unknown floating point type used in --with-float=$with_float"
1657 tm_file="csky/csky.h"
1658 md_file="csky/csky.md"
1659 out_file="csky/csky.cc"
1660 tm_p_file="${tm_p_file} csky/csky-protos.h"
1661 extra_options="${extra_options} csky/csky_tables.opt"
1663 if test x${enable_tpf_debug} = xyes; then
1664 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1669 tm_file="elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1670 tmake_file="csky/t-csky csky/t-csky-elf"
1671 default_use_cxa_atexit=no
1675 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1676 tmake_file="${tmake_file} csky/t-csky"
1678 if test "x${enable_multilib}" = xyes ; then
1679 tm_defines="$tm_defines CSKY_ENABLE_MULTILIB"
1680 tmake_file="${tmake_file} csky/t-csky-linux"
1685 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1686 # Force .init_array support. The configure script cannot always
1687 # automatically detect that GAS supports it, yet we require it.
1688 gcc_cv_initfini_array=yes
1690 csky-*-linux-uclibc*)
1691 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1692 default_use_cxa_atexit=no
1695 echo "Unknown target $target"
1701 echo "Unknown target $target"
1706 epiphany-*-elf | epiphany-*-rtems*)
1707 tm_file="elfos.h ${tm_file}"
1708 tmake_file="${tmake_file} epiphany/t-epiphany"
1711 tm_file="${tm_file} epiphany/rtems.h rtems.h newlib-stdint.h"
1714 tm_file="${tm_file} newlib-stdint.h"
1717 extra_options="${extra_options} fused-madd.opt"
1718 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1719 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1720 extra_headers="epiphany_intrinsics.h"
1723 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1726 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1727 tmake_file=frv/t-frv
1730 tm_file="elfos.h ${tm_file} \
1731 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1732 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1737 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1738 tmake_file="${tmake_file} ft32/t-ft32"
1741 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1742 tmake_file="gcn/t-gcn-hsa"
1743 native_system_header_dir=/include
1744 extra_modes=gcn/gcn-modes.def
1745 extra_objs="${extra_objs} gcn-tree.o"
1746 extra_gcc_objs="driver-gcn.o"
1748 x86_64*-*-linux-gnu )
1749 if test "$ac_cv_search_dlopen" != no; then
1750 extra_programs="${extra_programs} gcn-run\$(exeext)"
1754 if test x$enable_as_accelerator = xyes; then
1755 extra_programs="${extra_programs} mkoffload\$(exeext)"
1756 tm_file="${tm_file} gcn/offload.h"
1758 # Force .init_array support.
1759 gcc_cv_initfini_array=yes
1765 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1766 tmake_file="${tmake_file} moxie/t-moxie"
1771 tm_file="elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1772 tmake_file="${tmake_file} moxie/t-moxie"
1775 tmake_file="${tmake_file} moxie/t-moxie"
1776 tm_file="moxie/moxie.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1781 tm_file="${tm_file} elfos.h moxie/moxiebox.h newlib-stdint.h"
1782 tmake_file="${tmake_file} moxie/t-moxiebox"
1785 tmake_file="h8300/t-h8300"
1786 tm_file="h8300/h8300.h elfos.h newlib-stdint.h h8300/elf.h"
1789 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1790 tm_file="h8300/h8300.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1793 target_cpu_default="MASK_PA_11|MASK_PA_20"
1794 tm_file="pa/pa64-start.h ${tm_file} elfos.h gnu-user.h linux.h \
1795 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1797 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1798 d_target_objs="${d_target_objs} pa-d.o"
1802 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1803 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1804 pa/pa32-regs.h pa/pa32-linux.h"
1805 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1806 d_target_objs="${d_target_objs} pa-d.o"
1809 target_cpu_default="MASK_PA_11"
1810 tm_file="${tm_file} elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1811 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1812 extra_options="${extra_options} openbsd.opt"
1813 tmake_file="pa/t-pa"
1814 d_target_objs="${d_target_objs} pa-d.o"
1819 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1820 tm_file="${tm_file} elfos.h ${nbsd_tm_file} \
1821 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1822 tmake_file="${tmake_file}"
1823 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1824 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1827 target_cpu_default="MASK_PA_11|MASK_PA_20"
1828 if test x$gnu_ld = xyes
1830 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1832 tm_file="pa/pa64-start.h ${tm_file} elfos.h \
1833 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1837 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1838 extra_options="${extra_options} pa/pa-hpux1111.opt"
1841 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1842 extra_options="${extra_options} pa/pa-hpux1131.opt"
1845 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1848 extra_options="${extra_options} pa/pa-hpux.opt \
1849 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.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
1860 use_gcc_stdint=provide
1861 tm_file="${tm_file} hpux-stdint.h"
1865 tm_file="${tm_file} hpux-stdint.h"
1869 i[34567]86-*-darwin1[89]* | i[34567]86-*-darwin2*)
1870 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1872 i[34567]86-*-darwin*)
1874 # Baseline choice for a machine that allows m64 support.
1875 with_cpu=${with_cpu:-core2}
1876 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1877 tm_file="${cpu_type}/darwin32-biarch.h ${tm_file} "
1879 x86_64-*-darwin1[89]* | x86_64-*-darwin2*)
1881 tm_defines="${tm_defines} TARGET_64BIT_DEFAULT=(OPTION_MASK_ISA_64BIT|OPTION_MASK_ABI_64)"
1882 tm_defines="${tm_defines} TARGET_BI_ARCH=0"
1883 with_cpu=${with_cpu:-core2}
1884 tmake_file="${tmake_file} t-slibgcc"
1887 with_cpu=${with_cpu:-core2}
1888 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1889 tm_file="${cpu_type}/darwin64-biarch.h ${tm_file} "
1891 i[34567]86-*-elfiamcu)
1892 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/iamcu.h"
1895 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h"
1898 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1901 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rtemself.h rtems.h"
1904 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1907 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rdos.h i386/rdos64.h"
1908 tmake_file="i386/t-i386elf t-svr4"
1910 i[34567]86-*-dragonfly*)
1911 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1912 tmake_file="${tmake_file} i386/t-crtstuff"
1914 x86_64-*-dragonfly*)
1915 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h dragonfly.h dragonfly-stdint.h i386/x86-64.h i386/dragonfly.h"
1916 tmake_file="${tmake_file} i386/t-crtstuff"
1918 i[34567]86-*-freebsd*)
1919 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1922 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
1924 i[34567]86-*-netbsdelf*)
1925 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1926 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1929 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1930 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1932 i[34567]86-*-openbsd*)
1933 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1934 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1935 extra_options="${extra_options} openbsd.opt"
1940 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1941 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1942 extra_options="${extra_options} openbsd.opt"
1946 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1947 # Intel 80386's running GNU/*
1948 # with ELF format using glibc 2
1949 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h gnu-user.h glibc-stdint.h"
1951 i[34567]86-*-linux*)
1952 tm_file="${tm_file} linux.h linux-android.h"
1953 extra_options="${extra_options} linux-android.opt"
1954 if test x$enable_targets = xall; then
1955 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1956 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1957 tmake_file="${tmake_file} i386/t-linux64"
1958 x86_multilibs="${with_multilib_list}"
1959 if test "$x86_multilibs" = "default"; then
1960 x86_multilibs="m64,m32"
1962 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1963 for x86_multilib in ${x86_multilibs}; do
1964 case ${x86_multilib} in
1966 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1969 echo "--with-multilib-list=${x86_with_multilib} not supported."
1973 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1975 if test x$with_cpu = x; then
1976 if test x$with_cpu_64 = x; then
1980 case " $x86_cpus $x86_archs $x86_64_archs " in
1984 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1985 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1991 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1994 i[34567]86-*-kfreebsd*-gnu)
1995 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1997 i[34567]86-*-kopensolaris*-gnu)
1998 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
2001 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
2005 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-gnu*)
2006 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h gnu-user.h glibc-stdint.h \
2007 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
2010 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
2011 extra_options="${extra_options} linux-android.opt"
2013 x86_64-*-kfreebsd*-gnu)
2014 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
2017 tm_file="${tm_file} gnu.h i386/gnu64.h"
2020 tmake_file="${tmake_file} i386/t-linux64"
2021 x86_multilibs="${with_multilib_list}"
2022 if test "$x86_multilibs" = "default"; then
2025 x86_multilibs="mx32"
2028 x86_multilibs="m64,m32"
2032 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
2033 for x86_multilib in ${x86_multilibs}; do
2034 case ${x86_multilib} in
2036 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
2039 echo "--with-multilib-list=${x86_with_multilib} not supported."
2043 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2045 i[34567]86-pc-msdosdjgpp*)
2046 xm_file=i386/xm-djgpp.h
2047 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
2048 native_system_header_dir=/dev/env/DJDIR/include
2049 extra_options="${extra_options} i386/djgpp.opt"
2054 i[34567]86-*-lynxos*)
2056 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h i386/lynx.h lynx.h"
2057 tmake_file="${tmake_file} t-lynx"
2058 extra_options="${extra_options} lynx.opt"
2063 i[34567]86-*-nto-qnx*)
2064 tm_file="${tm_file} i386/att.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
2065 extra_options="${extra_options} i386/nto.opt"
2069 i[34567]86-*-rtems*)
2070 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h i386/i386elf.h i386/rtemself.h rtems.h newlib-stdint.h"
2071 tmake_file="${tmake_file} i386/t-rtems"
2073 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
2074 # Set default arch_32 to pentium4, tune_32 to generic like the other
2075 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
2076 with_arch_32=${with_arch_32:-pentium4}
2077 with_tune_32=${with_tune_32:-generic}
2078 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
2079 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2080 tmake_file="$tmake_file i386/t-sol2"
2082 if test x$with_cpu = x; then
2083 if test x$with_cpu_64 = x; then
2087 case " $x86_cpus $x86_archs $x86_64_archs " in
2091 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2092 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2098 i[4567]86-wrs-vxworks*|x86_64-wrs-vxworks7*)
2099 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
2103 tm_file="${tm_file} i386/x86-64.h"
2106 tm_file="${tm_file} vx-common.h"
2109 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2110 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2113 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2114 tmake_file="${tmake_file} i386/t-vxworks"
2118 i[34567]86-*-cygwin*)
2119 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/cygming.h i386/cygwin.h i386/cygwin-stdint.h"
2120 xm_file=i386/xm-cygwin.h
2121 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2122 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc"
2123 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2124 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2125 c_target_objs="${c_target_objs} msformat-c.o"
2126 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2127 d_target_objs="${d_target_objs} cygwin-d.o"
2128 target_has_targetdm="yes"
2129 if test x$enable_threads = xyes; then
2132 default_use_cxa_atexit=yes
2137 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/cygming.h i386/cygwin.h i386/cygwin-w64.h i386/cygwin-stdint.h"
2138 xm_file=i386/xm-cygwin.h
2139 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2140 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc"
2141 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2142 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2143 c_target_objs="${c_target_objs} msformat-c.o"
2144 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2145 d_target_objs="${d_target_objs} cygwin-d.o"
2146 target_has_targetdm="yes"
2147 if test x$enable_threads = xyes; then
2150 default_use_cxa_atexit=yes
2152 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2154 i[34567]86-*-mingw* | x86_64-*-mingw*)
2155 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/cygming.h"
2156 xm_file=i386/xm-mingw32.h
2157 c_target_objs="${c_target_objs} winnt-c.o"
2158 cxx_target_objs="${cxx_target_objs} winnt-c.o"
2159 d_target_objs="${d_target_objs} winnt-d.o"
2160 target_has_targetcm="yes"
2161 target_has_targetdm="yes"
2163 x86_64-*-* | *-w64-*)
2169 if test x$enable_threads = xposix ; then
2170 tm_file="${tm_file} i386/mingw-pthread.h"
2172 if test x$enable_threads = xmcf ; then
2173 tm_file="${tm_file} i386/mingw-mcfgthread.h"
2175 tm_file="${tm_file} i386/mingw32.h"
2176 # This makes the logic if mingw's or the w64 feature set has to be used
2179 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2180 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2181 tm_file="${tm_file} i386/mingw-w64.h"
2182 if test x$enable_targets = xall; then
2183 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2184 if test x$with_cpu = x; then
2185 if test x$with_cpu_64 = x; then
2189 case " $x86_cpus $x86_archs $x86_64_archs " in
2193 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2194 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2204 tm_file="${tm_file} i386/mingw-stdint.h"
2205 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2208 tmake_file="${tmake_file} i386/t-mingw-w64"
2211 tmake_file="${tmake_file} i386/t-mingw-w32"
2214 native_system_header_dir=/mingw/include
2215 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc"
2216 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2219 extra_options="${extra_options} i386/mingw-w64.opt"
2224 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2225 c_target_objs="${c_target_objs} msformat-c.o"
2226 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2229 default_use_cxa_atexit=yes
2231 case ${enable_threads} in
2241 tm_file="${tm_file} i386/crtdll.h"
2243 *mingw32msv* | *mingw*)
2248 tmake_file="${tmake_file} i386/t-x86_64-elf"
2249 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2252 tm_file="${tm_file} elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2253 tmake_file="ia64/t-ia64"
2254 target_cpu_default="0"
2255 if test x$gas = xyes
2257 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2259 if test x$gnu_ld = xyes
2261 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2265 tm_file="${tm_file} elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2266 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2267 tmake_file="${tmake_file} ia64/t-ia64"
2270 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2271 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2272 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2275 tm_file="${tm_file} elfos.h ia64/sysv4.h ia64/hpux.h"
2276 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2277 target_cpu_default="MASK_GNU_AS"
2278 case x$enable_threads in
2284 c_target_objs="ia64-c.o"
2285 cxx_target_objs="ia64-c.o"
2286 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2288 tm_file="${tm_file} hpux-stdint.h"
2291 tm_file="${tm_file} ia64/hpux-unix2003.h"
2296 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2297 tmake_file="${tmake_file} ia64/t-ia64"
2298 target_cpu_default="0"
2299 if test x$gas = xyes
2301 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2303 extra_options="${extra_options} ia64/vms.opt"
2306 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2307 out_file=iq2000/iq2000.cc
2308 md_file=iq2000/iq2000.md
2311 tm_file="elfos.h ${tm_file} newlib-stdint.h"
2312 tmake_file="${tmake_file} lm32/t-lm32"
2315 tm_file="elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2316 tmake_file="${tmake_file} lm32/t-lm32"
2317 tmake_file="${tmake_file} lm32/t-rtems"
2320 tm_file="elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h lm32/uclinux-elf.h"
2321 tmake_file="${tmake_file} lm32/t-lm32"
2324 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2327 tm_file="elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2329 m68k-*-elf* | fido-*-elf*)
2332 # Check that $with_cpu makes sense.
2337 echo "Cannot accept --with-cpu=$with_cpu"
2344 default_m68k_cpu=68020
2348 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h elfos.h newlib-stdint.h m68k/m68kemb.h m68k/m68020-elf.h"
2349 tm_defines="${tm_defines} MOTOROLA=1"
2350 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2351 # Add multilibs for targets other than fido.
2356 tmake_file="$tmake_file m68k/t-mlibs"
2361 default_m68k_cpu=68020
2363 tm_file="${tm_file} elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2364 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2365 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2367 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2368 # with uClibc, using the new GNU/Linux-style
2370 default_m68k_cpu=68020
2372 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h"
2373 extra_options="${extra_options} m68k/uclinux.opt"
2374 tm_defines="${tm_defines} MOTOROLA=1"
2375 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2377 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2378 # with ELF format using glibc 2
2379 # aka the GNU/Linux C library 6.
2380 default_m68k_cpu=68020
2382 with_arch=${with_arch:-m68k}
2383 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2384 extra_options="${extra_options} m68k/ieee.opt"
2385 tm_defines="${tm_defines} MOTOROLA=1"
2386 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2389 default_m68k_cpu=68020
2391 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2392 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h newlib-stdint.h"
2393 tm_defines="${tm_defines} MOTOROLA=1"
2396 tm_file="elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2397 tmake_file=mcore/t-mcore
2403 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2406 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2409 tm_file="${tm_file} gnu-user.h linux.h microblaze/linux.h"
2410 tm_file="${tm_file} glibc-stdint.h"
2411 c_target_objs="${c_target_objs} microblaze-c.o"
2412 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2413 tmake_file="${tmake_file} microblaze/t-microblaze"
2414 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2416 microblaze*-*-rtems*)
2419 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2422 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2425 tm_file="${tm_file}"
2426 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2427 c_target_objs="${c_target_objs} microblaze-c.o"
2428 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2429 tmake_file="${tmake_file} microblaze/t-microblaze"
2430 tmake_file="${tmake_file} microblaze/t-rtems"
2435 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2438 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2441 tm_file="${tm_file} newlib-stdint.h"
2442 c_target_objs="${c_target_objs} microblaze-c.o"
2443 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2444 tmake_file="${tmake_file} microblaze/t-microblaze"
2447 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2448 case "x${enable_multilib}" in
2450 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2451 *) echo "Unknown value for enable_multilib"; exit 1
2453 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2454 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
2458 riscv32be-*|riscv64be-*)
2459 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2462 # Force .init_array support. The configure script cannot always
2463 # automatically detect that GAS supports it, yet we require it.
2464 gcc_cv_initfini_array=yes
2466 riscv*-*-elf* | riscv*-*-rtems*)
2467 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2470 tm_file="${tm_file} riscv/rtems.h rtems.h"
2471 tmake_file="${tmake_file} riscv/t-rtems"
2474 if test "x${with_multilib_generator}" = xdefault; then
2475 case "x${enable_multilib}" in
2477 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2478 *) echo "Unknown value for enable_multilib"; exit 1
2482 tmake_file="${tmake_file} riscv/t-riscv"
2486 riscv32be-*|riscv64be-*)
2487 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2490 # Force .init_array support. The configure script cannot always
2491 # automatically detect that GAS supports it, yet we require it.
2492 gcc_cv_initfini_array=yes
2495 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2496 tmake_file="${tmake_file} riscv/t-riscv"
2500 riscv32be-*|riscv64be-*)
2501 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2504 # Force .init_array support. The configure script cannot always
2505 # automatically detect that GAS supports it, yet we require it.
2506 gcc_cv_initfini_array=yes
2509 loongarch*-*-linux*)
2510 tm_file="elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file}"
2511 tm_file="${tm_file} loongarch/gnu-user.h loongarch/linux.h"
2512 extra_options="${extra_options} linux-android.opt"
2513 tmake_file="${tmake_file} loongarch/t-multilib loongarch/t-linux"
2517 # Force .init_array support. The configure script cannot always
2518 # automatically detect that GAS supports it, yet we require it.
2519 gcc_cv_initfini_array=yes
2523 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2524 tm_file="${tm_file} loongarch/elf.h loongarch/linux.h"
2525 tmake_file="${tmake_file} loongarch/t-multilib loongarch/t-linux"
2529 # For .init_array support. The configure script cannot always
2530 # automatically detect that GAS supports it, yet we require it.
2531 gcc_cv_initfini_array=yes
2534 mips*-*-netbsd*) # NetBSD/mips, either endian.
2535 target_cpu_default="MASK_ABICALLS"
2536 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2537 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2540 tm_file="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"
2541 extra_options="${extra_options} linux-android.opt"
2542 tmake_file="${tmake_file} mips/t-img-linux"
2543 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2544 with_arch_32="mips32r6"
2545 with_arch_64="mips64r6"
2550 tm_file="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"
2551 extra_options="${extra_options} linux-android.opt"
2552 tmake_file="${tmake_file} mips/t-mti-linux"
2553 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2554 with_arch_32="mips32r2"
2555 with_arch_64="mips64r2"
2559 mips*-*-linux*) # Linux MIPS, either endian.
2560 tm_file="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"
2561 extra_options="${extra_options} linux-android.opt"
2564 default_mips_arch=mips32r6
2567 default_mips_arch=mips32r2
2570 default_mips_arch=mips32
2572 mips64el-st-linux-gnu)
2573 default_mips_abi=n32
2574 tm_file="${tm_file} mips/st.h"
2575 tmake_file="${tmake_file} mips/t-st"
2576 enable_mips_multilibs="yes"
2578 mips64octeon*-*-linux*)
2579 default_mips_abi=n32
2580 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2581 target_cpu_default=MASK_SOFT_FLOAT_ABI
2582 enable_mips_multilibs="yes"
2584 mipsisa64r6*-*-linux-gnuabi64)
2586 default_mips_arch=mips64r6
2587 enable_mips_multilibs="yes"
2589 mipsisa64r6*-*-linux*)
2590 default_mips_abi=n32
2591 default_mips_arch=mips64r6
2592 enable_mips_multilibs="yes"
2594 mipsisa64r2*-*-linux-gnuabi64)
2596 default_mips_arch=mips64r2
2597 enable_mips_multilibs="yes"
2599 mipsisa64r2*-*-linux*)
2600 default_mips_abi=n32
2601 default_mips_arch=mips64r2
2602 enable_mips_multilibs="yes"
2604 mips64*-*-linux-gnuabi64 | mipsisa64*-*-linux-gnuabi64)
2606 enable_mips_multilibs="yes"
2608 mips64*-*-linux* | mipsisa64*-*-linux*)
2609 default_mips_abi=n32
2610 enable_mips_multilibs="yes"
2613 if test x$enable_targets = xall; then
2614 enable_mips_multilibs="yes"
2616 if test x$enable_mips_multilibs = xyes; then
2617 tmake_file="${tmake_file} mips/t-linux64"
2621 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2622 tmake_file="mips/t-mti-elf"
2623 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2624 with_arch_32="mips32r2"
2625 with_arch_64="mips64r2"
2628 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2629 tmake_file="mips/t-img-elf"
2630 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2631 with_arch_32="mips32r6"
2632 with_arch_64="mips64r6"
2635 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2636 tmake_file="mips/t-sde"
2637 extra_options="${extra_options} mips/sde.opt"
2638 case "${with_newlib}" in
2640 # newlib / libgloss.
2643 # MIPS toolkit libraries.
2644 tm_file="$tm_file mips/sdemtk.h"
2645 tmake_file="$tmake_file mips/t-sdemtk"
2646 case ${enable_threads} in
2648 thread_file='mipssde'
2655 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2658 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2661 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32 MIPS_ABI_DEFAULT=ABI_32"
2664 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6 MIPS_ABI_DEFAULT=ABI_N32"
2667 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2 MIPS_ABI_DEFAULT=ABI_N32"
2670 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_ABI_DEFAULT=ABI_N32"
2674 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2675 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2676 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2677 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2678 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2679 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2680 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2681 tmake_file="mips/t-isa3264"
2684 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6"
2687 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2"
2690 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32"
2693 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6"
2696 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2"
2699 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64"
2703 mipsisa32*-*-elfoabi*)
2704 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2705 tm_file="${tm_file} mips/elfoabi.h"
2707 mipsisa64*-*-elfoabi*)
2708 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2709 tm_file="${tm_file} mips/elfoabi.h"
2712 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2716 mipsisa64sr71k-*-elf*)
2717 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2718 tmake_file=mips/t-sr71k
2719 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2721 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2722 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2723 tmake_file="mips/t-elf mips/t-sb1"
2724 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2726 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2727 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2728 tmake_file="mips/t-elf"
2730 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2731 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2732 tmake_file="mips/t-elf"
2733 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_N32"
2735 mips64-*-elf* | mips64el-*-elf*)
2736 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2737 tmake_file="mips/t-elf"
2738 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2740 mips64vr-*-elf* | mips64vrel-*-elf*)
2741 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2742 tmake_file=mips/t-vr
2743 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2745 mips64orion-*-elf* | mips64orionel-*-elf*)
2746 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2747 tmake_file="mips/t-elf"
2748 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2751 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2752 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2755 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2756 tmake_file="${tmake_file} mips/t-vxworks"
2758 mipstx39-*-elf* | mipstx39el-*-elf*)
2759 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2760 tmake_file="mips/t-r3900"
2762 mmix-knuth-mmixware)
2763 tm_file="${tm_file} newlib-stdint.h"
2767 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2772 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2773 c_target_objs="msp430-c.o"
2774 cxx_target_objs="msp430-c.o"
2775 tmake_file="${tmake_file} msp430/t-msp430"
2776 extra_objs="${extra_objs} msp430-devices.o"
2777 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2778 # Enable .init_array unless it has been explicitly disabled.
2779 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2780 # code since mid-2019 expects it.
2781 if test x${disable_initfini_array} != xyes; then
2782 gcc_cv_initfini_array=yes
2786 # __cxa_atexit increases code size, and we don't need to support
2787 # dynamic shared objects on MSP430, so regular Newlib atexit is a
2788 # fine replacement as it also supports registration of more than 32
2790 default_use_cxa_atexit=no
2791 # This target does not match the generic *-*-elf case above which
2792 # sets use_gcc_stdint=wrap, so explicitly set it here.
2798 target_cpu_default="0"
2799 tm_defines="${tm_defines}"
2804 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2805 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2810 tm_file="elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2811 tmake_file="nds32/t-nds32 nds32/t-elf"
2814 tm_file="elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2815 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2816 gcc_cv_initfini_array=yes
2820 # Handle --enable-default-relax setting.
2821 if test x${enable_default_relax} = xyes; then
2822 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2824 # Handle --with-ext-dsp
2825 if test x${with_ext_dsp} = xyes; then
2826 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2830 tm_file="elfos.h ${tm_file}"
2831 tmake_file="${tmake_file} nios2/t-nios2"
2834 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2837 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2838 extra_options="${extra_options} nios2/elf.opt"
2841 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2842 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2847 tm_file="${tm_file} newlib-stdint.h"
2849 tmake_file="nvptx/t-nvptx"
2850 if test x$enable_as_accelerator = xyes; then
2851 extra_programs="${extra_programs} mkoffload\$(exeext)"
2852 tm_file="${tm_file} nvptx/offload.h"
2856 tm_file="elfos.h ${tm_file}"
2857 tmake_file="${tmake_file} or1k/t-or1k"
2858 # Force .init_array support. The configure script cannot always
2859 # automatically detect that GAS supports it, yet we require it.
2860 gcc_cv_initfini_array=yes
2862 # Handle --with-multilib-list=...
2863 or1k_multilibs="${with_multilib_list}"
2864 if test "$or1k_multilibs" = "default"; then
2865 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2867 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2868 for or1k_multilib in ${or1k_multilibs}; do
2869 case ${or1k_multilib} in
2870 mcmov | msext | msfimm | \
2872 mhard-float | mdouble-float | munordered-float | msoft-float | \
2873 mhard-div | mhard-mul | \
2874 msoft-div | msoft-mul )
2875 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2878 echo "--with-multilib-list=${with_multilib_list} not supported."
2882 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2886 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2887 tm_file="${tm_file} or1k/linux.h"
2890 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2891 extra_options="${extra_options} or1k/elf.opt"
2894 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2895 tmake_file="${tmake_file} or1k/t-rtems"
2900 tm_file="${tm_file} newlib-stdint.h"
2903 # port not yet contributed
2904 #powerpc-*-openbsd*)
2905 # tmake_file="${tmake_file} rs6000/t-fprules"
2909 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2911 *-darwin1[0-9]* | *-darwin9*)
2912 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2913 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2916 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2917 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2920 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2923 # Earlier - ingle arch, with 32b only
2924 # OS X 10.0, the first edition is Darwin4
2927 tmake_file="${tmake_file} t-slibgcc"
2929 powerpc64-*-darwin*)
2930 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2931 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2932 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2934 powerpc*-*-freebsd*)
2935 tm_file="${tm_file} elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2936 extra_options="${extra_options} rs6000/sysv4.opt"
2937 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2940 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2944 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2945 tmake_file="${tmake_file} rs6000/t-freebsd64"
2946 extra_options="${extra_options} rs6000/linux64.opt"
2947 if test $fbsd_major -ge 13; then
2948 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2952 if test $fbsd_major -ge 13; then
2953 tm_file="rs6000/secureplt.h ${tm_file}"
2955 tm_file="${tm_file} rs6000/freebsd.h"
2960 tm_file="${tm_file} elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2961 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2962 tmake_file="${tmake_file} rs6000/t-netbsd"
2963 extra_options="${extra_options} rs6000/sysv4.opt"
2965 powerpc-*-eabisimaltivec*)
2966 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h"
2967 extra_options="${extra_options} rs6000/sysv4.opt"
2968 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2972 tm_file="${tm_file} elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
2973 extra_options="${extra_options} rs6000/sysv4.opt"
2974 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2978 tm_file="${tm_file} elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2979 extra_options="${extra_options} rs6000/sysv4.opt"
2980 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2982 powerpc-*-eabialtivec*)
2983 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
2984 extra_options="${extra_options} rs6000/sysv4.opt"
2985 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2989 tm_file="${tm_file} elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h"
2990 extra_options="${extra_options} rs6000/sysv4.opt"
2991 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2995 tm_file="rs6000/biarch64.h ${tm_file} elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/rtems.h rtems.h"
2996 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2997 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
3000 tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
3001 extra_options="${extra_options} rs6000/sysv4.opt"
3002 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
3003 extra_objs="$extra_objs rs6000-linux.o"
3006 tm_file="${tm_file} rs6000/sysv4le.h" ;;
3008 case ${target}:${with_cpu} in
3009 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
3011 maybe_biarch=${cpu_is_64bit}
3012 case ${enable_targets} in
3013 *powerpc64*) maybe_biarch=yes ;;
3014 all) maybe_biarch=yes ;;
3016 case ${target}:${enable_targets}:${maybe_biarch} in
3017 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
3018 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
3019 | powerpcle-*:*powerpc64le*:yes)
3020 if test x$cpu_is_64bit = xyes; then
3021 tm_file="${tm_file} rs6000/default64.h"
3023 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
3024 tmake_file="$tmake_file rs6000/t-linux64"
3027 tmake_file="$tmake_file rs6000/t-linux64le"
3028 case ${enable_targets} in
3029 all | *powerpc64-* | *powerpc-*)
3030 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
3033 case ${enable_targets} in
3034 all | *powerpc64le-* | *powerpcle-*)
3035 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
3038 extra_options="${extra_options} rs6000/linux64.opt"
3041 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
3042 extra_options="${extra_options} rs6000/linux64.opt"
3043 tmake_file="${tmake_file} rs6000/t-linux"
3046 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
3047 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
3051 powerpc*-*-linux*ppc476*)
3052 tm_file="${tm_file} rs6000/476.h"
3053 extra_options="${extra_options} rs6000/476.opt" ;;
3054 powerpc*-*-linux*altivec*)
3055 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
3059 enable_secureplt=yes ;;
3061 if test x${enable_secureplt} = xyes; then
3062 tm_file="rs6000/secureplt.h ${tm_file}"
3065 powerpc*-wrs-vxworks7r*)
3067 # Wind River 7 post SR0600 is mostly like Linux so we setup
3068 # our config in a very similar fashion and adjust to a few
3071 # The system compiler is configured with secureplt by default.
3072 tm_file="${tm_file} rs6000/secureplt.h"
3074 tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h"
3075 tm_file="${tm_file} rs6000/sysv4.h rs6000/biarch64.h rs6000/default64.h rs6000/linux64.h"
3076 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3078 extra_options="${extra_options} rs6000/sysv4.opt linux.opt rs6000/linux64.opt"
3080 tmake_file="${tmake_file} t-linux rs6000/t-linux64 rs6000/t-fprules rs6000/t-ppccomm"
3081 tmake_file="${tmake_file} rs6000/t-vxworks"
3083 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
3084 extra_objs="$extra_objs linux.o rs6000-linux.o"
3086 powerpc-wrs-vxworks*)
3087 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
3088 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
3089 extra_options="${extra_options} rs6000/sysv4.opt vxworks-smp.opt"
3090 extra_headers="${extra_headers} ppc-asm.h"
3093 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
3094 tmake_file="${tmake_file} rs6000/t-vxworksmils"
3097 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
3098 tmake_file="${tmake_file} rs6000/t-vxworksae"
3101 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3107 tm_file="${tm_file} elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3108 tmake_file="t-lynx rs6000/t-lynx"
3109 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3115 tm_file="${tm_file} elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
3116 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3117 extra_options="${extra_options} rs6000/sysv4.opt"
3119 powerpcle-*-eabisim*)
3120 tm_file="${tm_file} 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"
3121 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3122 extra_options="${extra_options} rs6000/sysv4.opt"
3126 tm_file="${tm_file} elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h"
3127 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3128 extra_options="${extra_options} rs6000/sysv4.opt"
3132 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3133 tmake_file="${tmake_file} pru/t-pru"
3134 extra_objs="pru-pragma.o pru-passes.o"
3137 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3138 tmake_file="rs6000/t-aix52 t-slibgcc"
3139 if test x$cpu_is_64bit = xyes; then
3140 tm_file="${tm_file} rs6000/biarch64.h"
3141 tmake_file="rs6000/t-aix64 t-slibgcc"
3143 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3144 extra_options="${extra_options} rs6000/aix64.opt"
3148 default_use_cxa_atexit=yes
3150 rs6000-ibm-aix7.2.* | powerpc-ibm-aix7.2.*)
3151 tmake_file="rs6000/t-aix52 t-slibgcc"
3152 if test x$cpu_is_64bit = xyes; then
3153 tm_file="${tm_file} rs6000/biarch64.h"
3154 tmake_file="rs6000/t-aix64 t-slibgcc"
3156 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3157 extra_options="${extra_options} rs6000/aix64.opt"
3161 default_use_cxa_atexit=yes
3163 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3164 tmake_file="rs6000/t-aix52 t-slibgcc"
3165 if test x$cpu_is_64bit = xyes; then
3166 tm_file="${tm_file} rs6000/biarch64.h"
3167 tmake_file="rs6000/t-aix64 t-slibgcc"
3169 tm_file="${tm_file} rs6000/aix.h rs6000/aix73.h rs6000/xcoff.h rs6000/aix-stdint.h"
3170 extra_options="${extra_options} rs6000/aix64.opt"
3174 default_use_cxa_atexit=yes
3177 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3178 target_has_targetm_common=no
3179 c_target_objs="rl78-c.o"
3180 cxx_target_objs="rl78-c.o"
3181 tmake_file="${tmake_file} rl78/t-rl78"
3184 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3185 tmake_file="${tmake_file} rx/t-rx"
3186 extra_options="${extra_options} rx/elf.opt"
3189 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3190 tmake_file="${tmake_file} rx/t-linux"
3193 tm_file="s390/s390.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3194 c_target_objs="${c_target_objs} s390-c.o"
3195 cxx_target_objs="${cxx_target_objs} s390-c.o"
3196 if test x$enable_targets = xall; then
3197 tmake_file="${tmake_file} s390/t-linux64"
3199 tmake_file="${tmake_file} s390/t-s390"
3202 tm_file="s390/s390x.h s390/s390.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3203 tm_p_file="linux-protos.h s390/s390-protos.h"
3204 c_target_objs="${c_target_objs} s390-c.o"
3205 cxx_target_objs="${cxx_target_objs} s390-c.o"
3206 md_file=s390/s390.md
3207 extra_modes=s390/s390-modes.def
3208 out_file=s390/s390.cc
3209 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3212 tm_file="s390/s390x.h s390/s390.h elfos.h glibc-stdint.h s390/tpf.h"
3213 tm_p_file=s390/s390-protos.h
3214 c_target_objs="${c_target_objs} s390-c.o"
3215 cxx_target_objs="${cxx_target_objs} s390-c.o"
3216 md_file=s390/s390.md
3217 extra_modes=s390/s390-modes.def
3218 out_file=s390/s390.cc
3220 extra_options="${extra_options} s390/tpf.opt"
3221 tmake_file="${tmake_file} s390/t-s390"
3223 sh-*-elf* | sh[12346l]*-*-elf* | \
3224 sh-*-linux* | sh[2346lbe]*-*-linux* | \
3225 sh-*-netbsdelf* | shl*-*-netbsdelf*)
3226 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3227 if test x${with_endian} = x; then
3229 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3230 shbe-*-* | sheb-*-*) with_endian=big,little ;;
3231 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
3232 shl* | sh*-*-linux* | \
3233 sh-superh-elf) with_endian=little,big ;;
3234 sh[1234]*-*-*) with_endian=big ;;
3235 *) with_endian=big,little ;;
3238 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3239 # First word : the default endian.
3240 # Second word: the secondary endian (optional).
3241 case ${with_endian} in
3242 big) TM_ENDIAN_CONFIG=mb ;;
3243 little) TM_ENDIAN_CONFIG=ml ;;
3244 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
3245 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
3246 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
3248 case ${with_endian} in
3249 little*) tm_file="sh/little.h ${tm_file}" ;;
3251 tm_file="${tm_file} elfos.h sh/elf.h"
3253 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
3254 if test x$enable_fdpic = xyes; then
3255 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3257 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3259 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3260 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3263 sh*-superh-elf) if test x$with_libgloss != xno; then
3265 tm_file="${tm_file} sh/newlib.h"
3267 tm_file="${tm_file} sh/embed-elf.h"
3268 tm_file="${tm_file} sh/superh.h"
3269 extra_options="${extra_options} sh/superh.opt" ;;
3270 *) if test x$with_newlib = xyes \
3271 && test x$with_libgloss = xyes; then
3272 tm_file="${tm_file} sh/newlib.h"
3274 tm_file="${tm_file} sh/embed-elf.h" ;;
3280 tm_file="${tm_file} newlib-stdint.h"
3283 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3284 case `echo ${target} | sed 's/e[lb]-/-/'` in
3285 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
3286 sh4a_single*) sh_cpu_target=sh4a-single ;;
3287 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
3288 sh4al) sh_cpu_target=sh4al ;;
3289 sh4a*) sh_cpu_target=sh4a ;;
3290 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3291 sh4_single*) sh_cpu_target=sh4-single ;;
3292 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3293 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3294 sh3e*) sh_cpu_target=sh3e ;;
3295 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3296 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3297 sh2a_single*) sh_cpu_target=sh2a-single ;;
3298 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3299 sh2a*) sh_cpu_target=sh2a ;;
3300 sh2e*) sh_cpu_target=sh2e ;;
3301 sh2*) sh_cpu_target=sh2 ;;
3302 *) sh_cpu_target=sh1 ;;
3304 # did the user say --without-fp ?
3305 if test x$with_fp = xno; then
3306 case ${sh_cpu_target} in
3308 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3309 sh4*) sh_cpu_target=sh4-nofpu ;;
3310 sh3*) sh_cpu_target=sh3 ;;
3311 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3312 sh2*) sh_cpu_target=sh2 ;;
3313 *) echo --without-fp not available for $target: ignored
3315 tm_defines="$tm_defines STRICT_NOFPU=1"
3317 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3318 case $sh_cpu_default in
3319 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3320 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3321 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3322 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3323 "") sh_cpu_default=${sh_cpu_target} ;;
3324 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3326 sh_multilibs=${with_multilib_list}
3327 if test "$sh_multilibs" = "default" ; then
3329 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3330 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3331 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3332 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3333 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3335 if test x$with_fp = xno; then
3336 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`"
3339 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3340 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3341 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3342 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3343 for sh_multilib in ${sh_multilibs}; do
3344 case ${sh_multilib} in
3345 m1 | m2 | m2e | m3 | m3e | \
3346 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3347 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3348 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3349 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3350 # It is passed to MULTIILIB_OPTIONS verbatim.
3351 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3352 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3354 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3355 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3356 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3358 echo "with_multilib_list=${sh_multilib} not supported."
3363 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3364 if test x${enable_incomplete_targets} = xyes ; then
3365 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3367 tm_file="$tm_file ./sysroot-suffix.h"
3368 tmake_file="$tmake_file t-sysroot-suffix"
3371 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3372 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3375 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3376 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3379 tm_file="${tm_file} elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3382 tmake_file="sparc/t-sparc sparc/t-leon"
3385 tmake_file="sparc/t-sparc sparc/t-leon3"
3388 tmake_file="sparc/t-sparc sparc/t-elf"
3393 tm_file="${tm_file} elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3394 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3397 tm_file="${tm_file} elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3398 extra_options="${extra_options} sparc/long-double-switch.opt"
3401 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3404 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3407 tmake_file="${tmake_file} sparc/t-sparc"
3410 if test x$enable_targets = xall; then
3411 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3412 tmake_file="${tmake_file} sparc/t-linux64"
3414 tm_file="${tm_file} sparc/linux.h"
3415 tmake_file="${tmake_file} sparc/t-linux"
3419 tm_file="${tm_file} elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3420 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3421 extra_options="${extra_options} sparc/long-double-switch.opt"
3422 tmake_file="${tmake_file} sparc/t-sparc"
3425 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3427 sparc64-*-* | sparcv9-*-*)
3428 tm_file="sparc/default64.h ${tm_file}"
3431 test x$with_cpu != x || with_cpu=v9
3434 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3437 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3438 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3441 tm_file="${tm_file} elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3442 extra_options="${extra_options}"
3443 tmake_file="${tmake_file} sparc/t-sparc"
3446 tm_file="${tm_file} elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3447 extra_options="${extra_options}"
3448 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3451 tm_file="sparc/biarch64.h ${tm_file} elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h"
3452 extra_options="${extra_options} sparc/long-double-switch.opt"
3453 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3455 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3456 tm_file="${tm_file} ${fbsd_tm_file} elfos.h sparc/sysv4.h sparc/freebsd.h"
3457 extra_options="${extra_options} sparc/long-double-switch.opt"
3458 case "x$with_cpu" in
3460 x) with_cpu=ultrasparc ;;
3461 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3463 tmake_file="${tmake_file} sparc/t-sparc"
3466 tm_file="sparc/biarch64.h ${tm_file}"
3467 tm_file="${tm_file} elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3468 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3469 extra_options="${extra_options} sparc/long-double-switch.opt"
3470 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3473 tm_file="sparc/openbsd1-64.h ${tm_file} elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3474 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3475 extra_options="${extra_options} openbsd.opt"
3476 extra_options="${extra_options}"
3479 tmake_file="${tmake_file} sparc/t-sparc"
3482 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3483 tm_file="${tm_file} tm-dwarf2.h newlib-stdint.h"
3484 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3488 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3489 tm_file="${tm_file} tm-dwarf2.h glibc-stdint.h"
3490 tm_file="${tm_file} ./sysroot-suffix.h"
3491 tmake_file="t-sysroot-suffix t-slibgcc"
3492 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3496 target_cpu_default="TARGET_CPU_generic"
3497 tm_file="elfos.h v850/v850.h"
3498 tm_file="${tm_file} v850/rtems.h rtems.h newlib-stdint.h"
3499 tmake_file="${tmake_file} v850/t-v850"
3500 tmake_file="${tmake_file} v850/t-rtems"
3502 c_target_objs="v850-c.o"
3503 cxx_target_objs="v850-c.o"
3508 target_cpu_default="TARGET_CPU_v850e3v5"
3511 target_cpu_default="TARGET_CPU_v850e2v3"
3514 target_cpu_default="TARGET_CPU_v850e2"
3516 v850e1-*-* | v850es-*-*)
3517 target_cpu_default="TARGET_CPU_v850e1"
3520 target_cpu_default="TARGET_CPU_v850e"
3523 target_cpu_default="TARGET_CPU_generic"
3526 tm_file="elfos.h newlib-stdint.h v850/v850.h"
3528 c_target_objs="v850-c.o"
3529 cxx_target_objs="v850-c.o"
3533 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h vax/elf.h vax/linux.h"
3534 extra_options="${extra_options} vax/elf.opt"
3537 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3538 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3539 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3542 tm_file="elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3543 tmake_file="visium/t-visium visium/t-crtstuff"
3546 # For historical reasons, the target files omit the 'x'.
3547 tm_file="elfos.h newlib-stdint.h stormy16/stormy16.h"
3548 tm_p_file=stormy16/stormy16-protos.h
3549 md_file=stormy16/stormy16.md
3550 out_file=stormy16/stormy16.cc
3551 extra_options=stormy16/stormy16.opt
3552 tmake_file="stormy16/t-stormy16"
3555 tm_file="${tm_file} elfos.h newlib-stdint.h xtensa/elf.h"
3556 extra_options="${extra_options} xtensa/elf.opt"
3559 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3560 tmake_file="${tmake_file} xtensa/t-xtensa"
3563 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3564 tmake_file="${tmake_file} xtensa/t-xtensa"
3565 extra_options="${extra_options} xtensa/uclinux.opt"
3568 tm_file="mn10300/mn10300.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3573 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3574 c_target_objs="m32c-pragma.o"
3575 cxx_target_objs="m32c-pragma.o"
3578 echo "*** Configuration ${target} not supported" 1>&2
3584 i[34567]86-*-linux* | x86_64-*-linux*)
3585 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3587 i[34567]86-*-* | x86_64-*-*)
3588 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3590 powerpc*-*-* | rs6000-*-*)
3591 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3597 tmake_file="${tmake_file} t-musl"
3600 tmake_file="${tmake_file} t-uclibc"
3604 # Assume the existence of indirect function support and allow the use of the
3605 # resolver attribute.
3607 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3609 *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
3611 *-*-linux* | *-*-gnu*)
3613 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-* | loongarch*-*)
3614 default_gnu_indirect_function=yes
3620 if [ "$target_has_targetcm" = "no" ]; then
3621 c_target_objs="$c_target_objs default-c.o"
3622 cxx_target_objs="$cxx_target_objs default-c.o"
3625 if [ "$common_out_file" = "" ]; then
3626 if [ "$target_has_targetm_common" = "yes" ]; then
3627 common_out_file="$cpu_type/$cpu_type-common.cc"
3629 common_out_file="default-common.cc"
3633 if [ "$target_has_targetdm" = "no" ]; then
3634 d_target_objs="$d_target_objs default-d.o"
3637 if [ "$target_has_targetrustm" = "no" ]; then
3638 rust_target_objs="$rust_target_objs default-rust.o"
3641 # Support for --with-cpu and related options (and a few unrelated options,
3645 echo "--with-cpu must be passed a value" 1>&2
3650 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3651 # to generic if there is no processor scheduler model for the target.
3654 arch_without_sse2=no
3655 arch_without_64bit=no
3658 if test $fbsd_major -ge 6; then
3664 arch_without_sse2=yes
3665 arch_without_64bit=yes
3670 arch_without_sse2=yes
3671 arch_without_64bit=yes
3676 arch_without_sse2=yes
3677 arch_without_64bit=yes
3682 arch_without_sse2=yes
3683 arch_without_64bit=yes
3686 arch_without_sse2=yes
3687 arch_without_64bit=yes
3688 case ${target_noncanonical} in
3701 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3711 i686-*-* | i786-*-*)
3712 case ${target_noncanonical} in
3753 amdfam10-*|barcelona-*)
3757 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3761 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3765 athlon_xp-*|athlon_mp-*|athlon_4-*)
3768 arch_without_sse2=yes
3769 arch_without_64bit=yes
3771 athlon_tbird-*|athlon-*)
3774 arch_without_sse2=yes
3779 arch_without_sse2=yes
3788 arch_without_sse2=yes
3790 pentium3-*|pentium3m-*)
3793 arch_without_sse2=yes
3795 pentium4-*|pentium4m-*)
3834 arch_without_sse2=yes
3839 arch_without_sse2=yes
3840 arch_without_64bit=yes
3845 case ${target_noncanonical} in
3886 amdfam10-*|barcelona-*)
3890 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3894 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-*-*)
4051 # Avoid overriding --with-arch-32 and --with-arch-64 values.
4053 i[34567]86-*-darwin*|x86_64-*-darwin*)
4054 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4055 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4057 i[34567]86-*-*|x86_64-*-*)
4058 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
4059 if test x$with_arch_32 = x; then
4060 with_arch_32=$with_arch
4062 if test x$with_arch_64 = x; then
4063 if test $arch_without_64bit = yes; then
4064 # Set the default 64bit arch to x86-64 if the default arch
4065 # doesn't support 64bit.
4068 with_arch_64=$with_arch
4072 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
4073 # Set the default 64bit arch to x86-64 if the default arch
4074 # doesn't support 64bit and we need 64bit ISA.
4075 with_arch_32=$with_arch
4083 # Infer a default setting for --with-float.
4084 if test x$with_float = x; then
4086 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4087 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
4088 # comply with IEEE 754.
4094 # Infer a default setting for --with-fpu.
4095 if test x$with_fpu = x; then
4097 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4098 # The R5900 FPU only supports single precision.
4104 # Support --with-fpmath.
4105 if test x$with_fpmath != x; then
4107 i[34567]86-*-* | x86_64-*-*)
4108 case ${with_fpmath} in
4110 tm_file="${tm_file} i386/avxmath.h"
4113 tm_file="${tm_file} i386/ssemath.h"
4116 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4122 echo "--with-fpmath isn't supported for $target." 1>&2
4128 # Similarly for --with-schedule.
4129 if test x$with_schedule = x; then
4132 # Override default PA8000 scheduling model.
4133 with_schedule=7100LC
4138 # Infer a default setting for --with-llsc.
4139 if test x$with_llsc = x; then
4142 # The kernel emulates LL and SC where necessary.
4145 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4146 # The R5900 doesn't support LL(D) and SC(D).
4152 # Validate and mark as valid any --with options supported
4153 # by this target. In order to use a particular --with option
4154 # you must list it in supported_defaults; validating the value
4155 # is optional. This case statement should set nothing besides
4156 # supported_defaults.
4161 supported_defaults="abi cpu cpu_64 arch arch_64 tune tune_64"
4162 if test x$with_cpu_64 != x && test x$with_cpu = x; then
4163 with_cpu=$with_cpu_64
4165 if test x$with_arch_64 != x && test x$with_arch = x; then
4166 with_arch=$with_arch_64
4168 if test x$with_tune_64 != x && test x$with_tune = x; then
4169 with_tune=$with_tune_64
4171 for which in cpu arch tune; do
4172 eval "val=\$with_$which"
4173 base_val=`echo $val | sed -e 's/\+.*//'`
4174 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4176 if [ $which = arch ]; then
4177 def=aarch64-arches.def
4178 pattern=AARCH64_ARCH
4180 def=aarch64-cores.def
4181 pattern=AARCH64_CORE
4184 # Find the base CPU or ARCH id in aarch64-cores.def or
4185 # aarch64-arches.def
4186 if [ x"$base_val" = x ] \
4187 || grep "^$pattern(\"$base_val\"," \
4188 ${srcdir}/config/aarch64/$def \
4191 # Disallow extensions in --with-tune=cortex-a53+crc.
4192 if [ $which = tune ] && [ x"$ext_val" != x ]; then
4193 echo "Architecture extensions not supported in --with-$which=$val" 1>&2
4197 # Use the pre-processor to strip flatten the options.
4198 # This makes the format less rigid than if we use
4199 # grep and sed directly here.
4200 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4201 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4202 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4204 while [ x"$ext_val" != x ]
4206 ext_val=`echo $ext_val | sed -e 's/\+//'`
4207 ext=`echo $ext_val | sed -e 's/\+.*//'`
4208 base_ext=`echo $ext | sed -e 's/^no//'`
4209 opt_line=`echo -e "$options_parsed" | \
4210 grep "^\"$base_ext\""`
4212 if [ x"$base_ext" = x ] \
4213 || [ x"$opt_line" != x ]; then
4216 echo "Unknown extension used in --with-$which=$val" 1>&2
4219 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4224 # Allow --with-$which=native.
4225 if [ "$val" = native ]; then
4228 echo "Unknown $which used in --with-$which=$val" 1>&2
4236 supported_defaults="cpu tune"
4237 for which in cpu tune; do
4238 eval "val=\$with_$which"
4241 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4242 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4246 echo "Unknown CPU used in --with-$which=$val" 1>&2
4254 supported_defaults="cpu fpu"
4257 if [ x"$with_cpu" = x ] \
4258 || grep -q -E "^ARC_CPU[[:blank:]]*\($with_cpu," \
4259 ${srcdir}/config/arc/arc-cpus.def
4264 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4268 # see if --with-fpu matches any of the supported FPUs
4273 fpus | fpus_div | fpus_fma | fpus_all)
4277 fpuda | fpuda_div | fpuda_fma | fpuda_all)
4281 fpud | fpud_div | fpud_fma | fpud_all)
4286 echo "Unknown floating point type used in "\
4287 "--with-fpu=$with_fpu" 1>&2
4292 if [ -n "$flags_ok" ] \
4293 && ! grep -q -E "^ARC_CPU[[:blank:]]*\($new_cpu,[[:blank:]]*$flags_ok," \
4294 ${srcdir}/config/arc/arc-cpus.def
4296 echo "Unknown floating point type used in "\
4297 "--with-fpu=$with_fpu for cpu $new_cpu" 1>&2
4303 # Handle --with-multilib-list.
4304 if test "x${with_multilib_list}" != xdefault; then
4305 TM_MULTILIB_CONFIG="${with_multilib_list}"
4310 supported_defaults="cpu endian float"
4314 supported_defaults="arch cpu float tune fpu abi mode tls"
4315 for which in cpu tune arch; do
4316 # See if it matches a supported value
4317 eval "val=\$with_$which"
4318 if [ x"$val" != x ]; then
4319 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4320 -v cmd="chk$which $val" \
4321 ${srcdir}/config/arm/arm-cpus.in`
4322 if [ "$cpu" = "error" ]; then
4323 echo "Unknown target in --with-$which=$val" 1>&2
4327 eval "target_${which}_cname=$new_val"
4328 echo "For $val real value is $new_val"
4333 case "$with_float" in
4335 | soft | hard | softfp)
4339 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4344 # see if --with-fpu matches any of the supported FPUs
4345 if [ x"$with_fpu" != x ] ; then
4347 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4348 -v cmd="chkfpu $val" \
4349 ${srcdir}/config/arm/arm-cpus.in`
4350 if [ "$fpu" = "error" ]
4352 echo "Unknown target in --with-fpu=$val" 1>&2
4359 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4363 echo "Unknown ABI used in --with-abi=$with_abi"
4368 case "$with_mode" in
4374 echo "Unknown mode used in --with-mode=$with_mode"
4385 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4390 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4391 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4395 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4396 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4400 # Add extra multilibs
4401 if test "x$with_multilib_list" != x; then
4403 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4404 if test "x${arm_multilibs}" != xdefault ; then
4405 for arm_multilib in ${arm_multilibs}; do
4406 case ${arm_multilib} in
4408 tmake_profile_file="arm/t-multilib"
4409 tm_mlib_file="arm/arm-mlib.h"
4412 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4413 if test -f "${srcdir}/config/arm/${ml}"; then
4414 tmake_file="${tmake_file} arm/${ml}"
4416 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4421 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4428 if test "x${tmake_profile_file}" != x ; then
4429 # arm/t-aprofile and arm/t-rmprofile are only
4430 # designed to work without any with-cpu,
4431 # with-arch, with-mode, with-fpu or with-float
4433 if test "x$with_arch" != x \
4434 || test "x$with_cpu" != x \
4435 || test "x$with_float" != x \
4436 || test "x$with_fpu" != x \
4437 || test "x$with_mode" != x ; then
4438 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4440 elif test "x$ml" != x ; then
4441 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4444 # But pass the default value for float-abi
4445 # through to the multilib selector
4447 tmake_file="${tmake_file} ${tmake_profile_file}"
4448 tm_file="$tm_file $tm_mlib_file"
4449 TM_MULTILIB_CONFIG="$with_multilib_list"
4452 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4453 with_cpu=${with_cpu:-$target_cpu_cname}
4457 supported_defaults=cpu
4462 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4468 fido-*-* | m68k*-*-*)
4469 supported_defaults="arch cpu"
4470 case "$with_arch" in
4472 m68k_arch_family="$with_arch"
4475 echo "Invalid --with-arch=$with_arch" 1>&2
4480 # We always have a $with_cpu setting here.
4482 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4483 m68k_cpu_ident=$with_cpu
4486 m68k_cpu_ident=m68020
4487 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4490 m68k_cpu_ident=m68020
4491 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4494 # We need the C identifier rather than the string.
4495 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4496 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4497 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4498 ${srcdir}/config/m68k/m68k-devices.def`
4499 if [ x"$m68k_cpu_ident" = x ] ; then
4500 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4503 with_cpu="mcpu=$with_cpu"
4509 supported_defaults="arch tune"
4511 for which in arch tune; do
4512 eval "val=\$with_$which"
4514 "" | fiji | gfx900 | gfx906 | gfx908 | gfx90a)
4518 echo "Unknown cpu used in --with-$which=$val." 1>&2
4523 [ "x$with_arch" = x ] && with_arch=fiji
4527 supported_defaults="arch schedule"
4529 case "$with_arch" in
4530 "" | 1.0 | 1.1 | 2.0)
4534 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4539 case "$with_schedule" in
4540 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4544 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4550 i[34567]86-*-* | x86_64-*-*)
4551 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4552 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4553 eval "val=\$with_$which"
4554 case " $x86_archs " in
4562 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4571 if test x${val} != x; then
4572 case " $x86_64_archs " in
4574 # Disallow x86-64-v* for --with-cpu=/--with-tune=
4575 case "x$which$val" in
4576 xcpu*x86-64-v*|xtune*x86-64-v*)
4577 echo "Unknown CPU given in --with-$which=$val." 1>&2
4586 # Allow $x86_cpus --with-cpu=/--with-tune=
4589 case " $x86_cpus " in
4594 echo "Unknown CPU given in --with-$which=$val." 1>&2
4600 echo "Unknown CPU given in --with-$which=$val." 1>&2
4613 supported_defaults="abi arch tune riscv_attribute isa_spec"
4616 riscv-* | riscv32*) xlen=32 ;;
4617 riscv64*) xlen=64 ;;
4618 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4621 case "${with_isa_spec}" in
4622 ""|default|20191213|201912)
4623 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20191213"
4624 with_isa_spec=20191213
4627 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_2P2"
4630 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20190608"
4631 with_isa_spec=20190608
4634 echo "--with-isa-spec only accept 2.2, 20191213, 201912, 20190608 or 201906" 1>&2
4638 case "${with_riscv_attribute}" in
4640 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4643 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4646 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4649 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4655 # Infer arch from --with-arch, --target, and --with-abi.
4656 case "${with_arch}" in
4657 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4661 # Infer XLEN, but otherwise assume GC.
4662 case "${with_abi}" in
4663 ilp32e) with_arch="rv32e" ;;
4664 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4665 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4666 *) with_arch="rv${xlen}gc" ;;
4670 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4674 PYTHON=`which python || which python3 || which python2`
4675 if test "x${PYTHON}" != x; then
4676 with_arch=`${PYTHON} ${srcdir}/config/riscv/arch-canonicalize -misa-spec=${with_isa_spec} ${with_arch}`
4678 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ARCH=${with_arch}"
4680 # Make sure --with-abi is valid. If it was not specified,
4681 # pick a default based on the ISA, preferring soft-float
4682 # unless the D extension is present.
4683 case "${with_abi}" in
4684 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4687 case "${with_arch}" in
4688 rv32*d* | rv32g*) with_abi=ilp32d ;;
4689 rv32e*) with_abi=ilp32e ;;
4690 rv32*) with_abi=ilp32 ;;
4691 rv64*d* | rv64g*) with_abi=lp64d ;;
4692 rv64*) with_abi=lp64 ;;
4696 echo "--with-abi=${with_abi} is not supported" 1>&2
4700 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ABI=${with_abi}"
4702 # Make sure ABI and ISA are compatible.
4703 case "${with_abi},${with_arch}" in
4704 ilp32,rv32* | ilp32e,rv32e* \
4705 | ilp32f,rv32*f* | ilp32f,rv32g* \
4706 | ilp32d,rv32*d* | ilp32d,rv32g* \
4708 | lp64f,rv64*f* | lp64f,rv64g* \
4709 | lp64d,rv64*d* | lp64d,rv64g*)
4712 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4716 # Handle --with-multilib-generator.
4717 if test "x${with_multilib_generator}" != xdefault; then
4718 if test "x${with_multilib_list}" != xdefault; then
4719 echo "--with-multilib-list= can't used with --with-multilib-generator= at same time" 1>&2
4724 if ${srcdir}/config/riscv/multilib-generator \
4725 -misa-spec=${with_isa_spec} \
4726 `echo ${with_multilib_generator} | sed 's/;/ /g'`\
4727 > t-multilib-config;
4729 tmake_file="${tmake_file} riscv/t-withmultilib-generator"
4731 echo "invalid option for --with-multilib-generator" 1>&2
4736 echo "--with-multilib-generator= is not supported for ${target}, only supported for riscv*-*-elf*" 1>&2
4742 # Handle --with-multilib-list.
4743 if test "x${with_multilib_list}" != xdefault; then
4744 tmake_file="${tmake_file} riscv/t-withmultilib"
4746 case ${with_multilib_list} in
4747 ilp32 | ilp32f | ilp32d \
4748 | lp64 | lp64f | lp64d )
4749 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4752 echo "--with-multilib-list=${with_multilib_list} not supported."
4759 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 compact-branches msa"
4761 case ${with_float} in
4766 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4772 "" | single | double)
4776 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4786 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4791 case ${with_fp_32} in
4796 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4801 case ${with_odd_spreg_32} in
4803 with_odd_spreg_32="odd-spreg"
4806 with_odd_spreg_32="no-odd-spreg"
4812 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4818 "" | 32 | o64 | n32 | 64 | eabi)
4822 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4827 case ${with_divide} in
4828 "" | breaks | traps)
4832 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4837 case ${with_llsc} in
4848 echo "Unknown llsc type used in --with-llsc" 1>&2
4853 case ${with_mips_plt} in
4858 with_mips_plt=no-plt
4863 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4868 case ${with_synci} in
4878 echo "Unknown synci type used in --with-synci" 1>&2
4883 case ${with_lxc1_sxc1} in
4885 with_lxc1_sxc1=lxc1-sxc1
4888 with_lxc1_sxc1=no-lxc1-sxc1
4893 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4898 case ${with_madd4} in
4908 echo "Unknown madd4 type used in --with-madd4" 1>&2
4913 case ${with_compact_branches} in
4914 "" | never | always | optimal)
4917 echo "Unknown compact-branches policy used in --with-compact-branches" 1>&2
4932 echo "Unknown msa type used in --with-msa" 1>&2
4939 supported_defaults="abi arch tune fpu simd multilib-default strict-align-lib"
4944 arch_pattern arch_default \
4945 fpu_pattern fpu_default \
4946 triplet_os triplet_abi \
4949 # --with-abi is now obsolete, emit a warning if given.
4953 echo "warning: --with-abi= is now obsolete," \
4954 "the default ABI is derived from your target" \
4955 "triplet ${target}" 1>&2
4959 # Infer ABI from the triplet.
4961 loongarch64-*f64) abi_base="lp64d"; abi_ext="base" ;;
4962 loongarch64-*f32) abi_base="lp64f"; abi_ext="base" ;;
4963 loongarch64-*sf) abi_base="lp64s"; abi_ext="base" ;;
4964 loongarch64-*) abi_base="lp64d"; abi_ext="base" ;;
4966 echo "Unsupported target ${target}." 1>&2
4971 # Get the canonical triplet (multiarch specifier).
4972 case ${abi_base},${abi_ext} in
4973 lp64d,base) triplet_abi="";;
4974 lp64f,base) triplet_abi="f32";;
4975 lp64s,base) triplet_abi="sf";;
4979 *-linux-gnu*) triplet_os="linux-gnu";;
4980 *-linux-musl*) triplet_os="linux-musl";;
4981 *-elf*) triplet_os="elf";;
4983 echo "Unsupported target ${target}." 1>&2
4987 la_canonical_triplet="loongarch64-${triplet_os}${triplet_abi}"
4990 # Perform initial sanity checks on --with-* options.
4991 case ${with_arch} in
4992 "" | abi-default | loongarch64 | la464) ;; # OK, append here.
4994 if test x${host} != x${target}; then
4995 echo "--with-arch=native is illegal for cross-compiler." 1>&2
5000 echo "Unknown arch in --with-arch=$with_arch" 1>&2
5007 "" | none | 32 | 64) ;; # OK, append here.
5009 # Convert "0" to "none" for upcoming checks.
5013 echo "Unknown fpu type in --with-fpu=$with_fpu" 1>&2
5018 case ${with_simd} in
5020 lsx | lasx) # OK, append here.
5025 echo "--with-simd=${with_simd} conflicts with --with-fpu=${with_fpu}" 1>&2
5032 echo "Unknown SIMD extension in --with-simd=$with_simd" 1>&2
5037 # Infer ISA-related default options from the ABI: pass 1
5038 case ${abi_base}/${abi_ext} in
5040 # architectures that support lp64* ABI
5041 arch_pattern="native|abi-default|loongarch64|la464"
5042 # default architecture for lp64* ABI
5043 arch_default="abi-default"
5046 echo "Unsupported ABI type ${abi_base}/${abi_ext}." 1>&2
5051 # Infer ISA-related default options from the ABI: pass 2
5052 case ${abi_base}/${abi_ext} in
5061 fpu_pattern="none|32|64"
5065 echo "Unsupported ABI type ${abi_base}/${abi_ext}." 1>&2
5070 ## Set default value for with_arch.
5071 case ${with_arch} in
5073 if test x${arch_default} != x; then
5074 with_arch=${arch_default}
5076 with_arch=${arch_pattern}
5081 if echo "${with_arch}" | grep -E "^${arch_pattern}$" > /dev/null; then
5084 echo "${abi_base}/${abi_ext} ABI cannot be implemented with" \
5085 "--with-arch=${with_arch}." 1>&2
5091 ## Set default value for with_fpu.
5094 if test x${fpu_default} != x; then
5095 with_fpu=${fpu_default}
5097 with_fpu=${fpu_pattern}
5102 if echo "${with_fpu}" | grep -E "^${fpu_pattern}$" > /dev/null; then
5105 echo "${abi_base}/${abi_ext} ABI cannot be implemented with" \
5106 "--with-fpu=${with_fpu}." 1>&2
5113 # Check default with_tune configuration using with_arch.
5114 case ${with_arch} in
5116 tune_pattern="native|abi-default|loongarch64|la464"
5119 # By default, $with_tune == $with_arch
5124 case ${with_tune} in
5127 if echo "${with_tune}" | grep -E "^${tune_pattern}$" > /dev/null; then
5130 echo "Incompatible options: --with-tune=${with_tune}" \
5131 "and --with-arch=${with_arch}." 1>&2
5137 # Build libraries with -mstrict-align if --with-strict-align-lib is given.
5138 case ${with_strict_align_lib} in
5139 yes) strict_align_opt="/mstrict-align" ;;
5142 echo "Unknown option: --with-strict-align-lib=${with_strict_align_lib}" 1>&2
5148 # Handle --with-multilib-default
5149 if echo "${with_multilib_default}" \
5150 | grep -E -e '[[:space:]]' -e '//' -e '/$' -e '^/' > /dev/null 2>&1; then
5151 echo "Invalid argument to --with-multilib-default." 1>&2
5155 if test x${with_multilib_default} = x; then
5156 # Use -march=abi-default by default when building libraries.
5157 with_multilib_default="/march=abi-default"
5159 unset parse_state component
5161 for component in $(echo "${with_multilib_default}" | tr '/' ' '); do
5162 case ${parse_state},${component} in
5163 arch,|arch,abi-default)
5164 # ABI-default: use the ABI's default ARCH configuration for
5165 # multilib library builds, unless otherwise specified
5166 # in --with-multilib-list.
5167 with_multilib_default="/march=abi-default" ;;
5169 # Fixed: use the default gcc configuration for all multilib
5170 # builds by default.
5171 with_multilib_default="" ;;
5172 arch,native|arch,loongarch64|arch,la464) # OK, append here.
5173 with_multilib_default="/march=${component}" ;;
5175 with_multilib_default="/march=abi-default"
5176 with_multilib_default="${with_multilib_default}/${component}" ;;
5178 with_multilib_default="${with_multilib_default}/${component}" ;;
5181 if test x${parse_state} = xarch; then
5185 unset parse_state component
5188 # Handle --with-multilib-list.
5189 if test x"${with_multilib_list}" = x \
5190 || test x"${with_multilib_list}" = xno \
5191 || test x"${with_multilib_list}" = xdefault \
5192 || test x"${enable_multilib}" != xyes; then
5194 with_multilib_list="${abi_base}/${abi_ext}"
5197 # Check if the configured default ABI combination is included in
5198 # ${with_multilib_list}.
5199 loongarch_multilib_list_sane=no
5201 # This one goes to TM_MULTILIB_CONFIG, for use in t-linux.
5202 loongarch_multilib_list_make="${abi_base},"
5204 # This one goes to tm_defines, for use in loongarch-driver.c.
5205 loongarch_multilib_list_c=""
5207 # ${with_multilib_list} should not contain whitespaces,
5208 # consecutive commas or slashes.
5209 if echo "${with_multilib_list}" \
5210 | grep -E -e "[[:space:]]" -e '[,/][,/]' -e '[,/]$' -e '^[,/]' > /dev/null 2>&1; then
5211 echo "Invalid argument to --with-multilib-list." 1>&2
5215 unset component elem_abi_base elem_abi_ext elem_tmp parse_state all_abis
5216 for elem in $(echo "${with_multilib_list}" | tr ',' ' '); do
5217 unset elem_abi_base elem_abi_ext
5218 parse_state="abi-base"
5220 for component in $(echo "${elem}" | tr '/' ' '); do
5221 if test x${parse_state} = x"abi-base"; then
5223 case ${component} in
5224 lp64d | lp64f | lp64s) elem_tmp="ABI_BASE_$(echo ${component} | tr a-z A-Z),";;
5226 echo "Unknown base ABI \"${component}\" in --with-multilib-list." 1>&2
5230 loongarch_multilib_list_c="${loongarch_multilib_list_c}${elem_tmp}"
5231 loongarch_multilib_list_make="${loongarch_multilib_list_make}mabi=${component}"
5232 elem_abi_base="${component}"
5234 parse_state="abi-ext"
5238 if test x${parse_state} = x"abi-ext"; then
5239 # ABI extension type
5240 case ${component} in
5243 loongarch_multilib_list_c="${loongarch_multilib_list_c}ABI_EXT_BASE,"
5244 loongarch_multilib_list_make="${loongarch_multilib_list_make}" # Add nothing for now.
5250 # The default ABI extension is "base" if unspecified.
5252 loongarch_multilib_list_c="${loongarch_multilib_list_c}ABI_EXT_BASE,"
5253 loongarch_multilib_list_make="${loongarch_multilib_list_make}" # Add nothing for now.
5257 if test x${parse_state} = x"arch"; then
5259 case ${component} in
5260 native | abi-default | loongarch64 | la464) # OK, append here.
5261 # Append -march spec for each multilib variant.
5262 loongarch_multilib_list_make="${loongarch_multilib_list_make}/march=${component}"
5268 # "/default" is equivalent to --with-multilib-default=fixed
5274 # If ARCH is unspecified for this multilib variant, use ${with_multllib_default}.
5275 loongarch_multilib_list_make="${loongarch_multilib_list_make}${with_multilib_default}"
5279 if test x${parse_state} = x"opts"; then
5280 # Other compiler options for building libraries.
5281 # (no static sanity check performed)
5282 case ${component} in
5284 # Append other components as additional build options
5285 # (without the prepending dash).
5286 # Their validity should be examined by the compiler.
5287 loongarch_multilib_list_make="${loongarch_multilib_list_make}/${component}"
5293 case ${parse_state} in
5296 loongarch_multilib_list_c="${loongarch_multilib_list_c}ABI_EXT_BASE,"
5297 loongarch_multilib_list_make="${loongarch_multilib_list_make}" # Add nothing for now.
5298 loongarch_multilib_list_make="${loongarch_multilib_list_make}${with_multilib_default}"
5301 # If ARCH is unspecified for this multilib variant, use ${with_multllib_default}.
5302 loongarch_multilib_list_make="${loongarch_multilib_list_make}${with_multilib_default}"
5309 # Use mstrict-align for building libraries if --with-strict-align-lib is given.
5310 loongarch_multilib_list_make="${loongarch_multilib_list_make}${strict_align_opt}"
5312 # Check for repeated configuration of the same multilib variant.
5313 if echo "${elem_abi_base}/${elem_abi_ext}" \
5314 | grep -E "^(${all_abis%|})$" >/dev/null 2>&1; then
5315 echo "Repeated multilib config of \"${elem_abi_base}/${elem_abi_ext}\" in --with-multilib-list."
5318 all_abis="${all_abis}${elem_abi_base}/${elem_abi_ext}|"
5321 # Check if the default ABI configuration of the GCC binary
5322 # is included in the enabled multilib variants.
5323 if test x${elem_abi_base} = x${abi_base} \
5324 && test x${elem_abi_ext} = x${abi_ext}; then
5325 loongarch_multilib_list_sane=yes
5327 loongarch_multilib_list_make="${loongarch_multilib_list_make},"
5329 unset component elem_abi_base elem_abi_ext elem_tmp parse_state all_abis
5332 # Check if the default ABI combination is in the default list.
5333 if test x${loongarch_multilib_list_sane} = xno; then
5334 if test x${abi_ext} = xbase; then
5337 abi_ext="/${abi_ext}"
5340 echo "Default ABI combination (${abi_base}${abi_ext})" \
5341 "not found in --with-multilib-list." 1>&2
5345 # Remove the excessive appending comma.
5346 loongarch_multilib_list_c=${loongarch_multilib_list_c%,}
5347 loongarch_multilib_list_make=${loongarch_multilib_list_make%,}
5351 supported_defaults="arch cpu nds32_lib float fpu_config"
5353 # process --with-arch
5354 case "${with_arch}" in
5356 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
5360 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
5363 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
5366 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
5370 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
5375 case "${with_cpu}" in
5379 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
5383 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
5388 # process --with-nds32-lib
5389 case "${with_nds32_lib}" in
5393 with_nds32_lib=ulibc
5396 with_nds32_lib=glibc
5399 with_nds32_lib=newlib
5400 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
5406 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
5410 # for the arch=v3f or arch=v3s under mculib toolchain,
5411 # we would like to set -fno-math-errno as default
5412 case "${with_arch}" in
5414 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
5422 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
5427 # process --with-float
5428 case "${with_float}" in
5433 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
5438 # process --with-config-fpu
5439 case "${with_config_fpu}" in
5444 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
5452 supported_defaults="arch"
5453 case "$with_arch" in
5458 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
5465 supported_defaults=arch
5466 TM_MULTILIB_CONFIG=$with_arch
5467 #TODO 'sm_[...]' list per 'nvptx-sm.def'.
5472 sm_35 | sm_53 | sm_70 | sm_75 | sm_80 )
5473 # OK, but we'd like 'sm_30', too.
5474 TM_MULTILIB_CONFIG="$TM_MULTILIB_CONFIG sm_30"
5477 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
5483 powerpc*-*-* | rs6000-*-*)
5484 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
5486 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5487 eval "val=\$with_$which"
5489 default32 | default64)
5494 echo "$val only valid for --with-cpu and --with-tune." 1>&2
5498 with_which="with_$which"
5502 tm_defines="${tm_defines} CONFIG_PPC405CR"
5503 eval "with_$which=405"
5505 "" | common | native \
5506 | power[3456789] | power10 | power5+ | power6x \
5507 | powerpc | powerpc64 | powerpc64le \
5509 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
5510 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
5511 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
5512 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
5513 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
5517 echo "Unknown cpu used in --with-$which=$val." 1>&2
5524 "" | elfv1 | elfv2 )
5528 echo "Unknown ABI used in --with-abi=$with_abi"
5533 if test "x$with_advance_toolchain" != x; then
5534 if test -d "/opt/$with_advance_toolchain/." -a \
5535 -d "/opt/$with_advance_toolchain/bin/." -a \
5536 -d "/opt/$with_advance_toolchain/include/."; then
5538 tm_file="$tm_file ./advance-toolchain.h"
5539 (at="/opt/$with_advance_toolchain"
5540 echo "/* Use Advance Toolchain $at */"
5542 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
5543 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
5544 "\"--enable-new-dtags\""
5546 echo "#undef DYNAMIC_LINKER_PREFIX"
5547 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
5549 echo "#undef MD_EXEC_PREFIX"
5550 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
5552 echo "#undef MD_STARTFILE_PREFIX"
5553 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
5555 echo "#undef MD_STARTFILE_PREFIX_1"
5556 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
5557 > advance-toolchain.h
5559 echo "Unknown advance-toolchain $with_advance_toolchain"
5564 # Set up the default long double format if the user changed it.
5565 if test x$with_long_double_format = xieee; then
5566 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
5568 elif test x$with_long_double_format = xibm; then
5569 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5574 supported_defaults="arch mode tune"
5576 for which in arch tune; do
5577 eval "val=\$with_$which"
5579 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | z16 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 | arch14 )
5583 echo "Unknown cpu used in --with-$which=$val." 1>&2
5589 case ${with_mode} in
5594 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5600 sh[123456ble]*-*-* | sh-*-*)
5601 supported_defaults="cpu"
5602 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5603 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5606 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5608 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5611 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
5612 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5613 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5614 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5620 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5622 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5623 eval "val=\$with_$which"
5625 "" | sparc | sparcv9 | sparc64 \
5627 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5628 | sparclite | f930 | f934 | sparclite86x \
5629 | sparclet | tsc701 \
5630 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5631 | niagara3 | niagara4 | niagara7 | m8)
5635 echo "Unknown cpu used in --with-$which=$val" 1>&2
5641 case ${with_float} in
5646 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5653 supported_defaults="arch"
5655 case ${with_arch} in
5656 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5660 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5667 supported_defaults=cpu
5669 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5673 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5679 supported_defaults="cpu"
5683 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5690 # VxWorks support for shared libraries has to be requested explicitly,
5691 # so we can factor this part here:
5693 case "${target}-${enable_shared}" in
5695 tmake_file="${tmake_file} t-slibgcc"
5699 # Targets for which there is at least one VxWorks port should include
5700 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5701 # of markers from other files in the port, including the vxworks*.h files to
5702 # distinguish VxWorks variants such as VxWorks 7 or 64).
5705 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5706 | sparc*-*-* | x86_64-*-*)
5707 tm_file="vxworks-dummy.h ${tm_file}"
5711 # Set some miscellaneous flags for particular targets.
5712 target_cpu_default2=
5715 if test x"$target_cpu_cname" != x
5717 target_cpu_default2=$target_cpu_cname
5722 if test x$with_cpu = x
5724 echo "Don't know the target cpu" 1>&2
5727 target_cpu_default2="\\\"$with_cpu\\\""
5732 if test x$gas = xyes
5734 target_cpu_default2="MASK_GAS"
5738 fido*-*-* | m68k*-*-*)
5739 target_cpu_default2=$m68k_cpu_ident
5740 tmake_file="m68k/t-opts $tmake_file"
5741 if [ x"$m68k_arch_family" != x ]; then
5742 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5746 i[34567]86-*-darwin* | x86_64-*-darwin*)
5748 i[34567]86-*-linux* | x86_64-*-linux*)
5749 extra_objs="${extra_objs} gnu-property.o"
5750 tmake_file="$tmake_file i386/t-linux i386/t-gnu-property"
5752 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5753 tmake_file="$tmake_file i386/t-kfreebsd"
5756 tmake_file="$tmake_file i386/t-gnu"
5758 i[34567]86-*-msdosdjgpp*)
5759 tmake_file="${tmake_file} i386/t-djgpp"
5761 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5763 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5765 i[34567]86-*-mingw* | x86_64-*-mingw*)
5767 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5769 i[34567]86-*-freebsd*)
5772 tmake_file="${tmake_file} i386/t-freebsd64"
5778 if test x$gnu_ld = xyes
5780 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5784 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5787 if test x$with_arch != x; then
5788 default_mips_arch=$with_arch
5790 with_arch=$default_mips_arch
5792 if test x$with_abi != x; then
5793 default_mips_abi=$with_abi
5795 case ${default_mips_arch} in
5796 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS1" ;;
5797 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS2" ;;
5798 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3" ;;
5799 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS4" ;;
5800 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32" ;;
5801 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2" ;;
5802 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6" ;;
5803 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64" ;;
5804 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2" ;;
5805 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6" ;;
5807 case ${default_mips_abi} in
5808 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5809 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5810 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5811 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5812 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5814 tmake_file="mips/t-mips $tmake_file"
5818 # Export canonical triplet.
5819 tm_defines="${tm_defines} LA_MULTIARCH_TRIPLET=${la_canonical_triplet}"
5821 # Define macro LA_DISABLE_MULTILIB if --disable-multilib
5822 tm_defines="${tm_defines} TM_MULTILIB_LIST=${loongarch_multilib_list_c}"
5823 if test x$enable_multilib = xyes; then
5824 TM_MULTILIB_CONFIG="${loongarch_multilib_list_make}"
5826 tm_defines="${tm_defines} LA_DISABLE_MULTILIB"
5829 # Let --with- flags initialize the enum variables from loongarch.opt.
5830 # See macro definitions from loongarch-opts.h and loongarch-cpu.h.
5833 tm_defines="${tm_defines} DEFAULT_CPU_ARCH=CPU_$(echo ${with_arch} | tr a-z- A-Z_)"
5836 tm_defines="${tm_defines} DEFAULT_ABI_BASE=ABI_BASE_$(echo ${abi_base} | tr a-z- A-Z_)"
5840 base) tm_defines="${tm_defines} DEFAULT_ABI_EXT=ABI_EXT_BASE" ;;
5844 if test x${with_tune} != x; then
5845 tm_defines="${tm_defines} DEFAULT_CPU_TUNE=CPU_$(echo ${with_tune} | tr a-z- A-Z_)"
5850 none) tm_defines="$tm_defines DEFAULT_ISA_EXT_FPU=ISA_EXT_NONE" ;;
5851 32) tm_defines="$tm_defines DEFAULT_ISA_EXT_FPU=ISA_EXT_FPU32" ;;
5852 64) tm_defines="$tm_defines DEFAULT_ISA_EXT_FPU=ISA_EXT_FPU64" ;;
5856 case ${with_simd} in
5857 none) tm_defines="$tm_defines DEFAULT_ISA_EXT_SIMD=ISA_EXT_NONE" ;;
5858 lsx) tm_defines="$tm_defines DEFAULT_ISA_EXT_SIMD=ISA_EXT_SIMD_LSX" ;;
5859 lasx) tm_defines="$tm_defines DEFAULT_ISA_EXT_SIMD=ISA_EXT_SIMD_LASX" ;;
5862 tmake_file="loongarch/t-loongarch $tmake_file"
5865 powerpc*-*-* | rs6000-*-*)
5866 # FIXME: The PowerPC port uses the value set at compile time,
5867 # although it's only cosmetic.
5868 if test "x$with_cpu" != x
5870 target_cpu_default2="\\\"$with_cpu\\\""
5872 out_file="${cpu_type}/${cpu_type}.cc"
5873 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5874 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5875 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5876 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5879 sh[123456ble]*-*-* | sh-*-*)
5880 c_target_objs="${c_target_objs} sh-c.o"
5881 cxx_target_objs="${cxx_target_objs} sh-c.o"
5885 # Some standard aliases.
5890 xsparcv9 | xsparc64)
5895 if test x$with_tune = x ; then
5906 # The SPARC port checks this value at compile-time.
5907 target_cpu_default2="TARGET_CPU_$with_cpu"
5911 case "x$with_cpu" in
5914 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5915 target_cpu_default2="TARGET_CPU_$with_cpu"
5918 target_cpu_default2="TARGET_CPU_v850e1"
5923 target_cpu_default2="TARGET_CPU_$with_cpu"
5928 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 compact-branches msa"
5929 for option in $all_defaults
5931 eval "val=\$with_"`echo $option | sed s/-/_/g`
5932 if test -n "$val"; then
5933 case " $supported_defaults " in
5937 echo "This target does not support --with-$option." 2>&1
5938 echo "Valid --with options are: $supported_defaults" 2>&1
5945 t="{ \"$option\", \"$val\" }"
5947 t="${t}, { \"$option\", \"$val\" }"
5954 configure_default_options="{ { NULL, NULL} }"
5956 configure_default_options="{ ${t} }"
5959 if test "$target_cpu_default2" != ""
5961 if test "$target_cpu_default" != ""
5963 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5965 target_cpu_default=$target_cpu_default2
5970 i[34567]86-*-* | x86_64-*-*)
5971 if test x$enable_as_accelerator = xyes; then
5972 extra_programs="mkoffload\$(exeext)"