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 lsxintrin.h lasxintrin.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-string.o"
534 extra_objs="${extra_objs} riscv-v.o riscv-vsetvl.o riscv-vector-costs.o"
535 extra_objs="${extra_objs} riscv-vector-builtins.o riscv-vector-builtins-shapes.o riscv-vector-builtins-bases.o"
536 extra_objs="${extra_objs} thead.o"
537 d_target_objs="riscv-d.o"
538 extra_headers="riscv_vector.h"
539 target_gtfiles="$target_gtfiles \$(srcdir)/config/riscv/riscv-vector-builtins.cc"
540 target_gtfiles="$target_gtfiles \$(srcdir)/config/riscv/riscv-vector-builtins.h"
543 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
544 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
545 extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
546 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.cc \$(srcdir)/config/rs6000/rs6000-call.cc"
547 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.cc"
551 c_target_objs="sparc-c.o"
552 cxx_target_objs="sparc-c.o"
553 d_target_objs="sparc-d.o"
554 extra_headers="visintrin.h"
558 d_target_objs="s390-d.o"
559 extra_options="${extra_options} fused-madd.opt"
560 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
562 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
563 sh[123456789lbe]*-*-* | sh-*-*)
565 extra_options="${extra_options} fused-madd.opt"
566 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
573 extra_headers="c6x_intrinsics.h"
574 extra_options="${extra_options} c6x/c6x-tables.opt"
577 extra_options="${extra_options} fused-madd.opt"
578 extra_objs="xtensa-dynconfig.o"
582 tm_file=${cpu_type}/${cpu_type}.h
583 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
585 tm_p_file=${cpu_type}/${cpu_type}-protos.h
589 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-d.h
591 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-d.h"
595 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
597 extra_modes=${cpu_type}/${cpu_type}-modes.def
599 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
601 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
606 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
609 if test "x$with_multilib_list" = xilp32; then
610 tm_file="aarch64/biarchilp32.h ${tm_file}"
612 tm_file="aarch64/biarchlp64.h ${tm_file}"
616 tm_file="aarch64/biarchilp32.h ${tm_file}"
619 tm_file="aarch64/biarchlp64.h ${tm_file}"
622 echo "Unknown ABI used in --with-abi=$with_abi"
627 if test "x$with_abi" != x; then
628 echo "This target does not support --with-abi."
637 if test "x$with_multilib_list" = xmx32; then
638 tm_file="i386/biarchx32.h ${tm_file}"
640 tm_file="i386/biarch64.h ${tm_file}"
644 tm_file="i386/biarch64.h ${tm_file}"
647 tm_file="i386/biarchx32.h ${tm_file}"
650 echo "Unknown ABI used in --with-abi=$with_abi"
655 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
659 # On a.out targets, we need to use collect2.
666 # Common C libraries.
667 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
669 # 32-bit x86 processors supported by --with-arch=. Each processor
670 # MUST be separated by exactly one space.
671 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
672 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
673 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
674 pentium4 pentium4m pentiumpro prescott lakemont samuel-2 nehemiah \
677 # 64-bit x86 processors supported by --with-arch=. Each processor
678 # MUST be separated by exactly one space.
679 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
680 bdver3 bdver4 znver1 znver2 znver3 znver4 btver1 btver2 k8 k8-sse3 opteron \
681 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
682 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
683 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
684 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake \
685 sapphirerapids alderlake rocketlake eden-x2 nano nano-1000 nano-2000 nano-3000 \
686 nano-x2 eden-x4 nano-x4 lujiazui x86-64 x86-64-v2 x86-64-v3 x86-64-v4 \
687 sierraforest graniterapids graniterapids-d grandridge arrowlake arrowlake-s \
690 # Additional x86 processors supported by --with-cpu=. Each processor
691 # MUST be separated by exactly one space.
692 x86_cpus="generic intel"
694 # Common parts for widely ported systems.
697 tmake_file="t-darwin "
698 tm_file="${tm_file} darwin.h"
699 darwin_os=`echo ${target} | sed 's/.*darwin\([0-9.]*\).*$/\1/'`
700 darwin_maj=`expr "$darwin_os" : '\([0-9]*\).*'`
701 macos_min=`expr "$darwin_os" : '[0-9]*\.\([0-9]*\).*'`
703 if test x"${macos_min}" = x; then
707 # Tools hosted on earlier versions of Darwin constrained all object
708 # alignment to be 2^15 or smaller. From Darwin11 (macOS 10.7) the
709 # alignment of non-common is allowed to be up to 2^28. Note that the
710 #Â larger alignment is permitted when targeting 10.6 from 10.7 so that
711 #Â the constraint only need be applied per host (and only if the host
714 *-*-darwin[4-9]* | *-*-darwin10*)
715 tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=15U"
718 tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=28U"
722 # Darwin 4 to 19 correspond to macOS 10.0 to 10.15
723 *-*-darwin[4-9]* | *-*-darwin1[0-9]*)
724 macos_min=`expr $darwin_maj - 4`
727 # Darwin 20 corresponds to macOS 11, Darwin 21 to macOS 12.
728 macos_maj=`expr $darwin_maj - 9`
733 aarch64) macos_maj=11 ;;
734 x86_64) macos_min=6 ;;
738 *-*-darwin*) tm_defines="$tm_defines DARWIN_USE_KERNEL_VERS" ;;
740 # If configuring a cross-compiler then we will have set some
741 #Â default above, but it is probably not what was intended.
742 echo "Warning: Using ${target} is only suitable for Darwin hosts" 1>&2
743 echo "configure with an explicit target version" 1>&2
748 echo "Error: configuring for an unreleased macOS version ${target}" 1>&2
752 tm_defines="$tm_defines DEF_MIN_OSX_VERSION=\\\"${macos_maj}.${macos_min}\\\""
753 tm_defines="$tm_defines DEF_LD64=\\\"${def_ld64}\\\""
754 tm_file="${tm_file} ${cpu_type}/darwin.h"
755 tm_p_file="${tm_p_file} darwin-protos.h"
756 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.cc"
757 extra_options="${extra_options} rpath.opt darwin.opt"
758 c_target_objs="${c_target_objs} darwin-c.o"
759 cxx_target_objs="${cxx_target_objs} darwin-c.o"
760 d_target_objs="${d_target_objs} darwin-d.o"
761 fortran_target_objs="darwin-f.o"
762 target_has_targetcm=yes
763 target_has_targetdm=yes
764 extra_objs="${extra_objs} darwin.o"
765 extra_gcc_objs="darwin-driver.o"
766 default_use_cxa_atexit=yes
768 case ${enable_threads} in
769 "" | yes | posix) thread_file='posix' ;;
775 tmake_file="t-slibgcc"
776 case ${enable_threads} in
781 # Let these non-posix thread selections fall through if requested
784 echo 'Unknown thread configuration for DragonFly BSD'
788 extra_options="$extra_options rpath.opt dragonfly.opt"
789 default_use_cxa_atexit=yes
791 d_target_objs="${d_target_objs} dragonfly-d.o"
792 tmake_file="${tmake_file} t-dragonfly"
793 target_has_targetdm=yes
796 # This is the generic ELF configuration of FreeBSD. Later
797 # machine-specific sections may refine and add to this
800 # Due to tm_file entry ordering issues that vary between cpu
801 # architectures, we only define fbsd_tm_file to allow the
802 # machine-specific section to dictate the final order of all
803 # entries of tm_file with the minor exception that components
804 # of the tm_file set here will always be of the form:
806 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
808 # The machine-specific section should not tamper with this
809 # ordering but may order all other entries of tm_file as it
810 # pleases around the provided core setting.
813 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
814 if test "$fbsd_major" = ""; then
815 echo "Specify the major version number of the targeted FreeBSD release"
816 echo "like this: --target=amd64-unknown-freebsd10.1"
819 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
820 tmake_file="t-slibgcc"
821 case ${enable_threads} in
823 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
829 echo 'Unknown thread configuration for FreeBSD'
833 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
834 extra_options="$extra_options rpath.opt freebsd.opt"
839 default_use_cxa_atexit=yes;;
842 d_target_objs="${d_target_objs} freebsd-d.o"
843 tmake_file="${tmake_file} t-freebsd"
844 target_has_targetdm=yes
847 native_system_header_dir=/include
849 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
850 extra_options="$extra_options gnu-user.opt"
853 case ${enable_threads} in
854 "" | yes | posix) thread_file='posix' ;;
856 tmake_file="t-slibgcc"
858 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
861 native_system_header_dir=/include
864 # Linux C libraries selection switch: glibc / uclibc / bionic.
865 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
868 tm_p_file="${tm_p_file} linux-protos.h"
869 tmake_file="${tmake_file} t-linux"
870 extra_objs="${extra_objs} linux.o"
871 extra_options="${extra_options} linux.opt"
876 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
878 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
879 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
882 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
885 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
888 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
890 default_use_cxa_atexit=yes
893 # Enable compilation for Android by default for *android* targets.
896 tm_defines="$tm_defines ANDROID_DEFAULT=1"
899 tm_defines="$tm_defines ANDROID_DEFAULT=0"
902 c_target_objs="${c_target_objs} glibc-c.o"
903 cxx_target_objs="${cxx_target_objs} glibc-c.o"
904 tmake_file="${tmake_file} t-glibc"
905 target_has_targetcm=yes
907 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
910 # Linux targets always support .init_array.
911 gcc_cv_initfini_array=yes
916 d_target_objs="${d_target_objs} linux-d.o"
917 target_has_targetdm=yes
920 d_target_objs="${d_target_objs} kfreebsd-d.o"
921 target_has_targetdm=yes
923 *-*-kopensolaris*-gnu)
924 d_target_objs="${d_target_objs} kopensolaris-d.o"
925 target_has_targetdm=yes
928 d_target_objs="${d_target_objs} gnu-d.o"
929 target_has_targetdm=yes
934 tm_p_file="${tm_p_file} netbsd-protos.h"
935 tmake_file="t-netbsd t-slibgcc"
936 extra_objs="${extra_objs} netbsd.o"
937 d_target_objs="${d_target_objs} netbsd-d.o"
941 case ${enable_threads} in
942 "" | yes | posix) thread_file='posix' ;;
944 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
945 default_use_cxa_atexit=yes
946 target_has_targetdm=yes
948 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
949 default_gnu_indirect_function=yes
954 tmake_file="t-openbsd"
955 case ${enable_threads} in
961 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
962 default_use_cxa_atexit=yes
965 d_target_objs="${d_target_objs} openbsd-d.o"
966 target_has_targetdm=yes
971 default_use_cxa_atexit=yes
974 case ${enable_threads} in
975 "" | yes | rtems) thread_file='rtems' ;;
976 posix) thread_file='posix' ;;
979 echo 'Unknown thread configuration for RTEMS'
983 tmake_file="${tmake_file} t-rtems"
984 extra_options="${extra_options} rtems.opt"
985 default_use_cxa_atexit=yes
989 extra_options="$extra_options gnu-user.opt"
991 case ${enable_threads} in
992 "" | yes | posix) thread_file='posix' ;;
994 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
1000 # i?86-*-solaris2* needs to insert headers between cpu default and
1001 # Solaris 2 specific ones.
1002 sol2_tm_file_head="elfos.h ${cpu_type}/sysv4.h"
1003 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
1004 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
1006 *-*-solaris2.1[1-9]*)
1007 # __cxa_atexit was introduced in Solaris 11.4.
1008 default_use_cxa_atexit=yes
1012 if test x$gnu_ld = xyes; then
1013 tm_file="usegld.h ${tm_file}"
1015 if test x$gas = xyes; then
1016 tm_file="usegas.h ${tm_file}"
1018 tm_p_file="${tm_p_file} sol2-protos.h"
1019 tmake_file="${tmake_file} t-sol2 t-slibgcc"
1020 c_target_objs="${c_target_objs} sol2-c.o"
1021 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
1022 d_target_objs="${d_target_objs} sol2-d.o"
1023 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
1024 extra_options="${extra_options} sol2.opt"
1025 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
1026 "":yes:* | yes:yes:* )
1030 target_has_targetdm=yes
1033 extra_options="${extra_options} vms/vms.opt"
1034 xmake_file=vms/x-vms
1035 tmake_file="vms/t-vms t-slibgcc"
1037 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.cc"
1038 tm_p_file="${tm_p_file} vms/vms-protos.h"
1039 xm_file="vms/xm-vms.h"
1040 c_target_objs="vms-c.o"
1041 cxx_target_objs="vms-c.o"
1042 fortran_target_objs="vms-f.o"
1043 use_gcc_stdint=provide
1044 tm_file="${tm_file} vms/vms-stdint.h"
1045 if test x$gnu_ld != xyes; then
1046 # Build wrappers for native case.
1047 extra_programs="ld\$(exeext) ar\$(exeext)"
1048 tmake_file="$tmake_file vms/t-vmsnative"
1052 tmake_file=t-vxworks
1055 extra_options="${extra_options} vxworks.opt"
1056 extra_objs="$extra_objs vxworks.o"
1058 c_target_objs="${c_target_objs} vxworks-c.o"
1059 cxx_target_objs="${cxx_target_objs} vxworks-c.o"
1060 extra_headers="${extra_headers} ../vxworks/vxworks-predef.h"
1061 target_has_targetcm="yes"
1063 extra_gcc_objs="vxworks-driver.o"
1065 # This private header exposes a consistent interface for checks on
1066 # the VxWorks version our runtime header files need to perform, based on
1067 # what the system headers adverstise:
1069 extra_headers="${extra_headers} ../vxworks/_vxworks-versions.h"
1071 # Starting from VxWorks 7, the system comes with a Dinkumware
1072 # environment which requires the inclusion of "yvals.h" before other
1073 # system headers. We provide wrapped versions of a few headers to
1074 # accomodate such constraints:
1076 extra_headers="${extra_headers} ../vxworks/_yvals.h"
1077 extra_headers="${extra_headers} ../vxworks/_yvals-wrapper.h"
1079 extra_headers="${extra_headers} ../vxworks/math.h ../vxworks/complex.h"
1080 extra_headers="${extra_headers} ../vxworks/inttypes.h ../vxworks/setjmp.h"
1082 # We provide (a tailored version of) stdint.h
1083 tm_file="${tm_file} vxworks-stdint.h"
1084 use_gcc_stdint=provide
1086 case ${enable_threads} in
1088 "" | yes | vxworks) thread_file='vxworks' ;;
1089 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
1092 # A few common macro definitions conveying general characteristics
1093 # of the configuration at hand. Note that by VxWorks 7, we mean the
1094 # the SR6xx major update or beyond in vendor parlance:
1098 tm_defines="$tm_defines TARGET_VXWORKS7=1"
1103 tm_defines="$tm_defines TARGET_VXWORKS64=1"
1107 # Then a few build configuration controls for VxWorks 7, which
1108 # has specificities on top of which we aim to provide more complete
1113 # VxWorks 7 always has init/fini_array support and it is simpler to
1114 # just leverage this, sticking to what the system toolchain does:
1115 gcc_cv_initfini_array=yes
1119 *-*-elf|arc*-*-elf*)
1120 # Assume that newlib is being used and so __cxa_atexit is provided.
1121 default_use_cxa_atexit=yes
1124 case "${with_newlib}-${with_headers}" in
1125 no-no) use_gcc_stdint=provide ;;
1132 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1133 tm_file="${tm_file} elfos.h newlib-stdint.h"
1134 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1135 tmake_file="${tmake_file} aarch64/t-aarch64"
1141 tm_file="${tm_file} fuchsia.h"
1144 tm_file="${tm_file} aarch64/rtems.h rtems.h"
1149 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1152 aarch64_multilibs="${with_multilib_list}"
1153 if test "$aarch64_multilibs" = "default"; then
1154 aarch64_multilibs="lp64,ilp32"
1156 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1157 for aarch64_multilib in ${aarch64_multilibs}; do
1158 case ${aarch64_multilib} in
1160 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1163 echo "--with-multilib-list=${aarch64_multilib} not supported."
1167 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1169 aarch64*-*-freebsd*)
1170 tm_file="${tm_file} elfos.h ${fbsd_tm_file}"
1171 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1172 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1173 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1176 tm_file="${tm_file} elfos.h ${nbsd_tm_file}"
1177 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1178 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1179 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1182 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h"
1183 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1184 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1185 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1188 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1191 aarch64_multilibs="${with_multilib_list}"
1192 if test "$aarch64_multilibs" = "default"; then
1193 # TODO: turn on ILP32 multilib build after its support is mature.
1194 # aarch64_multilibs="lp64,ilp32"
1195 aarch64_multilibs="lp64"
1197 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1198 for aarch64_multilib in ${aarch64_multilibs}; do
1199 case ${aarch64_multilib} in
1201 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1204 echo "--with-multilib-list=${aarch64_multilib} not supported."
1208 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1210 aarch64*-wrs-vxworks*)
1211 tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
1212 tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
1213 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
1216 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1217 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1218 extra_options="${extra_options} alpha/elf.opt"
1221 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1222 tmake_file="${tmake_file} alpha/t-alpha"
1223 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1227 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1228 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1229 tmake_file="${tmake_file} alpha/t-alpha"
1230 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1231 # default x-alpha is only appropriate for dec-osf.
1234 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1235 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1238 tm_file="arc/arc-arch.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1239 tmake_file="arc/t-multilib arc/t-arc"
1240 extra_gcc_objs="driver-arc.o"
1241 if test "x$with_cpu" != x; then
1242 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1244 if test x${with_endian} = x; then
1246 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1247 *) with_endian=little ;;
1250 case ${with_endian} in
1252 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1254 case ${with_endian} in
1255 big*) tm_file="arc/big.h ${tm_file}"
1259 tm_file="arc/arc-arch.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arc/linux.h ${tm_file}"
1260 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1261 extra_gcc_objs="driver-arc.o"
1262 if test "x$with_cpu" != x; then
1263 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1265 if test x${with_endian} = x; then
1267 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1268 *) with_endian=little ;;
1271 case ${with_endian} in
1273 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1275 case ${with_endian} in
1276 big*) tm_file="arc/big.h ${tm_file}"
1278 # Force .init_array support. The configure script cannot always
1279 # automatically detect that GAS supports it, yet we require it.
1280 gcc_cv_initfini_array=yes
1283 # We only support VxWorks 7 now on ARM, post SR600. Pre SR600
1284 # VxWorks 7 was transitory and major versions prior to 7 were based
1285 # on long deprecated ABI, not supported at all any more regardless
1287 extra_options="${extra_options} arm/vxworks.opt"
1288 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1289 tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1290 tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1291 target_cpu_cname="generic-armv7-a"
1292 need_64bit_hwint=yes
1294 arm*-*-freebsd*) # ARM FreeBSD EABI
1295 tm_file="elfos.h ${fbsd_tm_file} arm/elf.h"
1298 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1301 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1302 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1305 target_cpu_cname="arm1176jzf-s"
1306 if test $fbsd_major -ge 11; then
1307 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1311 target_cpu_cname="generic-armv7-a"
1312 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1315 target_cpu_cname="arm9"
1318 with_tls=${with_tls:-gnu}
1321 target_cpu_cname="strongarm"
1322 tmake_file="${tmake_file} arm/t-arm"
1323 tm_file="elfos.h ${nbsd_tm_file} arm/elf.h"
1324 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1326 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1329 arm*-*-netbsdelf-*eabi*)
1330 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1331 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1334 tm_file="$tm_file arm/netbsd-elf.h"
1335 tmake_file="$tmake_file arm/t-netbsd"
1338 tm_file="${tm_file} arm/aout.h arm/arm.h"
1340 arm*-*-netbsdelf-*eabihf*)
1341 # Hard-float requires at least Arm v5te
1342 target_cpu_cname="arm10e"
1343 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1347 armv6*) target_cpu_cname="arm1176jzf-s";;
1348 armv7*) target_cpu_cname="generic-armv7-a";;
1351 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1352 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"
1353 extra_options="${extra_options} linux-android.opt"
1356 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1359 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1360 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1362 arm*-*-uclinuxfdpiceabi)
1363 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1366 # Define with_float to "hard" if not already defined and
1367 # target name ends with "hf"
1368 case $target:$with_float in
1373 # Generation of floating-point instructions requires at least ARMv5te.
1374 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1375 target_cpu_cname="arm10e"
1377 target_cpu_cname="arm10tdmi"
1379 # Define multilib configuration for arm-linux-androideabi.
1382 tmake_file="$tmake_file arm/t-linux-androideabi"
1385 # The EABI requires the use of __cxa_atexit.
1386 default_use_cxa_atexit=yes
1387 with_tls=${with_tls:-gnu}
1389 arm*-*-uclinux*eabi*) # ARM ucLinux
1390 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1391 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1392 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1393 target_cpu_cname="arm7tdmi"
1394 # The EABI requires the use of __cxa_atexit.
1395 default_use_cxa_atexit=yes
1398 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1399 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1400 tm_file="${tm_file} arm/aout.h arm/arm.h"
1401 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1402 target_cpu_cname="arm7tdmi"
1404 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1407 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1409 default_use_cxa_atexit=yes
1410 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1411 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1412 target_cpu_cname="arm7tdmi"
1415 tm_file="$tm_file newlib-stdint.h"
1416 tmake_file="${tmake_file} arm/t-bpabi"
1420 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1421 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1422 target_cpu_cname="generic-armv7-a"
1425 tm_file="${tm_file} arm/rtems.h rtems.h newlib-stdint.h"
1426 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1429 tm_file="${tm_file} arm/symbian.h"
1430 # We do not include t-bpabi for Symbian OS because the system
1431 # provides its own implementation of the BPABI functions.
1432 tmake_file="${tmake_file} arm/t-symbian"
1433 target_cpu_cname="arm10tdmi"
1436 tm_file="${tm_file} arm/aout.h arm/arm.h"
1439 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h avr/avr-stdint.h"
1440 if test x${with_avrlibc} != xno; then
1441 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1442 tm_defines="${tm_defines} WITH_AVRLIBC"
1444 # Work out avr_double_comparison which is 2 or 3 and is used in
1445 # target hook FLOAT_LIB_COMPARE_RETURNS_BOOL to determine whether
1446 # DFmode comparisons return 3-state or 2-state results.
1447 case y${with_double_comparison} in
1449 avr_double_comparison=3
1452 avr_double_comparison=2
1455 echo "Error: --with-double-comparison= can only be used with: 'tristate', 'bool', 'libf7'" 1>&2
1459 case "y${with_libf7}" in
1461 # avr_double_comparison as set above.
1464 avr_double_comparison=2
1465 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1467 y | yyes | ymath-symbols)
1468 avr_double_comparison=2
1469 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1470 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1471 tm_defines="${tm_defines} WITH_LIBF7_MATH_SYMBOLS"
1474 avr_double_comparison=2
1475 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1476 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1479 echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
1483 tm_defines="${tm_defines} WITH_DOUBLE_COMPARISON=${avr_double_comparison}"
1484 case y${with_double} in
1487 tm_defines="${tm_defines} HAVE_DOUBLE32"
1491 tm_defines="${tm_defines} HAVE_DOUBLE64"
1495 avr_double_multilib=1
1496 tm_defines="${tm_defines} HAVE_DOUBLE32"
1497 tm_defines="${tm_defines} HAVE_DOUBLE64"
1498 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1502 avr_double_multilib=1
1503 tm_defines="${tm_defines} HAVE_DOUBLE32"
1504 tm_defines="${tm_defines} HAVE_DOUBLE64"
1505 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1508 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1512 case y${with_long_double} in
1515 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1519 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1523 avr_long_double_multilib=1
1524 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1525 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1526 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1530 avr_long_double_multilib=1
1531 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1532 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1533 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1536 avr_long_double=${avr_double}
1537 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1538 if test y${avr_double_multilib} = y1; then
1539 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1540 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1542 tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1546 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1550 if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1551 if test y${with_long_double} != ydouble; then
1552 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
1556 if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1557 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
1560 if test y${avr_double}${avr_long_double} = y6432; then
1561 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
1564 tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1565 tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1566 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1568 extra_gcc_objs="driver-avr.o avr-devices.o"
1569 extra_objs="avr-devices.o avr-log.o"
1572 tm_file="${tm_file} elfos.h newlib-stdint.h bfin/elf.h"
1573 tmake_file=bfin/t-bfin-elf
1577 tm_file="${tm_file} elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1578 tmake_file=bfin/t-bfin-uclinux
1581 bfin*-linux-uclibc*)
1582 tm_file="${tm_file} elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/linux.h ./linux-sysroot-suffix.h"
1583 tmake_file="${tmake_file} bfin/t-bfin-linux"
1587 tm_file="${tm_file} elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1588 tmake_file="${tmake_file} bfin/t-rtems"
1591 tm_file="${tm_file} elfos.h newlib-stdint.h bfin/elf.h"
1596 tm_file="elfos.h ${tm_file}"
1597 tmake_file="${tmake_file} bpf/t-bpf"
1599 extra_headers="bpf-helpers.h"
1600 use_gcc_stdint=provide
1601 extra_objs="coreout.o core-builtins.o"
1602 target_gtfiles="$target_gtfiles \$(srcdir)/config/bpf/coreout.cc \$(srcdir)/config/bpf/core-builtins.cc"
1604 cris-*-elf | cris-*-none)
1605 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1606 tmake_file="cris/t-cris cris/t-elfmulti"
1608 extra_options="${extra_options} cris/elf.opt"
1612 if test x${with_endian} != x; then
1613 case ${with_endian} in
1616 echo "with_endian=${with_endian} not supported."
1621 if test x${with_float} != x; then
1622 case ${with_float} in
1623 soft | hard | softfp) ;;
1625 "Unknown floating point type used in --with-float=$with_float"
1630 tm_file="csky/csky.h"
1631 md_file="csky/csky.md"
1632 out_file="csky/csky.cc"
1633 tm_p_file="${tm_p_file} csky/csky-protos.h"
1634 extra_options="${extra_options} csky/csky_tables.opt"
1636 if test x${enable_tpf_debug} = xyes; then
1637 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1642 tm_file="elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1643 tmake_file="csky/t-csky csky/t-csky-elf"
1644 default_use_cxa_atexit=no
1648 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1649 tmake_file="${tmake_file} csky/t-csky"
1651 if test "x${enable_multilib}" = xyes ; then
1652 tm_defines="$tm_defines CSKY_ENABLE_MULTILIB"
1653 tmake_file="${tmake_file} csky/t-csky-linux"
1658 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1659 # Force .init_array support. The configure script cannot always
1660 # automatically detect that GAS supports it, yet we require it.
1661 gcc_cv_initfini_array=yes
1663 csky-*-linux-uclibc*)
1664 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1665 default_use_cxa_atexit=no
1668 echo "Unknown target $target"
1674 echo "Unknown target $target"
1679 epiphany-*-elf | epiphany-*-rtems*)
1680 tm_file="elfos.h ${tm_file}"
1681 tmake_file="${tmake_file} epiphany/t-epiphany"
1684 tm_file="${tm_file} epiphany/rtems.h rtems.h newlib-stdint.h"
1687 tm_file="${tm_file} newlib-stdint.h"
1690 extra_options="${extra_options} fused-madd.opt"
1691 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1692 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1693 extra_headers="epiphany_intrinsics.h"
1696 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1699 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1700 tmake_file=frv/t-frv
1703 tm_file="elfos.h ${tm_file} \
1704 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1705 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1710 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1711 tmake_file="${tmake_file} ft32/t-ft32"
1714 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1715 tmake_file="gcn/t-gcn-hsa"
1716 native_system_header_dir=/include
1717 extra_modes=gcn/gcn-modes.def
1718 extra_objs="${extra_objs} gcn-tree.o"
1719 extra_gcc_objs="driver-gcn.o"
1721 x86_64*-*-linux-gnu )
1722 if test "$ac_cv_search_dlopen" != no; then
1723 extra_programs="${extra_programs} gcn-run\$(exeext)"
1727 if test x$enable_as_accelerator = xyes; then
1728 extra_programs="${extra_programs} mkoffload\$(exeext)"
1729 tm_file="${tm_file} gcn/offload.h"
1731 # Force .init_array support.
1732 gcc_cv_initfini_array=yes
1738 tm_file="elfos.h newlib-stdint.h ${tm_file}"
1739 tmake_file="${tmake_file} moxie/t-moxie"
1744 tm_file="elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1745 tmake_file="${tmake_file} moxie/t-moxie"
1748 tmake_file="${tmake_file} moxie/t-moxie"
1749 tm_file="moxie/moxie.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1754 tm_file="${tm_file} elfos.h moxie/moxiebox.h newlib-stdint.h"
1755 tmake_file="${tmake_file} moxie/t-moxiebox"
1758 tmake_file="h8300/t-h8300"
1759 tm_file="h8300/h8300.h elfos.h newlib-stdint.h h8300/elf.h"
1762 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1763 tm_file="h8300/h8300.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1766 target_cpu_default="MASK_PA_11|MASK_PA_20"
1767 tm_file="pa/pa64-start.h ${tm_file} elfos.h gnu-user.h linux.h \
1768 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1770 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1771 d_target_objs="${d_target_objs} pa-d.o"
1775 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1776 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1777 pa/pa32-regs.h pa/pa32-linux.h"
1778 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1779 d_target_objs="${d_target_objs} pa-d.o"
1782 target_cpu_default="MASK_PA_11"
1783 tm_file="${tm_file} elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1784 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1785 extra_options="${extra_options} openbsd.opt"
1786 tmake_file="pa/t-pa"
1787 d_target_objs="${d_target_objs} pa-d.o"
1792 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1793 tm_file="${tm_file} elfos.h ${nbsd_tm_file} \
1794 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1795 tmake_file="${tmake_file}"
1796 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1797 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1800 target_cpu_default="MASK_PA_11|MASK_PA_20"
1801 if test x$gnu_ld = xyes
1803 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1805 tm_file="pa/pa64-start.h ${tm_file} elfos.h \
1806 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1810 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1811 extra_options="${extra_options} pa/pa-hpux1111.opt"
1814 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1815 extra_options="${extra_options} pa/pa-hpux1131.opt"
1818 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1821 extra_options="${extra_options} pa/pa-hpux.opt \
1822 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1823 tmake_file="pa/t-pa t-slibgcc"
1824 d_target_objs="${d_target_objs} pa-d.o"
1825 case x${enable_threads} in
1833 use_gcc_stdint=provide
1834 tm_file="${tm_file} hpux-stdint.h"
1838 tm_file="${tm_file} hpux-stdint.h"
1842 i[34567]86-*-darwin1[89]* | i[34567]86-*-darwin2*)
1843 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1845 i[34567]86-*-darwin*)
1847 # Baseline choice for a machine that allows m64 support.
1848 with_cpu=${with_cpu:-core2}
1849 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1850 tm_file="${cpu_type}/darwin32-biarch.h ${tm_file} "
1852 x86_64-*-darwin1[89]* | x86_64-*-darwin2*)
1854 tm_defines="${tm_defines} TARGET_64BIT_DEFAULT=(OPTION_MASK_ISA_64BIT|OPTION_MASK_ABI_64)"
1855 tm_defines="${tm_defines} TARGET_BI_ARCH=0"
1856 with_cpu=${with_cpu:-core2}
1857 tmake_file="${tmake_file} t-slibgcc"
1860 with_cpu=${with_cpu:-core2}
1861 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1862 tm_file="${cpu_type}/darwin64-biarch.h ${tm_file} "
1864 i[34567]86-*-elfiamcu)
1865 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/iamcu.h"
1868 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h"
1871 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1874 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"
1877 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1880 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"
1881 tmake_file="i386/t-i386elf t-svr4"
1883 i[34567]86-*-dragonfly*)
1884 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1885 tmake_file="${tmake_file} i386/t-crtstuff"
1887 x86_64-*-dragonfly*)
1888 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h dragonfly.h dragonfly-stdint.h i386/x86-64.h i386/dragonfly.h"
1889 tmake_file="${tmake_file} i386/t-crtstuff"
1891 i[34567]86-*-freebsd*)
1892 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1895 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"
1897 i[34567]86-*-netbsdelf*)
1898 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1899 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1902 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1903 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1905 i[34567]86-*-openbsd*)
1906 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1907 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1908 extra_options="${extra_options} openbsd.opt"
1913 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1914 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1915 extra_options="${extra_options} openbsd.opt"
1919 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1920 # Intel 80386's running GNU/*
1921 # with ELF format using glibc 2
1922 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h gnu-user.h glibc-stdint.h"
1924 i[34567]86-*-linux*)
1925 tm_file="${tm_file} linux.h linux-android.h"
1926 extra_options="${extra_options} linux-android.opt"
1927 if test x$enable_targets = xall; then
1928 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1929 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1930 tmake_file="${tmake_file} i386/t-linux64"
1931 x86_multilibs="${with_multilib_list}"
1932 if test "$x86_multilibs" = "default"; then
1933 x86_multilibs="m64,m32"
1935 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1936 for x86_multilib in ${x86_multilibs}; do
1937 case ${x86_multilib} in
1939 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1942 echo "--with-multilib-list=${x86_with_multilib} not supported."
1946 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1948 if test x$with_cpu = x; then
1949 if test x$with_cpu_64 = x; then
1953 case " $x86_cpus $x86_archs $x86_64_archs " in
1957 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1958 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1964 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1967 i[34567]86-*-kfreebsd*-gnu)
1968 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1970 i[34567]86-*-kopensolaris*-gnu)
1971 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1974 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1978 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-gnu*)
1979 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h gnu-user.h glibc-stdint.h \
1980 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1983 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1984 extra_options="${extra_options} linux-android.opt"
1986 x86_64-*-kfreebsd*-gnu)
1987 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1990 tm_file="${tm_file} gnu.h i386/gnu64.h"
1993 tmake_file="${tmake_file} i386/t-linux64"
1994 x86_multilibs="${with_multilib_list}"
1995 if test "$x86_multilibs" = "default"; then
1998 x86_multilibs="mx32"
2001 x86_multilibs="m64,m32"
2005 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
2006 for x86_multilib in ${x86_multilibs}; do
2007 case ${x86_multilib} in
2009 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
2012 echo "--with-multilib-list=${x86_with_multilib} not supported."
2016 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2018 i[34567]86-pc-msdosdjgpp*)
2019 xm_file=i386/xm-djgpp.h
2020 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
2021 native_system_header_dir=/dev/env/DJDIR/include
2022 extra_options="${extra_options} i386/djgpp.opt"
2027 i[34567]86-*-lynxos*)
2029 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h i386/lynx.h lynx.h"
2030 tmake_file="${tmake_file} t-lynx"
2031 extra_options="${extra_options} lynx.opt"
2036 i[34567]86-*-nto-qnx*)
2037 tm_file="${tm_file} i386/att.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
2038 extra_options="${extra_options} i386/nto.opt"
2042 i[34567]86-*-rtems*)
2043 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h i386/i386elf.h i386/rtemself.h rtems.h newlib-stdint.h"
2044 tmake_file="${tmake_file} i386/t-rtems"
2046 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
2047 # Set default arch_32 to pentium4, tune_32 to generic like the other
2048 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
2049 with_arch_32=${with_arch_32:-pentium4}
2050 with_tune_32=${with_tune_32:-generic}
2051 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
2052 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2053 tmake_file="$tmake_file i386/t-sol2"
2055 if test x$with_cpu = x; then
2056 if test x$with_cpu_64 = x; then
2060 case " $x86_cpus $x86_archs $x86_64_archs " in
2064 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2065 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2071 i[4567]86-wrs-vxworks*|x86_64-wrs-vxworks7*)
2072 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
2076 tm_file="${tm_file} i386/x86-64.h"
2079 tm_file="${tm_file} vx-common.h"
2082 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2083 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2086 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2087 tmake_file="${tmake_file} i386/t-vxworks"
2091 i[34567]86-*-cygwin*)
2092 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/cygming.h i386/cygwin.h i386/cygwin-stdint.h"
2093 xm_file=i386/xm-cygwin.h
2094 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2095 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc"
2096 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2097 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2098 c_target_objs="${c_target_objs} msformat-c.o"
2099 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2100 d_target_objs="${d_target_objs} cygwin-d.o"
2101 target_has_targetdm="yes"
2102 if test x$enable_threads = xyes; then
2105 default_use_cxa_atexit=yes
2110 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"
2111 xm_file=i386/xm-cygwin.h
2112 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2113 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc"
2114 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2115 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2116 c_target_objs="${c_target_objs} msformat-c.o"
2117 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2118 d_target_objs="${d_target_objs} cygwin-d.o"
2119 target_has_targetdm="yes"
2120 if test x$enable_threads = xyes; then
2123 default_use_cxa_atexit=yes
2125 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2127 i[34567]86-*-mingw* | x86_64-*-mingw*)
2128 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/cygming.h"
2129 xm_file=i386/xm-mingw32.h
2130 c_target_objs="${c_target_objs} winnt-c.o"
2131 cxx_target_objs="${cxx_target_objs} winnt-c.o"
2132 d_target_objs="${d_target_objs} winnt-d.o"
2133 target_has_targetcm="yes"
2134 target_has_targetdm="yes"
2136 x86_64-*-* | *-w64-*)
2142 if test x$enable_threads = xposix ; then
2143 tm_file="${tm_file} i386/mingw-pthread.h"
2145 if test x$enable_threads = xmcf ; then
2146 tm_file="${tm_file} i386/mingw-mcfgthread.h"
2148 tm_file="${tm_file} i386/mingw32.h"
2149 # This makes the logic if mingw's or the w64 feature set has to be used
2152 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2153 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2154 tm_file="${tm_file} i386/mingw-w64.h"
2155 if test x$enable_targets = xall; then
2156 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2157 if test x$with_cpu = x; then
2158 if test x$with_cpu_64 = x; then
2162 case " $x86_cpus $x86_archs $x86_64_archs " in
2166 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2167 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2177 tm_file="${tm_file} i386/mingw-stdint.h"
2178 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2181 tmake_file="${tmake_file} i386/t-mingw-w64"
2184 tmake_file="${tmake_file} i386/t-mingw-w32"
2187 native_system_header_dir=/mingw/include
2188 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc"
2189 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2192 extra_options="${extra_options} i386/mingw-w64.opt"
2197 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2198 c_target_objs="${c_target_objs} msformat-c.o"
2199 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2202 default_use_cxa_atexit=yes
2204 case ${enable_threads} in
2214 tm_file="${tm_file} i386/crtdll.h"
2216 *mingw32msv* | *mingw*)
2221 tmake_file="${tmake_file} i386/t-x86_64-elf"
2222 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2225 tm_file="${tm_file} elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2226 tmake_file="ia64/t-ia64"
2227 target_cpu_default="0"
2228 if test x$gas = xyes
2230 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2232 if test x$gnu_ld = xyes
2234 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2238 tm_file="${tm_file} elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2239 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2240 tmake_file="${tmake_file} ia64/t-ia64"
2243 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2244 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2245 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2248 tm_file="${tm_file} elfos.h ia64/sysv4.h ia64/hpux.h"
2249 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2250 target_cpu_default="MASK_GNU_AS"
2251 case x$enable_threads in
2257 c_target_objs="ia64-c.o"
2258 cxx_target_objs="ia64-c.o"
2259 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2261 tm_file="${tm_file} hpux-stdint.h"
2264 tm_file="${tm_file} ia64/hpux-unix2003.h"
2269 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2270 tmake_file="${tmake_file} ia64/t-ia64"
2271 target_cpu_default="0"
2272 if test x$gas = xyes
2274 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2276 extra_options="${extra_options} ia64/vms.opt"
2279 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2280 out_file=iq2000/iq2000.cc
2281 md_file=iq2000/iq2000.md
2284 tm_file="elfos.h ${tm_file} newlib-stdint.h"
2285 tmake_file="${tmake_file} lm32/t-lm32"
2288 tm_file="elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2289 tmake_file="${tmake_file} lm32/t-lm32"
2290 tmake_file="${tmake_file} lm32/t-rtems"
2293 tm_file="elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h lm32/uclinux-elf.h"
2294 tmake_file="${tmake_file} lm32/t-lm32"
2297 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2300 tm_file="elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2302 m68k-*-elf* | fido-*-elf*)
2305 # Check that $with_cpu makes sense.
2310 echo "Cannot accept --with-cpu=$with_cpu"
2317 default_m68k_cpu=68020
2321 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h elfos.h newlib-stdint.h m68k/m68kemb.h m68k/m68020-elf.h"
2322 tm_defines="${tm_defines} MOTOROLA=1"
2323 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2324 # Add multilibs for targets other than fido.
2329 tmake_file="$tmake_file m68k/t-mlibs"
2334 default_m68k_cpu=68020
2336 tm_file="${tm_file} elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2337 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2338 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2340 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2341 # with uClibc, using the new GNU/Linux-style
2343 default_m68k_cpu=68020
2345 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"
2346 extra_options="${extra_options} m68k/uclinux.opt"
2347 tm_defines="${tm_defines} MOTOROLA=1"
2348 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2350 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2351 # with ELF format using glibc 2
2352 # aka the GNU/Linux C library 6.
2353 default_m68k_cpu=68020
2355 with_arch=${with_arch:-m68k}
2356 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2357 extra_options="${extra_options} m68k/ieee.opt"
2358 tm_defines="${tm_defines} MOTOROLA=1"
2359 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2362 default_m68k_cpu=68020
2364 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2365 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"
2366 tm_defines="${tm_defines} MOTOROLA=1"
2369 tm_file="elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2370 tmake_file=mcore/t-mcore
2376 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2379 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2382 tm_file="${tm_file} gnu-user.h linux.h microblaze/linux.h"
2383 tm_file="${tm_file} glibc-stdint.h"
2384 c_target_objs="${c_target_objs} microblaze-c.o"
2385 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2386 tmake_file="${tmake_file} microblaze/t-microblaze"
2387 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2389 microblaze*-*-rtems*)
2392 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2395 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2398 tm_file="${tm_file}"
2399 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2400 c_target_objs="${c_target_objs} microblaze-c.o"
2401 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2402 tmake_file="${tmake_file} microblaze/t-microblaze"
2403 tmake_file="${tmake_file} microblaze/t-rtems"
2408 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2411 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2414 tm_file="${tm_file} newlib-stdint.h"
2415 c_target_objs="${c_target_objs} microblaze-c.o"
2416 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2417 tmake_file="${tmake_file} microblaze/t-microblaze"
2420 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2421 case "x${enable_multilib}" in
2423 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2424 *) echo "Unknown value for enable_multilib"; exit 1
2426 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2427 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
2431 riscv32be-*|riscv64be-*)
2432 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2435 # Force .init_array support. The configure script cannot always
2436 # automatically detect that GAS supports it, yet we require it.
2437 gcc_cv_initfini_array=yes
2439 riscv*-*-elf* | riscv*-*-rtems*)
2440 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2443 tm_file="${tm_file} riscv/rtems.h rtems.h"
2444 tmake_file="${tmake_file} riscv/t-rtems"
2447 if test "x${with_multilib_generator}" = xdefault; then
2448 case "x${enable_multilib}" in
2450 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2451 *) echo "Unknown value for enable_multilib"; exit 1
2455 tmake_file="${tmake_file} riscv/t-riscv"
2459 riscv32be-*|riscv64be-*)
2460 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2463 # Force .init_array support. The configure script cannot always
2464 # automatically detect that GAS supports it, yet we require it.
2465 gcc_cv_initfini_array=yes
2468 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2469 tmake_file="${tmake_file} riscv/t-riscv"
2473 riscv32be-*|riscv64be-*)
2474 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2477 # Force .init_array support. The configure script cannot always
2478 # automatically detect that GAS supports it, yet we require it.
2479 gcc_cv_initfini_array=yes
2482 loongarch*-*-linux*)
2483 tm_file="elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file}"
2484 tm_file="${tm_file} loongarch/gnu-user.h loongarch/linux.h"
2485 extra_options="${extra_options} linux-android.opt"
2486 tmake_file="${tmake_file} loongarch/t-linux"
2490 # Force .init_array support. The configure script cannot always
2491 # automatically detect that GAS supports it, yet we require it.
2492 gcc_cv_initfini_array=yes
2496 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2497 tm_file="${tm_file} loongarch/elf.h loongarch/linux.h"
2498 tmake_file="${tmake_file} loongarch/t-linux"
2502 # For .init_array support. The configure script cannot always
2503 # automatically detect that GAS supports it, yet we require it.
2504 gcc_cv_initfini_array=yes
2507 mips*-*-netbsd*) # NetBSD/mips, either endian.
2508 target_cpu_default="MASK_ABICALLS"
2509 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2510 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2513 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"
2514 extra_options="${extra_options} linux-android.opt"
2515 tmake_file="${tmake_file} mips/t-img-linux"
2516 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2517 with_arch_32="mips32r6"
2518 with_arch_64="mips64r6"
2523 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"
2524 extra_options="${extra_options} linux-android.opt"
2525 tmake_file="${tmake_file} mips/t-mti-linux"
2526 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2527 with_arch_32="mips32r2"
2528 with_arch_64="mips64r2"
2532 mips*-*-linux*) # Linux MIPS, either endian.
2533 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"
2534 extra_options="${extra_options} linux-android.opt"
2537 default_mips_arch=mips32r6
2540 default_mips_arch=mips32r2
2543 default_mips_arch=mips32
2545 mips64el-st-linux-gnu)
2546 default_mips_abi=n32
2547 tm_file="${tm_file} mips/st.h"
2548 tmake_file="${tmake_file} mips/t-st"
2549 enable_mips_multilibs="yes"
2551 mips64octeon*-*-linux*)
2552 default_mips_abi=n32
2553 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2554 target_cpu_default=MASK_SOFT_FLOAT_ABI
2555 enable_mips_multilibs="yes"
2557 mipsisa64r6*-*-linux-gnuabi64)
2559 default_mips_arch=mips64r6
2560 enable_mips_multilibs="yes"
2562 mipsisa64r6*-*-linux*)
2563 default_mips_abi=n32
2564 default_mips_arch=mips64r6
2565 enable_mips_multilibs="yes"
2567 mipsisa64r2*-*-linux-gnuabi64)
2569 default_mips_arch=mips64r2
2570 enable_mips_multilibs="yes"
2572 mipsisa64r2*-*-linux*)
2573 default_mips_abi=n32
2574 default_mips_arch=mips64r2
2575 enable_mips_multilibs="yes"
2577 mips64*-*-linux-gnuabi64 | mipsisa64*-*-linux-gnuabi64)
2579 enable_mips_multilibs="yes"
2581 mips64*-*-linux* | mipsisa64*-*-linux*)
2582 default_mips_abi=n32
2583 enable_mips_multilibs="yes"
2586 if test x$enable_targets = xall; then
2587 enable_mips_multilibs="yes"
2589 if test x$enable_mips_multilibs = xyes; then
2590 tmake_file="${tmake_file} mips/t-linux64"
2594 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2595 tmake_file="mips/t-mti-elf"
2596 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2597 with_arch_32="mips32r2"
2598 with_arch_64="mips64r2"
2601 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2602 tmake_file="mips/t-img-elf"
2603 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2604 with_arch_32="mips32r6"
2605 with_arch_64="mips64r6"
2608 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2609 tmake_file="mips/t-sde"
2610 extra_options="${extra_options} mips/sde.opt"
2611 case "${with_newlib}" in
2613 # newlib / libgloss.
2616 # MIPS toolkit libraries.
2617 tm_file="$tm_file mips/sdemtk.h"
2618 tmake_file="$tmake_file mips/t-sdemtk"
2619 case ${enable_threads} in
2621 thread_file='mipssde'
2628 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2631 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2634 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32 MIPS_ABI_DEFAULT=ABI_32"
2637 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6 MIPS_ABI_DEFAULT=ABI_N32"
2640 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2 MIPS_ABI_DEFAULT=ABI_N32"
2643 tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_ABI_DEFAULT=ABI_N32"
2647 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2648 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2649 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2650 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2651 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2652 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2653 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2654 tmake_file="mips/t-isa3264"
2657 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6"
2660 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2"
2663 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32"
2666 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6"
2669 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2"
2672 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64"
2676 mipsisa32*-*-elfoabi*)
2677 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2678 tm_file="${tm_file} mips/elfoabi.h"
2680 mipsisa64*-*-elfoabi*)
2681 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2682 tm_file="${tm_file} mips/elfoabi.h"
2685 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2689 mipsisa64sr71k-*-elf*)
2690 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2691 tmake_file=mips/t-sr71k
2692 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2694 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2695 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2696 tmake_file="mips/t-elf mips/t-sb1"
2697 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2699 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2700 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2701 tmake_file="mips/t-elf"
2703 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2704 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2705 tmake_file="mips/t-elf"
2706 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_N32"
2708 mips64-*-elf* | mips64el-*-elf*)
2709 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2710 tmake_file="mips/t-elf"
2711 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2713 mips64vr-*-elf* | mips64vrel-*-elf*)
2714 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2715 tmake_file=mips/t-vr
2716 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2718 mips64orion-*-elf* | mips64orionel-*-elf*)
2719 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2720 tmake_file="mips/t-elf"
2721 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2724 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2725 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2728 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2729 tmake_file="${tmake_file} mips/t-vxworks"
2731 mipstx39-*-elf* | mipstx39el-*-elf*)
2732 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2733 tmake_file="mips/t-r3900"
2735 mmix-knuth-mmixware)
2736 tm_file="${tm_file} newlib-stdint.h"
2740 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2745 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2746 c_target_objs="msp430-c.o"
2747 cxx_target_objs="msp430-c.o"
2748 tmake_file="${tmake_file} msp430/t-msp430"
2749 extra_objs="${extra_objs} msp430-devices.o"
2750 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2751 # Enable .init_array unless it has been explicitly disabled.
2752 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2753 # code since mid-2019 expects it.
2754 if test x${disable_initfini_array} != xyes; then
2755 gcc_cv_initfini_array=yes
2759 # __cxa_atexit increases code size, and we don't need to support
2760 # dynamic shared objects on MSP430, so regular Newlib atexit is a
2761 # fine replacement as it also supports registration of more than 32
2763 default_use_cxa_atexit=no
2764 # This target does not match the generic *-*-elf case above which
2765 # sets use_gcc_stdint=wrap, so explicitly set it here.
2771 target_cpu_default="0"
2772 tm_defines="${tm_defines}"
2777 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2778 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2783 tm_file="elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2784 tmake_file="nds32/t-nds32 nds32/t-elf"
2787 tm_file="elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2788 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2789 gcc_cv_initfini_array=yes
2793 # Handle --enable-default-relax setting.
2794 if test x${enable_default_relax} = xyes; then
2795 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2797 # Handle --with-ext-dsp
2798 if test x${with_ext_dsp} = xyes; then
2799 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2803 tm_file="elfos.h ${tm_file}"
2804 tmake_file="${tmake_file} nios2/t-nios2"
2807 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2810 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2811 extra_options="${extra_options} nios2/elf.opt"
2814 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2815 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2820 tm_file="${tm_file} newlib-stdint.h"
2822 tmake_file="nvptx/t-nvptx"
2823 if test x$enable_as_accelerator = xyes; then
2824 extra_programs="${extra_programs} mkoffload\$(exeext)"
2825 tm_file="${tm_file} nvptx/offload.h"
2829 tm_file="elfos.h ${tm_file}"
2830 tmake_file="${tmake_file} or1k/t-or1k"
2831 # Force .init_array support. The configure script cannot always
2832 # automatically detect that GAS supports it, yet we require it.
2833 gcc_cv_initfini_array=yes
2835 # Handle --with-multilib-list=...
2836 or1k_multilibs="${with_multilib_list}"
2837 if test "$or1k_multilibs" = "default"; then
2838 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2840 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2841 for or1k_multilib in ${or1k_multilibs}; do
2842 case ${or1k_multilib} in
2843 mcmov | msext | msfimm | \
2845 mhard-float | mdouble-float | munordered-float | msoft-float | \
2846 mhard-div | mhard-mul | \
2847 msoft-div | msoft-mul )
2848 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2851 echo "--with-multilib-list=${with_multilib_list} not supported."
2855 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2859 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2860 tm_file="${tm_file} or1k/linux.h"
2863 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2864 extra_options="${extra_options} or1k/elf.opt"
2867 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2868 tmake_file="${tmake_file} or1k/t-rtems"
2873 tm_file="${tm_file} newlib-stdint.h"
2876 # port not yet contributed
2877 #powerpc-*-openbsd*)
2878 # tmake_file="${tmake_file} rs6000/t-fprules"
2882 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2884 *-darwin1[0-9]* | *-darwin9*)
2885 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2886 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2889 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2890 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2893 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2896 # Earlier - ingle arch, with 32b only
2897 # OS X 10.0, the first edition is Darwin4
2900 tmake_file="${tmake_file} t-slibgcc"
2902 powerpc64-*-darwin*)
2903 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2904 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2905 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2907 powerpc*-*-freebsd*)
2908 tm_file="${tm_file} elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2909 extra_options="${extra_options} rs6000/sysv4.opt"
2910 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2913 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2917 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2918 tmake_file="${tmake_file} rs6000/t-freebsd64"
2919 extra_options="${extra_options} rs6000/linux64.opt"
2920 if test $fbsd_major -ge 13; then
2921 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2925 if test $fbsd_major -ge 13; then
2926 tm_file="rs6000/secureplt.h ${tm_file}"
2928 tm_file="${tm_file} rs6000/freebsd.h"
2933 tm_file="${tm_file} elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2934 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2935 tmake_file="${tmake_file} rs6000/t-netbsd"
2936 extra_options="${extra_options} rs6000/sysv4.opt"
2938 powerpc-*-eabisimaltivec*)
2939 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"
2940 extra_options="${extra_options} rs6000/sysv4.opt"
2941 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2945 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"
2946 extra_options="${extra_options} rs6000/sysv4.opt"
2947 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2951 tm_file="${tm_file} elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2952 extra_options="${extra_options} rs6000/sysv4.opt"
2953 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2955 powerpc-*-eabialtivec*)
2956 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
2957 extra_options="${extra_options} rs6000/sysv4.opt"
2958 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2962 tm_file="${tm_file} elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h"
2963 extra_options="${extra_options} rs6000/sysv4.opt"
2964 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2968 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"
2969 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2970 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2973 tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2974 extra_options="${extra_options} rs6000/sysv4.opt"
2975 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2976 extra_objs="$extra_objs rs6000-linux.o"
2979 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2981 case ${target}:${with_cpu} in
2982 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2984 maybe_biarch=${cpu_is_64bit}
2985 case ${enable_targets} in
2986 *powerpc64*) maybe_biarch=yes ;;
2987 all) maybe_biarch=yes ;;
2989 case ${target}:${enable_targets}:${maybe_biarch} in
2990 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2991 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2992 | powerpcle-*:*powerpc64le*:yes)
2993 if test x$cpu_is_64bit = xyes; then
2994 tm_file="${tm_file} rs6000/default64.h"
2996 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2997 tmake_file="$tmake_file rs6000/t-linux64"
3000 tmake_file="$tmake_file rs6000/t-linux64le"
3001 case ${enable_targets} in
3002 all | *powerpc64-* | *powerpc-*)
3003 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
3006 case ${enable_targets} in
3007 all | *powerpc64le-* | *powerpcle-*)
3008 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
3011 extra_options="${extra_options} rs6000/linux64.opt"
3014 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
3015 extra_options="${extra_options} rs6000/linux64.opt"
3016 tmake_file="${tmake_file} rs6000/t-linux"
3019 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
3020 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
3024 powerpc*-*-linux*ppc476*)
3025 tm_file="${tm_file} rs6000/476.h"
3026 extra_options="${extra_options} rs6000/476.opt" ;;
3027 powerpc*-*-linux*altivec*)
3028 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
3032 enable_secureplt=yes ;;
3034 if test x${enable_secureplt} = xyes; then
3035 tm_file="rs6000/secureplt.h ${tm_file}"
3038 powerpc*-wrs-vxworks7r*)
3040 # Wind River 7 post SR0600 is mostly like Linux so we setup
3041 # our config in a very similar fashion and adjust to a few
3044 # The system compiler is configured with secureplt by default.
3045 tm_file="${tm_file} rs6000/secureplt.h"
3047 tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h"
3048 tm_file="${tm_file} rs6000/sysv4.h rs6000/biarch64.h rs6000/default64.h rs6000/linux64.h"
3049 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3051 extra_options="${extra_options} rs6000/sysv4.opt linux.opt rs6000/linux64.opt"
3053 tmake_file="${tmake_file} t-linux rs6000/t-linux64 rs6000/t-fprules rs6000/t-ppccomm"
3054 tmake_file="${tmake_file} rs6000/t-vxworks"
3056 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
3057 extra_objs="$extra_objs linux.o rs6000-linux.o"
3059 powerpc-wrs-vxworks*)
3060 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
3061 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
3062 extra_options="${extra_options} rs6000/sysv4.opt vxworks-smp.opt"
3063 extra_headers="${extra_headers} ppc-asm.h"
3066 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
3067 tmake_file="${tmake_file} rs6000/t-vxworksmils"
3070 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
3071 tmake_file="${tmake_file} rs6000/t-vxworksae"
3074 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3080 tm_file="${tm_file} elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3081 tmake_file="t-lynx rs6000/t-lynx"
3082 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3088 tm_file="${tm_file} elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
3089 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3090 extra_options="${extra_options} rs6000/sysv4.opt"
3092 powerpcle-*-eabisim*)
3093 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"
3094 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3095 extra_options="${extra_options} rs6000/sysv4.opt"
3099 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"
3100 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3101 extra_options="${extra_options} rs6000/sysv4.opt"
3105 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3106 tmake_file="${tmake_file} pru/t-pru"
3107 extra_objs="pru-pragma.o pru-passes.o"
3110 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3111 tmake_file="rs6000/t-aix52 t-slibgcc"
3112 if test x$cpu_is_64bit = xyes; then
3113 tm_file="${tm_file} rs6000/biarch64.h"
3114 tmake_file="rs6000/t-aix64 t-slibgcc"
3116 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3117 extra_options="${extra_options} rs6000/aix64.opt"
3121 default_use_cxa_atexit=yes
3123 rs6000-ibm-aix7.2.* | powerpc-ibm-aix7.2.*)
3124 tmake_file="rs6000/t-aix52 t-slibgcc"
3125 if test x$cpu_is_64bit = xyes; then
3126 tm_file="${tm_file} rs6000/biarch64.h"
3127 tmake_file="rs6000/t-aix64 t-slibgcc"
3129 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3130 extra_options="${extra_options} rs6000/aix64.opt"
3134 default_use_cxa_atexit=yes
3136 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3137 tmake_file="rs6000/t-aix52 t-slibgcc"
3138 if test x$cpu_is_64bit = xyes; then
3139 tm_file="${tm_file} rs6000/biarch64.h"
3140 tmake_file="rs6000/t-aix64 t-slibgcc"
3142 tm_file="${tm_file} rs6000/aix.h rs6000/aix73.h rs6000/xcoff.h rs6000/aix-stdint.h"
3143 extra_options="${extra_options} rs6000/aix64.opt"
3147 default_use_cxa_atexit=yes
3150 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3151 target_has_targetm_common=no
3152 c_target_objs="rl78-c.o"
3153 cxx_target_objs="rl78-c.o"
3154 tmake_file="${tmake_file} rl78/t-rl78"
3157 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3158 tmake_file="${tmake_file} rx/t-rx"
3159 extra_options="${extra_options} rx/elf.opt"
3162 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3163 tmake_file="${tmake_file} rx/t-linux"
3166 tm_file="s390/s390.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3167 c_target_objs="${c_target_objs} s390-c.o"
3168 cxx_target_objs="${cxx_target_objs} s390-c.o"
3169 if test x$enable_targets = xall; then
3170 tmake_file="${tmake_file} s390/t-linux64"
3172 tmake_file="${tmake_file} s390/t-s390"
3175 tm_file="s390/s390x.h s390/s390.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3176 tm_p_file="linux-protos.h s390/s390-protos.h"
3177 c_target_objs="${c_target_objs} s390-c.o"
3178 cxx_target_objs="${cxx_target_objs} s390-c.o"
3179 md_file=s390/s390.md
3180 extra_modes=s390/s390-modes.def
3181 out_file=s390/s390.cc
3182 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3185 tm_file="s390/s390x.h s390/s390.h elfos.h glibc-stdint.h s390/tpf.h"
3186 tm_p_file=s390/s390-protos.h
3187 c_target_objs="${c_target_objs} s390-c.o"
3188 cxx_target_objs="${cxx_target_objs} s390-c.o"
3189 md_file=s390/s390.md
3190 extra_modes=s390/s390-modes.def
3191 out_file=s390/s390.cc
3193 extra_options="${extra_options} s390/tpf.opt"
3194 tmake_file="${tmake_file} s390/t-s390"
3196 sh-*-elf* | sh[12346l]*-*-elf* | \
3197 sh-*-linux* | sh[2346lbe]*-*-linux* | \
3198 sh-*-netbsdelf* | shl*-*-netbsdelf*)
3199 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3200 if test x${with_endian} = x; then
3202 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3203 shbe-*-* | sheb-*-*) with_endian=big,little ;;
3204 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
3205 shl* | sh*-*-linux* | \
3206 sh-superh-elf) with_endian=little,big ;;
3207 sh[1234]*-*-*) with_endian=big ;;
3208 *) with_endian=big,little ;;
3211 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3212 # First word : the default endian.
3213 # Second word: the secondary endian (optional).
3214 case ${with_endian} in
3215 big) TM_ENDIAN_CONFIG=mb ;;
3216 little) TM_ENDIAN_CONFIG=ml ;;
3217 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
3218 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
3219 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
3221 case ${with_endian} in
3222 little*) tm_file="sh/little.h ${tm_file}" ;;
3224 tm_file="${tm_file} elfos.h sh/elf.h"
3226 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
3227 if test x$enable_fdpic = xyes; then
3228 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3230 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3232 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3233 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3236 sh*-superh-elf) if test x$with_libgloss != xno; then
3238 tm_file="${tm_file} sh/newlib.h"
3240 tm_file="${tm_file} sh/embed-elf.h"
3241 tm_file="${tm_file} sh/superh.h"
3242 extra_options="${extra_options} sh/superh.opt" ;;
3243 *) if test x$with_newlib = xyes \
3244 && test x$with_libgloss = xyes; then
3245 tm_file="${tm_file} sh/newlib.h"
3247 tm_file="${tm_file} sh/embed-elf.h" ;;
3253 tm_file="${tm_file} newlib-stdint.h"
3256 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3257 case `echo ${target} | sed 's/e[lb]-/-/'` in
3258 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
3259 sh4a_single*) sh_cpu_target=sh4a-single ;;
3260 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
3261 sh4al) sh_cpu_target=sh4al ;;
3262 sh4a*) sh_cpu_target=sh4a ;;
3263 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3264 sh4_single*) sh_cpu_target=sh4-single ;;
3265 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3266 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3267 sh3e*) sh_cpu_target=sh3e ;;
3268 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3269 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3270 sh2a_single*) sh_cpu_target=sh2a-single ;;
3271 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3272 sh2a*) sh_cpu_target=sh2a ;;
3273 sh2e*) sh_cpu_target=sh2e ;;
3274 sh2*) sh_cpu_target=sh2 ;;
3275 *) sh_cpu_target=sh1 ;;
3277 # did the user say --without-fp ?
3278 if test x$with_fp = xno; then
3279 case ${sh_cpu_target} in
3281 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3282 sh4*) sh_cpu_target=sh4-nofpu ;;
3283 sh3*) sh_cpu_target=sh3 ;;
3284 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3285 sh2*) sh_cpu_target=sh2 ;;
3286 *) echo --without-fp not available for $target: ignored
3288 tm_defines="$tm_defines STRICT_NOFPU=1"
3290 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3291 case $sh_cpu_default in
3292 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3293 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3294 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3295 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3296 "") sh_cpu_default=${sh_cpu_target} ;;
3297 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3299 sh_multilibs=${with_multilib_list}
3300 if test "$sh_multilibs" = "default" ; then
3302 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3303 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3304 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3305 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3306 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3308 if test x$with_fp = xno; then
3309 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`"
3312 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3313 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3314 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3315 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3316 for sh_multilib in ${sh_multilibs}; do
3317 case ${sh_multilib} in
3318 m1 | m2 | m2e | m3 | m3e | \
3319 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3320 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3321 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3322 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3323 # It is passed to MULTIILIB_OPTIONS verbatim.
3324 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3325 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3327 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3328 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3329 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3331 echo "with_multilib_list=${sh_multilib} not supported."
3336 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3337 if test x${enable_incomplete_targets} = xyes ; then
3338 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3340 tm_file="$tm_file ./sysroot-suffix.h"
3341 tmake_file="$tmake_file t-sysroot-suffix"
3344 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3345 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3348 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3349 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3352 tm_file="${tm_file} elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3355 tmake_file="sparc/t-sparc sparc/t-leon"
3358 tmake_file="sparc/t-sparc sparc/t-leon3"
3361 tmake_file="sparc/t-sparc sparc/t-elf"
3366 tm_file="${tm_file} elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3367 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3370 tm_file="${tm_file} elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3371 extra_options="${extra_options} sparc/long-double-switch.opt"
3374 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3377 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3380 tmake_file="${tmake_file} sparc/t-sparc"
3383 if test x$enable_targets = xall; then
3384 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3385 tmake_file="${tmake_file} sparc/t-linux64"
3387 tm_file="${tm_file} sparc/linux.h"
3388 tmake_file="${tmake_file} sparc/t-linux"
3392 tm_file="${tm_file} elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3393 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3394 extra_options="${extra_options} sparc/long-double-switch.opt"
3395 tmake_file="${tmake_file} sparc/t-sparc"
3398 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3400 sparc64-*-* | sparcv9-*-*)
3401 tm_file="sparc/default64.h ${tm_file}"
3404 test x$with_cpu != x || with_cpu=v9
3407 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3410 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3411 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3414 tm_file="${tm_file} elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3415 extra_options="${extra_options}"
3416 tmake_file="${tmake_file} sparc/t-sparc"
3419 tm_file="${tm_file} elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3420 extra_options="${extra_options}"
3421 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3424 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"
3425 extra_options="${extra_options} sparc/long-double-switch.opt"
3426 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3428 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3429 tm_file="${tm_file} ${fbsd_tm_file} elfos.h sparc/sysv4.h sparc/freebsd.h"
3430 extra_options="${extra_options} sparc/long-double-switch.opt"
3431 case "x$with_cpu" in
3433 x) with_cpu=ultrasparc ;;
3434 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3436 tmake_file="${tmake_file} sparc/t-sparc"
3439 tm_file="sparc/biarch64.h ${tm_file}"
3440 tm_file="${tm_file} elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3441 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3442 extra_options="${extra_options} sparc/long-double-switch.opt"
3443 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3446 tm_file="sparc/openbsd1-64.h ${tm_file} elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3447 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3448 extra_options="${extra_options} openbsd.opt"
3449 extra_options="${extra_options}"
3452 tmake_file="${tmake_file} sparc/t-sparc"
3455 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3456 tm_file="${tm_file} tm-dwarf2.h newlib-stdint.h"
3457 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3461 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3462 tm_file="${tm_file} tm-dwarf2.h glibc-stdint.h"
3463 tm_file="${tm_file} ./sysroot-suffix.h"
3464 tmake_file="t-sysroot-suffix t-slibgcc"
3465 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3469 target_cpu_default="TARGET_CPU_generic"
3470 tm_file="elfos.h v850/v850.h"
3471 tm_file="${tm_file} v850/rtems.h rtems.h newlib-stdint.h"
3472 tmake_file="${tmake_file} v850/t-v850"
3473 tmake_file="${tmake_file} v850/t-rtems"
3475 c_target_objs="v850-c.o"
3476 cxx_target_objs="v850-c.o"
3481 target_cpu_default="TARGET_CPU_v850e3v5"
3484 target_cpu_default="TARGET_CPU_v850e2v3"
3487 target_cpu_default="TARGET_CPU_v850e2"
3489 v850e1-*-* | v850es-*-*)
3490 target_cpu_default="TARGET_CPU_v850e1"
3493 target_cpu_default="TARGET_CPU_v850e"
3496 target_cpu_default="TARGET_CPU_generic"
3499 tm_file="elfos.h newlib-stdint.h v850/v850.h"
3501 c_target_objs="v850-c.o"
3502 cxx_target_objs="v850-c.o"
3506 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h vax/elf.h vax/linux.h"
3507 extra_options="${extra_options} vax/elf.opt"
3510 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3511 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3512 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3515 tm_file="elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3516 tmake_file="visium/t-visium visium/t-crtstuff"
3519 # For historical reasons, the target files omit the 'x'.
3520 tm_file="elfos.h newlib-stdint.h stormy16/stormy16.h"
3521 tm_p_file=stormy16/stormy16-protos.h
3522 md_file=stormy16/stormy16.md
3523 out_file=stormy16/stormy16.cc
3524 extra_options=stormy16/stormy16.opt
3525 tmake_file="stormy16/t-stormy16"
3528 tm_file="${tm_file} elfos.h newlib-stdint.h xtensa/elf.h"
3529 extra_options="${extra_options} xtensa/elf.opt"
3532 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3533 tmake_file="${tmake_file} xtensa/t-xtensa"
3536 tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3537 tmake_file="${tmake_file} xtensa/t-xtensa"
3538 extra_options="${extra_options} xtensa/uclinux.opt"
3541 tm_file="mn10300/mn10300.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3546 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3547 c_target_objs="m32c-pragma.o"
3548 cxx_target_objs="m32c-pragma.o"
3551 echo "*** Configuration ${target} not supported" 1>&2
3557 i[34567]86-*-linux* | x86_64-*-linux*)
3558 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3560 i[34567]86-*-* | x86_64-*-*)
3561 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3563 powerpc*-*-* | rs6000-*-*)
3564 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3570 tmake_file="${tmake_file} t-musl"
3573 tmake_file="${tmake_file} t-uclibc"
3577 # Assume the existence of indirect function support and allow the use of the
3578 # resolver attribute.
3580 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3582 *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
3584 *-*-linux* | *-*-gnu*)
3586 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-* | loongarch*-*)
3587 default_gnu_indirect_function=yes
3593 if [ "$target_has_targetcm" = "no" ]; then
3594 c_target_objs="$c_target_objs default-c.o"
3595 cxx_target_objs="$cxx_target_objs default-c.o"
3598 if [ "$common_out_file" = "" ]; then
3599 if [ "$target_has_targetm_common" = "yes" ]; then
3600 common_out_file="$cpu_type/$cpu_type-common.cc"
3602 common_out_file="default-common.cc"
3606 if [ "$target_has_targetdm" = "no" ]; then
3607 d_target_objs="$d_target_objs default-d.o"
3610 # Support for --with-cpu and related options (and a few unrelated options,
3614 echo "--with-cpu must be passed a value" 1>&2
3619 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3620 # to generic if there is no processor scheduler model for the target.
3623 arch_without_sse2=no
3624 arch_without_64bit=no
3627 if test $fbsd_major -ge 6; then
3633 arch_without_sse2=yes
3634 arch_without_64bit=yes
3639 arch_without_sse2=yes
3640 arch_without_64bit=yes
3645 arch_without_sse2=yes
3646 arch_without_64bit=yes
3651 arch_without_sse2=yes
3652 arch_without_64bit=yes
3655 arch_without_sse2=yes
3656 arch_without_64bit=yes
3657 case ${target_noncanonical} in
3670 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3680 i686-*-* | i786-*-*)
3681 case ${target_noncanonical} in
3722 amdfam10-*|barcelona-*)
3726 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3730 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3734 athlon_xp-*|athlon_mp-*|athlon_4-*)
3737 arch_without_sse2=yes
3738 arch_without_64bit=yes
3740 athlon_tbird-*|athlon-*)
3743 arch_without_sse2=yes
3748 arch_without_sse2=yes
3757 arch_without_sse2=yes
3759 pentium3-*|pentium3m-*)
3762 arch_without_sse2=yes
3764 pentium4-*|pentium4m-*)
3803 arch_without_sse2=yes
3808 arch_without_sse2=yes
3809 arch_without_64bit=yes
3814 case ${target_noncanonical} in
3855 amdfam10-*|barcelona-*)
3859 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3863 k8-*|opteron-*|athlon_64-*)
3899 # If there is no $with_cpu option, try to infer one from ${target}.
3900 # This block sets nothing except for with_cpu.
3901 if test x$with_cpu = x ; then
3903 i[34567]86-*-elfiamcu)
3906 i[34567]86-*-*|x86_64-*-*)
3924 frv-*-*linux* | frv400-*-*linux*)
3931 case "$with_arch" in
3933 with_cpu=${default_cf_cpu}
3936 with_cpu=m${default_m68k_cpu}
3952 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3961 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3963 i[34567]86-*-*|x86_64-*-*)
3964 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3965 if test x$with_cpu_32 = x; then
3966 with_cpu_32=$with_cpu
3968 if test x$with_cpu_64 = x; then
3969 with_cpu_64=$with_cpu
3977 # Support for --with-arch and related options (and a few unrelated options,
3979 case ${with_arch} in
3981 echo "--with-arch must be passed a value" 1>&2
3986 # If there is no $with_arch option, try to infer one from ${target}.
3987 # This block sets nothing except for with_arch.
3988 if test x$with_arch = x ; then
3990 i[34567]86-*-darwin*|x86_64-*-darwin*)
3991 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3992 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3994 i[34567]86-*-elfiamcu)
3998 # --with-fpmath sets the default ISA to SSE2, which is the same
3999 # ISA supported by Pentium 4.
4000 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
4009 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4020 # Avoid overriding --with-arch-32 and --with-arch-64 values.
4022 i[34567]86-*-darwin*|x86_64-*-darwin*)
4023 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4024 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4026 i[34567]86-*-*|x86_64-*-*)
4027 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
4028 if test x$with_arch_32 = x; then
4029 with_arch_32=$with_arch
4031 if test x$with_arch_64 = x; then
4032 if test $arch_without_64bit = yes; then
4033 # Set the default 64bit arch to x86-64 if the default arch
4034 # doesn't support 64bit.
4037 with_arch_64=$with_arch
4041 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
4042 # Set the default 64bit arch to x86-64 if the default arch
4043 # doesn't support 64bit and we need 64bit ISA.
4044 with_arch_32=$with_arch
4052 # Infer a default setting for --with-float.
4053 if test x$with_float = x; then
4055 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4056 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
4057 # comply with IEEE 754.
4063 # Infer a default setting for --with-fpu.
4064 if test x$with_fpu = x; then
4066 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4067 # The R5900 FPU only supports single precision.
4073 # Support --with-fpmath.
4074 if test x$with_fpmath != x; then
4076 i[34567]86-*-* | x86_64-*-*)
4077 case ${with_fpmath} in
4079 tm_file="${tm_file} i386/avxmath.h"
4082 tm_file="${tm_file} i386/ssemath.h"
4085 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4091 echo "--with-fpmath isn't supported for $target." 1>&2
4097 # Similarly for --with-schedule.
4098 if test x$with_schedule = x; then
4101 # Override default PA8000 scheduling model.
4102 with_schedule=7100LC
4107 # Infer a default setting for --with-llsc.
4108 if test x$with_llsc = x; then
4111 # The kernel emulates LL and SC where necessary.
4114 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4115 # The R5900 doesn't support LL(D) and SC(D).
4121 # Validate and mark as valid any --with options supported
4122 # by this target. In order to use a particular --with option
4123 # you must list it in supported_defaults; validating the value
4124 # is optional. This case statement should set nothing besides
4125 # supported_defaults.
4130 supported_defaults="abi cpu cpu_64 arch arch_64 tune tune_64"
4131 if test x$with_cpu_64 != x && test x$with_cpu = x; then
4132 with_cpu=$with_cpu_64
4134 if test x$with_arch_64 != x && test x$with_arch = x; then
4135 with_arch=$with_arch_64
4137 if test x$with_tune_64 != x && test x$with_tune = x; then
4138 with_tune=$with_tune_64
4140 for which in cpu arch tune; do
4141 eval "val=\$with_$which"
4142 base_val=`echo $val | sed -e 's/\+.*//'`
4143 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4145 if [ $which = arch ]; then
4146 def=aarch64-arches.def
4147 pattern=AARCH64_ARCH
4149 def=aarch64-cores.def
4150 pattern=AARCH64_CORE
4153 # Find the base CPU or ARCH id in aarch64-cores.def or
4154 # aarch64-arches.def
4155 if [ x"$base_val" = x ] \
4156 || grep "^$pattern(\"$base_val\"," \
4157 ${srcdir}/config/aarch64/$def \
4160 # Disallow extensions in --with-tune=cortex-a53+crc.
4161 if [ $which = tune ] && [ x"$ext_val" != x ]; then
4162 echo "Architecture extensions not supported in --with-$which=$val" 1>&2
4166 # Use the pre-processor to strip flatten the options.
4167 # This makes the format less rigid than if we use
4168 # grep and sed directly here.
4169 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4170 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4171 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4173 while [ x"$ext_val" != x ]
4175 ext_val=`echo $ext_val | sed -e 's/\+//'`
4176 ext=`echo $ext_val | sed -e 's/\+.*//'`
4177 base_ext=`echo $ext | sed -e 's/^no//'`
4178 opt_line=`echo -e "$options_parsed" | \
4179 grep "^\"$base_ext\""`
4181 if [ x"$base_ext" = x ] \
4182 || [ x"$opt_line" != x ]; then
4185 echo "Unknown extension used in --with-$which=$val" 1>&2
4188 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4193 # Allow --with-$which=native.
4194 if [ "$val" = native ]; then
4197 echo "Unknown $which used in --with-$which=$val" 1>&2
4205 supported_defaults="cpu tune"
4206 for which in cpu tune; do
4207 eval "val=\$with_$which"
4210 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4211 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4215 echo "Unknown CPU used in --with-$which=$val" 1>&2
4223 supported_defaults="cpu fpu"
4226 if [ x"$with_cpu" = x ] \
4227 || grep -q -E "^ARC_CPU[[:blank:]]*\($with_cpu," \
4228 ${srcdir}/config/arc/arc-cpus.def
4233 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4237 # see if --with-fpu matches any of the supported FPUs
4242 fpus | fpus_div | fpus_fma | fpus_all)
4246 fpuda | fpuda_div | fpuda_fma | fpuda_all)
4250 fpud | fpud_div | fpud_fma | fpud_all)
4255 echo "Unknown floating point type used in "\
4256 "--with-fpu=$with_fpu" 1>&2
4261 if [ -n "$flags_ok" ] \
4262 && ! grep -q -E "^ARC_CPU[[:blank:]]*\($new_cpu,[[:blank:]]*$flags_ok," \
4263 ${srcdir}/config/arc/arc-cpus.def
4265 echo "Unknown floating point type used in "\
4266 "--with-fpu=$with_fpu for cpu $new_cpu" 1>&2
4272 # Handle --with-multilib-list.
4273 if test "x${with_multilib_list}" != xdefault; then
4274 TM_MULTILIB_CONFIG="${with_multilib_list}"
4279 supported_defaults="cpu endian float"
4283 supported_defaults="arch cpu float tune fpu abi mode tls"
4284 for which in cpu tune arch; do
4285 # See if it matches a supported value
4286 eval "val=\$with_$which"
4287 if [ x"$val" != x ]; then
4288 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4289 -v cmd="chk$which $val" \
4290 ${srcdir}/config/arm/arm-cpus.in`
4291 if [ "$cpu" = "error" ]; then
4292 echo "Unknown target in --with-$which=$val" 1>&2
4296 eval "target_${which}_cname=$new_val"
4297 echo "For $val real value is $new_val"
4302 case "$with_float" in
4304 | soft | hard | softfp)
4308 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4313 # see if --with-fpu matches any of the supported FPUs
4314 if [ x"$with_fpu" != x ] ; then
4316 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4317 -v cmd="chkfpu $val" \
4318 ${srcdir}/config/arm/arm-cpus.in`
4319 if [ "$fpu" = "error" ]
4321 echo "Unknown target in --with-fpu=$val" 1>&2
4328 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4332 echo "Unknown ABI used in --with-abi=$with_abi"
4337 case "$with_mode" in
4343 echo "Unknown mode used in --with-mode=$with_mode"
4354 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4359 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4360 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4364 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4365 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4369 # Add extra multilibs
4370 if test "x$with_multilib_list" != x; then
4372 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4373 if test "x${arm_multilibs}" != xdefault ; then
4374 for arm_multilib in ${arm_multilibs}; do
4375 case ${arm_multilib} in
4377 tmake_profile_file="arm/t-multilib"
4378 tm_mlib_file="arm/arm-mlib.h"
4381 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4382 if test -f "${srcdir}/config/arm/${ml}"; then
4383 tmake_file="${tmake_file} arm/${ml}"
4385 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4390 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4397 if test "x${tmake_profile_file}" != x ; then
4398 # arm/t-aprofile and arm/t-rmprofile are only
4399 # designed to work without any with-cpu,
4400 # with-arch, with-mode, with-fpu or with-float
4402 if test "x$with_arch" != x \
4403 || test "x$with_cpu" != x \
4404 || test "x$with_float" != x \
4405 || test "x$with_fpu" != x \
4406 || test "x$with_mode" != x ; then
4407 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4409 elif test "x$ml" != x ; then
4410 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4413 # But pass the default value for float-abi
4414 # through to the multilib selector
4416 tmake_file="${tmake_file} ${tmake_profile_file}"
4417 tm_file="$tm_file $tm_mlib_file"
4418 TM_MULTILIB_CONFIG="$with_multilib_list"
4421 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4422 with_cpu=${with_cpu:-$target_cpu_cname}
4426 supported_defaults=cpu
4431 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4437 fido-*-* | m68k*-*-*)
4438 supported_defaults="arch cpu"
4439 case "$with_arch" in
4441 m68k_arch_family="$with_arch"
4444 echo "Invalid --with-arch=$with_arch" 1>&2
4449 # We always have a $with_cpu setting here.
4451 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4452 m68k_cpu_ident=$with_cpu
4455 m68k_cpu_ident=m68020
4456 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4459 m68k_cpu_ident=m68020
4460 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4463 # We need the C identifier rather than the string.
4464 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4465 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4466 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4467 ${srcdir}/config/m68k/m68k-devices.def`
4468 if [ x"$m68k_cpu_ident" = x ] ; then
4469 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4472 with_cpu="mcpu=$with_cpu"
4478 supported_defaults="arch tune"
4480 for which in arch tune; do
4481 eval "val=\$with_$which"
4483 "" | fiji | gfx900 | gfx906 | gfx908 | gfx90a)
4487 echo "Unknown cpu used in --with-$which=$val." 1>&2
4492 [ "x$with_arch" = x ] && with_arch=fiji
4496 supported_defaults="arch schedule"
4498 case "$with_arch" in
4499 "" | 1.0 | 1.1 | 2.0)
4503 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4508 case "$with_schedule" in
4509 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4513 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4519 i[34567]86-*-* | x86_64-*-*)
4520 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4521 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4522 eval "val=\$with_$which"
4523 case " $x86_archs " in
4531 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4540 if test x${val} != x; then
4541 case " $x86_64_archs " in
4543 # Disallow x86-64-v* for --with-cpu=/--with-tune=
4544 case "x$which$val" in
4545 xcpu*x86-64-v*|xtune*x86-64-v*)
4546 echo "Unknown CPU given in --with-$which=$val." 1>&2
4555 # Allow $x86_cpus --with-cpu=/--with-tune=
4558 case " $x86_cpus " in
4563 echo "Unknown CPU given in --with-$which=$val." 1>&2
4569 echo "Unknown CPU given in --with-$which=$val." 1>&2
4582 supported_defaults="abi arch tune riscv_attribute isa_spec"
4585 riscv-* | riscv32*) xlen=32 ;;
4586 riscv64*) xlen=64 ;;
4587 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4590 case "${with_isa_spec}" in
4591 ""|default|20191213|201912)
4592 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20191213"
4593 with_isa_spec=20191213
4596 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_2P2"
4599 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20190608"
4600 with_isa_spec=20190608
4603 echo "--with-isa-spec only accept 2.2, 20191213, 201912, 20190608 or 201906" 1>&2
4607 case "${with_riscv_attribute}" in
4609 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4612 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4615 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4618 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4624 # Infer arch from --with-arch, --target, and --with-abi.
4625 case "${with_arch}" in
4626 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4630 # Infer XLEN, but otherwise assume GC.
4631 case "${with_abi}" in
4632 ilp32e) with_arch="rv32e" ;;
4633 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4634 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4635 *) with_arch="rv${xlen}gc" ;;
4639 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4643 PYTHON=`which python || which python3 || which python2`
4644 if test "x${PYTHON}" != x; then
4645 with_arch=`${PYTHON} ${srcdir}/config/riscv/arch-canonicalize -misa-spec=${with_isa_spec} ${with_arch}`
4647 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ARCH=${with_arch}"
4649 # Make sure --with-abi is valid. If it was not specified,
4650 # pick a default based on the ISA, preferring soft-float
4651 # unless the D extension is present.
4652 case "${with_abi}" in
4653 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4656 case "${with_arch}" in
4657 rv32*d* | rv32g*) with_abi=ilp32d ;;
4658 rv32e*) with_abi=ilp32e ;;
4659 rv32*) with_abi=ilp32 ;;
4660 rv64*d* | rv64g*) with_abi=lp64d ;;
4661 rv64*) with_abi=lp64 ;;
4665 echo "--with-abi=${with_abi} is not supported" 1>&2
4669 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ABI=${with_abi}"
4671 # Make sure ABI and ISA are compatible.
4672 case "${with_abi},${with_arch}" in
4673 ilp32,rv32* | ilp32e,rv32e* \
4674 | ilp32f,rv32*f* | ilp32f,rv32g* \
4675 | ilp32d,rv32*d* | ilp32d,rv32g* \
4677 | lp64f,rv64*f* | lp64f,rv64g* \
4678 | lp64d,rv64*d* | lp64d,rv64g*)
4681 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4685 # Handle --with-multilib-generator.
4686 if test "x${with_multilib_generator}" != xdefault; then
4687 if test "x${with_multilib_list}" != xdefault; then
4688 echo "--with-multilib-list= can't used with --with-multilib-generator= at same time" 1>&2
4693 if ${srcdir}/config/riscv/multilib-generator \
4694 -misa-spec=${with_isa_spec} \
4695 `echo ${with_multilib_generator} | sed 's/;/ /g'`\
4696 > t-multilib-config;
4698 tmake_file="${tmake_file} riscv/t-withmultilib-generator"
4700 echo "invalid option for --with-multilib-generator" 1>&2
4705 echo "--with-multilib-generator= is not supported for ${target}, only supported for riscv*-*-elf*" 1>&2
4711 # Handle --with-multilib-list.
4712 if test "x${with_multilib_list}" != xdefault; then
4713 tmake_file="${tmake_file} riscv/t-withmultilib"
4715 case ${with_multilib_list} in
4716 ilp32 | ilp32f | ilp32d \
4717 | lp64 | lp64f | lp64d )
4718 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4721 echo "--with-multilib-list=${with_multilib_list} not supported."
4728 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"
4730 case ${with_float} in
4735 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4741 "" | single | double)
4745 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4755 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4760 case ${with_fp_32} in
4765 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4770 case ${with_odd_spreg_32} in
4772 with_odd_spreg_32="odd-spreg"
4775 with_odd_spreg_32="no-odd-spreg"
4781 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4787 "" | 32 | o64 | n32 | 64 | eabi)
4791 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4796 case ${with_divide} in
4797 "" | breaks | traps)
4801 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4806 case ${with_llsc} in
4817 echo "Unknown llsc type used in --with-llsc" 1>&2
4822 case ${with_mips_plt} in
4827 with_mips_plt=no-plt
4832 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4837 case ${with_synci} in
4847 echo "Unknown synci type used in --with-synci" 1>&2
4852 case ${with_lxc1_sxc1} in
4854 with_lxc1_sxc1=lxc1-sxc1
4857 with_lxc1_sxc1=no-lxc1-sxc1
4862 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4867 case ${with_madd4} in
4877 echo "Unknown madd4 type used in --with-madd4" 1>&2
4882 case ${with_compact_branches} in
4883 "" | never | always | optimal)
4886 echo "Unknown compact-branches policy used in --with-compact-branches" 1>&2
4901 echo "Unknown msa type used in --with-msa" 1>&2
4908 supported_defaults="abi arch tune fpu simd multilib-default strict-align-lib"
4913 arch_pattern arch_default \
4914 fpu_pattern fpu_default \
4915 triplet_os triplet_abi \
4918 # --with-abi is now obsolete, emit a warning if given.
4922 echo "warning: --with-abi= is now obsolete," \
4923 "the default ABI is derived from your target" \
4924 "triplet ${target}" 1>&2
4928 # Infer ABI from the triplet.
4930 loongarch64-*f64) abi_base="lp64d"; abi_ext="base" ;;
4931 loongarch64-*f32) abi_base="lp64f"; abi_ext="base" ;;
4932 loongarch64-*sf) abi_base="lp64s"; abi_ext="base" ;;
4933 loongarch64-*) abi_base="lp64d"; abi_ext="base" ;;
4935 echo "Unsupported target ${target}." 1>&2
4940 # Get the canonical triplet (multiarch specifier).
4941 case ${abi_base},${abi_ext} in
4942 lp64d,base) triplet_abi="";;
4943 lp64f,base) triplet_abi="f32";;
4944 lp64s,base) triplet_abi="sf";;
4948 *-linux-gnu*) triplet_os="linux-gnu";;
4949 *-linux-musl*) triplet_os="linux-musl";;
4950 *-elf*) triplet_os="elf";;
4952 echo "Unsupported target ${target}." 1>&2
4956 la_canonical_triplet="loongarch64-${triplet_os}${triplet_abi}"
4959 # Perform initial sanity checks on --with-* options.
4960 case ${with_arch} in
4961 "" | abi-default | loongarch64 | la464) ;; # OK, append here.
4963 if test x${host} != x${target}; then
4964 echo "--with-arch=native is illegal for cross-compiler." 1>&2
4969 echo "Unknown arch in --with-arch=$with_arch" 1>&2
4976 "" | none | 32 | 64) ;; # OK, append here.
4978 # Convert "0" to "none" for upcoming checks.
4982 echo "Unknown fpu type in --with-fpu=$with_fpu" 1>&2
4987 case ${with_simd} in
4989 lsx | lasx) # OK, append here.
4994 echo "--with-simd=${with_simd} conflicts with --with-fpu=${with_fpu}" 1>&2
5001 echo "Unknown SIMD extension in --with-simd=$with_simd" 1>&2
5006 # Infer ISA-related default options from the ABI: pass 1
5007 case ${abi_base}/${abi_ext} in
5009 # architectures that support lp64* ABI
5010 arch_pattern="native|abi-default|loongarch64|la464"
5011 # default architecture for lp64* ABI
5012 arch_default="abi-default"
5015 echo "Unsupported ABI type ${abi_base}/${abi_ext}." 1>&2
5020 # Infer ISA-related default options from the ABI: pass 2
5021 case ${abi_base}/${abi_ext} in
5030 fpu_pattern="none|32|64"
5034 echo "Unsupported ABI type ${abi_base}/${abi_ext}." 1>&2
5039 ## Set default value for with_arch.
5040 case ${with_arch} in
5042 if test x${arch_default} != x; then
5043 with_arch=${arch_default}
5045 with_arch=${arch_pattern}
5050 if echo "${with_arch}" | grep -E "^${arch_pattern}$" > /dev/null; then
5053 echo "${abi_base}/${abi_ext} ABI cannot be implemented with" \
5054 "--with-arch=${with_arch}." 1>&2
5060 ## Set default value for with_fpu.
5063 if test x${fpu_default} != x; then
5064 with_fpu=${fpu_default}
5066 with_fpu=${fpu_pattern}
5071 if echo "${with_fpu}" | grep -E "^${fpu_pattern}$" > /dev/null; then
5074 echo "${abi_base}/${abi_ext} ABI cannot be implemented with" \
5075 "--with-fpu=${with_fpu}." 1>&2
5082 # Check default with_tune configuration using with_arch.
5083 case ${with_arch} in
5085 tune_pattern="native|abi-default|loongarch64|la464"
5088 # By default, $with_tune == $with_arch
5093 case ${with_tune} in
5096 if echo "${with_tune}" | grep -E "^${tune_pattern}$" > /dev/null; then
5099 echo "Incompatible options: --with-tune=${with_tune}" \
5100 "and --with-arch=${with_arch}." 1>&2
5106 # Build libraries with -mstrict-align if --with-strict-align-lib is given.
5107 case ${with_strict_align_lib} in
5108 yes) strict_align_opt="/mstrict-align" ;;
5111 echo "Unknown option: --with-strict-align-lib=${with_strict_align_lib}" 1>&2
5117 # Handle --with-multilib-default
5118 if echo "${with_multilib_default}" \
5119 | grep -E -e '[[:space:]]' -e '//' -e '/$' -e '^/' > /dev/null 2>&1; then
5120 echo "Invalid argument to --with-multilib-default." 1>&2
5124 if test x${with_multilib_default} = x; then
5125 # Use -march=abi-default by default when building libraries.
5126 with_multilib_default="/march=abi-default"
5128 unset parse_state component
5130 for component in $(echo "${with_multilib_default}" | tr '/' ' '); do
5131 case ${parse_state},${component} in
5132 arch,|arch,abi-default)
5133 # ABI-default: use the ABI's default ARCH configuration for
5134 # multilib library builds, unless otherwise specified
5135 # in --with-multilib-list.
5136 with_multilib_default="/march=abi-default" ;;
5138 # Fixed: use the default gcc configuration for all multilib
5139 # builds by default.
5140 with_multilib_default="" ;;
5141 arch,native|arch,loongarch64|arch,la464) # OK, append here.
5142 with_multilib_default="/march=${component}" ;;
5144 with_multilib_default="/march=abi-default"
5145 with_multilib_default="${with_multilib_default}/${component}" ;;
5147 with_multilib_default="${with_multilib_default}/${component}" ;;
5150 if test x${parse_state} = xarch; then
5154 unset parse_state component
5157 # Handle --with-multilib-list.
5158 if test x"${with_multilib_list}" = x \
5159 || test x"${with_multilib_list}" = xno \
5160 || test x"${with_multilib_list}" = xdefault \
5161 || test x"${enable_multilib}" != xyes; then
5163 with_multilib_list="${abi_base}/${abi_ext}"
5166 # Check if the configured default ABI combination is included in
5167 # ${with_multilib_list}.
5168 loongarch_multilib_list_sane=no
5170 # This one goes to TM_MULTILIB_CONFIG, for use in t-linux.
5171 loongarch_multilib_list_make=""
5173 # This one goes to tm_defines, for use in loongarch-driver.c.
5174 loongarch_multilib_list_c=""
5176 # ${with_multilib_list} should not contain whitespaces,
5177 # consecutive commas or slashes.
5178 if echo "${with_multilib_list}" \
5179 | grep -E -e "[[:space:]]" -e '[,/][,/]' -e '[,/]$' -e '^[,/]' > /dev/null 2>&1; then
5180 echo "Invalid argument to --with-multilib-list." 1>&2
5184 unset component elem_abi_base elem_abi_ext elem_tmp parse_state all_abis
5185 for elem in $(echo "${with_multilib_list}" | tr ',' ' '); do
5186 unset elem_abi_base elem_abi_ext
5187 parse_state="abi-base"
5189 for component in $(echo "${elem}" | tr '/' ' '); do
5190 if test x${parse_state} = x"abi-base"; then
5192 case ${component} in
5193 lp64d | lp64f | lp64s) elem_tmp="ABI_BASE_$(echo ${component} | tr a-z A-Z),";;
5195 echo "Unknown base ABI \"${component}\" in --with-multilib-list." 1>&2
5199 loongarch_multilib_list_c="${loongarch_multilib_list_c}${elem_tmp}"
5200 loongarch_multilib_list_make="${loongarch_multilib_list_make}mabi=${component}"
5201 elem_abi_base="${component}"
5203 parse_state="abi-ext"
5207 if test x${parse_state} = x"abi-ext"; then
5208 # ABI extension type
5209 case ${component} in
5212 loongarch_multilib_list_c="${loongarch_multilib_list_c}ABI_EXT_BASE,"
5213 loongarch_multilib_list_make="${loongarch_multilib_list_make}" # Add nothing for now.
5219 # The default ABI extension is "base" if unspecified.
5221 loongarch_multilib_list_c="${loongarch_multilib_list_c}ABI_EXT_BASE,"
5222 loongarch_multilib_list_make="${loongarch_multilib_list_make}" # Add nothing for now.
5226 if test x${parse_state} = x"arch"; then
5228 case ${component} in
5229 native | abi-default | loongarch64 | la464) # OK, append here.
5230 # Append -march spec for each multilib variant.
5231 loongarch_multilib_list_make="${loongarch_multilib_list_make}/march=${component}"
5237 # "/default" is equivalent to --with-multilib-default=fixed
5243 # If ARCH is unspecified for this multilib variant, use ${with_multllib_default}.
5244 loongarch_multilib_list_make="${loongarch_multilib_list_make}${with_multilib_default}"
5248 if test x${parse_state} = x"opts"; then
5249 # Other compiler options for building libraries.
5250 # (no static sanity check performed)
5251 case ${component} in
5253 # Append other components as additional build options
5254 # (without the prepending dash).
5255 # Their validity should be examined by the compiler.
5256 loongarch_multilib_list_make="${loongarch_multilib_list_make}/${component}"
5262 case ${parse_state} in
5265 loongarch_multilib_list_c="${loongarch_multilib_list_c}ABI_EXT_BASE,"
5266 loongarch_multilib_list_make="${loongarch_multilib_list_make}" # Add nothing for now.
5267 loongarch_multilib_list_make="${loongarch_multilib_list_make}${with_multilib_default}"
5270 # If ARCH is unspecified for this multilib variant, use ${with_multllib_default}.
5271 loongarch_multilib_list_make="${loongarch_multilib_list_make}${with_multilib_default}"
5278 # Use mstrict-align for building libraries if --with-strict-align-lib is given.
5279 loongarch_multilib_list_make="${loongarch_multilib_list_make}${strict_align_opt}"
5281 # Check for repeated configuration of the same multilib variant.
5282 if echo "${elem_abi_base}/${elem_abi_ext}" \
5283 | grep -E "^(${all_abis%|})$" >/dev/null 2>&1; then
5284 echo "Repeated multilib config of \"${elem_abi_base}/${elem_abi_ext}\" in --with-multilib-list."
5287 all_abis="${all_abis}${elem_abi_base}/${elem_abi_ext}|"
5290 # Check if the default ABI configuration of the GCC binary
5291 # is included in the enabled multilib variants.
5292 if test x${elem_abi_base} = x${abi_base} \
5293 && test x${elem_abi_ext} = x${abi_ext}; then
5294 loongarch_multilib_list_sane=yes
5296 loongarch_multilib_list_make="${loongarch_multilib_list_make},"
5298 unset component elem_abi_base elem_abi_ext elem_tmp parse_state all_abis
5301 # Check if the default ABI combination is in the default list.
5302 if test x${loongarch_multilib_list_sane} = xno; then
5303 if test x${abi_ext} = xbase; then
5306 abi_ext="/${abi_ext}"
5309 echo "Default ABI combination (${abi_base}${abi_ext})" \
5310 "not found in --with-multilib-list." 1>&2
5314 # Remove the excessive appending comma.
5315 loongarch_multilib_list_c=${loongarch_multilib_list_c%,}
5316 loongarch_multilib_list_make=${loongarch_multilib_list_make%,}
5320 supported_defaults="arch cpu nds32_lib float fpu_config"
5322 # process --with-arch
5323 case "${with_arch}" in
5325 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
5329 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
5332 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
5335 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
5339 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
5344 case "${with_cpu}" in
5348 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
5352 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
5357 # process --with-nds32-lib
5358 case "${with_nds32_lib}" in
5362 with_nds32_lib=ulibc
5365 with_nds32_lib=glibc
5368 with_nds32_lib=newlib
5369 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
5375 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
5379 # for the arch=v3f or arch=v3s under mculib toolchain,
5380 # we would like to set -fno-math-errno as default
5381 case "${with_arch}" in
5383 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
5391 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
5396 # process --with-float
5397 case "${with_float}" in
5402 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
5407 # process --with-config-fpu
5408 case "${with_config_fpu}" in
5413 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
5421 supported_defaults="arch"
5422 case "$with_arch" in
5427 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
5434 supported_defaults=arch
5435 TM_MULTILIB_CONFIG=$with_arch
5436 #TODO 'sm_[...]' list per 'nvptx-sm.def'.
5441 sm_35 | sm_53 | sm_70 | sm_75 | sm_80 )
5442 # OK, but we'd like 'sm_30', too.
5443 TM_MULTILIB_CONFIG="$TM_MULTILIB_CONFIG sm_30"
5446 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
5452 powerpc*-*-* | rs6000-*-*)
5453 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
5455 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5456 eval "val=\$with_$which"
5458 default32 | default64)
5463 echo "$val only valid for --with-cpu and --with-tune." 1>&2
5467 with_which="with_$which"
5471 tm_defines="${tm_defines} CONFIG_PPC405CR"
5472 eval "with_$which=405"
5474 "" | common | native \
5475 | power[3456789] | power10 | power5+ | power6x \
5476 | powerpc | powerpc64 | powerpc64le \
5478 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
5479 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
5480 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
5481 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
5482 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
5486 echo "Unknown cpu used in --with-$which=$val." 1>&2
5493 "" | elfv1 | elfv2 )
5497 echo "Unknown ABI used in --with-abi=$with_abi"
5502 if test "x$with_advance_toolchain" != x; then
5503 if test -d "/opt/$with_advance_toolchain/." -a \
5504 -d "/opt/$with_advance_toolchain/bin/." -a \
5505 -d "/opt/$with_advance_toolchain/include/."; then
5507 tm_file="$tm_file ./advance-toolchain.h"
5508 (at="/opt/$with_advance_toolchain"
5509 echo "/* Use Advance Toolchain $at */"
5511 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
5512 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
5513 "\"--enable-new-dtags\""
5515 echo "#undef DYNAMIC_LINKER_PREFIX"
5516 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
5518 echo "#undef MD_EXEC_PREFIX"
5519 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
5521 echo "#undef MD_STARTFILE_PREFIX"
5522 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
5524 echo "#undef MD_STARTFILE_PREFIX_1"
5525 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
5526 > advance-toolchain.h
5528 echo "Unknown advance-toolchain $with_advance_toolchain"
5533 # Set up the default long double format if the user changed it.
5534 if test x$with_long_double_format = xieee; then
5535 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
5537 elif test x$with_long_double_format = xibm; then
5538 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5543 supported_defaults="arch mode tune"
5545 for which in arch tune; do
5546 eval "val=\$with_$which"
5548 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | z16 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 | arch14 )
5552 echo "Unknown cpu used in --with-$which=$val." 1>&2
5558 case ${with_mode} in
5563 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5569 sh[123456ble]*-*-* | sh-*-*)
5570 supported_defaults="cpu"
5571 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5572 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5575 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5577 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5580 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
5581 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5582 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5583 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5589 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5591 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5592 eval "val=\$with_$which"
5594 "" | sparc | sparcv9 | sparc64 \
5596 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5597 | sparclite | f930 | f934 | sparclite86x \
5598 | sparclet | tsc701 \
5599 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5600 | niagara3 | niagara4 | niagara7 | m8)
5604 echo "Unknown cpu used in --with-$which=$val" 1>&2
5610 case ${with_float} in
5615 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5622 supported_defaults="arch"
5624 case ${with_arch} in
5625 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5629 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5636 supported_defaults=cpu
5638 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5642 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5648 supported_defaults="cpu"
5652 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5659 # VxWorks support for shared libraries has to be requested explicitly,
5660 # so we can factor this part here:
5662 case "${target}-${enable_shared}" in
5664 tmake_file="${tmake_file} t-slibgcc"
5668 # Targets for which there is at least one VxWorks port should include
5669 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5670 # of markers from other files in the port, including the vxworks*.h files to
5671 # distinguish VxWorks variants such as VxWorks 7 or 64).
5674 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5675 | sparc*-*-* | x86_64-*-*)
5676 tm_file="vxworks-dummy.h ${tm_file}"
5680 # Set some miscellaneous flags for particular targets.
5681 target_cpu_default2=
5684 if test x"$target_cpu_cname" != x
5686 target_cpu_default2=$target_cpu_cname
5691 if test x$with_cpu = x
5693 echo "Don't know the target cpu" 1>&2
5696 target_cpu_default2="\\\"$with_cpu\\\""
5701 if test x$gas = xyes
5703 target_cpu_default2="MASK_GAS"
5707 fido*-*-* | m68k*-*-*)
5708 target_cpu_default2=$m68k_cpu_ident
5709 tmake_file="m68k/t-opts $tmake_file"
5710 if [ x"$m68k_arch_family" != x ]; then
5711 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5715 i[34567]86-*-darwin* | x86_64-*-darwin*)
5717 i[34567]86-*-linux* | x86_64-*-linux*)
5718 extra_objs="${extra_objs} gnu-property.o"
5719 tmake_file="$tmake_file i386/t-linux i386/t-gnu-property"
5721 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5722 tmake_file="$tmake_file i386/t-kfreebsd"
5725 tmake_file="$tmake_file i386/t-gnu"
5727 i[34567]86-*-msdosdjgpp*)
5728 tmake_file="${tmake_file} i386/t-djgpp"
5730 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5732 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5734 i[34567]86-*-mingw* | x86_64-*-mingw*)
5736 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5738 i[34567]86-*-freebsd*)
5741 tmake_file="${tmake_file} i386/t-freebsd64"
5747 if test x$gnu_ld = xyes
5749 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5753 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5756 if test x$with_arch != x; then
5757 default_mips_arch=$with_arch
5759 with_arch=$default_mips_arch
5761 if test x$with_abi != x; then
5762 default_mips_abi=$with_abi
5764 case ${default_mips_arch} in
5765 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS1" ;;
5766 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS2" ;;
5767 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3" ;;
5768 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS4" ;;
5769 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32" ;;
5770 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2" ;;
5771 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6" ;;
5772 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64" ;;
5773 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2" ;;
5774 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6" ;;
5776 case ${default_mips_abi} in
5777 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5778 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5779 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5780 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5781 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5783 tmake_file="mips/t-mips $tmake_file"
5787 # Export canonical triplet.
5788 tm_defines="${tm_defines} LA_MULTIARCH_TRIPLET=${la_canonical_triplet}"
5790 # Define macro LA_DISABLE_MULTILIB if --disable-multilib
5791 tm_defines="${tm_defines} TM_MULTILIB_LIST=${loongarch_multilib_list_c}"
5792 if test x$enable_multilib = xyes; then
5793 TM_MULTILIB_CONFIG="${loongarch_multilib_list_make}"
5795 tm_defines="${tm_defines} LA_DISABLE_MULTILIB"
5798 # Let --with- flags initialize the enum variables from loongarch.opt.
5799 # See macro definitions from loongarch-opts.h and loongarch-cpu.h.
5802 tm_defines="${tm_defines} DEFAULT_CPU_ARCH=CPU_$(echo ${with_arch} | tr a-z- A-Z_)"
5805 tm_defines="${tm_defines} DEFAULT_ABI_BASE=ABI_BASE_$(echo ${abi_base} | tr a-z- A-Z_)"
5809 base) tm_defines="${tm_defines} DEFAULT_ABI_EXT=ABI_EXT_BASE" ;;
5813 if test x${with_tune} != x; then
5814 tm_defines="${tm_defines} DEFAULT_CPU_TUNE=CPU_$(echo ${with_tune} | tr a-z- A-Z_)"
5819 none) tm_defines="$tm_defines DEFAULT_ISA_EXT_FPU=ISA_EXT_NONE" ;;
5820 32) tm_defines="$tm_defines DEFAULT_ISA_EXT_FPU=ISA_EXT_FPU32" ;;
5821 64) tm_defines="$tm_defines DEFAULT_ISA_EXT_FPU=ISA_EXT_FPU64" ;;
5825 case ${with_simd} in
5826 none) tm_defines="$tm_defines DEFAULT_ISA_EXT_SIMD=ISA_EXT_NONE" ;;
5827 lsx) tm_defines="$tm_defines DEFAULT_ISA_EXT_SIMD=ISA_EXT_SIMD_LSX" ;;
5828 lasx) tm_defines="$tm_defines DEFAULT_ISA_EXT_SIMD=ISA_EXT_SIMD_LASX" ;;
5831 tmake_file="loongarch/t-loongarch $tmake_file"
5834 powerpc*-*-* | rs6000-*-*)
5835 # FIXME: The PowerPC port uses the value set at compile time,
5836 # although it's only cosmetic.
5837 if test "x$with_cpu" != x
5839 target_cpu_default2="\\\"$with_cpu\\\""
5841 out_file="${cpu_type}/${cpu_type}.cc"
5842 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5843 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5844 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5845 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5848 sh[123456ble]*-*-* | sh-*-*)
5849 c_target_objs="${c_target_objs} sh-c.o"
5850 cxx_target_objs="${cxx_target_objs} sh-c.o"
5854 # Some standard aliases.
5859 xsparcv9 | xsparc64)
5864 if test x$with_tune = x ; then
5875 # The SPARC port checks this value at compile-time.
5876 target_cpu_default2="TARGET_CPU_$with_cpu"
5880 case "x$with_cpu" in
5883 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5884 target_cpu_default2="TARGET_CPU_$with_cpu"
5887 target_cpu_default2="TARGET_CPU_v850e1"
5892 target_cpu_default2="TARGET_CPU_$with_cpu"
5897 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"
5898 for option in $all_defaults
5900 eval "val=\$with_"`echo $option | sed s/-/_/g`
5901 if test -n "$val"; then
5902 case " $supported_defaults " in
5906 echo "This target does not support --with-$option." 2>&1
5907 echo "Valid --with options are: $supported_defaults" 2>&1
5914 t="{ \"$option\", \"$val\" }"
5916 t="${t}, { \"$option\", \"$val\" }"
5923 configure_default_options="{ { NULL, NULL} }"
5925 configure_default_options="{ ${t} }"
5928 if test "$target_cpu_default2" != ""
5930 if test "$target_cpu_default" != ""
5932 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5934 target_cpu_default=$target_cpu_default2
5939 i[34567]86-*-* | x86_64-*-*)
5940 if test x$enable_as_accelerator = xyes; then
5941 extra_programs="mkoffload\$(exeext)"