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 # out_file The name of the machine description C support
94 # file, if different from "$cpu_type/$cpu_type.c".
96 # common_out_file The name of the source file for code shared between
97 # the compiler proper and the driver.
99 # md_file The name of the machine-description file, if
100 # different from "$cpu_type/$cpu_type.md".
102 # tmake_file A list of machine-description-specific
103 # makefile-fragments, if different from
104 # "$cpu_type/t-$cpu_type".
106 # extra_modes The name of the file containing a list of extra
107 # machine modes, if necessary and different from
108 # "$cpu_type/$cpu_type-modes.def".
110 # extra_objs List of extra objects that should be linked into
111 # the compiler proper (cc1, cc1obj, cc1plus)
112 # depending on target.
114 # extra_gcc_objs List of extra objects that should be linked into
115 # the compiler driver (gcc) depending on target.
117 # extra_headers List of used header files from the directory
118 # config/${cpu_type}.
120 # user_headers_inc_next_pre
121 # List of header file names of internal gcc header
122 # files, which should be prefixed by an include_next.
123 # user_headers_inc_next_post
124 # List of header file names of internal gcc header
125 # files, which should be postfixed by an include_next.
126 # use_gcc_tgmath If set, add tgmath.h to the list of used header
129 # use_gcc_stdint If "wrap", install a version of stdint.h that
130 # wraps the system's copy for hosted compilations;
131 # if "provide", provide a version of systems without
132 # such a system header; otherwise "none", do not
133 # provide such a header at all.
135 # extra_programs List of extra executables compiled for this target
136 # machine, used when linking.
138 # extra_options List of target-dependent .opt files.
140 # c_target_objs List of extra target-dependent objects that be
141 # linked into the C compiler only.
143 # cxx_target_objs List of extra target-dependent objects that be
144 # linked into the C++ compiler only.
146 # d_target_objs List of extra target-dependent objects that be
147 # linked into the D compiler only.
149 # fortran_target_objs List of extra target-dependent objects that be
150 # linked into the fortran compiler only.
152 # target_gtfiles List of extra source files with type information.
154 # xm_defines List of macros to define when compiling for the
157 # xm_file List of files to include when compiling for the
160 # use_collect2 Set to yes or no, depending on whether collect2
163 # target_cpu_default Set to override the default target model.
165 # gdb_needs_out_file_path
166 # Set to yes if gdb needs a dir command with
167 # `dirname $out_file`.
169 # thread_file Set to control which thread package to use.
171 # gas Set to yes or no depending on whether the target
172 # system normally uses GNU as.
174 # configure_default_options
175 # Set to an initializer for configure_default_options
176 # in configargs.h, based on --with-cpu et cetera.
178 # native_system_header_dir
179 # Where system header files are found for this
180 # target. This defaults to /usr/include. If
181 # the --with-sysroot configure option or the
182 # --sysroot command line option is used this
183 # will be relative to the sysroot.
184 # target_type_format_char
185 # The default character to be used for formatting
187 # .type symbol_name, ${t_t_f_c}<property>
190 # The following variables are used in each case-construct to build up the
191 # outgoing variables:
193 # gnu_ld Set to yes or no depending on whether the target
194 # system normally uses GNU ld.
196 # target_has_targetcm Set to yes or no depending on whether the target
197 # has its own definition of targetcm.
199 # target_has_targetm_common Set to yes or no depending on whether the
200 # target has its own definition of targetm_common.
202 # target_has_targetdm Set to yes or no depending on whether the target
203 # has its own definition of targetdm.
209 user_headers_inc_next_pre=
210 user_headers_inc_next_post=
221 target_has_targetcm=no
222 target_has_targetm_common=yes
223 target_has_targetdm=no
226 # Set this to force installation and use of collect2.
228 # Set this to override the default target model.
230 # Set this if gdb needs a dir command with `dirname $out_file`
231 gdb_needs_out_file_path=
232 # Set this to control which thread package will be used.
234 # Reinitialize these from the flag values every loop pass, since some
235 # configure entries modify them.
237 gnu_ld="$gnu_ld_flag"
238 default_use_cxa_atexit=no
239 default_gnu_indirect_function=no
242 native_system_header_dir=/usr/include
243 target_type_format_char='@'
245 # Don't carry these over build->host->target. Please.
249 # Determine Solaris minor version
250 case ${target}:`uname -v` in
251 # Only do this on Solaris. Illumos uses illumos-* instead.
252 *-*-solaris2.11*:11.*)
253 # Restrict to native configurations.
254 if test x$host = x$target; then
255 uname_version="`uname -v`"
256 # Prepend dot as needed below.
257 target_min=".`expr "$uname_version" : '11\.\([0-9]*\)'`"
262 # Obsolete configurations.
263 case ${target}${target_min} in
264 *-*-solaris2.11.[0-3]* \
266 if test "x$enable_obsolete" != xyes; then
267 echo "*** Configuration ${target}${target_min} is obsolete." >&2
268 echo "*** Specify --enable-obsolete to build it anyway." >&2
269 echo "*** Support will be REMOVED in the next major release of GCC," >&2
270 echo "*** unless a maintainer comes forward." >&2
275 # Unsupported targets list. Do not put an entry in this list unless
276 # it would otherwise be caught by a more permissive pattern. The list
277 # should be in alphabetical order.
279 # Avoid special cases that are not obsolete
290 | i[34567]86-go32-* \
291 | i[34567]86-*-go32* \
295 | m68k-*-uclinuxoldabi* \
296 | mips64orion*-*-rtems* \
298 | powerpc*-*-linux*paired* \
300 | sparc-hal-solaris2* \
303 | *-*-freebsd[12] | *-*-freebsd[1234].* \
304 | *-*-freebsd*aout* \
312 | *-*-solaris2.[0-9] \
313 | *-*-solaris2.[0-9].* \
318 echo "*** Configuration ${target} not supported" 1>&2
323 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
324 # updated in each machine entry. Also set default extra_headers for some
327 cpu_type=`echo ${target} | sed 's/-.*$//'`
332 tmake_file=m32c/t-m32c
333 target_has_targetm_common=no
337 extra_headers="arm_fp16.h arm_neon.h arm_bf16.h arm_acle.h arm_sve.h"
338 c_target_objs="aarch64-c.o"
339 cxx_target_objs="aarch64-c.o"
340 d_target_objs="aarch64-d.o"
341 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"
342 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.cc \$(srcdir)/config/aarch64/aarch64-sve-builtins.h \$(srcdir)/config/aarch64/aarch64-sve-builtins.cc"
343 target_has_targetm_common=yes
347 extra_options="${extra_options} g.opt"
358 c_target_objs="arc-c.o"
359 cxx_target_objs="arc-c.o"
360 extra_options="${extra_options} arc/arc-tables.opt g.opt"
361 extra_headers="arc-simd.h"
365 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"
366 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"
367 target_type_format_char='%'
368 c_target_objs="arm-c.o"
369 cxx_target_objs="arm-c.o"
370 d_target_objs="arm-d.o"
371 extra_options="${extra_options} arm/arm-tables.opt"
372 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.cc \$(srcdir)/config/arm/arm-mve-builtins.h \$(srcdir)/config/arm/arm-mve-builtins.cc"
376 c_target_objs="avr-c.o"
377 cxx_target_objs="avr-c.o"
386 extra_options="${extra_options} g.opt"
389 target_has_targetm_common=no
391 moxie*) cpu_type=moxie
392 target_has_targetm_common=no
396 extra_headers=math-68881.h
397 extra_options="${extra_options} m68k/m68k-tables.opt"
399 i[34567]86-*-* | x86_64-*-*)
401 c_target_objs="i386-c.o"
402 cxx_target_objs="i386-c.o"
403 d_target_objs="i386-d.o"
404 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"
405 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.cc \$(srcdir)/config/i386/i386-expand.cc \$(srcdir)/config/i386/i386-options.cc"
406 extra_options="${extra_options} fused-madd.opt"
407 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
408 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
409 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
410 immintrin.h x86intrin.h avxintrin.h xopintrin.h
411 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
412 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
413 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
414 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
415 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
416 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
417 shaintrin.h clflushoptintrin.h xsavecintrin.h
418 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
419 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
420 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
421 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
422 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
423 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
424 gfniintrin.h cet.h avx512vbmi2intrin.h
425 avx512vbmi2vlintrin.h avx512vnniintrin.h
426 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
427 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
428 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
429 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h
430 avx512bf16intrin.h enqcmdintrin.h serializeintrin.h
431 avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h
432 tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h
433 amxbf16intrin.h x86gprintrin.h uintrintrin.h
434 hresetintrin.h keylockerintrin.h avxvnniintrin.h
435 mwaitintrin.h avx512fp16intrin.h avx512fp16vlintrin.h
436 avxifmaintrin.h avxvnniint8intrin.h avxneconvertintrin.h
437 cmpccxaddintrin.h amxfp16intrin.h prfchiintrin.h
438 raointintrin.h amxcomplexintrin.h avxvnniint16intrin.h
439 sm3intrin.h sha512intrin.h sm4intrin.h"
442 extra_headers=ia64intrin.h
443 extra_options="${extra_options} g.opt fused-madd.opt"
449 extra_options="${extra_options} g.opt"
453 extra_options="${extra_options} g.opt"
456 extra_headers=math-68881.h
457 extra_options="${extra_options} m68k/m68k-tables.opt"
461 extra_options="${extra_options} g.opt"
465 d_target_objs="mips-d.o"
466 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
467 extra_objs="frame-header-opt.o"
468 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
472 extra_headers="larchintrin.h"
473 extra_objs="loongarch-c.o loongarch-builtins.o loongarch-cpu.o loongarch-opts.o loongarch-def.o"
474 extra_gcc_objs="loongarch-driver.o loongarch-cpu.o loongarch-opts.o loongarch-def.o"
475 extra_options="${extra_options} g.opt fused-madd.opt"
479 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
482 extra_options="${extra_options} nds32/nds32-linux.opt"
485 extra_options="${extra_options} nds32/nds32-elf.opt"
490 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"
494 extra_options="${extra_options} g.opt"
498 c_target_objs="nvptx-c.o"
499 cxx_target_objs="nvptx-c.o"
500 extra_options="${extra_options} nvptx/nvptx-gen.opt"
507 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
508 extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
509 extra_objs="${extra_objs} rs6000-builtins.o rs6000-builtin.o"
510 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
511 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
512 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
513 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
514 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
515 extra_headers="${extra_headers} nmmintrin.h immintrin.h x86gprintrin.h"
516 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
517 extra_headers="${extra_headers} amo.h"
519 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower10|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
523 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
524 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.cc \$(srcdir)/config/rs6000/rs6000-call.cc"
525 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.cc"
526 target_gtfiles="$target_gtfiles ./rs6000-builtins.h"
533 extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o riscv-shorten-memrefs.o riscv-selftests.o riscv-v.o riscv-vsetvl.o riscv-vector-costs.o"
534 extra_objs="${extra_objs} riscv-vector-builtins.o riscv-vector-builtins-shapes.o riscv-vector-builtins-bases.o"
535 extra_objs="${extra_objs} thead.o"
536 d_target_objs="riscv-d.o"
537 extra_headers="riscv_vector.h"
538 target_gtfiles="$target_gtfiles \$(srcdir)/config/riscv/riscv-vector-builtins.cc"
539 target_gtfiles="$target_gtfiles \$(srcdir)/config/riscv/riscv-vector-builtins.h"
542 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
543 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
544 extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
545 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.cc \$(srcdir)/config/rs6000/rs6000-call.cc"
546 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.cc"
550 c_target_objs="sparc-c.o"
551 cxx_target_objs="sparc-c.o"
552 d_target_objs="sparc-d.o"
553 extra_headers="visintrin.h"
557 d_target_objs="s390-d.o"
558 extra_options="${extra_options} fused-madd.opt"
559 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
561 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
562 sh[123456789lbe]*-*-* | sh-*-*)
564 extra_options="${extra_options} fused-madd.opt"
565 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
572 extra_headers="c6x_intrinsics.h"
573 extra_options="${extra_options} c6x/c6x-tables.opt"
576 extra_options="${extra_options} fused-madd.opt"
577 extra_objs="xtensa-dynconfig.o"
581 tm_file=${cpu_type}/${cpu_type}.h
582 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
584 tm_p_file=${cpu_type}/${cpu_type}-protos.h
588 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-d.h
590 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-d.h"
594 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
596 extra_modes=${cpu_type}/${cpu_type}-modes.def
598 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
600 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
605 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
608 if test "x$with_multilib_list" = xilp32; then
609 tm_file="aarch64/biarchilp32.h ${tm_file}"
611 tm_file="aarch64/biarchlp64.h ${tm_file}"
615 tm_file="aarch64/biarchilp32.h ${tm_file}"
618 tm_file="aarch64/biarchlp64.h ${tm_file}"
621 echo "Unknown ABI used in --with-abi=$with_abi"
626 if test "x$with_abi" != x; then
627 echo "This target does not support --with-abi."
636 if test "x$with_multilib_list" = xmx32; then
637 tm_file="i386/biarchx32.h ${tm_file}"
639 tm_file="i386/biarch64.h ${tm_file}"
643 tm_file="i386/biarch64.h ${tm_file}"
646 tm_file="i386/biarchx32.h ${tm_file}"
649 echo "Unknown ABI used in --with-abi=$with_abi"
654 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
658 # On a.out targets, we need to use collect2.
665 # Common C libraries.
666 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
668 # 32-bit x86 processors supported by --with-arch=. Each processor
669 # MUST be separated by exactly one space.
670 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
671 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
672 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
673 pentium4 pentium4m pentiumpro prescott lakemont samuel-2 nehemiah \
676 # 64-bit x86 processors supported by --with-arch=. Each processor
677 # MUST be separated by exactly one space.
678 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
679 bdver3 bdver4 znver1 znver2 znver3 znver4 btver1 btver2 k8 k8-sse3 opteron \
680 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
681 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
682 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
683 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake \
684 sapphirerapids alderlake rocketlake eden-x2 nano nano-1000 nano-2000 nano-3000 \
685 nano-x2 eden-x4 nano-x4 lujiazui x86-64 x86-64-v2 x86-64-v3 x86-64-v4 \
686 sierraforest graniterapids graniterapids-d grandridge arrowlake arrowlake-s \
689 # Additional x86 processors supported by --with-cpu=. Each processor
690 # MUST be separated by exactly one space.
691 x86_cpus="generic intel"
693 # Common parts for widely ported systems.
696 tmake_file="t-darwin "
697 tm_file="${tm_file} darwin.h"
698 darwin_os=`echo ${target} | sed 's/.*darwin\([0-9.]*\).*$/\1/'`
699 darwin_maj=`expr "$darwin_os" : '\([0-9]*\).*'`
700 macos_min=`expr "$darwin_os" : '[0-9]*\.\([0-9]*\).*'`
702 if test x"${macos_min}" = x; then
706 # Tools hosted on earlier versions of Darwin constrained all object
707 # alignment to be 2^15 or smaller. From Darwin11 (macOS 10.7) the
708 # alignment of non-common is allowed to be up to 2^28. Note that the
709 #Â larger alignment is permitted when targeting 10.6 from 10.7 so that
710 #Â the constraint only need be applied per host (and only if the host
713 *-*-darwin[4-9]* | *-*-darwin10*)
714 tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=15U"
717 tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=28U"
721 # Darwin 4 to 19 correspond to macOS 10.0 to 10.15
722 *-*-darwin[4-9]* | *-*-darwin1[0-9]*)
723 macos_min=`expr $darwin_maj - 4`
726 # Darwin 20 corresponds to macOS 11, Darwin 21 to macOS 12.
727 macos_maj=`expr $darwin_maj - 9`
732 aarch64) macos_maj=11 ;;
733 x86_64) macos_min=6 ;;
737 *-*-darwin*) tm_defines="$tm_defines DARWIN_USE_KERNEL_VERS" ;;
739 # If configuring a cross-compiler then we will have set some
740 #Â default above, but it is probably not what was intended.
741 echo "Warning: Using ${target} is only suitable for Darwin hosts" 1>&2
742 echo "configure with an explicit target version" 1>&2
747 echo "Error: configuring for an unreleased macOS version ${target}" 1>&2
751 tm_defines="$tm_defines DEF_MIN_OSX_VERSION=\\\"${macos_maj}.${macos_min}\\\""
752 tm_defines="$tm_defines DEF_LD64=\\\"${def_ld64}\\\""
753 tm_file="${tm_file} ${cpu_type}/darwin.h"
754 tm_p_file="${tm_p_file} darwin-protos.h"
755 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.cc"
756 extra_options="${extra_options} rpath.opt darwin.opt"
757 c_target_objs="${c_target_objs} darwin-c.o"
758 cxx_target_objs="${cxx_target_objs} darwin-c.o"
759 d_target_objs="${d_target_objs} darwin-d.o"
760 fortran_target_objs="darwin-f.o"
761 target_has_targetcm=yes
762 target_has_targetdm=yes
763 extra_objs="${extra_objs} darwin.o"
764 extra_gcc_objs="darwin-driver.o"
765 default_use_cxa_atexit=yes
767 case ${enable_threads} in
768 "" | yes | posix) thread_file='posix' ;;
774 tmake_file="t-slibgcc"
775 case ${enable_threads} in
780 # Let these non-posix thread selections fall through if requested
783 echo 'Unknown thread configuration for DragonFly BSD'
787 extra_options="$extra_options rpath.opt dragonfly.opt"
788 default_use_cxa_atexit=yes
790 d_target_objs="${d_target_objs} dragonfly-d.o"
791 tmake_file="${tmake_file} t-dragonfly"
792 target_has_targetdm=yes
795 # This is the generic ELF configuration of FreeBSD. Later
796 # machine-specific sections may refine and add to this
799 # Due to tm_file entry ordering issues that vary between cpu
800 # architectures, we only define fbsd_tm_file to allow the
801 # machine-specific section to dictate the final order of all
802 # entries of tm_file with the minor exception that components
803 # of the tm_file set here will always be of the form:
805 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
807 # The machine-specific section should not tamper with this
808 # ordering but may order all other entries of tm_file as it
809 # pleases around the provided core setting.
812 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
813 if test "$fbsd_major" = ""; then
814 echo "Specify the major version number of the targeted FreeBSD release"
815 echo "like this: --target=amd64-unknown-freebsd10.1"
818 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
819 tmake_file="t-slibgcc"
820 case ${enable_threads} in
822 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
828 echo 'Unknown thread configuration for FreeBSD'
832 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
833 extra_options="$extra_options rpath.opt freebsd.opt"
838 default_use_cxa_atexit=yes;;
841 d_target_objs="${d_target_objs} freebsd-d.o"
842 tmake_file="${tmake_file} t-freebsd"
843 target_has_targetdm=yes
846 native_system_header_dir=/include
848 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
849 extra_options="$extra_options gnu-user.opt"
852 case ${enable_threads} in
853 "" | yes | posix) thread_file='posix' ;;
855 tmake_file="t-slibgcc"
857 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
860 native_system_header_dir=/include
863 # Linux C libraries selection switch: glibc / uclibc / bionic.
864 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
867 tm_p_file="${tm_p_file} linux-protos.h"
868 tmake_file="${tmake_file} t-linux"
869 extra_objs="${extra_objs} linux.o"
870 extra_options="${extra_options} linux.opt"
875 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
877 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
878 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
881 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
884 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
887 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
889 default_use_cxa_atexit=yes
892 # Enable compilation for Android by default for *android* targets.
895 tm_defines="$tm_defines ANDROID_DEFAULT=1"
898 tm_defines="$tm_defines ANDROID_DEFAULT=0"
901 c_target_objs="${c_target_objs} glibc-c.o"
902 cxx_target_objs="${cxx_target_objs} glibc-c.o"
903 tmake_file="${tmake_file} t-glibc"
904 target_has_targetcm=yes
906 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
909 # Linux targets always support .init_array.
910 gcc_cv_initfini_array=yes
915 d_target_objs="${d_target_objs} linux-d.o"
916 target_has_targetdm=yes
919 d_target_objs="${d_target_objs} kfreebsd-d.o"
920 target_has_targetdm=yes
922 *-*-kopensolaris*-gnu)
923 d_target_objs="${d_target_objs} kopensolaris-d.o"
924 target_has_targetdm=yes
927 d_target_objs="${d_target_objs} gnu-d.o"
928 target_has_targetdm=yes
933 tm_p_file="${tm_p_file} netbsd-protos.h"
934 tmake_file="t-netbsd t-slibgcc"
935 extra_objs="${extra_objs} netbsd.o"
936 d_target_objs="${d_target_objs} netbsd-d.o"
940 case ${enable_threads} in
941 "" | yes | posix) thread_file='posix' ;;
943 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
944 default_use_cxa_atexit=yes
945 target_has_targetdm=yes
947 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
948 default_gnu_indirect_function=yes
953 tmake_file="t-openbsd"
954 case ${enable_threads} in
960 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
961 default_use_cxa_atexit=yes
964 d_target_objs="${d_target_objs} openbsd-d.o"
965 target_has_targetdm=yes
970 default_use_cxa_atexit=yes
973 case ${enable_threads} in
974 "" | yes | rtems) thread_file='rtems' ;;
975 posix) thread_file='posix' ;;
978 echo 'Unknown thread configuration for RTEMS'
982 tmake_file="${tmake_file} t-rtems"
983 extra_options="${extra_options} rtems.opt"
984 default_use_cxa_atexit=yes
988 extra_options="$extra_options gnu-user.opt"
990 case ${enable_threads} in
991 "" | yes | posix) thread_file='posix' ;;
993 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
999 # i?86-*-solaris2* needs to insert headers between cpu default and
1000 # Solaris 2 specific ones.
1001 sol2_tm_file_head="elfos.h ${cpu_type}/sysv4.h"
1002 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
1003 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
1005 *-*-solaris2.1[1-9]*)
1006 # __cxa_atexit was introduced in Solaris 11.4.
1007 default_use_cxa_atexit=yes
1011 if test x$gnu_ld = xyes; then
1012 tm_file="usegld.h ${tm_file}"
1014 if test x$gas = xyes; then
1015 tm_file="usegas.h ${tm_file}"
1017 tm_p_file="${tm_p_file} sol2-protos.h"
1018 tmake_file="${tmake_file} t-sol2 t-slibgcc"
1019 c_target_objs="${c_target_objs} sol2-c.o"
1020 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
1021 d_target_objs="${d_target_objs} sol2-d.o"
1022 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
1023 extra_options="${extra_options} sol2.opt"
1024 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
1025 "":yes:* | yes:yes:* )
1029 target_has_targetdm=yes
1032 extra_options="${extra_options} vms/vms.opt"
1033 xmake_file=vms/x-vms
1034 tmake_file="vms/t-vms t-slibgcc"
1036 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.cc"
1037 tm_p_file="${tm_p_file} vms/vms-protos.h"
1038 xm_file="vms/xm-vms.h"
1039 c_target_objs="vms-c.o"
1040 cxx_target_objs="vms-c.o"
1041 fortran_target_objs="vms-f.o"
1042 use_gcc_stdint=provide
1043 tm_file="${tm_file} vms/vms-stdint.h"
1044 if test x$gnu_ld != xyes; then
1045 # Build wrappers for native case.
1046 extra_programs="ld\$(exeext) ar\$(exeext)"
1047 tmake_file="$tmake_file vms/t-vmsnative"
1051 tmake_file=t-vxworks
1054 extra_options="${extra_options} vxworks.opt"
1055 extra_objs="$extra_objs vxworks.o"
1057 c_target_objs="${c_target_objs} vxworks-c.o"
1058 cxx_target_objs="${cxx_target_objs} vxworks-c.o"
1059 extra_headers="${extra_headers} ../vxworks/vxworks-predef.h"
1060 target_has_targetcm="yes"
1062 extra_gcc_objs="vxworks-driver.o"
1064 # This private header exposes a consistent interface for checks on
1065 # the VxWorks version our runtime header files need to perform, based on
1066 # what the system headers adverstise:
1068 extra_headers="${extra_headers} ../vxworks/_vxworks-versions.h"
1070 # Starting from VxWorks 7, the system comes with a Dinkumware
1071 # environment which requires the inclusion of "yvals.h" before other
1072 # system headers. We provide wrapped versions of a few headers to
1073 # accomodate such constraints:
1075 extra_headers="${extra_headers} ../vxworks/_yvals.h"
1076 extra_headers="${extra_headers} ../vxworks/_yvals-wrapper.h"
1078 extra_headers="${extra_headers} ../vxworks/math.h ../vxworks/complex.h"
1079 extra_headers="${extra_headers} ../vxworks/inttypes.h ../vxworks/setjmp.h"
1081 # We provide (a tailored version of) stdint.h
1082 tm_file="${tm_file} vxworks-stdint.h"
1083 use_gcc_stdint=provide
1085 case ${enable_threads} in
1087 "" | yes | vxworks) thread_file='vxworks' ;;
1088 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
1091 # A few common macro definitions conveying general characteristics
1092 # of the configuration at hand. Note that by VxWorks 7, we mean the
1093 # the SR6xx major update or beyond in vendor parlance:
1097 tm_defines="$tm_defines TARGET_VXWORKS7=1"
1102 tm_defines="$tm_defines TARGET_VXWORKS64=1"
1106 # Then a few build configuration controls for VxWorks 7, which
1107 # has specificities on top of which we aim to provide more complete
1112 # VxWorks 7 always has init/fini_array support and it is simpler to
1113 # just leverage this, sticking to what the system toolchain does:
1114 gcc_cv_initfini_array=yes
1118 *-*-elf|arc*-*-elf*)
1119 # Assume that newlib is being used and so __cxa_atexit is provided.
1120 default_use_cxa_atexit=yes
1123 case "${with_newlib}-${with_headers}" in
1124 no-no) use_gcc_stdint=provide ;;
1131 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1132 tm_file="${tm_file} elfos.h newlib-stdint.h"
1133 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1134 tmake_file="${tmake_file} aarch64/t-aarch64"
1140 tm_file="${tm_file} fuchsia.h"
1143 tm_file="${tm_file} aarch64/rtems.h rtems.h"
1148 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1151 aarch64_multilibs="${with_multilib_list}"
1152 if test "$aarch64_multilibs" = "default"; then
1153 aarch64_multilibs="lp64,ilp32"
1155 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1156 for aarch64_multilib in ${aarch64_multilibs}; do
1157 case ${aarch64_multilib} in
1159 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1162 echo "--with-multilib-list=${aarch64_multilib} not supported."
1166 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1168 aarch64*-*-freebsd*)
1169 tm_file="${tm_file} elfos.h ${fbsd_tm_file}"
1170 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1171 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1172 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1175 tm_file="${tm_file} elfos.h ${nbsd_tm_file}"
1176 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1177 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1178 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1181 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h"
1182 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1183 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1184 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1187 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1190 aarch64_multilibs="${with_multilib_list}"
1191 if test "$aarch64_multilibs" = "default"; then
1192 # TODO: turn on ILP32 multilib build after its support is mature.
1193 # aarch64_multilibs="lp64,ilp32"
1194 aarch64_multilibs="lp64"
1196 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1197 for aarch64_multilib in ${aarch64_multilibs}; do
1198 case ${aarch64_multilib} in
1200 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1203 echo "--with-multilib-list=${aarch64_multilib} not supported."
1207 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1209 aarch64*-wrs-vxworks*)
1210 tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
1211 tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
1212 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
1215 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1216 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1217 extra_options="${extra_options} alpha/elf.opt"
1220 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1221 tmake_file="${tmake_file} alpha/t-alpha"
1222 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1226 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1227 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1228 tmake_file="${tmake_file} alpha/t-alpha"
1229 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1230 # default x-alpha is only appropriate for dec-osf.
1233 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1234 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1237 tm_file="arc/arc-arch.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1238 tmake_file="arc/t-multilib arc/t-arc"
1239 extra_gcc_objs="driver-arc.o"
1240 if test "x$with_cpu" != x; then
1241 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1243 if test x${with_endian} = x; then
1245 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1246 *) with_endian=little ;;
1249 case ${with_endian} in
1251 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1253 case ${with_endian} in
1254 big*) tm_file="arc/big.h ${tm_file}"
1258 tm_file="arc/arc-arch.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arc/linux.h ${tm_file}"
1259 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1260 extra_gcc_objs="driver-arc.o"
1261 if test "x$with_cpu" != x; then
1262 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1264 if test x${with_endian} = x; then
1266 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1267 *) with_endian=little ;;
1270 case ${with_endian} in
1272 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1274 case ${with_endian} in
1275 big*) tm_file="arc/big.h ${tm_file}"
1277 # Force .init_array support. The configure script cannot always
1278 # automatically detect that GAS supports it, yet we require it.
1279 gcc_cv_initfini_array=yes
1282 # We only support VxWorks 7 now on ARM, post SR600. Pre SR600
1283 # VxWorks 7 was transitory and major versions prior to 7 were based
1284 # on long deprecated ABI, not supported at all any more regardless
1286 extra_options="${extra_options} arm/vxworks.opt"
1287 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1288 tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1289 tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1290 target_cpu_cname="generic-armv7-a"
1291 need_64bit_hwint=yes
1293 arm*-*-freebsd*) # ARM FreeBSD EABI
1294 tm_file="elfos.h ${fbsd_tm_file} arm/elf.h"
1297 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1300 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1301 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1304 target_cpu_cname="arm1176jzf-s"
1305 if test $fbsd_major -ge 11; then
1306 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1310 target_cpu_cname="generic-armv7-a"
1311 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1314 target_cpu_cname="arm9"
1317 with_tls=${with_tls:-gnu}
1320 target_cpu_cname="strongarm"
1321 tmake_file="${tmake_file} arm/t-arm"
1322 tm_file="elfos.h ${nbsd_tm_file} arm/elf.h"
1323 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1325 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1328 arm*-*-netbsdelf-*eabi*)
1329 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1330 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1333 tm_file="$tm_file arm/netbsd-elf.h"
1334 tmake_file="$tmake_file arm/t-netbsd"
1337 tm_file="${tm_file} arm/aout.h arm/arm.h"
1339 arm*-*-netbsdelf-*eabihf*)
1340 # Hard-float requires at least Arm v5te
1341 target_cpu_cname="arm10e"
1342 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1346 armv6*) target_cpu_cname="arm1176jzf-s";;
1347 armv7*) target_cpu_cname="generic-armv7-a";;
1350 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1351 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"
1352 extra_options="${extra_options} linux-android.opt"
1355 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1358 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1359 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1361 arm*-*-uclinuxfdpiceabi)
1362 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1365 # Define with_float to "hard" if not already defined and
1366 # target name ends with "hf"
1367 case $target:$with_float in
1372 # Generation of floating-point instructions requires at least ARMv5te.
1373 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1374 target_cpu_cname="arm10e"
1376 target_cpu_cname="arm10tdmi"
1378 # Define multilib configuration for arm-linux-androideabi.
1381 tmake_file="$tmake_file arm/t-linux-androideabi"
1384 # The EABI requires the use of __cxa_atexit.
1385 default_use_cxa_atexit=yes
1386 with_tls=${with_tls:-gnu}
1388 arm*-*-uclinux*eabi*) # ARM ucLinux
1389 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1390 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1391 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1392 target_cpu_cname="arm7tdmi"
1393 # The EABI requires the use of __cxa_atexit.
1394 default_use_cxa_atexit=yes
1397 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1398 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1399 tm_file="${tm_file} arm/aout.h arm/arm.h"
1400 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1401 target_cpu_cname="arm7tdmi"
1403 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1406 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1408 default_use_cxa_atexit=yes
1409 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1410 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1411 target_cpu_cname="arm7tdmi"
1414 tm_file="$tm_file newlib-stdint.h"
1415 tmake_file="${tmake_file} arm/t-bpabi"
1419 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1420 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1421 target_cpu_cname="generic-armv7-a"
1424 tm_file="${tm_file} arm/rtems.h rtems.h newlib-stdint.h"
1425 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1428 tm_file="${tm_file} arm/symbian.h"
1429 # We do not include t-bpabi for Symbian OS because the system
1430 # provides its own implementation of the BPABI functions.
1431 tmake_file="${tmake_file} arm/t-symbian"
1432 target_cpu_cname="arm10tdmi"
1435 tm_file="${tm_file} arm/aout.h arm/arm.h"
1438 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h avr/avr-stdint.h"
1439 if test x${with_avrlibc} != xno; then
1440 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1441 tm_defines="${tm_defines} WITH_AVRLIBC"
1443 # Work out avr_double_comparison which is 2 or 3 and is used in
1444 # target hook FLOAT_LIB_COMPARE_RETURNS_BOOL to determine whether
1445 # DFmode comparisons return 3-state or 2-state results.
1446 case y${with_double_comparison} in
1448 avr_double_comparison=3
1451 avr_double_comparison=2
1454 echo "Error: --with-double-comparison= can only be used with: 'tristate', 'bool', 'libf7'" 1>&2
1458 case "y${with_libf7}" in
1460 # avr_double_comparison as set above.
1463 avr_double_comparison=2
1464 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1466 y | yyes | ymath-symbols)
1467 avr_double_comparison=2
1468 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1469 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1470 tm_defines="${tm_defines} WITH_LIBF7_MATH_SYMBOLS"
1473 avr_double_comparison=2
1474 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1475 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1478 echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
1482 tm_defines="${tm_defines} WITH_DOUBLE_COMPARISON=${avr_double_comparison}"
1483 case y${with_double} in
1486 tm_defines="${tm_defines} HAVE_DOUBLE32"
1490 tm_defines="${tm_defines} HAVE_DOUBLE64"
1494 avr_double_multilib=1
1495 tm_defines="${tm_defines} HAVE_DOUBLE32"
1496 tm_defines="${tm_defines} HAVE_DOUBLE64"
1497 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1501 avr_double_multilib=1
1502 tm_defines="${tm_defines} HAVE_DOUBLE32"
1503 tm_defines="${tm_defines} HAVE_DOUBLE64"
1504 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1507 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1511 case y${with_long_double} in
1514 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1518 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1522 avr_long_double_multilib=1
1523 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1524 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1525 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1529 avr_long_double_multilib=1
1530 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1531 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1532 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1535 avr_long_double=${avr_double}
1536 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1537 if test y${avr_double_multilib} = y1; then
1538 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1539 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1541 tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1545 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1549 if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1550 if test y${with_long_double} != ydouble; then
1551 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
1555 if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1556 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
1559 if test y${avr_double}${avr_long_double} = y6432; then
1560 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
1563 tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1564 tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1565 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1567 extra_gcc_objs="driver-avr.o avr-devices.o"
1568 extra_objs="avr-devices.o avr-log.o"
1571 tm_file="${tm_file} elfos.h newlib-stdint.h bfin/elf.h"
1572 tmake_file=bfin/t-bfin-elf
1576 tm_file="${tm_file} elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1577 tmake_file=bfin/t-bfin-uclinux
1580 bfin*-linux-uclibc*)
1581 tm_file="${tm_file} elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/linux.h ./linux-sysroot-suffix.h"
1582 tmake_file="${tmake_file} bfin/t-bfin-linux"
1586 tm_file="${tm_file} elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1587 tmake_file="${tmake_file} bfin/t-rtems"
1590 tm_file="${tm_file} elfos.h newlib-stdint.h bfin/elf.h"
1595 tm_file="elfos.h ${tm_file}"
1596 tmake_file="${tmake_file} bpf/t-bpf"
1598 extra_headers="bpf-helpers.h"
1599 use_gcc_stdint=provide
1600 extra_objs="coreout.o core-builtins.o"
1601 target_gtfiles="$target_gtfiles \$(srcdir)/config/bpf/coreout.cc \$(srcdir)/config/bpf/core-builtins.cc"
1603 cris-*-elf | cris-*-none)
1604 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1605 tmake_file="cris/t-cris cris/t-elfmulti"
1607 extra_options="${extra_options} cris/elf.opt"
1611 if test x${with_endian} != x; then
1612 case ${with_endian} in
1615 echo "with_endian=${with_endian} not supported."
1620 if test x${with_float} != x; then
1621 case ${with_float} in
1622 soft | hard | softfp) ;;
1624 "Unknown floating point type used in --with-float=$with_float"
1629 tm_file="csky/csky.h"
1630 md_file="csky/csky.md"
1631 out_file="csky/csky.cc"
1632 tm_p_file="${tm_p_file} csky/csky-protos.h"
1633 extra_options="${extra_options} csky/csky_tables.opt"
1635 if test x${enable_tpf_debug} = xyes; then
1636 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1641 tm_file="elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1642 tmake_file="csky/t-csky csky/t-csky-elf"
1643 default_use_cxa_atexit=no
1647 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1648 tmake_file="${tmake_file} csky/t-csky"
1650 if test "x${enable_multilib}" = xyes ; then
1651 tm_defines="$tm_defines CSKY_ENABLE_MULTILIB"
1652 tmake_file="${tmake_file} csky/t-csky-linux"
1657 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1658 # Force .init_array support. The configure script cannot always
1659 # automatically detect that GAS supports it, yet we require it.
1660 gcc_cv_initfini_array=yes
1662 csky-*-linux-uclibc*)
1663 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1664 default_use_cxa_atexit=no
1667 echo "Unknown target $target"
1673 echo "Unknown target $target"
1678 epiphany-*-elf | epiphany-*-rtems*)
1679 tm_file="elfos.h ${tm_file}"
1680 tmake_file="${tmake_file} epiphany/t-epiphany"
1683 tm_file="${tm_file} epiphany/rtems.h rtems.h newlib-stdint.h"
1686 tm_file="${tm_file} newlib-stdint.h"
1689 extra_options="${extra_options} fused-madd.opt"
1690 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1691 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1692 extra_headers="epiphany_intrinsics.h"
1695 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1698 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1699 tmake_file=frv/t-frv
1702 tm_file="elfos.h ${tm_file} \
1703 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1704 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1709 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1710 tmake_file="${tmake_file} ft32/t-ft32"
1713 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1714 tmake_file="gcn/t-gcn-hsa"
1715 native_system_header_dir=/include
1716 extra_modes=gcn/gcn-modes.def
1717 extra_objs="${extra_objs} gcn-tree.o"
1718 extra_gcc_objs="driver-gcn.o"
1720 x86_64*-*-linux-gnu )
1721 if test "$ac_cv_search_dlopen" != no; then
1722 extra_programs="${extra_programs} gcn-run\$(exeext)"
1726 if test x$enable_as_accelerator = xyes; then
1727 extra_programs="${extra_programs} mkoffload\$(exeext)"
1728 tm_file="${tm_file} gcn/offload.h"
1730 # Force .init_array support.
1731 gcc_cv_initfini_array=yes
1737 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1738 tmake_file="${tmake_file} moxie/t-moxie"
1743 tm_file="elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1744 tmake_file="${tmake_file} moxie/t-moxie"
1747 tmake_file="${tmake_file} moxie/t-moxie"
1748 tm_file="moxie/moxie.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1753 tm_file="${tm_file} elfos.h moxie/moxiebox.h newlib-stdint.h"
1754 tmake_file="${tmake_file} moxie/t-moxiebox"
1757 tmake_file="h8300/t-h8300"
1758 tm_file="h8300/h8300.h elfos.h newlib-stdint.h h8300/elf.h"
1761 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1762 tm_file="h8300/h8300.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1765 target_cpu_default="MASK_PA_11|MASK_PA_20"
1766 tm_file="pa/pa64-start.h ${tm_file} elfos.h gnu-user.h linux.h \
1767 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1769 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1770 d_target_objs="${d_target_objs} pa-d.o"
1774 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1775 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1776 pa/pa32-regs.h pa/pa32-linux.h"
1777 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1778 d_target_objs="${d_target_objs} pa-d.o"
1781 target_cpu_default="MASK_PA_11"
1782 tm_file="${tm_file} elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1783 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1784 extra_options="${extra_options} openbsd.opt"
1785 tmake_file="pa/t-pa"
1786 d_target_objs="${d_target_objs} pa-d.o"
1791 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1792 tm_file="${tm_file} elfos.h ${nbsd_tm_file} \
1793 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1794 tmake_file="${tmake_file}"
1795 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1796 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1799 target_cpu_default="MASK_PA_11|MASK_PA_20"
1800 if test x$gnu_ld = xyes
1802 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1804 tm_file="pa/pa64-start.h ${tm_file} elfos.h \
1805 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1809 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1810 extra_options="${extra_options} pa/pa-hpux1111.opt"
1813 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1814 extra_options="${extra_options} pa/pa-hpux1131.opt"
1817 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1820 extra_options="${extra_options} pa/pa-hpux.opt \
1821 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1822 tmake_file="pa/t-pa t-slibgcc"
1823 d_target_objs="${d_target_objs} pa-d.o"
1824 case x${enable_threads} in
1832 use_gcc_stdint=provide
1833 tm_file="${tm_file} hpux-stdint.h"
1837 tm_file="${tm_file} hpux-stdint.h"
1841 i[34567]86-*-darwin1[89]* | i[34567]86-*-darwin2*)
1842 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1844 i[34567]86-*-darwin*)
1846 # Baseline choice for a machine that allows m64 support.
1847 with_cpu=${with_cpu:-core2}
1848 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1849 tm_file="${cpu_type}/darwin32-biarch.h ${tm_file} "
1851 x86_64-*-darwin1[89]* | x86_64-*-darwin2*)
1853 tm_defines="${tm_defines} TARGET_64BIT_DEFAULT=(OPTION_MASK_ISA_64BIT|OPTION_MASK_ABI_64)"
1854 tm_defines="${tm_defines} TARGET_BI_ARCH=0"
1855 with_cpu=${with_cpu:-core2}
1856 tmake_file="${tmake_file} t-slibgcc"
1859 with_cpu=${with_cpu:-core2}
1860 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1861 tm_file="${cpu_type}/darwin64-biarch.h ${tm_file} "
1863 i[34567]86-*-elfiamcu)
1864 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/iamcu.h"
1867 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h"
1870 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1873 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"
1876 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1879 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"
1880 tmake_file="i386/t-i386elf t-svr4"
1882 i[34567]86-*-dragonfly*)
1883 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1884 tmake_file="${tmake_file} i386/t-crtstuff"
1886 x86_64-*-dragonfly*)
1887 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h dragonfly.h dragonfly-stdint.h i386/x86-64.h i386/dragonfly.h"
1888 tmake_file="${tmake_file} i386/t-crtstuff"
1890 i[34567]86-*-freebsd*)
1891 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1894 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"
1896 i[34567]86-*-netbsdelf*)
1897 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1898 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1901 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1902 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1904 i[34567]86-*-openbsd*)
1905 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1906 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1907 extra_options="${extra_options} openbsd.opt"
1912 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1913 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1914 extra_options="${extra_options} openbsd.opt"
1918 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1919 # Intel 80386's running GNU/*
1920 # with ELF format using glibc 2
1921 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h gnu-user.h glibc-stdint.h"
1923 i[34567]86-*-linux*)
1924 tm_file="${tm_file} linux.h linux-android.h"
1925 extra_options="${extra_options} linux-android.opt"
1926 if test x$enable_targets = xall; then
1927 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1928 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1929 tmake_file="${tmake_file} i386/t-linux64"
1930 x86_multilibs="${with_multilib_list}"
1931 if test "$x86_multilibs" = "default"; then
1932 x86_multilibs="m64,m32"
1934 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1935 for x86_multilib in ${x86_multilibs}; do
1936 case ${x86_multilib} in
1938 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1941 echo "--with-multilib-list=${x86_with_multilib} not supported."
1945 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1947 if test x$with_cpu = x; then
1948 if test x$with_cpu_64 = x; then
1952 case " $x86_cpus $x86_archs $x86_64_archs " in
1956 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1957 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1963 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1966 i[34567]86-*-kfreebsd*-gnu)
1967 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1969 i[34567]86-*-kopensolaris*-gnu)
1970 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1973 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1977 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-gnu*)
1978 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h gnu-user.h glibc-stdint.h \
1979 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1982 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1983 extra_options="${extra_options} linux-android.opt"
1985 x86_64-*-kfreebsd*-gnu)
1986 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1989 tm_file="${tm_file} gnu.h i386/gnu64.h"
1992 tmake_file="${tmake_file} i386/t-linux64"
1993 x86_multilibs="${with_multilib_list}"
1994 if test "$x86_multilibs" = "default"; then
1997 x86_multilibs="mx32"
2000 x86_multilibs="m64,m32"
2004 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
2005 for x86_multilib in ${x86_multilibs}; do
2006 case ${x86_multilib} in
2008 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
2011 echo "--with-multilib-list=${x86_with_multilib} not supported."
2015 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2017 i[34567]86-pc-msdosdjgpp*)
2018 xm_file=i386/xm-djgpp.h
2019 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
2020 native_system_header_dir=/dev/env/DJDIR/include
2021 extra_options="${extra_options} i386/djgpp.opt"
2026 i[34567]86-*-lynxos*)
2028 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h i386/lynx.h lynx.h"
2029 tmake_file="${tmake_file} t-lynx"
2030 extra_options="${extra_options} lynx.opt"
2035 i[34567]86-*-nto-qnx*)
2036 tm_file="${tm_file} i386/att.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
2037 extra_options="${extra_options} i386/nto.opt"
2041 i[34567]86-*-rtems*)
2042 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h i386/i386elf.h i386/rtemself.h rtems.h newlib-stdint.h"
2043 tmake_file="${tmake_file} i386/t-rtems"
2045 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
2046 # Set default arch_32 to pentium4, tune_32 to generic like the other
2047 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
2048 with_arch_32=${with_arch_32:-pentium4}
2049 with_tune_32=${with_tune_32:-generic}
2050 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
2051 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2052 tmake_file="$tmake_file i386/t-sol2"
2054 if test x$with_cpu = x; then
2055 if test x$with_cpu_64 = x; then
2059 case " $x86_cpus $x86_archs $x86_64_archs " in
2063 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2064 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2070 i[4567]86-wrs-vxworks*|x86_64-wrs-vxworks7*)
2071 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
2075 tm_file="${tm_file} i386/x86-64.h"
2078 tm_file="${tm_file} vx-common.h"
2081 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2082 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2085 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2086 tmake_file="${tmake_file} i386/t-vxworks"
2090 i[34567]86-*-cygwin*)
2091 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/cygming.h i386/cygwin.h i386/cygwin-stdint.h"
2092 xm_file=i386/xm-cygwin.h
2093 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2094 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc"
2095 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2096 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2097 c_target_objs="${c_target_objs} msformat-c.o"
2098 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2099 d_target_objs="${d_target_objs} cygwin-d.o"
2100 target_has_targetdm="yes"
2101 if test x$enable_threads = xyes; then
2104 default_use_cxa_atexit=yes
2109 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"
2110 xm_file=i386/xm-cygwin.h
2111 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2112 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc"
2113 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2114 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2115 c_target_objs="${c_target_objs} msformat-c.o"
2116 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2117 d_target_objs="${d_target_objs} cygwin-d.o"
2118 target_has_targetdm="yes"
2119 if test x$enable_threads = xyes; then
2122 default_use_cxa_atexit=yes
2124 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2126 i[34567]86-*-mingw* | x86_64-*-mingw*)
2127 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/cygming.h"
2128 xm_file=i386/xm-mingw32.h
2129 c_target_objs="${c_target_objs} winnt-c.o"
2130 cxx_target_objs="${cxx_target_objs} winnt-c.o"
2131 d_target_objs="${d_target_objs} winnt-d.o"
2132 target_has_targetcm="yes"
2133 target_has_targetdm="yes"
2135 x86_64-*-* | *-w64-*)
2141 if test x$enable_threads = xposix ; then
2142 tm_file="${tm_file} i386/mingw-pthread.h"
2144 if test x$enable_threads = xmcf ; then
2145 tm_file="${tm_file} i386/mingw-mcfgthread.h"
2147 tm_file="${tm_file} i386/mingw32.h"
2148 # This makes the logic if mingw's or the w64 feature set has to be used
2151 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2152 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2153 tm_file="${tm_file} i386/mingw-w64.h"
2154 if test x$enable_targets = xall; then
2155 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2156 if test x$with_cpu = x; then
2157 if test x$with_cpu_64 = x; then
2161 case " $x86_cpus $x86_archs $x86_64_archs " in
2165 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2166 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2176 tm_file="${tm_file} i386/mingw-stdint.h"
2177 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2180 tmake_file="${tmake_file} i386/t-mingw-w64"
2183 tmake_file="${tmake_file} i386/t-mingw-w32"
2186 native_system_header_dir=/mingw/include
2187 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc"
2188 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2191 extra_options="${extra_options} i386/mingw-w64.opt"
2196 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2197 c_target_objs="${c_target_objs} msformat-c.o"
2198 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2201 default_use_cxa_atexit=yes
2203 case ${enable_threads} in
2213 tm_file="${tm_file} i386/crtdll.h"
2215 *mingw32msv* | *mingw*)
2220 tmake_file="${tmake_file} i386/t-x86_64-elf"
2221 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2224 tm_file="${tm_file} elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2225 tmake_file="ia64/t-ia64"
2226 target_cpu_default="0"
2227 if test x$gas = xyes
2229 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2231 if test x$gnu_ld = xyes
2233 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2237 tm_file="${tm_file} elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2238 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2239 tmake_file="${tmake_file} ia64/t-ia64"
2242 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2243 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2244 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2247 tm_file="${tm_file} elfos.h ia64/sysv4.h ia64/hpux.h"
2248 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2249 target_cpu_default="MASK_GNU_AS"
2250 case x$enable_threads in
2256 c_target_objs="ia64-c.o"
2257 cxx_target_objs="ia64-c.o"
2258 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2260 tm_file="${tm_file} hpux-stdint.h"
2263 tm_file="${tm_file} ia64/hpux-unix2003.h"
2268 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2269 tmake_file="${tmake_file} ia64/t-ia64"
2270 target_cpu_default="0"
2271 if test x$gas = xyes
2273 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2275 extra_options="${extra_options} ia64/vms.opt"
2278 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2279 out_file=iq2000/iq2000.cc
2280 md_file=iq2000/iq2000.md
2283 tm_file="elfos.h ${tm_file} newlib-stdint.h"
2284 tmake_file="${tmake_file} lm32/t-lm32"
2287 tm_file="elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2288 tmake_file="${tmake_file} lm32/t-lm32"
2289 tmake_file="${tmake_file} lm32/t-rtems"
2292 tm_file="elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h lm32/uclinux-elf.h"
2293 tmake_file="${tmake_file} lm32/t-lm32"
2296 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2299 tm_file="elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2301 m68k-*-elf* | fido-*-elf*)
2304 # Check that $with_cpu makes sense.
2309 echo "Cannot accept --with-cpu=$with_cpu"
2316 default_m68k_cpu=68020
2320 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h elfos.h newlib-stdint.h m68k/m68kemb.h m68k/m68020-elf.h"
2321 tm_defines="${tm_defines} MOTOROLA=1"
2322 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2323 # Add multilibs for targets other than fido.
2328 tmake_file="$tmake_file m68k/t-mlibs"
2333 default_m68k_cpu=68020
2335 tm_file="${tm_file} elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2336 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2337 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2339 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2340 # with uClibc, using the new GNU/Linux-style
2342 default_m68k_cpu=68020
2344 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"
2345 extra_options="${extra_options} m68k/uclinux.opt"
2346 tm_defines="${tm_defines} MOTOROLA=1"
2347 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2349 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2350 # with ELF format using glibc 2
2351 # aka the GNU/Linux C library 6.
2352 default_m68k_cpu=68020
2354 with_arch=${with_arch:-m68k}
2355 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2356 extra_options="${extra_options} m68k/ieee.opt"
2357 tm_defines="${tm_defines} MOTOROLA=1"
2358 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2361 default_m68k_cpu=68020
2363 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2364 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"
2365 tm_defines="${tm_defines} MOTOROLA=1"
2368 tm_file="elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2369 tmake_file=mcore/t-mcore
2375 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2378 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2381 tm_file="${tm_file} gnu-user.h linux.h microblaze/linux.h"
2382 tm_file="${tm_file} glibc-stdint.h"
2383 c_target_objs="${c_target_objs} microblaze-c.o"
2384 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2385 tmake_file="${tmake_file} microblaze/t-microblaze"
2386 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2388 microblaze*-*-rtems*)
2391 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2394 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2397 tm_file="${tm_file}"
2398 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2399 c_target_objs="${c_target_objs} microblaze-c.o"
2400 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2401 tmake_file="${tmake_file} microblaze/t-microblaze"
2402 tmake_file="${tmake_file} microblaze/t-rtems"
2407 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2410 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2413 tm_file="${tm_file} newlib-stdint.h"
2414 c_target_objs="${c_target_objs} microblaze-c.o"
2415 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2416 tmake_file="${tmake_file} microblaze/t-microblaze"
2419 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2420 case "x${enable_multilib}" in
2422 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2423 *) echo "Unknown value for enable_multilib"; exit 1
2425 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2426 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
2430 riscv32be-*|riscv64be-*)
2431 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2434 # Force .init_array support. The configure script cannot always
2435 # automatically detect that GAS supports it, yet we require it.
2436 gcc_cv_initfini_array=yes
2438 riscv*-*-elf* | riscv*-*-rtems*)
2439 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2442 tm_file="${tm_file} riscv/rtems.h rtems.h"
2443 tmake_file="${tmake_file} riscv/t-rtems"
2446 if test "x${with_multilib_generator}" = xdefault; then
2447 case "x${enable_multilib}" in
2449 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2450 *) echo "Unknown value for enable_multilib"; exit 1
2454 tmake_file="${tmake_file} riscv/t-riscv"
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
2467 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2468 tmake_file="${tmake_file} riscv/t-riscv"
2472 riscv32be-*|riscv64be-*)
2473 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2476 # Force .init_array support. The configure script cannot always
2477 # automatically detect that GAS supports it, yet we require it.
2478 gcc_cv_initfini_array=yes
2481 loongarch*-*-linux*)
2482 tm_file="elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file}"
2483 tm_file="${tm_file} loongarch/gnu-user.h loongarch/linux.h"
2484 extra_options="${extra_options} linux-android.opt"
2485 tmake_file="${tmake_file} loongarch/t-linux"
2489 # Force .init_array support. The configure script cannot always
2490 # automatically detect that GAS supports it, yet we require it.
2491 gcc_cv_initfini_array=yes
2495 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2496 tm_file="${tm_file} loongarch/elf.h loongarch/linux.h"
2497 tmake_file="${tmake_file} loongarch/t-linux"
2501 # For .init_array support. The configure script cannot always
2502 # automatically detect that GAS supports it, yet we require it.
2503 gcc_cv_initfini_array=yes
2506 mips*-*-netbsd*) # NetBSD/mips, either endian.
2507 target_cpu_default="MASK_ABICALLS"
2508 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2509 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2512 tm_file="elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h mips/mti-linux.h"
2513 extra_options="${extra_options} linux-android.opt"
2514 tmake_file="${tmake_file} mips/t-img-linux"
2515 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2516 with_arch_32="mips32r6"
2517 with_arch_64="mips64r6"
2522 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"
2523 extra_options="${extra_options} linux-android.opt"
2524 tmake_file="${tmake_file} mips/t-mti-linux"
2525 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2526 with_arch_32="mips32r2"
2527 with_arch_64="mips64r2"
2531 mips*-*-linux*) # Linux MIPS, either endian.
2532 tm_file="elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h"
2533 extra_options="${extra_options} linux-android.opt"
2536 default_mips_arch=mips32r6
2539 default_mips_arch=mips32r2
2542 default_mips_arch=mips32
2544 mips64el-st-linux-gnu)
2545 default_mips_abi=n32
2546 tm_file="${tm_file} mips/st.h"
2547 tmake_file="${tmake_file} mips/t-st"
2548 enable_mips_multilibs="yes"
2550 mips64octeon*-*-linux*)
2551 default_mips_abi=n32
2552 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2553 target_cpu_default=MASK_SOFT_FLOAT_ABI
2554 enable_mips_multilibs="yes"
2556 mipsisa64r6*-*-linux-gnuabi64)
2558 default_mips_arch=mips64r6
2559 enable_mips_multilibs="yes"
2561 mipsisa64r6*-*-linux*)
2562 default_mips_abi=n32
2563 default_mips_arch=mips64r6
2564 enable_mips_multilibs="yes"
2566 mipsisa64r2*-*-linux-gnuabi64)
2568 default_mips_arch=mips64r2
2569 enable_mips_multilibs="yes"
2571 mipsisa64r2*-*-linux*)
2572 default_mips_abi=n32
2573 default_mips_arch=mips64r2
2574 enable_mips_multilibs="yes"
2576 mips64*-*-linux-gnuabi64 | mipsisa64*-*-linux-gnuabi64)
2578 enable_mips_multilibs="yes"
2580 mips64*-*-linux* | mipsisa64*-*-linux*)
2581 default_mips_abi=n32
2582 enable_mips_multilibs="yes"
2585 if test x$enable_targets = xall; then
2586 enable_mips_multilibs="yes"
2588 if test x$enable_mips_multilibs = xyes; then
2589 tmake_file="${tmake_file} mips/t-linux64"
2593 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2594 tmake_file="mips/t-mti-elf"
2595 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2596 with_arch_32="mips32r2"
2597 with_arch_64="mips64r2"
2600 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2601 tmake_file="mips/t-img-elf"
2602 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2603 with_arch_32="mips32r6"
2604 with_arch_64="mips64r6"
2607 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2608 tmake_file="mips/t-sde"
2609 extra_options="${extra_options} mips/sde.opt"
2610 case "${with_newlib}" in
2612 # newlib / libgloss.
2615 # MIPS toolkit libraries.
2616 tm_file="$tm_file mips/sdemtk.h"
2617 tmake_file="$tmake_file mips/t-sdemtk"
2618 case ${enable_threads} in
2620 thread_file='mipssde'
2627 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2630 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2633 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32 MIPS_ABI_DEFAULT=ABI_32"
2636 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6 MIPS_ABI_DEFAULT=ABI_N32"
2639 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2 MIPS_ABI_DEFAULT=ABI_N32"
2642 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_ABI_DEFAULT=ABI_N32"
2646 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2647 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2648 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2649 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2650 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2651 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2652 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2653 tmake_file="mips/t-isa3264"
2656 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6"
2659 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2"
2662 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32"
2665 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6"
2668 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2"
2671 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64"
2675 mipsisa32*-*-elfoabi*)
2676 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2677 tm_file="${tm_file} mips/elfoabi.h"
2679 mipsisa64*-*-elfoabi*)
2680 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2681 tm_file="${tm_file} mips/elfoabi.h"
2684 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2688 mipsisa64sr71k-*-elf*)
2689 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2690 tmake_file=mips/t-sr71k
2691 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2693 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2694 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2695 tmake_file="mips/t-elf mips/t-sb1"
2696 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2698 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2699 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2700 tmake_file="mips/t-elf"
2702 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2703 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2704 tmake_file="mips/t-elf"
2705 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_N32"
2707 mips64-*-elf* | mips64el-*-elf*)
2708 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2709 tmake_file="mips/t-elf"
2710 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2712 mips64vr-*-elf* | mips64vrel-*-elf*)
2713 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2714 tmake_file=mips/t-vr
2715 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2717 mips64orion-*-elf* | mips64orionel-*-elf*)
2718 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2719 tmake_file="mips/t-elf"
2720 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2723 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2724 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2727 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2728 tmake_file="${tmake_file} mips/t-vxworks"
2730 mipstx39-*-elf* | mipstx39el-*-elf*)
2731 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2732 tmake_file="mips/t-r3900"
2734 mmix-knuth-mmixware)
2735 tm_file="${tm_file} newlib-stdint.h"
2739 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2744 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2745 c_target_objs="msp430-c.o"
2746 cxx_target_objs="msp430-c.o"
2747 tmake_file="${tmake_file} msp430/t-msp430"
2748 extra_objs="${extra_objs} msp430-devices.o"
2749 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2750 # Enable .init_array unless it has been explicitly disabled.
2751 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2752 # code since mid-2019 expects it.
2753 if test x${disable_initfini_array} != xyes; then
2754 gcc_cv_initfini_array=yes
2758 # __cxa_atexit increases code size, and we don't need to support
2759 # dynamic shared objects on MSP430, so regular Newlib atexit is a
2760 # fine replacement as it also supports registration of more than 32
2762 default_use_cxa_atexit=no
2763 # This target does not match the generic *-*-elf case above which
2764 # sets use_gcc_stdint=wrap, so explicitly set it here.
2770 target_cpu_default="0"
2771 tm_defines="${tm_defines}"
2776 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2777 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2782 tm_file="elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2783 tmake_file="nds32/t-nds32 nds32/t-elf"
2786 tm_file="elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2787 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2788 gcc_cv_initfini_array=yes
2792 # Handle --enable-default-relax setting.
2793 if test x${enable_default_relax} = xyes; then
2794 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2796 # Handle --with-ext-dsp
2797 if test x${with_ext_dsp} = xyes; then
2798 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2802 tm_file="elfos.h ${tm_file}"
2803 tmake_file="${tmake_file} nios2/t-nios2"
2806 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2809 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2810 extra_options="${extra_options} nios2/elf.opt"
2813 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2814 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2819 tm_file="${tm_file} newlib-stdint.h"
2821 tmake_file="nvptx/t-nvptx"
2822 if test x$enable_as_accelerator = xyes; then
2823 extra_programs="${extra_programs} mkoffload\$(exeext)"
2824 tm_file="${tm_file} nvptx/offload.h"
2828 tm_file="elfos.h ${tm_file}"
2829 tmake_file="${tmake_file} or1k/t-or1k"
2830 # Force .init_array support. The configure script cannot always
2831 # automatically detect that GAS supports it, yet we require it.
2832 gcc_cv_initfini_array=yes
2834 # Handle --with-multilib-list=...
2835 or1k_multilibs="${with_multilib_list}"
2836 if test "$or1k_multilibs" = "default"; then
2837 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2839 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2840 for or1k_multilib in ${or1k_multilibs}; do
2841 case ${or1k_multilib} in
2842 mcmov | msext | msfimm | \
2844 mhard-float | mdouble-float | munordered-float | msoft-float | \
2845 mhard-div | mhard-mul | \
2846 msoft-div | msoft-mul )
2847 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2850 echo "--with-multilib-list=${with_multilib_list} not supported."
2854 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2858 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2859 tm_file="${tm_file} or1k/linux.h"
2862 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2863 extra_options="${extra_options} or1k/elf.opt"
2866 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2867 tmake_file="${tmake_file} or1k/t-rtems"
2872 tm_file="${tm_file} newlib-stdint.h"
2875 # port not yet contributed
2876 #powerpc-*-openbsd*)
2877 # tmake_file="${tmake_file} rs6000/t-fprules"
2881 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2883 *-darwin1[0-9]* | *-darwin9*)
2884 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2885 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2888 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2889 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2892 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2895 # Earlier - ingle arch, with 32b only
2896 # OS X 10.0, the first edition is Darwin4
2899 tmake_file="${tmake_file} t-slibgcc"
2901 powerpc64-*-darwin*)
2902 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2903 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2904 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2906 powerpc*-*-freebsd*)
2907 tm_file="${tm_file} elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2908 extra_options="${extra_options} rs6000/sysv4.opt"
2909 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2912 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2916 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2917 tmake_file="${tmake_file} rs6000/t-freebsd64"
2918 extra_options="${extra_options} rs6000/linux64.opt"
2919 if test $fbsd_major -ge 13; then
2920 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2924 if test $fbsd_major -ge 13; then
2925 tm_file="rs6000/secureplt.h ${tm_file}"
2927 tm_file="${tm_file} rs6000/freebsd.h"
2932 tm_file="${tm_file} elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2933 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2934 tmake_file="${tmake_file} rs6000/t-netbsd"
2935 extra_options="${extra_options} rs6000/sysv4.opt"
2937 powerpc-*-eabisimaltivec*)
2938 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"
2939 extra_options="${extra_options} rs6000/sysv4.opt"
2940 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2944 tm_file="${tm_file} elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
2945 extra_options="${extra_options} rs6000/sysv4.opt"
2946 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2950 tm_file="${tm_file} elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2951 extra_options="${extra_options} rs6000/sysv4.opt"
2952 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2954 powerpc-*-eabialtivec*)
2955 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
2956 extra_options="${extra_options} rs6000/sysv4.opt"
2957 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2961 tm_file="${tm_file} elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h"
2962 extra_options="${extra_options} rs6000/sysv4.opt"
2963 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2967 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"
2968 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2969 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2972 tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2973 extra_options="${extra_options} rs6000/sysv4.opt"
2974 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2975 extra_objs="$extra_objs rs6000-linux.o"
2978 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2980 case ${target}:${with_cpu} in
2981 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2983 maybe_biarch=${cpu_is_64bit}
2984 case ${enable_targets} in
2985 *powerpc64*) maybe_biarch=yes ;;
2986 all) maybe_biarch=yes ;;
2988 case ${target}:${enable_targets}:${maybe_biarch} in
2989 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2990 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2991 | powerpcle-*:*powerpc64le*:yes)
2992 if test x$cpu_is_64bit = xyes; then
2993 tm_file="${tm_file} rs6000/default64.h"
2995 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2996 tmake_file="$tmake_file rs6000/t-linux64"
2999 tmake_file="$tmake_file rs6000/t-linux64le"
3000 case ${enable_targets} in
3001 all | *powerpc64-* | *powerpc-*)
3002 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
3005 case ${enable_targets} in
3006 all | *powerpc64le-* | *powerpcle-*)
3007 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
3010 extra_options="${extra_options} rs6000/linux64.opt"
3013 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
3014 extra_options="${extra_options} rs6000/linux64.opt"
3015 tmake_file="${tmake_file} rs6000/t-linux"
3018 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
3019 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
3023 powerpc*-*-linux*ppc476*)
3024 tm_file="${tm_file} rs6000/476.h"
3025 extra_options="${extra_options} rs6000/476.opt" ;;
3026 powerpc*-*-linux*altivec*)
3027 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
3031 enable_secureplt=yes ;;
3033 if test x${enable_secureplt} = xyes; then
3034 tm_file="rs6000/secureplt.h ${tm_file}"
3037 powerpc*-wrs-vxworks7r*)
3039 # Wind River 7 post SR0600 is mostly like Linux so we setup
3040 # our config in a very similar fashion and adjust to a few
3043 # The system compiler is configured with secureplt by default.
3044 tm_file="${tm_file} rs6000/secureplt.h"
3046 tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h"
3047 tm_file="${tm_file} rs6000/sysv4.h rs6000/biarch64.h rs6000/default64.h rs6000/linux64.h"
3048 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3050 extra_options="${extra_options} rs6000/sysv4.opt linux.opt rs6000/linux64.opt"
3052 tmake_file="${tmake_file} t-linux rs6000/t-linux64 rs6000/t-fprules rs6000/t-ppccomm"
3053 tmake_file="${tmake_file} rs6000/t-vxworks"
3055 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
3056 extra_objs="$extra_objs linux.o rs6000-linux.o"
3058 powerpc-wrs-vxworks*)
3059 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
3060 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
3061 extra_options="${extra_options} rs6000/sysv4.opt vxworks-smp.opt"
3062 extra_headers="${extra_headers} ppc-asm.h"
3065 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
3066 tmake_file="${tmake_file} rs6000/t-vxworksmils"
3069 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
3070 tmake_file="${tmake_file} rs6000/t-vxworksae"
3073 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3079 tm_file="${tm_file} elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3080 tmake_file="t-lynx rs6000/t-lynx"
3081 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3087 tm_file="${tm_file} elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
3088 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3089 extra_options="${extra_options} rs6000/sysv4.opt"
3091 powerpcle-*-eabisim*)
3092 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"
3093 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3094 extra_options="${extra_options} rs6000/sysv4.opt"
3098 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"
3099 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3100 extra_options="${extra_options} rs6000/sysv4.opt"
3104 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3105 tmake_file="${tmake_file} pru/t-pru"
3106 extra_objs="pru-pragma.o pru-passes.o"
3109 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3110 tmake_file="rs6000/t-aix52 t-slibgcc"
3111 if test x$cpu_is_64bit = xyes; then
3112 tm_file="${tm_file} rs6000/biarch64.h"
3113 tmake_file="rs6000/t-aix64 t-slibgcc"
3115 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3116 extra_options="${extra_options} rs6000/aix64.opt"
3120 default_use_cxa_atexit=yes
3122 rs6000-ibm-aix7.2.* | powerpc-ibm-aix7.2.*)
3123 tmake_file="rs6000/t-aix52 t-slibgcc"
3124 if test x$cpu_is_64bit = xyes; then
3125 tm_file="${tm_file} rs6000/biarch64.h"
3126 tmake_file="rs6000/t-aix64 t-slibgcc"
3128 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3129 extra_options="${extra_options} rs6000/aix64.opt"
3133 default_use_cxa_atexit=yes
3135 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3136 tmake_file="rs6000/t-aix52 t-slibgcc"
3137 if test x$cpu_is_64bit = xyes; then
3138 tm_file="${tm_file} rs6000/biarch64.h"
3139 tmake_file="rs6000/t-aix64 t-slibgcc"
3141 tm_file="${tm_file} rs6000/aix.h rs6000/aix73.h rs6000/xcoff.h rs6000/aix-stdint.h"
3142 extra_options="${extra_options} rs6000/aix64.opt"
3146 default_use_cxa_atexit=yes
3149 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3150 target_has_targetm_common=no
3151 c_target_objs="rl78-c.o"
3152 cxx_target_objs="rl78-c.o"
3153 tmake_file="${tmake_file} rl78/t-rl78"
3156 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3157 tmake_file="${tmake_file} rx/t-rx"
3158 extra_options="${extra_options} rx/elf.opt"
3161 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3162 tmake_file="${tmake_file} rx/t-linux"
3165 tm_file="s390/s390.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3166 c_target_objs="${c_target_objs} s390-c.o"
3167 cxx_target_objs="${cxx_target_objs} s390-c.o"
3168 if test x$enable_targets = xall; then
3169 tmake_file="${tmake_file} s390/t-linux64"
3171 tmake_file="${tmake_file} s390/t-s390"
3174 tm_file="s390/s390x.h s390/s390.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3175 tm_p_file="linux-protos.h s390/s390-protos.h"
3176 c_target_objs="${c_target_objs} s390-c.o"
3177 cxx_target_objs="${cxx_target_objs} s390-c.o"
3178 md_file=s390/s390.md
3179 extra_modes=s390/s390-modes.def
3180 out_file=s390/s390.cc
3181 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3184 tm_file="s390/s390x.h s390/s390.h elfos.h glibc-stdint.h s390/tpf.h"
3185 tm_p_file=s390/s390-protos.h
3186 c_target_objs="${c_target_objs} s390-c.o"
3187 cxx_target_objs="${cxx_target_objs} s390-c.o"
3188 md_file=s390/s390.md
3189 extra_modes=s390/s390-modes.def
3190 out_file=s390/s390.cc
3192 extra_options="${extra_options} s390/tpf.opt"
3193 tmake_file="${tmake_file} s390/t-s390"
3195 sh-*-elf* | sh[12346l]*-*-elf* | \
3196 sh-*-linux* | sh[2346lbe]*-*-linux* | \
3197 sh-*-netbsdelf* | shl*-*-netbsdelf*)
3198 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3199 if test x${with_endian} = x; then
3201 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3202 shbe-*-* | sheb-*-*) with_endian=big,little ;;
3203 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
3204 shl* | sh*-*-linux* | \
3205 sh-superh-elf) with_endian=little,big ;;
3206 sh[1234]*-*-*) with_endian=big ;;
3207 *) with_endian=big,little ;;
3210 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3211 # First word : the default endian.
3212 # Second word: the secondary endian (optional).
3213 case ${with_endian} in
3214 big) TM_ENDIAN_CONFIG=mb ;;
3215 little) TM_ENDIAN_CONFIG=ml ;;
3216 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
3217 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
3218 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
3220 case ${with_endian} in
3221 little*) tm_file="sh/little.h ${tm_file}" ;;
3223 tm_file="${tm_file} elfos.h sh/elf.h"
3225 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
3226 if test x$enable_fdpic = xyes; then
3227 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3229 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3231 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3232 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3235 sh*-superh-elf) if test x$with_libgloss != xno; then
3237 tm_file="${tm_file} sh/newlib.h"
3239 tm_file="${tm_file} sh/embed-elf.h"
3240 tm_file="${tm_file} sh/superh.h"
3241 extra_options="${extra_options} sh/superh.opt" ;;
3242 *) if test x$with_newlib = xyes \
3243 && test x$with_libgloss = xyes; then
3244 tm_file="${tm_file} sh/newlib.h"
3246 tm_file="${tm_file} sh/embed-elf.h" ;;
3252 tm_file="${tm_file} newlib-stdint.h"
3255 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3256 case `echo ${target} | sed 's/e[lb]-/-/'` in
3257 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
3258 sh4a_single*) sh_cpu_target=sh4a-single ;;
3259 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
3260 sh4al) sh_cpu_target=sh4al ;;
3261 sh4a*) sh_cpu_target=sh4a ;;
3262 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3263 sh4_single*) sh_cpu_target=sh4-single ;;
3264 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3265 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3266 sh3e*) sh_cpu_target=sh3e ;;
3267 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3268 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3269 sh2a_single*) sh_cpu_target=sh2a-single ;;
3270 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3271 sh2a*) sh_cpu_target=sh2a ;;
3272 sh2e*) sh_cpu_target=sh2e ;;
3273 sh2*) sh_cpu_target=sh2 ;;
3274 *) sh_cpu_target=sh1 ;;
3276 # did the user say --without-fp ?
3277 if test x$with_fp = xno; then
3278 case ${sh_cpu_target} in
3280 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3281 sh4*) sh_cpu_target=sh4-nofpu ;;
3282 sh3*) sh_cpu_target=sh3 ;;
3283 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3284 sh2*) sh_cpu_target=sh2 ;;
3285 *) echo --without-fp not available for $target: ignored
3287 tm_defines="$tm_defines STRICT_NOFPU=1"
3289 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3290 case $sh_cpu_default in
3291 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3292 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3293 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3294 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3295 "") sh_cpu_default=${sh_cpu_target} ;;
3296 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3298 sh_multilibs=${with_multilib_list}
3299 if test "$sh_multilibs" = "default" ; then
3301 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3302 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3303 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3304 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3305 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3307 if test x$with_fp = xno; then
3308 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`"
3311 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3312 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3313 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3314 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3315 for sh_multilib in ${sh_multilibs}; do
3316 case ${sh_multilib} in
3317 m1 | m2 | m2e | m3 | m3e | \
3318 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3319 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3320 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3321 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3322 # It is passed to MULTIILIB_OPTIONS verbatim.
3323 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3324 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3326 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3327 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3328 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3330 echo "with_multilib_list=${sh_multilib} not supported."
3335 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3336 if test x${enable_incomplete_targets} = xyes ; then
3337 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3339 tm_file="$tm_file ./sysroot-suffix.h"
3340 tmake_file="$tmake_file t-sysroot-suffix"
3343 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3344 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3347 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3348 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3351 tm_file="${tm_file} elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3354 tmake_file="sparc/t-sparc sparc/t-leon"
3357 tmake_file="sparc/t-sparc sparc/t-leon3"
3360 tmake_file="sparc/t-sparc sparc/t-elf"
3365 tm_file="${tm_file} elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3366 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3369 tm_file="${tm_file} elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3370 extra_options="${extra_options} sparc/long-double-switch.opt"
3373 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3376 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3379 tmake_file="${tmake_file} sparc/t-sparc"
3382 if test x$enable_targets = xall; then
3383 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3384 tmake_file="${tmake_file} sparc/t-linux64"
3386 tm_file="${tm_file} sparc/linux.h"
3387 tmake_file="${tmake_file} sparc/t-linux"
3391 tm_file="${tm_file} elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3392 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3393 extra_options="${extra_options} sparc/long-double-switch.opt"
3394 tmake_file="${tmake_file} sparc/t-sparc"
3397 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3399 sparc64-*-* | sparcv9-*-*)
3400 tm_file="sparc/default64.h ${tm_file}"
3403 test x$with_cpu != x || with_cpu=v9
3406 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3409 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3410 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3413 tm_file="${tm_file} elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3414 extra_options="${extra_options}"
3415 tmake_file="${tmake_file} sparc/t-sparc"
3418 tm_file="${tm_file} elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3419 extra_options="${extra_options}"
3420 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3423 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"
3424 extra_options="${extra_options} sparc/long-double-switch.opt"
3425 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3427 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3428 tm_file="${tm_file} ${fbsd_tm_file} elfos.h sparc/sysv4.h sparc/freebsd.h"
3429 extra_options="${extra_options} sparc/long-double-switch.opt"
3430 case "x$with_cpu" in
3432 x) with_cpu=ultrasparc ;;
3433 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3435 tmake_file="${tmake_file} sparc/t-sparc"
3438 tm_file="sparc/biarch64.h ${tm_file}"
3439 tm_file="${tm_file} elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3440 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3441 extra_options="${extra_options} sparc/long-double-switch.opt"
3442 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3445 tm_file="sparc/openbsd1-64.h ${tm_file} elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3446 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3447 extra_options="${extra_options} openbsd.opt"
3448 extra_options="${extra_options}"
3451 tmake_file="${tmake_file} sparc/t-sparc"
3454 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3455 tm_file="${tm_file} tm-dwarf2.h newlib-stdint.h"
3456 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3460 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3461 tm_file="${tm_file} tm-dwarf2.h glibc-stdint.h"
3462 tm_file="${tm_file} ./sysroot-suffix.h"
3463 tmake_file="t-sysroot-suffix t-slibgcc"
3464 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3468 target_cpu_default="TARGET_CPU_generic"
3469 tm_file="elfos.h v850/v850.h"
3470 tm_file="${tm_file} v850/rtems.h rtems.h newlib-stdint.h"
3471 tmake_file="${tmake_file} v850/t-v850"
3472 tmake_file="${tmake_file} v850/t-rtems"
3474 c_target_objs="v850-c.o"
3475 cxx_target_objs="v850-c.o"
3480 target_cpu_default="TARGET_CPU_v850e3v5"
3483 target_cpu_default="TARGET_CPU_v850e2v3"
3486 target_cpu_default="TARGET_CPU_v850e2"
3488 v850e1-*-* | v850es-*-*)
3489 target_cpu_default="TARGET_CPU_v850e1"
3492 target_cpu_default="TARGET_CPU_v850e"
3495 target_cpu_default="TARGET_CPU_generic"
3498 tm_file="elfos.h newlib-stdint.h v850/v850.h"
3500 c_target_objs="v850-c.o"
3501 cxx_target_objs="v850-c.o"
3505 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h vax/elf.h vax/linux.h"
3506 extra_options="${extra_options} vax/elf.opt"
3509 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3510 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3511 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3514 tm_file="elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3515 tmake_file="visium/t-visium visium/t-crtstuff"
3518 # For historical reasons, the target files omit the 'x'.
3519 tm_file="elfos.h newlib-stdint.h stormy16/stormy16.h"
3520 tm_p_file=stormy16/stormy16-protos.h
3521 md_file=stormy16/stormy16.md
3522 out_file=stormy16/stormy16.cc
3523 extra_options=stormy16/stormy16.opt
3524 tmake_file="stormy16/t-stormy16"
3527 tm_file="${tm_file} elfos.h newlib-stdint.h xtensa/elf.h"
3528 extra_options="${extra_options} xtensa/elf.opt"
3531 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3532 tmake_file="${tmake_file} xtensa/t-xtensa"
3535 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3536 tmake_file="${tmake_file} xtensa/t-xtensa"
3537 extra_options="${extra_options} xtensa/uclinux.opt"
3540 tm_file="mn10300/mn10300.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3545 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3546 c_target_objs="m32c-pragma.o"
3547 cxx_target_objs="m32c-pragma.o"
3550 echo "*** Configuration ${target} not supported" 1>&2
3556 i[34567]86-*-linux* | x86_64-*-linux*)
3557 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3559 i[34567]86-*-* | x86_64-*-*)
3560 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3562 powerpc*-*-* | rs6000-*-*)
3563 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3569 tmake_file="${tmake_file} t-musl"
3572 tmake_file="${tmake_file} t-uclibc"
3576 # Assume the existence of indirect function support and allow the use of the
3577 # resolver attribute.
3579 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3581 *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
3583 *-*-linux* | *-*-gnu*)
3585 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-* | loongarch*-*)
3586 default_gnu_indirect_function=yes
3592 if [ "$target_has_targetcm" = "no" ]; then
3593 c_target_objs="$c_target_objs default-c.o"
3594 cxx_target_objs="$cxx_target_objs default-c.o"
3597 if [ "$common_out_file" = "" ]; then
3598 if [ "$target_has_targetm_common" = "yes" ]; then
3599 common_out_file="$cpu_type/$cpu_type-common.cc"
3601 common_out_file="default-common.cc"
3605 if [ "$target_has_targetdm" = "no" ]; then
3606 d_target_objs="$d_target_objs default-d.o"
3609 # Support for --with-cpu and related options (and a few unrelated options,
3613 echo "--with-cpu must be passed a value" 1>&2
3618 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3619 # to generic if there is no processor scheduler model for the target.
3622 arch_without_sse2=no
3623 arch_without_64bit=no
3626 if test $fbsd_major -ge 6; then
3632 arch_without_sse2=yes
3633 arch_without_64bit=yes
3638 arch_without_sse2=yes
3639 arch_without_64bit=yes
3644 arch_without_sse2=yes
3645 arch_without_64bit=yes
3650 arch_without_sse2=yes
3651 arch_without_64bit=yes
3654 arch_without_sse2=yes
3655 arch_without_64bit=yes
3656 case ${target_noncanonical} in
3669 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3679 i686-*-* | i786-*-*)
3680 case ${target_noncanonical} in
3721 amdfam10-*|barcelona-*)
3725 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3729 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3733 athlon_xp-*|athlon_mp-*|athlon_4-*)
3736 arch_without_sse2=yes
3737 arch_without_64bit=yes
3739 athlon_tbird-*|athlon-*)
3742 arch_without_sse2=yes
3747 arch_without_sse2=yes
3756 arch_without_sse2=yes
3758 pentium3-*|pentium3m-*)
3761 arch_without_sse2=yes
3763 pentium4-*|pentium4m-*)
3802 arch_without_sse2=yes
3807 arch_without_sse2=yes
3808 arch_without_64bit=yes
3813 case ${target_noncanonical} in
3854 amdfam10-*|barcelona-*)
3858 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3862 k8-*|opteron-*|athlon_64-*)
3898 # If there is no $with_cpu option, try to infer one from ${target}.
3899 # This block sets nothing except for with_cpu.
3900 if test x$with_cpu = x ; then
3902 i[34567]86-*-elfiamcu)
3905 i[34567]86-*-*|x86_64-*-*)
3923 frv-*-*linux* | frv400-*-*linux*)
3930 case "$with_arch" in
3932 with_cpu=${default_cf_cpu}
3935 with_cpu=m${default_m68k_cpu}
3951 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3960 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3962 i[34567]86-*-*|x86_64-*-*)
3963 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3964 if test x$with_cpu_32 = x; then
3965 with_cpu_32=$with_cpu
3967 if test x$with_cpu_64 = x; then
3968 with_cpu_64=$with_cpu
3976 # Support for --with-arch and related options (and a few unrelated options,
3978 case ${with_arch} in
3980 echo "--with-arch must be passed a value" 1>&2
3985 # If there is no $with_arch option, try to infer one from ${target}.
3986 # This block sets nothing except for with_arch.
3987 if test x$with_arch = x ; then
3989 i[34567]86-*-darwin*|x86_64-*-darwin*)
3990 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3991 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3993 i[34567]86-*-elfiamcu)
3997 # --with-fpmath sets the default ISA to SSE2, which is the same
3998 # ISA supported by Pentium 4.
3999 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
4008 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4019 # Avoid overriding --with-arch-32 and --with-arch-64 values.
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-*-*|x86_64-*-*)
4026 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
4027 if test x$with_arch_32 = x; then
4028 with_arch_32=$with_arch
4030 if test x$with_arch_64 = x; then
4031 if test $arch_without_64bit = yes; then
4032 # Set the default 64bit arch to x86-64 if the default arch
4033 # doesn't support 64bit.
4036 with_arch_64=$with_arch
4040 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
4041 # Set the default 64bit arch to x86-64 if the default arch
4042 # doesn't support 64bit and we need 64bit ISA.
4043 with_arch_32=$with_arch
4051 # Infer a default setting for --with-float.
4052 if test x$with_float = x; then
4054 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4055 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
4056 # comply with IEEE 754.
4062 # Infer a default setting for --with-fpu.
4063 if test x$with_fpu = x; then
4065 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4066 # The R5900 FPU only supports single precision.
4072 # Support --with-fpmath.
4073 if test x$with_fpmath != x; then
4075 i[34567]86-*-* | x86_64-*-*)
4076 case ${with_fpmath} in
4078 tm_file="${tm_file} i386/avxmath.h"
4081 tm_file="${tm_file} i386/ssemath.h"
4084 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4090 echo "--with-fpmath isn't supported for $target." 1>&2
4096 # Similarly for --with-schedule.
4097 if test x$with_schedule = x; then
4100 # Override default PA8000 scheduling model.
4101 with_schedule=7100LC
4106 # Infer a default setting for --with-llsc.
4107 if test x$with_llsc = x; then
4110 # The kernel emulates LL and SC where necessary.
4113 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4114 # The R5900 doesn't support LL(D) and SC(D).
4120 # Validate and mark as valid any --with options supported
4121 # by this target. In order to use a particular --with option
4122 # you must list it in supported_defaults; validating the value
4123 # is optional. This case statement should set nothing besides
4124 # supported_defaults.
4129 supported_defaults="abi cpu cpu_64 arch arch_64 tune tune_64"
4130 if test x$with_cpu_64 != x && test x$with_cpu = x; then
4131 with_cpu=$with_cpu_64
4133 if test x$with_arch_64 != x && test x$with_arch = x; then
4134 with_arch=$with_arch_64
4136 if test x$with_tune_64 != x && test x$with_tune = x; then
4137 with_tune=$with_tune_64
4139 for which in cpu arch tune; do
4140 eval "val=\$with_$which"
4141 base_val=`echo $val | sed -e 's/\+.*//'`
4142 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4144 if [ $which = arch ]; then
4145 def=aarch64-arches.def
4146 pattern=AARCH64_ARCH
4148 def=aarch64-cores.def
4149 pattern=AARCH64_CORE
4152 # Find the base CPU or ARCH id in aarch64-cores.def or
4153 # aarch64-arches.def
4154 if [ x"$base_val" = x ] \
4155 || grep "^$pattern(\"$base_val\"," \
4156 ${srcdir}/config/aarch64/$def \
4159 # Disallow extensions in --with-tune=cortex-a53+crc.
4160 if [ $which = tune ] && [ x"$ext_val" != x ]; then
4161 echo "Architecture extensions not supported in --with-$which=$val" 1>&2
4165 # Use the pre-processor to strip flatten the options.
4166 # This makes the format less rigid than if we use
4167 # grep and sed directly here.
4168 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4169 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4170 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4172 while [ x"$ext_val" != x ]
4174 ext_val=`echo $ext_val | sed -e 's/\+//'`
4175 ext=`echo $ext_val | sed -e 's/\+.*//'`
4176 base_ext=`echo $ext | sed -e 's/^no//'`
4177 opt_line=`echo -e "$options_parsed" | \
4178 grep "^\"$base_ext\""`
4180 if [ x"$base_ext" = x ] \
4181 || [ x"$opt_line" != x ]; then
4184 echo "Unknown extension used in --with-$which=$val" 1>&2
4187 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4192 # Allow --with-$which=native.
4193 if [ "$val" = native ]; then
4196 echo "Unknown $which used in --with-$which=$val" 1>&2
4204 supported_defaults="cpu tune"
4205 for which in cpu tune; do
4206 eval "val=\$with_$which"
4209 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4210 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4214 echo "Unknown CPU used in --with-$which=$val" 1>&2
4222 supported_defaults="cpu fpu"
4225 if [ x"$with_cpu" = x ] \
4226 || grep -q -E "^ARC_CPU[[:blank:]]*\($with_cpu," \
4227 ${srcdir}/config/arc/arc-cpus.def
4232 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4236 # see if --with-fpu matches any of the supported FPUs
4241 fpus | fpus_div | fpus_fma | fpus_all)
4245 fpuda | fpuda_div | fpuda_fma | fpuda_all)
4249 fpud | fpud_div | fpud_fma | fpud_all)
4254 echo "Unknown floating point type used in "\
4255 "--with-fpu=$with_fpu" 1>&2
4260 if [ -n "$flags_ok" ] \
4261 && ! grep -q -E "^ARC_CPU[[:blank:]]*\($new_cpu,[[:blank:]]*$flags_ok," \
4262 ${srcdir}/config/arc/arc-cpus.def
4264 echo "Unknown floating point type used in "\
4265 "--with-fpu=$with_fpu for cpu $new_cpu" 1>&2
4271 # Handle --with-multilib-list.
4272 if test "x${with_multilib_list}" != xdefault; then
4273 TM_MULTILIB_CONFIG="${with_multilib_list}"
4278 supported_defaults="cpu endian float"
4282 supported_defaults="arch cpu float tune fpu abi mode tls"
4283 for which in cpu tune arch; do
4284 # See if it matches a supported value
4285 eval "val=\$with_$which"
4286 if [ x"$val" != x ]; then
4287 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4288 -v cmd="chk$which $val" \
4289 ${srcdir}/config/arm/arm-cpus.in`
4290 if [ "$cpu" = "error" ]; then
4291 echo "Unknown target in --with-$which=$val" 1>&2
4295 eval "target_${which}_cname=$new_val"
4296 echo "For $val real value is $new_val"
4301 case "$with_float" in
4303 | soft | hard | softfp)
4307 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4312 # see if --with-fpu matches any of the supported FPUs
4313 if [ x"$with_fpu" != x ] ; then
4315 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4316 -v cmd="chkfpu $val" \
4317 ${srcdir}/config/arm/arm-cpus.in`
4318 if [ "$fpu" = "error" ]
4320 echo "Unknown target in --with-fpu=$val" 1>&2
4327 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4331 echo "Unknown ABI used in --with-abi=$with_abi"
4336 case "$with_mode" in
4342 echo "Unknown mode used in --with-mode=$with_mode"
4353 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4358 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4359 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4363 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4364 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4368 # Add extra multilibs
4369 if test "x$with_multilib_list" != x; then
4371 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4372 if test "x${arm_multilibs}" != xdefault ; then
4373 for arm_multilib in ${arm_multilibs}; do
4374 case ${arm_multilib} in
4376 tmake_profile_file="arm/t-multilib"
4377 tm_mlib_file="arm/arm-mlib.h"
4380 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4381 if test -f "${srcdir}/config/arm/${ml}"; then
4382 tmake_file="${tmake_file} arm/${ml}"
4384 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4389 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4396 if test "x${tmake_profile_file}" != x ; then
4397 # arm/t-aprofile and arm/t-rmprofile are only
4398 # designed to work without any with-cpu,
4399 # with-arch, with-mode, with-fpu or with-float
4401 if test "x$with_arch" != x \
4402 || test "x$with_cpu" != x \
4403 || test "x$with_float" != x \
4404 || test "x$with_fpu" != x \
4405 || test "x$with_mode" != x ; then
4406 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4408 elif test "x$ml" != x ; then
4409 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4412 # But pass the default value for float-abi
4413 # through to the multilib selector
4415 tmake_file="${tmake_file} ${tmake_profile_file}"
4416 tm_file="$tm_file $tm_mlib_file"
4417 TM_MULTILIB_CONFIG="$with_multilib_list"
4420 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4421 with_cpu=${with_cpu:-$target_cpu_cname}
4425 supported_defaults=cpu
4430 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4436 fido-*-* | m68k*-*-*)
4437 supported_defaults="arch cpu"
4438 case "$with_arch" in
4440 m68k_arch_family="$with_arch"
4443 echo "Invalid --with-arch=$with_arch" 1>&2
4448 # We always have a $with_cpu setting here.
4450 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4451 m68k_cpu_ident=$with_cpu
4454 m68k_cpu_ident=m68020
4455 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4458 m68k_cpu_ident=m68020
4459 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4462 # We need the C identifier rather than the string.
4463 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4464 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4465 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4466 ${srcdir}/config/m68k/m68k-devices.def`
4467 if [ x"$m68k_cpu_ident" = x ] ; then
4468 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4471 with_cpu="mcpu=$with_cpu"
4477 supported_defaults="arch tune"
4479 for which in arch tune; do
4480 eval "val=\$with_$which"
4482 "" | fiji | gfx900 | gfx906 | gfx908 | gfx90a)
4486 echo "Unknown cpu used in --with-$which=$val." 1>&2
4491 [ "x$with_arch" = x ] && with_arch=fiji
4495 supported_defaults="arch schedule"
4497 case "$with_arch" in
4498 "" | 1.0 | 1.1 | 2.0)
4502 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4507 case "$with_schedule" in
4508 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4512 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4518 i[34567]86-*-* | x86_64-*-*)
4519 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4520 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4521 eval "val=\$with_$which"
4522 case " $x86_archs " in
4530 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4539 if test x${val} != x; then
4540 case " $x86_64_archs " in
4542 # Disallow x86-64-v* for --with-cpu=/--with-tune=
4543 case "x$which$val" in
4544 xcpu*x86-64-v*|xtune*x86-64-v*)
4545 echo "Unknown CPU given in --with-$which=$val." 1>&2
4554 # Allow $x86_cpus --with-cpu=/--with-tune=
4557 case " $x86_cpus " in
4562 echo "Unknown CPU given in --with-$which=$val." 1>&2
4568 echo "Unknown CPU given in --with-$which=$val." 1>&2
4581 supported_defaults="abi arch tune riscv_attribute isa_spec"
4584 riscv-* | riscv32*) xlen=32 ;;
4585 riscv64*) xlen=64 ;;
4586 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4589 case "${with_isa_spec}" in
4590 ""|default|20191213|201912)
4591 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20191213"
4592 with_isa_spec=20191213
4595 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_2P2"
4598 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20190608"
4599 with_isa_spec=20190608
4602 echo "--with-isa-spec only accept 2.2, 20191213, 201912, 20190608 or 201906" 1>&2
4606 case "${with_riscv_attribute}" in
4608 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4611 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4614 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4617 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4623 # Infer arch from --with-arch, --target, and --with-abi.
4624 case "${with_arch}" in
4625 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4629 # Infer XLEN, but otherwise assume GC.
4630 case "${with_abi}" in
4631 ilp32e) with_arch="rv32e" ;;
4632 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4633 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4634 *) with_arch="rv${xlen}gc" ;;
4638 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4642 PYTHON=`which python || which python3 || which python2`
4643 if test "x${PYTHON}" != x; then
4644 with_arch=`${PYTHON} ${srcdir}/config/riscv/arch-canonicalize -misa-spec=${with_isa_spec} ${with_arch}`
4646 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ARCH=${with_arch}"
4648 # Make sure --with-abi is valid. If it was not specified,
4649 # pick a default based on the ISA, preferring soft-float
4650 # unless the D extension is present.
4651 case "${with_abi}" in
4652 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4655 case "${with_arch}" in
4656 rv32*d* | rv32g*) with_abi=ilp32d ;;
4657 rv32e*) with_abi=ilp32e ;;
4658 rv32*) with_abi=ilp32 ;;
4659 rv64*d* | rv64g*) with_abi=lp64d ;;
4660 rv64*) with_abi=lp64 ;;
4664 echo "--with-abi=${with_abi} is not supported" 1>&2
4668 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ABI=${with_abi}"
4670 # Make sure ABI and ISA are compatible.
4671 case "${with_abi},${with_arch}" in
4672 ilp32,rv32* | ilp32e,rv32e* \
4673 | ilp32f,rv32*f* | ilp32f,rv32g* \
4674 | ilp32d,rv32*d* | ilp32d,rv32g* \
4676 | lp64f,rv64*f* | lp64f,rv64g* \
4677 | lp64d,rv64*d* | lp64d,rv64g*)
4680 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4684 # Handle --with-multilib-generator.
4685 if test "x${with_multilib_generator}" != xdefault; then
4686 if test "x${with_multilib_list}" != xdefault; then
4687 echo "--with-multilib-list= can't used with --with-multilib-generator= at same time" 1>&2
4692 if ${srcdir}/config/riscv/multilib-generator \
4693 -misa-spec=${with_isa_spec} \
4694 `echo ${with_multilib_generator} | sed 's/;/ /g'`\
4695 > t-multilib-config;
4697 tmake_file="${tmake_file} riscv/t-withmultilib-generator"
4699 echo "invalid option for --with-multilib-generator" 1>&2
4704 echo "--with-multilib-generator= is not supported for ${target}, only supported for riscv*-*-elf*" 1>&2
4710 # Handle --with-multilib-list.
4711 if test "x${with_multilib_list}" != xdefault; then
4712 tmake_file="${tmake_file} riscv/t-withmultilib"
4714 case ${with_multilib_list} in
4715 ilp32 | ilp32f | ilp32d \
4716 | lp64 | lp64f | lp64d )
4717 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4720 echo "--with-multilib-list=${with_multilib_list} not supported."
4727 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"
4729 case ${with_float} in
4734 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4740 "" | single | double)
4744 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4754 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4759 case ${with_fp_32} in
4764 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4769 case ${with_odd_spreg_32} in
4771 with_odd_spreg_32="odd-spreg"
4774 with_odd_spreg_32="no-odd-spreg"
4780 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4786 "" | 32 | o64 | n32 | 64 | eabi)
4790 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4795 case ${with_divide} in
4796 "" | breaks | traps)
4800 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4805 case ${with_llsc} in
4816 echo "Unknown llsc type used in --with-llsc" 1>&2
4821 case ${with_mips_plt} in
4826 with_mips_plt=no-plt
4831 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4836 case ${with_synci} in
4846 echo "Unknown synci type used in --with-synci" 1>&2
4851 case ${with_lxc1_sxc1} in
4853 with_lxc1_sxc1=lxc1-sxc1
4856 with_lxc1_sxc1=no-lxc1-sxc1
4861 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4866 case ${with_madd4} in
4876 echo "Unknown madd4 type used in --with-madd4" 1>&2
4881 case ${with_compact_branches} in
4882 "" | never | always | optimal)
4885 echo "Unknown compact-branches policy used in --with-compact-branches" 1>&2
4900 echo "Unknown msa type used in --with-msa" 1>&2
4907 supported_defaults="abi arch tune fpu simd multilib-default strict-align-lib"
4912 arch_pattern arch_default \
4913 fpu_pattern fpu_default \
4914 triplet_os triplet_abi \
4917 # --with-abi is now obsolete, emit a warning if given.
4921 echo "warning: --with-abi= is now obsolete," \
4922 "the default ABI is derived from your target" \
4923 "triplet ${target}" 1>&2
4927 # Infer ABI from the triplet.
4929 loongarch64-*f64) abi_base="lp64d"; abi_ext="base" ;;
4930 loongarch64-*f32) abi_base="lp64f"; abi_ext="base" ;;
4931 loongarch64-*sf) abi_base="lp64s"; abi_ext="base" ;;
4932 loongarch64-*) abi_base="lp64d"; abi_ext="base" ;;
4934 echo "Unsupported target ${target}." 1>&2
4939 # Get the canonical triplet (multiarch specifier).
4940 case ${abi_base},${abi_ext} in
4941 lp64d,base) triplet_abi="";;
4942 lp64f,base) triplet_abi="f32";;
4943 lp64s,base) triplet_abi="sf";;
4947 *-linux-gnu*) triplet_os="linux-gnu";;
4948 *-linux-musl*) triplet_os="linux-musl";;
4949 *-elf*) triplet_os="elf";;
4951 echo "Unsupported target ${target}." 1>&2
4955 la_canonical_triplet="loongarch64-${triplet_os}${triplet_abi}"
4958 # Perform initial sanity checks on --with-* options.
4959 case ${with_arch} in
4960 "" | abi-default | loongarch64 | la464) ;; # OK, append here.
4962 if test x${host} != x${target}; then
4963 echo "--with-arch=native is illegal for cross-compiler." 1>&2
4968 echo "Unknown arch in --with-arch=$with_arch" 1>&2
4975 "" | none | 32 | 64) ;; # OK, append here.
4977 # Convert "0" to "none" for upcoming checks.
4981 echo "Unknown fpu type in --with-fpu=$with_fpu" 1>&2
4986 case ${with_simd} in
4988 lsx | lasx) # OK, append here.
4993 echo "--with-simd=${with_simd} conflicts with --with-fpu=${with_fpu}" 1>&2
5000 echo "Unknown SIMD extension in --with-simd=$with_simd" 1>&2
5005 # Infer ISA-related default options from the ABI: pass 1
5006 case ${abi_base}/${abi_ext} in
5008 # architectures that support lp64* ABI
5009 arch_pattern="native|abi-default|loongarch64|la464"
5010 # default architecture for lp64* ABI
5011 arch_default="abi-default"
5014 echo "Unsupported ABI type ${abi_base}/${abi_ext}." 1>&2
5019 # Infer ISA-related default options from the ABI: pass 2
5020 case ${abi_base}/${abi_ext} in
5029 fpu_pattern="none|32|64"
5033 echo "Unsupported ABI type ${abi_base}/${abi_ext}." 1>&2
5038 ## Set default value for with_arch.
5039 case ${with_arch} in
5041 if test x${arch_default} != x; then
5042 with_arch=${arch_default}
5044 with_arch=${arch_pattern}
5049 if echo "${with_arch}" | grep -E "^${arch_pattern}$" > /dev/null; then
5052 echo "${abi_base}/${abi_ext} ABI cannot be implemented with" \
5053 "--with-arch=${with_arch}." 1>&2
5059 ## Set default value for with_fpu.
5062 if test x${fpu_default} != x; then
5063 with_fpu=${fpu_default}
5065 with_fpu=${fpu_pattern}
5070 if echo "${with_fpu}" | grep -E "^${fpu_pattern}$" > /dev/null; then
5073 echo "${abi_base}/${abi_ext} ABI cannot be implemented with" \
5074 "--with-fpu=${with_fpu}." 1>&2
5081 # Check default with_tune configuration using with_arch.
5082 case ${with_arch} in
5084 tune_pattern="native|abi-default|loongarch64|la464"
5087 # By default, $with_tune == $with_arch
5092 case ${with_tune} in
5095 if echo "${with_tune}" | grep -E "^${tune_pattern}$" > /dev/null; then
5098 echo "Incompatible options: --with-tune=${with_tune}" \
5099 "and --with-arch=${with_arch}." 1>&2
5105 # Build libraries with -mstrict-align if --with-strict-align-lib is given.
5106 case ${with_strict_align_lib} in
5107 yes) strict_align_opt="/mstrict-align" ;;
5110 echo "Unknown option: --with-strict-align-lib=${with_strict_align_lib}" 1>&2
5116 # Handle --with-multilib-default
5117 if echo "${with_multilib_default}" \
5118 | grep -E -e '[[:space:]]' -e '//' -e '/$' -e '^/' > /dev/null 2>&1; then
5119 echo "Invalid argument to --with-multilib-default." 1>&2
5123 if test x${with_multilib_default} = x; then
5124 # Use -march=abi-default by default when building libraries.
5125 with_multilib_default="/march=abi-default"
5127 unset parse_state component
5129 for component in $(echo "${with_multilib_default}" | tr '/' ' '); do
5130 case ${parse_state},${component} in
5131 arch,|arch,abi-default)
5132 # ABI-default: use the ABI's default ARCH configuration for
5133 # multilib library builds, unless otherwise specified
5134 # in --with-multilib-list.
5135 with_multilib_default="/march=abi-default" ;;
5137 # Fixed: use the default gcc configuration for all multilib
5138 # builds by default.
5139 with_multilib_default="" ;;
5140 arch,native|arch,loongarch64|arch,la464) # OK, append here.
5141 with_multilib_default="/march=${component}" ;;
5143 with_multilib_default="/march=abi-default"
5144 with_multilib_default="${with_multilib_default}/${component}" ;;
5146 with_multilib_default="${with_multilib_default}/${component}" ;;
5149 if test x${parse_state} = xarch; then
5153 unset parse_state component
5156 # Handle --with-multilib-list.
5157 if test x"${with_multilib_list}" = x \
5158 || test x"${with_multilib_list}" = xno \
5159 || test x"${with_multilib_list}" = xdefault \
5160 || test x"${enable_multilib}" != xyes; then
5162 with_multilib_list="${abi_base}/${abi_ext}"
5165 # Check if the configured default ABI combination is included in
5166 # ${with_multilib_list}.
5167 loongarch_multilib_list_sane=no
5169 # This one goes to TM_MULTILIB_CONFIG, for use in t-linux.
5170 loongarch_multilib_list_make=""
5172 # This one goes to tm_defines, for use in loongarch-driver.c.
5173 loongarch_multilib_list_c=""
5175 # ${with_multilib_list} should not contain whitespaces,
5176 # consecutive commas or slashes.
5177 if echo "${with_multilib_list}" \
5178 | grep -E -e "[[:space:]]" -e '[,/][,/]' -e '[,/]$' -e '^[,/]' > /dev/null 2>&1; then
5179 echo "Invalid argument to --with-multilib-list." 1>&2
5183 unset component elem_abi_base elem_abi_ext elem_tmp parse_state all_abis
5184 for elem in $(echo "${with_multilib_list}" | tr ',' ' '); do
5185 unset elem_abi_base elem_abi_ext
5186 parse_state="abi-base"
5188 for component in $(echo "${elem}" | tr '/' ' '); do
5189 if test x${parse_state} = x"abi-base"; then
5191 case ${component} in
5192 lp64d | lp64f | lp64s) elem_tmp="ABI_BASE_$(tr a-z A-Z <<< ${component}),";;
5194 echo "Unknown base ABI \"${component}\" in --with-multilib-list." 1>&2
5198 loongarch_multilib_list_c="${loongarch_multilib_list_c}${elem_tmp}"
5199 loongarch_multilib_list_make="${loongarch_multilib_list_make}mabi=${component}"
5200 elem_abi_base="${component}"
5202 parse_state="abi-ext"
5206 if test x${parse_state} = x"abi-ext"; then
5207 # ABI extension type
5208 case ${component} in
5211 loongarch_multilib_list_c="${loongarch_multilib_list_c}ABI_EXT_BASE,"
5212 loongarch_multilib_list_make="${loongarch_multilib_list_make}" # Add nothing for now.
5218 # The default ABI extension is "base" if unspecified.
5220 loongarch_multilib_list_c="${loongarch_multilib_list_c}ABI_EXT_BASE,"
5221 loongarch_multilib_list_make="${loongarch_multilib_list_make}" # Add nothing for now.
5225 if test x${parse_state} = x"arch"; then
5227 case ${component} in
5228 native | abi-default | loongarch64 | la464) # OK, append here.
5229 # Append -march spec for each multilib variant.
5230 loongarch_multilib_list_make="${loongarch_multilib_list_make}/march=${component}"
5236 # "/default" is equivalent to --with-multilib-default=fixed
5242 # If ARCH is unspecified for this multilib variant, use ${with_multllib_default}.
5243 loongarch_multilib_list_make="${loongarch_multilib_list_make}${with_multilib_default}"
5247 if test x${parse_state} = x"opts"; then
5248 # Other compiler options for building libraries.
5249 # (no static sanity check performed)
5250 case ${component} in
5252 # Append other components as additional build options
5253 # (without the prepending dash).
5254 # Their validity should be examined by the compiler.
5255 loongarch_multilib_list_make="${loongarch_multilib_list_make}/${component}"
5261 case ${parse_state} in
5264 loongarch_multilib_list_c="${loongarch_multilib_list_c}ABI_EXT_BASE,"
5265 loongarch_multilib_list_make="${loongarch_multilib_list_make}" # Add nothing for now.
5266 loongarch_multilib_list_make="${loongarch_multilib_list_make}${with_multilib_default}"
5269 # If ARCH is unspecified for this multilib variant, use ${with_multllib_default}.
5270 loongarch_multilib_list_make="${loongarch_multilib_list_make}${with_multilib_default}"
5277 # Use mstrict-align for building libraries if --with-strict-align-lib is given.
5278 loongarch_multilib_list_make="${loongarch_multilib_list_make}${strict_align_opt}"
5280 # Check for repeated configuration of the same multilib variant.
5281 if echo "${elem_abi_base}/${elem_abi_ext}" \
5282 | grep -E "^(${all_abis%|})$" >/dev/null 2>&1; then
5283 echo "Repeated multilib config of \"${elem_abi_base}/${elem_abi_ext}\" in --with-multilib-list."
5286 all_abis="${all_abis}${elem_abi_base}/${elem_abi_ext}|"
5289 # Check if the default ABI configuration of the GCC binary
5290 # is included in the enabled multilib variants.
5291 if test x${elem_abi_base} = x${abi_base} \
5292 && test x${elem_abi_ext} = x${abi_ext}; then
5293 loongarch_multilib_list_sane=yes
5295 loongarch_multilib_list_make="${loongarch_multilib_list_make},"
5297 unset component elem_abi_base elem_abi_ext elem_tmp parse_state all_abis
5300 # Check if the default ABI combination is in the default list.
5301 if test x${loongarch_multilib_list_sane} = xno; then
5302 if test x${abi_ext} = xbase; then
5305 abi_ext="/${abi_ext}"
5308 echo "Default ABI combination (${abi_base}${abi_ext})" \
5309 "not found in --with-multilib-list." 1>&2
5313 # Remove the excessive appending comma.
5314 loongarch_multilib_list_c=${loongarch_multilib_list_c%,}
5315 loongarch_multilib_list_make=${loongarch_multilib_list_make%,}
5319 supported_defaults="arch cpu nds32_lib float fpu_config"
5321 # process --with-arch
5322 case "${with_arch}" in
5324 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
5328 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
5331 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
5334 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
5338 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
5343 case "${with_cpu}" in
5347 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
5351 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
5356 # process --with-nds32-lib
5357 case "${with_nds32_lib}" in
5361 with_nds32_lib=ulibc
5364 with_nds32_lib=glibc
5367 with_nds32_lib=newlib
5368 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
5374 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
5378 # for the arch=v3f or arch=v3s under mculib toolchain,
5379 # we would like to set -fno-math-errno as default
5380 case "${with_arch}" in
5382 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
5390 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
5395 # process --with-float
5396 case "${with_float}" in
5401 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
5406 # process --with-config-fpu
5407 case "${with_config_fpu}" in
5412 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
5420 supported_defaults="arch"
5421 case "$with_arch" in
5426 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
5433 supported_defaults=arch
5434 TM_MULTILIB_CONFIG=$with_arch
5435 #TODO 'sm_[...]' list per 'nvptx-sm.def'.
5440 sm_35 | sm_53 | sm_70 | sm_75 | sm_80 )
5441 # OK, but we'd like 'sm_30', too.
5442 TM_MULTILIB_CONFIG="$TM_MULTILIB_CONFIG sm_30"
5445 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
5451 powerpc*-*-* | rs6000-*-*)
5452 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
5454 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5455 eval "val=\$with_$which"
5457 default32 | default64)
5462 echo "$val only valid for --with-cpu and --with-tune." 1>&2
5466 with_which="with_$which"
5470 tm_defines="${tm_defines} CONFIG_PPC405CR"
5471 eval "with_$which=405"
5473 "" | common | native \
5474 | power[3456789] | power10 | power5+ | power6x \
5475 | powerpc | powerpc64 | powerpc64le \
5477 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
5478 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
5479 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
5480 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
5481 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
5485 echo "Unknown cpu used in --with-$which=$val." 1>&2
5492 "" | elfv1 | elfv2 )
5496 echo "Unknown ABI used in --with-abi=$with_abi"
5501 if test "x$with_advance_toolchain" != x; then
5502 if test -d "/opt/$with_advance_toolchain/." -a \
5503 -d "/opt/$with_advance_toolchain/bin/." -a \
5504 -d "/opt/$with_advance_toolchain/include/."; then
5506 tm_file="$tm_file ./advance-toolchain.h"
5507 (at="/opt/$with_advance_toolchain"
5508 echo "/* Use Advance Toolchain $at */"
5510 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
5511 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
5512 "\"--enable-new-dtags\""
5514 echo "#undef DYNAMIC_LINKER_PREFIX"
5515 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
5517 echo "#undef MD_EXEC_PREFIX"
5518 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
5520 echo "#undef MD_STARTFILE_PREFIX"
5521 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
5523 echo "#undef MD_STARTFILE_PREFIX_1"
5524 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
5525 > advance-toolchain.h
5527 echo "Unknown advance-toolchain $with_advance_toolchain"
5532 # Set up the default long double format if the user changed it.
5533 if test x$with_long_double_format = xieee; then
5534 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
5536 elif test x$with_long_double_format = xibm; then
5537 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5542 supported_defaults="arch mode tune"
5544 for which in arch tune; do
5545 eval "val=\$with_$which"
5547 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | z16 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 | arch14 )
5551 echo "Unknown cpu used in --with-$which=$val." 1>&2
5557 case ${with_mode} in
5562 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5568 sh[123456ble]*-*-* | sh-*-*)
5569 supported_defaults="cpu"
5570 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5571 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5574 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5576 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5579 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
5580 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5581 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5582 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5588 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5590 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5591 eval "val=\$with_$which"
5593 "" | sparc | sparcv9 | sparc64 \
5595 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5596 | sparclite | f930 | f934 | sparclite86x \
5597 | sparclet | tsc701 \
5598 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5599 | niagara3 | niagara4 | niagara7 | m8)
5603 echo "Unknown cpu used in --with-$which=$val" 1>&2
5609 case ${with_float} in
5614 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5621 supported_defaults="arch"
5623 case ${with_arch} in
5624 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5628 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5635 supported_defaults=cpu
5637 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5641 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5647 supported_defaults="cpu"
5651 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5658 # VxWorks support for shared libraries has to be requested explicitly,
5659 # so we can factor this part here:
5661 case "${target}-${enable_shared}" in
5663 tmake_file="${tmake_file} t-slibgcc"
5667 # Targets for which there is at least one VxWorks port should include
5668 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5669 # of markers from other files in the port, including the vxworks*.h files to
5670 # distinguish VxWorks variants such as VxWorks 7 or 64).
5673 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5674 | sparc*-*-* | x86_64-*-*)
5675 tm_file="vxworks-dummy.h ${tm_file}"
5679 # Set some miscellaneous flags for particular targets.
5680 target_cpu_default2=
5683 if test x"$target_cpu_cname" != x
5685 target_cpu_default2=$target_cpu_cname
5690 if test x$with_cpu = x
5692 echo "Don't know the target cpu" 1>&2
5695 target_cpu_default2="\\\"$with_cpu\\\""
5700 if test x$gas = xyes
5702 target_cpu_default2="MASK_GAS"
5706 fido*-*-* | m68k*-*-*)
5707 target_cpu_default2=$m68k_cpu_ident
5708 tmake_file="m68k/t-opts $tmake_file"
5709 if [ x"$m68k_arch_family" != x ]; then
5710 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5714 i[34567]86-*-darwin* | x86_64-*-darwin*)
5716 i[34567]86-*-linux* | x86_64-*-linux*)
5717 extra_objs="${extra_objs} gnu-property.o"
5718 tmake_file="$tmake_file i386/t-linux i386/t-gnu-property"
5720 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5721 tmake_file="$tmake_file i386/t-kfreebsd"
5724 tmake_file="$tmake_file i386/t-gnu"
5726 i[34567]86-*-msdosdjgpp*)
5727 tmake_file="${tmake_file} i386/t-djgpp"
5729 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5731 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5733 i[34567]86-*-mingw* | x86_64-*-mingw*)
5735 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5737 i[34567]86-*-freebsd*)
5740 tmake_file="${tmake_file} i386/t-freebsd64"
5746 if test x$gnu_ld = xyes
5748 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5752 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5755 if test x$with_arch != x; then
5756 default_mips_arch=$with_arch
5758 with_arch=$default_mips_arch
5760 if test x$with_abi != x; then
5761 default_mips_abi=$with_abi
5763 case ${default_mips_arch} in
5764 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS1" ;;
5765 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS2" ;;
5766 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3" ;;
5767 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS4" ;;
5768 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32" ;;
5769 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2" ;;
5770 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6" ;;
5771 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64" ;;
5772 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2" ;;
5773 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6" ;;
5775 case ${default_mips_abi} in
5776 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5777 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5778 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5779 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5780 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5782 tmake_file="mips/t-mips $tmake_file"
5786 # Export canonical triplet.
5787 tm_defines="${tm_defines} LA_MULTIARCH_TRIPLET=${la_canonical_triplet}"
5789 # Define macro LA_DISABLE_MULTILIB if --disable-multilib
5790 tm_defines="${tm_defines} TM_MULTILIB_LIST=${loongarch_multilib_list_c}"
5791 if test x$enable_multilib = xyes; then
5792 TM_MULTILIB_CONFIG="${loongarch_multilib_list_make}"
5794 tm_defines="${tm_defines} LA_DISABLE_MULTILIB"
5797 # Let --with- flags initialize the enum variables from loongarch.opt.
5798 # See macro definitions from loongarch-opts.h and loongarch-cpu.h.
5801 tm_defines="${tm_defines} DEFAULT_CPU_ARCH=CPU_$(echo ${with_arch} | tr a-z- A-Z_)"
5804 tm_defines="${tm_defines} DEFAULT_ABI_BASE=ABI_BASE_$(echo ${abi_base} | tr a-z- A-Z_)"
5808 base) tm_defines="${tm_defines} DEFAULT_ABI_EXT=ABI_EXT_BASE" ;;
5812 if test x${with_tune} != x; then
5813 tm_defines="${tm_defines} DEFAULT_CPU_TUNE=CPU_$(echo ${with_tune} | tr a-z- A-Z_)"
5818 none) tm_defines="$tm_defines DEFAULT_ISA_EXT_FPU=ISA_EXT_NONE" ;;
5819 32) tm_defines="$tm_defines DEFAULT_ISA_EXT_FPU=ISA_EXT_FPU32" ;;
5820 64) tm_defines="$tm_defines DEFAULT_ISA_EXT_FPU=ISA_EXT_FPU64" ;;
5824 case ${with_simd} in
5825 none) tm_defines="$tm_defines DEFAULT_ISA_EXT_SIMD=ISA_EXT_NONE" ;;
5826 lsx) tm_defines="$tm_defines DEFAULT_ISA_EXT_SIMD=ISA_EXT_SIMD_LSX" ;;
5827 lasx) tm_defines="$tm_defines DEFAULT_ISA_EXT_SIMD=ISA_EXT_SIMD_LASX" ;;
5830 tmake_file="loongarch/t-loongarch $tmake_file"
5833 powerpc*-*-* | rs6000-*-*)
5834 # FIXME: The PowerPC port uses the value set at compile time,
5835 # although it's only cosmetic.
5836 if test "x$with_cpu" != x
5838 target_cpu_default2="\\\"$with_cpu\\\""
5840 out_file="${cpu_type}/${cpu_type}.cc"
5841 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5842 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5843 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5844 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5847 sh[123456ble]*-*-* | sh-*-*)
5848 c_target_objs="${c_target_objs} sh-c.o"
5849 cxx_target_objs="${cxx_target_objs} sh-c.o"
5853 # Some standard aliases.
5858 xsparcv9 | xsparc64)
5863 if test x$with_tune = x ; then
5874 # The SPARC port checks this value at compile-time.
5875 target_cpu_default2="TARGET_CPU_$with_cpu"
5879 case "x$with_cpu" in
5882 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5883 target_cpu_default2="TARGET_CPU_$with_cpu"
5886 target_cpu_default2="TARGET_CPU_v850e1"
5891 target_cpu_default2="TARGET_CPU_$with_cpu"
5896 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"
5897 for option in $all_defaults
5899 eval "val=\$with_"`echo $option | sed s/-/_/g`
5900 if test -n "$val"; then
5901 case " $supported_defaults " in
5905 echo "This target does not support --with-$option." 2>&1
5906 echo "Valid --with options are: $supported_defaults" 2>&1
5913 t="{ \"$option\", \"$val\" }"
5915 t="${t}, { \"$option\", \"$val\" }"
5922 configure_default_options="{ { NULL, NULL} }"
5924 configure_default_options="{ ${t} }"
5927 if test "$target_cpu_default2" != ""
5929 if test "$target_cpu_default" != ""
5931 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5933 target_cpu_default=$target_cpu_default2
5938 i[34567]86-*-* | x86_64-*-*)
5939 if test x$enable_as_accelerator = xyes; then
5940 extra_programs="mkoffload\$(exeext)"