1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2021 Free Software Foundation, Inc.
4 #This file is part of GCC.
6 #GCC is free software; you can redistribute it and/or modify it under
7 #the terms of the GNU General Public License as published by the Free
8 #Software Foundation; either version 3, or (at your option) any later
11 #GCC is distributed in the hope that it will be useful, but WITHOUT
12 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 #FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 #You should have received a copy of the GNU General Public License
17 #along with GCC; see the file COPYING3. If not see
18 #<http://www.gnu.org/licenses/>.
20 # This is the GCC target-specific configuration file
21 # where a configuration type is mapped to different system-specific
22 # definitions and files. This is invoked by the autoconf-generated
23 # configure script. Putting it in a separate shell file lets us skip
24 # running autoconf when modifying target-specific information.
26 # When you change the cases in the OS or target switches, consider
27 # updating ../libgcc/config.host also.
29 # This file switches on the shell variable ${target}, and also uses the
30 # following shell variables:
32 # with_* Various variables as set by configure.
34 # enable_threads Either the name, yes or no depending on whether
35 # threads support was requested.
37 # default_use_cxa_atexit
38 # The default value for the $enable___cxa_atexit
39 # variable. enable___cxa_atexit needs to be set to
40 # "yes" for the correct operation of C++ destructors
41 # but it relies upon the presence of a non-standard C
42 # library function called __cxa_atexit.
43 # Since not all C libraries provide __cxa_atexit the
44 # default value of $default_use_cxa_atexit is set to
45 # "no" except for targets which are known to be OK.
47 # default_gnu_indirect_function
48 # The default value for the $enable_gnu_indirect_function
49 # variable. enable_gnu_indirect_function relies
50 # upon the presence of a non-standard gnu ifunc support
51 # in the assembler, linker and dynamic linker.
52 # Since not all libraries provide the dynamic linking
53 # support, the default value of
54 # $default_gnu_indirect_function is set to
55 # "no" except for targets which are known to be OK.
57 # gas_flag Either yes or no depending on whether GNU as was
60 # gnu_ld_flag Either yes or no depending on whether GNU ld was
63 # This file sets the following shell variables for use by the
64 # autoconf-generated configure script:
66 # cpu_type The name of the cpu, if different from the first
67 # chunk of the canonical target name.
69 # tm_defines List of target macros to define for all compilations.
71 # tm_file A list of target macro files, if different from
72 # "$cpu_type/$cpu_type.h". Usually it's constructed
73 # per target in a way like this:
74 # tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h"
75 # Note that the preferred order is:
76 # - specific target header "${cpu_type}/${cpu_type.h}"
77 # - generic headers like dbxelf.h elfos.h, etc.
78 # - specializing target headers like ${cpu_type.h}/elf.h
79 # This helps to keep OS specific stuff out of the CPU
80 # defining header ${cpu_type}/${cpu_type.h}.
82 # It is possible to include automatically-generated
83 # build-directory files by prefixing them with "./".
84 # All other files should relative to $srcdir/config.
86 # tm_p_file Location of file with declarations for functions
89 # tm_d_file A list of headers with definitions of target hook
90 # macros for the D compiler.
92 # out_file The name of the machine description C support
93 # file, if different from "$cpu_type/$cpu_type.c".
95 # common_out_file The name of the source file for code shared between
96 # the compiler proper and the driver.
98 # md_file The name of the machine-description file, if
99 # different from "$cpu_type/$cpu_type.md".
101 # tmake_file A list of machine-description-specific
102 # makefile-fragments, if different from
103 # "$cpu_type/t-$cpu_type".
105 # extra_modes The name of the file containing a list of extra
106 # machine modes, if necessary and different from
107 # "$cpu_type/$cpu_type-modes.def".
109 # extra_objs List of extra objects that should be linked into
110 # the compiler proper (cc1, cc1obj, cc1plus)
111 # depending on target.
113 # extra_gcc_objs List of extra objects that should be linked into
114 # the compiler driver (gcc) depending on target.
116 # extra_headers List of used header files from the directory
117 # config/${cpu_type}.
119 # user_headers_inc_next_pre
120 # List of header file names of internal gcc header
121 # files, which should be prefixed by an include_next.
122 # user_headers_inc_next_post
123 # List of header file names of internal gcc header
124 # files, which should be postfixed by an include_next.
125 # use_gcc_tgmath If set, add tgmath.h to the list of used header
128 # use_gcc_stdint If "wrap", install a version of stdint.h that
129 # wraps the system's copy for hosted compilations;
130 # if "provide", provide a version of systems without
131 # such a system header; otherwise "none", do not
132 # provide such a header at all.
134 # extra_programs List of extra executables compiled for this target
135 # machine, used when linking.
137 # extra_options List of target-dependent .opt files.
139 # c_target_objs List of extra target-dependent objects that be
140 # linked into the C compiler only.
142 # cxx_target_objs List of extra target-dependent objects that be
143 # linked into the C++ compiler only.
145 # d_target_objs List of extra target-dependent objects that be
146 # linked into the D compiler only.
148 # fortran_target_objs List of extra target-dependent objects that be
149 # linked into the fortran compiler only.
151 # target_gtfiles List of extra source files with type information.
153 # xm_defines List of macros to define when compiling for the
156 # xm_file List of files to include when compiling for the
159 # use_collect2 Set to yes or no, depending on whether collect2
162 # target_cpu_default Set to override the default target model.
164 # gdb_needs_out_file_path
165 # Set to yes if gdb needs a dir command with
166 # `dirname $out_file`.
168 # thread_file Set to control which thread package to use.
170 # gas Set to yes or no depending on whether the target
171 # system normally uses GNU as.
173 # configure_default_options
174 # Set to an initializer for configure_default_options
175 # in configargs.h, based on --with-cpu et cetera.
177 # native_system_header_dir
178 # Where system header files are found for this
179 # target. This defaults to /usr/include. If
180 # the --with-sysroot configure option or the
181 # --sysroot command line option is used this
182 # will be relative to the sysroot.
183 # target_type_format_char
184 # The default character to be used for formatting
186 # .type symbol_name, ${t_t_f_c}<property>
189 # The following variables are used in each case-construct to build up the
190 # outgoing variables:
192 # gnu_ld Set to yes or no depending on whether the target
193 # system normally uses GNU ld.
195 # target_has_targetcm Set to yes or no depending on whether the target
196 # has its own definition of targetcm.
198 # target_has_targetm_common Set to yes or no depending on whether the
199 # target has its own definition of targetm_common.
201 # target_has_targetdm Set to yes or no depending on whether the target
202 # has its own definition of targetdm.
208 user_headers_inc_next_pre=
209 user_headers_inc_next_post=
220 target_has_targetcm=no
221 target_has_targetm_common=yes
222 target_has_targetdm=no
225 # Set this to force installation and use of collect2.
227 # Set this to override the default target model.
229 # Set this if gdb needs a dir command with `dirname $out_file`
230 gdb_needs_out_file_path=
231 # Set this to control which thread package will be used.
233 # Reinitialize these from the flag values every loop pass, since some
234 # configure entries modify them.
236 gnu_ld="$gnu_ld_flag"
237 default_use_cxa_atexit=no
238 default_gnu_indirect_function=no
241 native_system_header_dir=/usr/include
242 target_type_format_char='@'
244 # Don't carry these over build->host->target. Please.
248 # Obsolete configurations.
252 if test "x$enable_obsolete" != xyes; then
253 echo "*** Configuration ${target} is obsolete." >&2
254 echo "*** Specify --enable-obsolete to build it anyway." >&2
255 echo "*** Support will be REMOVED in the next major release of GCC," >&2
256 echo "*** unless a maintainer comes forward." >&2
261 # Unsupported targets list. Do not put an entry in this list unless
262 # it would otherwise be caught by a more permissive pattern. The list
263 # should be in alphabetical order.
265 # Avoid special cases that are not obsolete
276 | i[34567]86-go32-* \
277 | i[34567]86-*-go32* \
278 | m68k-*-uclinuxoldabi* \
279 | mips64orion*-*-rtems* \
281 | powerpc*-*-linux*paired* \
283 | sparc-hal-solaris2* \
286 | *-*-freebsd[12] | *-*-freebsd[1234].* \
287 | *-*-freebsd*aout* \
295 | *-*-solaris2.[0-9] \
296 | *-*-solaris2.[0-9].* \
301 echo "*** Configuration ${target} not supported" 1>&2
306 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
307 # updated in each machine entry. Also set default extra_headers for some
310 cpu_type=`echo ${target} | sed 's/-.*$//'`
315 tmake_file=m32c/t-m32c
316 target_has_targetm_common=no
320 extra_headers="arm_fp16.h arm_neon.h arm_bf16.h arm_acle.h arm_sve.h"
321 c_target_objs="aarch64-c.o"
322 cxx_target_objs="aarch64-c.o"
323 d_target_objs="aarch64-d.o"
324 extra_objs="aarch64-builtins.o aarch-common.o aarch64-sve-builtins.o aarch64-sve-builtins-shapes.o aarch64-sve-builtins-base.o aarch64-sve-builtins-sve2.o cortex-a57-fma-steering.o aarch64-speculation.o falkor-tag-collision-avoidance.o aarch64-bti-insert.o aarch64-cc-fusion.o"
325 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c \$(srcdir)/config/aarch64/aarch64-sve-builtins.h \$(srcdir)/config/aarch64/aarch64-sve-builtins.cc"
326 target_has_targetm_common=yes
330 extra_options="${extra_options} g.opt"
341 c_target_objs="arc-c.o"
342 cxx_target_objs="arc-c.o"
343 extra_options="${extra_options} arc/arc-tables.opt g.opt"
344 extra_headers="arc-simd.h"
348 extra_objs="arm-builtins.o aarch-common.o"
349 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"
350 target_type_format_char='%'
351 c_target_objs="arm-c.o"
352 cxx_target_objs="arm-c.o"
353 d_target_objs="arm-d.o"
354 extra_options="${extra_options} arm/arm-tables.opt"
355 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
359 c_target_objs="avr-c.o"
360 cxx_target_objs="avr-c.o"
369 extra_options="${extra_options} g.opt"
372 target_has_targetm_common=no
374 moxie*) cpu_type=moxie
375 target_has_targetm_common=no
379 extra_headers=math-68881.h
380 extra_options="${extra_options} m68k/m68k-tables.opt"
384 c_target_objs="i386-c.o"
385 cxx_target_objs="i386-c.o"
386 d_target_objs="i386-d.o"
387 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"
388 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
389 extra_options="${extra_options} fused-madd.opt"
390 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
391 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
392 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
393 immintrin.h x86intrin.h avxintrin.h xopintrin.h
394 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
395 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
396 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
397 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
398 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
399 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
400 shaintrin.h clflushoptintrin.h xsavecintrin.h
401 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
402 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
403 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
404 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
405 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
406 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
407 gfniintrin.h cet.h avx512vbmi2intrin.h
408 avx512vbmi2vlintrin.h avx512vnniintrin.h
409 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
410 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
411 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
412 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h
413 avx512bf16intrin.h enqcmdintrin.h serializeintrin.h
414 avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h
415 tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h
416 amxbf16intrin.h x86gprintrin.h uintrintrin.h
417 hresetintrin.h keylockerintrin.h avxvnniintrin.h"
421 c_target_objs="i386-c.o"
422 cxx_target_objs="i386-c.o"
423 d_target_objs="i386-d.o"
424 extra_options="${extra_options} fused-madd.opt"
425 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"
426 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
427 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
428 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
429 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
430 immintrin.h x86intrin.h avxintrin.h xopintrin.h
431 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
432 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
433 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
434 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
435 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
436 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
437 shaintrin.h clflushoptintrin.h xsavecintrin.h
438 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
439 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
440 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
441 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
442 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
443 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
444 gfniintrin.h cet.h avx512vbmi2intrin.h
445 avx512vbmi2vlintrin.h avx512vnniintrin.h
446 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
447 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
448 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
449 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h
450 avx512bf16intrin.h enqcmdintrin.h serializeintrin.h
451 avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h
452 tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h
453 amxbf16intrin.h x86gprintrin.h uintrintrin.h
454 hresetintrin.h keylockerintrin.h avxvnniintrin.h"
457 extra_headers=ia64intrin.h
458 extra_options="${extra_options} g.opt fused-madd.opt"
464 extra_options="${extra_options} g.opt"
468 extra_options="${extra_options} g.opt"
471 extra_headers=math-68881.h
472 extra_options="${extra_options} m68k/m68k-tables.opt"
476 extra_options="${extra_options} g.opt"
480 d_target_objs="mips-d.o"
481 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
482 extra_objs="frame-header-opt.o"
483 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
487 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
490 extra_options="${extra_options} nds32/nds32-linux.opt"
493 extra_options="${extra_options} nds32/nds32-elf.opt"
498 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"
502 extra_options="${extra_options} g.opt"
512 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o rs6000-call.o"
513 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
514 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
515 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
516 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
517 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
518 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
519 extra_headers="${extra_headers} amo.h"
521 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower10|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
525 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
526 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
533 extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o riscv-shorten-memrefs.o"
534 d_target_objs="riscv-d.o"
537 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
538 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o rs6000-call.o"
539 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
543 c_target_objs="sparc-c.o"
544 cxx_target_objs="sparc-c.o"
545 d_target_objs="sparc-d.o"
546 extra_headers="visintrin.h"
550 d_target_objs="s390-d.o"
551 extra_options="${extra_options} fused-madd.opt"
552 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
554 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
555 sh[123456789lbe]*-*-* | sh-*-*)
557 extra_options="${extra_options} fused-madd.opt"
558 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
565 extra_headers="c6x_intrinsics.h"
566 extra_options="${extra_options} c6x/c6x-tables.opt"
569 extra_options="${extra_options} fused-madd.opt"
579 tm_file=${cpu_type}/${cpu_type}.h
580 tm_d_file=${cpu_type}/${cpu_type}.h
581 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
583 tm_p_file=${cpu_type}/${cpu_type}-protos.h
584 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
588 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
590 extra_modes=${cpu_type}/${cpu_type}-modes.def
592 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
594 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
599 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
602 if test "x$with_multilib_list" = xilp32; then
603 tm_file="aarch64/biarchilp32.h ${tm_file}"
605 tm_file="aarch64/biarchlp64.h ${tm_file}"
609 tm_file="aarch64/biarchilp32.h ${tm_file}"
612 tm_file="aarch64/biarchlp64.h ${tm_file}"
615 echo "Unknown ABI used in --with-abi=$with_abi"
620 if test "x$with_abi" != x; then
621 echo "This target does not support --with-abi."
628 if test "x$with_multilib_list" = xmx32; then
629 tm_file="i386/biarchx32.h ${tm_file}"
631 tm_file="i386/biarch64.h ${tm_file}"
635 tm_file="i386/biarch64.h ${tm_file}"
638 tm_file="i386/biarchx32.h ${tm_file}"
641 echo "Unknown ABI used in --with-abi=$with_abi"
646 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
650 # On a.out targets, we need to use collect2.
657 # Common C libraries.
658 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
660 # 32-bit x86 processors supported by --with-arch=. Each processor
661 # MUST be separated by exactly one space.
662 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
663 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
664 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
665 pentium4 pentium4m pentiumpro prescott lakemont samuel-2 nehemiah \
668 # 64-bit x86 processors supported by --with-arch=. Each processor
669 # MUST be separated by exactly one space.
670 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
671 bdver3 bdver4 znver1 znver2 znver3 btver1 btver2 k8 k8-sse3 opteron \
672 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
673 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
674 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
675 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake \
676 sapphirerapids alderlake eden-x2 nano nano-1000 nano-2000 nano-3000 \
677 nano-x2 eden-x4 nano-x4 x86-64 x86-64-v2 x86-64-v3 x86-64-v4 native"
679 # Additional x86 processors supported by --with-cpu=. Each processor
680 # MUST be separated by exactly one space.
681 x86_cpus="generic intel"
683 # Common parts for widely ported systems.
686 tmake_file="t-darwin "
687 tm_file="${tm_file} darwin.h"
688 darwin_os=`echo ${target} | sed 's/.*darwin\([0-9.]*\).*$/\1/'`
689 darwin_maj=`expr "$darwin_os" : '\([0-9]*\).*'`
690 macos_min=`expr "$darwin_os" : '[0-9]*\.\([0-9]*\).*'`
692 if test x"${macos_min}" = x; then
697 # Darwin 4 to 19 correspond to macOS 10.0 to 10.15
698 *-*-darwin[4-9]* | *-*-darwin1[0-9]*)
699 macos_min=`expr $darwin_maj - 4`
702 # Darwin 20 corresponds to macOS 11.
708 aarch64) macos_maj=11 ;;
709 x86_64) macos_min=6 ;;
713 *-*-darwin*) tm_defines="$tm_defines DARWIN_USE_KERNEL_VERS" ;;
715 # If configuring a cross-compiler then we will have set some
716 #Â default above, but it is probably not what was intended.
717 echo "Warning: Using ${target} is only suitable for Darwin hosts" 1>&2
718 echo "configure with an explicit target version" 1>&2
723 echo "Error: configuring for an unreleased macOS version ${target}" 1>&2
727 tm_defines="$tm_defines DEF_MIN_OSX_VERSION=\\\"${macos_maj}.${macos_min}\\\""
728 tm_defines="$tm_defines DEF_LD64=\\\"${def_ld64}\\\""
729 tm_file="${tm_file} ${cpu_type}/darwin.h"
730 tm_p_file="${tm_p_file} darwin-protos.h"
731 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.c"
732 extra_options="${extra_options} darwin.opt"
733 c_target_objs="${c_target_objs} darwin-c.o"
734 cxx_target_objs="${cxx_target_objs} darwin-c.o"
735 d_target_objs="${d_target_objs} darwin-d.o"
736 fortran_target_objs="darwin-f.o"
737 target_has_targetcm=yes
738 target_has_targetdm=yes
739 extra_objs="${extra_objs} darwin.o"
740 extra_gcc_objs="darwin-driver.o"
741 default_use_cxa_atexit=yes
743 case ${enable_threads} in
744 "" | yes | posix) thread_file='posix' ;;
750 tmake_file="t-slibgcc"
751 case ${enable_threads} in
756 # Let these non-posix thread selections fall through if requested
759 echo 'Unknown thread configuration for DragonFly BSD'
763 extra_options="$extra_options rpath.opt dragonfly.opt"
764 default_use_cxa_atexit=yes
766 d_target_objs="${d_target_objs} dragonfly-d.o"
767 tmake_file="${tmake_file} t-dragonfly"
768 target_has_targetdm=yes
771 # This is the generic ELF configuration of FreeBSD. Later
772 # machine-specific sections may refine and add to this
775 # Due to tm_file entry ordering issues that vary between cpu
776 # architectures, we only define fbsd_tm_file to allow the
777 # machine-specific section to dictate the final order of all
778 # entries of tm_file with the minor exception that components
779 # of the tm_file set here will always be of the form:
781 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
783 # The machine-specific section should not tamper with this
784 # ordering but may order all other entries of tm_file as it
785 # pleases around the provided core setting.
788 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
789 if test "$fbsd_major" = ""; then
790 echo "Specify the major version number of the targeted FreeBSD release"
791 echo "like this: --target=amd64-unknown-freebsd10.1"
794 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
795 tmake_file="t-slibgcc"
796 case ${enable_threads} in
798 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
804 echo 'Unknown thread configuration for FreeBSD'
808 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
809 extra_options="$extra_options rpath.opt freebsd.opt"
814 default_use_cxa_atexit=yes;;
817 d_target_objs="${d_target_objs} freebsd-d.o"
818 tmake_file="${tmake_file} t-freebsd"
819 target_has_targetdm=yes
822 native_system_header_dir=/include
824 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
825 extra_options="$extra_options gnu-user.opt"
828 case ${enable_threads} in
829 "" | yes | posix) thread_file='posix' ;;
831 tmake_file="t-slibgcc"
833 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
836 native_system_header_dir=/include
839 # Linux C libraries selection switch: glibc / uclibc / bionic.
840 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
843 tm_p_file="${tm_p_file} linux-protos.h"
844 tmake_file="${tmake_file} t-linux"
845 extra_objs="${extra_objs} linux.o"
846 extra_options="${extra_options} linux.opt"
851 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
853 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
854 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
857 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
860 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
863 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
865 default_use_cxa_atexit=yes
868 # Enable compilation for Android by default for *android* targets.
871 tm_defines="$tm_defines ANDROID_DEFAULT=1"
874 tm_defines="$tm_defines ANDROID_DEFAULT=0"
877 c_target_objs="${c_target_objs} glibc-c.o"
878 cxx_target_objs="${cxx_target_objs} glibc-c.o"
879 d_target_objs="${d_target_objs} glibc-d.o"
880 tmake_file="${tmake_file} t-glibc"
881 target_has_targetcm=yes
882 target_has_targetdm=yes
885 tm_p_file="${tm_p_file} netbsd-protos.h"
886 tmake_file="t-netbsd t-slibgcc"
887 extra_objs="${extra_objs} netbsd.o"
888 d_target_objs="${d_target_objs} netbsd-d.o"
892 case ${enable_threads} in
893 "" | yes | posix) thread_file='posix' ;;
895 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
896 default_use_cxa_atexit=yes
897 target_has_targetdm=yes
899 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
900 default_gnu_indirect_function=yes
905 tmake_file="t-openbsd"
906 case ${enable_threads} in
912 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
913 default_use_cxa_atexit=yes
920 default_use_cxa_atexit=yes
923 case ${enable_threads} in
924 "" | yes | rtems) thread_file='rtems' ;;
925 posix) thread_file='posix' ;;
928 echo 'Unknown thread configuration for RTEMS'
932 tmake_file="${tmake_file} t-rtems"
933 extra_options="${extra_options} rtems.opt"
934 default_use_cxa_atexit=yes
938 extra_options="$extra_options gnu-user.opt"
940 case ${enable_threads} in
941 "" | yes | posix) thread_file='posix' ;;
943 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
949 # i?86-*-solaris2* needs to insert headers between cpu default and
950 # Solaris 2 specific ones.
951 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
952 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
953 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
955 *-*-solaris2.1[1-9]*)
956 # __cxa_atexit was introduced in Solaris 11.4.
957 default_use_cxa_atexit=yes
961 if test x$gnu_ld = xyes; then
962 tm_file="usegld.h ${tm_file}"
964 if test x$gas = xyes; then
965 tm_file="usegas.h ${tm_file}"
967 tm_p_file="${tm_p_file} sol2-protos.h"
968 tmake_file="${tmake_file} t-sol2 t-slibgcc"
969 c_target_objs="${c_target_objs} sol2-c.o"
970 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
971 d_target_objs="${d_target_objs} sol2-d.o"
972 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
973 extra_options="${extra_options} sol2.opt"
974 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
975 "":yes:* | yes:yes:* )
979 target_has_targetdm=yes
982 extra_options="${extra_options} vms/vms.opt"
984 tmake_file="vms/t-vms t-slibgcc"
986 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
987 tm_p_file="${tm_p_file} vms/vms-protos.h"
988 xm_file="vms/xm-vms.h"
989 c_target_objs="vms-c.o"
990 cxx_target_objs="vms-c.o"
991 fortran_target_objs="vms-f.o"
992 use_gcc_stdint=provide
993 tm_file="${tm_file} vms/vms-stdint.h"
994 if test x$gnu_ld != xyes; then
995 # Build wrappers for native case.
996 extra_programs="ld\$(exeext) ar\$(exeext)"
997 tmake_file="$tmake_file vms/t-vmsnative"
1001 tmake_file=t-vxworks
1004 extra_options="${extra_options} vxworks.opt"
1005 extra_objs="$extra_objs vxworks.o"
1007 c_target_objs="${c_target_objs} vxworks-c.o"
1008 cxx_target_objs="${cxx_target_objs} vxworks-c.o"
1009 extra_headers="${extra_headers} ../vxworks/vxworks-predef.h"
1010 target_has_targetcm="yes"
1012 # This private header exposes a consistent interface for checks on
1013 # the VxWorks version our runtime header files need to perform, based on
1014 # what the system headers adverstise:
1016 extra_headers="${extra_headers} ../vxworks/_vxworks-versions.h"
1018 # Starting from VxWorks 7, the system comes with a Dinkumware
1019 # environment which requires the inclusion of "yvals.h" before other
1020 # system headers. We provide wrapped versions of a few headers to
1021 # accomodate such constraints:
1023 extra_headers="${extra_headers} ../vxworks/_yvals.h"
1024 extra_headers="${extra_headers} ../vxworks/_yvals-wrapper.h"
1026 extra_headers="${extra_headers} ../vxworks/math.h ../vxworks/complex.h"
1027 extra_headers="${extra_headers} ../vxworks/inttypes.h ../vxworks/setjmp.h"
1029 # We provide stdint.h ...
1031 tm_file="${tm_file} vxworks-stdint.h"
1033 # .. only through the yvals conditional wrapping mentioned above
1034 # to abide by the VxWorks 7 expectations. The final copy is performed
1035 # explicitly by a t-vxworks Makefile rule.
1038 extra_headers="${extra_headers} ../../ginclude/stdint-gcc.h"
1040 case ${enable_threads} in
1042 "" | yes | vxworks) thread_file='vxworks' ;;
1043 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
1046 # A few common macro definitions conveying general characteristics
1047 # of the configuration at hand. Note that by VxWorks 7, we mean the
1048 # the SR6xx major update or beyond in vendor parlance:
1052 tm_defines="$tm_defines TARGET_VXWORKS7=1"
1057 tm_defines="$tm_defines TARGET_VXWORKS64=1"
1061 # Then a few build configuration controls for VxWorks 7, which
1062 # has specificities on top of which we aim to provide more complete
1067 # VxWorks 7 always has init/fini_array support and it is simpler to
1068 # just leverage this, sticking to what the system toolchain does:
1069 gcc_cv_initfini_array=yes
1073 *-*-elf|arc*-*-elf*)
1074 # Assume that newlib is being used and so __cxa_atexit is provided.
1075 default_use_cxa_atexit=yes
1081 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1082 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
1083 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1084 tmake_file="${tmake_file} aarch64/t-aarch64"
1090 tm_file="${tm_file} fuchsia.h"
1093 tm_file="${tm_file} rtems.h aarch64/rtems.h"
1098 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1101 aarch64_multilibs="${with_multilib_list}"
1102 if test "$aarch64_multilibs" = "default"; then
1103 aarch64_multilibs="lp64,ilp32"
1105 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1106 for aarch64_multilib in ${aarch64_multilibs}; do
1107 case ${aarch64_multilib} in
1109 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1112 echo "--with-multilib-list=${aarch64_multilib} not supported."
1116 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1118 aarch64*-*-freebsd*)
1119 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1120 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1121 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1122 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1125 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
1126 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1127 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1128 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1131 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1132 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1133 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1134 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1137 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1140 aarch64_multilibs="${with_multilib_list}"
1141 if test "$aarch64_multilibs" = "default"; then
1142 # TODO: turn on ILP32 multilib build after its support is mature.
1143 # aarch64_multilibs="lp64,ilp32"
1144 aarch64_multilibs="lp64"
1146 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1147 for aarch64_multilib in ${aarch64_multilibs}; do
1148 case ${aarch64_multilib} in
1150 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1153 echo "--with-multilib-list=${aarch64_multilib} not supported."
1157 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1159 aarch64*-wrs-vxworks*)
1160 tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
1161 tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
1162 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
1165 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1166 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1167 extra_options="${extra_options} alpha/elf.opt"
1170 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1171 tmake_file="${tmake_file} alpha/t-alpha"
1172 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1176 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1177 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1178 tmake_file="${tmake_file} alpha/t-alpha"
1179 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1180 # default x-alpha is only appropriate for dec-osf.
1183 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1184 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1187 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1188 tmake_file="arc/t-multilib arc/t-arc"
1189 extra_gcc_objs="driver-arc.o"
1190 if test "x$with_cpu" != x; then
1191 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1193 if test x${with_endian} = x; then
1195 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1196 *) with_endian=little ;;
1199 case ${with_endian} in
1201 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1203 case ${with_endian} in
1204 big*) tm_file="arc/big.h ${tm_file}"
1208 tm_file="arc/arc-arch.h dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arc/linux.h ${tm_file}"
1209 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1210 extra_gcc_objs="driver-arc.o"
1211 if test "x$with_cpu" != x; then
1212 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1214 if test x${with_endian} = x; then
1216 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1217 *) with_endian=little ;;
1220 case ${with_endian} in
1222 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1224 case ${with_endian} in
1225 big*) tm_file="arc/big.h ${tm_file}"
1227 # Force .init_array support. The configure script cannot always
1228 # automatically detect that GAS supports it, yet we require it.
1229 gcc_cv_initfini_array=yes
1232 # We only support VxWorks 7 now on ARM, post SR600. Pre SR600
1233 # VxWorks 7 was transitory and major versions prior to 7 were based
1234 # on long deprecated ABI, not supported at all any more regardless
1236 extra_options="${extra_options} arm/vxworks.opt"
1237 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1238 tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1239 tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1240 target_cpu_cname="generic-armv7-a"
1241 need_64bit_hwint=yes
1243 arm*-*-freebsd*) # ARM FreeBSD EABI
1244 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1247 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1250 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1251 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1254 target_cpu_cname="arm1176jzf-s"
1255 if test $fbsd_major -ge 11; then
1256 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1260 target_cpu_cname="generic-armv7-a"
1261 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1264 target_cpu_cname="arm9"
1267 with_tls=${with_tls:-gnu}
1270 target_cpu_cname="strongarm"
1271 tmake_file="${tmake_file} arm/t-arm"
1272 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1273 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1275 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1278 arm*-*-netbsdelf-*eabi*)
1279 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1280 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1283 tm_file="$tm_file arm/netbsd-elf.h"
1284 tmake_file="$tmake_file arm/t-netbsd"
1287 tm_file="${tm_file} arm/aout.h arm/arm.h"
1289 arm*-*-netbsdelf-*eabihf*)
1290 # Hard-float requires at least Arm v5te
1291 target_cpu_cname="arm10e"
1292 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1296 armv6*) target_cpu_cname="arm1176jzf-s";;
1297 armv7*) target_cpu_cname="generic-armv7-a";;
1300 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1301 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
1302 extra_options="${extra_options} linux-android.opt"
1305 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1308 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1309 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1311 arm*-*-uclinuxfdpiceabi)
1312 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1315 # Generation of floating-point instructions requires at least ARMv5te.
1316 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1317 target_cpu_cname="arm10e"
1319 target_cpu_cname="arm10tdmi"
1321 # Define multilib configuration for arm-linux-androideabi.
1324 tmake_file="$tmake_file arm/t-linux-androideabi"
1327 # The EABI requires the use of __cxa_atexit.
1328 default_use_cxa_atexit=yes
1329 with_tls=${with_tls:-gnu}
1331 arm*-*-uclinux*eabi*) # ARM ucLinux
1332 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1333 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1334 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1335 target_cpu_cname="arm7tdmi"
1336 # The EABI requires the use of __cxa_atexit.
1337 default_use_cxa_atexit=yes
1340 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1341 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1342 tm_file="${tm_file} arm/aout.h arm/arm.h"
1343 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1344 target_cpu_cname="arm7tdmi"
1346 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1349 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1351 default_use_cxa_atexit=yes
1352 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1353 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1354 target_cpu_cname="arm7tdmi"
1357 tm_file="$tm_file newlib-stdint.h"
1358 tmake_file="${tmake_file} arm/t-bpabi"
1362 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1363 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1364 target_cpu_cname="generic-armv7-a"
1367 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1368 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1371 tm_file="${tm_file} arm/symbian.h"
1372 # We do not include t-bpabi for Symbian OS because the system
1373 # provides its own implementation of the BPABI functions.
1374 tmake_file="${tmake_file} arm/t-symbian"
1375 target_cpu_cname="arm10tdmi"
1378 tm_file="${tm_file} arm/aout.h arm/arm.h"
1381 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1382 if test x${with_avrlibc} != xno; then
1383 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1384 tm_defines="${tm_defines} WITH_AVRLIBC"
1386 # Work out avr_double_comparison which is 2 or 3 and is used in
1387 # target hook FLOAT_LIB_COMPARE_RETURNS_BOOL to determine whether
1388 # DFmode comparisons return 3-state or 2-state results.
1389 case y${with_double_comparison} in
1391 avr_double_comparison=3
1394 avr_double_comparison=2
1397 echo "Error: --with-double-comparison= can only be used with: 'tristate', 'bool', 'libf7'" 1>&2
1401 case "y${with_libf7}" in
1403 # avr_double_comparison as set above.
1406 avr_double_comparison=2
1407 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1409 y | yyes | ymath-symbols)
1410 avr_double_comparison=2
1411 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1412 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1413 tm_defines="${tm_defines} WITH_LIBF7_MATH_SYMBOLS"
1416 avr_double_comparison=2
1417 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1418 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1421 echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
1425 tm_defines="${tm_defines} WITH_DOUBLE_COMPARISON=${avr_double_comparison}"
1426 case y${with_double} in
1429 tm_defines="${tm_defines} HAVE_DOUBLE32"
1433 tm_defines="${tm_defines} HAVE_DOUBLE64"
1437 avr_double_multilib=1
1438 tm_defines="${tm_defines} HAVE_DOUBLE32"
1439 tm_defines="${tm_defines} HAVE_DOUBLE64"
1440 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1444 avr_double_multilib=1
1445 tm_defines="${tm_defines} HAVE_DOUBLE32"
1446 tm_defines="${tm_defines} HAVE_DOUBLE64"
1447 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1450 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1454 case y${with_long_double} in
1457 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1461 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1465 avr_long_double_multilib=1
1466 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1467 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1468 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1472 avr_long_double_multilib=1
1473 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1474 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1475 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1478 avr_long_double=${avr_double}
1479 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1480 if test y${avr_double_multilib} = y1; then
1481 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1482 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1484 tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1488 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1492 if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1493 if test y${with_long_double} != ydouble; then
1494 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
1498 if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1499 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
1502 if test y${avr_double}${avr_long_double} = y6432; then
1503 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
1506 tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1507 tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1508 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1510 extra_gcc_objs="driver-avr.o avr-devices.o"
1511 extra_objs="avr-devices.o avr-log.o"
1514 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1515 tmake_file=bfin/t-bfin-elf
1519 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1520 tmake_file=bfin/t-bfin-uclinux
1523 bfin*-linux-uclibc*)
1524 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/linux.h ./linux-sysroot-suffix.h"
1525 tmake_file="${tmake_file} bfin/t-bfin-linux"
1529 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1530 tmake_file="${tmake_file} bfin/t-rtems"
1533 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1538 tm_file="elfos.h ${tm_file}"
1539 tmake_file="${tmake_file} bpf/t-bpf"
1541 extra_headers="bpf-helpers.h"
1542 use_gcc_stdint=provide
1545 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1546 tmake_file="${tmake_file} cr16/t-cr16 "
1549 cris-*-elf | cris-*-none)
1550 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1551 tmake_file="cris/t-cris cris/t-elfmulti"
1553 extra_options="${extra_options} cris/elf.opt"
1557 if test x${with_endian} != x; then
1558 case ${with_endian} in
1561 echo "with_endian=${with_endian} not supported."
1566 if test x${with_float} != x; then
1567 case ${with_float} in
1570 "Unknown floating point type used in --with-float=$with_float"
1575 tm_file="csky/csky.h"
1576 md_file="csky/csky.md"
1577 out_file="csky/csky.c"
1578 tm_p_file="${tm_p_file} csky/csky-protos.h"
1579 extra_options="${extra_options} csky/csky_tables.opt"
1581 if test x${enable_tpf_debug} = xyes; then
1582 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1587 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1588 tmake_file="csky/t-csky csky/t-csky-elf"
1589 default_use_cxa_atexit=no
1593 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1594 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1596 if test "x${enable_multilib}" = xyes ; then
1597 tm_file="$tm_file ./sysroot-suffix.h"
1598 tmake_file="${tmake_file} csky/t-sysroot-suffix"
1603 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1604 # Force .init_array support. The configure script cannot always
1605 # automatically detect that GAS supports it, yet we require it.
1606 gcc_cv_initfini_array=yes
1608 csky-*-linux-uclibc*)
1609 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1610 default_use_cxa_atexit=no
1613 echo "Unknown target $target"
1619 echo "Unknown target $target"
1624 epiphany-*-elf | epiphany-*-rtems*)
1625 tm_file="${tm_file} dbxelf.h elfos.h"
1626 tmake_file="${tmake_file} epiphany/t-epiphany"
1629 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1632 tm_file="${tm_file} newlib-stdint.h"
1635 extra_options="${extra_options} fused-madd.opt"
1636 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1637 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1638 extra_headers="epiphany_intrinsics.h"
1641 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1644 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1645 tmake_file=frv/t-frv
1648 tm_file="dbxelf.h elfos.h ${tm_file} \
1649 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1650 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1655 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1656 tmake_file="${tmake_file} ft32/t-ft32"
1659 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1660 tmake_file="gcn/t-gcn-hsa"
1661 native_system_header_dir=/include
1662 extra_modes=gcn/gcn-modes.def
1663 extra_objs="${extra_objs} gcn-tree.o"
1664 extra_gcc_objs="driver-gcn.o"
1666 x86_64*-*-linux-gnu )
1667 if test "$ac_cv_search_dlopen" != no; then
1668 extra_programs="${extra_programs} gcn-run\$(exeext)"
1672 if test x$enable_as_accelerator = xyes; then
1673 extra_programs="${extra_programs} mkoffload\$(exeext)"
1674 tm_file="${tm_file} gcn/offload.h"
1676 # Force .init_array support.
1677 gcc_cv_initfini_array=yes
1683 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1684 tmake_file="${tmake_file} moxie/t-moxie"
1689 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1690 tmake_file="${tmake_file} moxie/t-moxie"
1693 tmake_file="${tmake_file} moxie/t-moxie"
1694 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1699 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1700 tmake_file="${tmake_file} moxie/t-moxiebox"
1703 tmake_file="h8300/t-h8300"
1704 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1707 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1708 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1711 target_cpu_default="MASK_PA_11|MASK_PA_20"
1712 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1713 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1715 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1716 d_target_objs="${d_target_objs} pa-d.o"
1720 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1721 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1722 pa/pa32-regs.h pa/pa32-linux.h"
1723 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1724 d_target_objs="${d_target_objs} pa-d.o"
1727 target_cpu_default="MASK_PA_11"
1728 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1729 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1730 extra_options="${extra_options} openbsd.opt"
1731 tmake_file="pa/t-pa"
1732 d_target_objs="${d_target_objs} pa-d.o"
1737 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1738 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} \
1739 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1740 tmake_file="${tmake_file}"
1741 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1742 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1744 hppa[12]*-*-hpux10*)
1746 hppa1.1-*-* | hppa2*-*-*)
1747 target_cpu_default="MASK_PA_11"
1750 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1751 pa/pa-hpux.h pa/pa-hpux10.h"
1752 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1755 tm_file="${tm_file} pa/pa-hpux1010.h"
1756 extra_options="${extra_options} pa/pa-hpux1010.opt"
1759 use_gcc_stdint=provide
1760 tm_file="${tm_file} hpux-stdint.h"
1761 tmake_file="pa/t-pa t-slibgcc"
1762 d_target_objs="${d_target_objs} pa-d.o"
1763 case ${enable_threads} in
1765 if test x$have_pthread_h = xyes ; then
1766 tmake_file="${tmake_file} pa/t-dce-thr"
1770 tmake_file="${tmake_file} pa/t-dce-thr"
1775 if test "x$with_dwarf2" != x; then
1776 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1781 target_cpu_default="MASK_PA_11|MASK_PA_20"
1782 if test x$gnu_ld = xyes
1784 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1786 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1787 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1791 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1792 extra_options="${extra_options} pa/pa-hpux1111.opt"
1795 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1796 extra_options="${extra_options} pa/pa-hpux1131.opt"
1799 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1802 extra_options="${extra_options} pa/pa-hpux.opt \
1803 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1804 tmake_file="pa/t-pa t-slibgcc"
1805 d_target_objs="${d_target_objs} pa-d.o"
1806 case x${enable_threads} in
1814 use_gcc_stdint=provide
1815 tm_file="${tm_file} hpux-stdint.h"
1819 tm_file="${tm_file} hpux-stdint.h"
1823 hppa[12]*-*-hpux11*)
1825 hppa1.1-*-* | hppa2*-*-*)
1826 target_cpu_default="MASK_PA_11"
1829 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1830 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1831 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1835 tm_file="${tm_file} pa/pa-hpux1111.h"
1836 extra_options="${extra_options} pa/pa-hpux1111.opt"
1839 tm_file="${tm_file} pa/pa-hpux1131.h"
1840 extra_options="${extra_options} pa/pa-hpux1131.opt"
1843 tmake_file="pa/t-pa t-slibgcc"
1844 d_target_objs="${d_target_objs} pa-d.o"
1845 case x${enable_threads} in
1854 use_gcc_stdint=provide
1855 tm_file="${tm_file} hpux-stdint.h"
1859 tm_file="${tm_file} hpux-stdint.h"
1862 if test "x$with_dwarf2" != x; then
1863 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1867 i[34567]86-*-darwin1[89]*)
1868 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1870 i[34567]86-*-darwin*)
1872 # Baseline choice for a machine that allows m64 support.
1873 with_cpu=${with_cpu:-core2}
1874 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1875 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
1877 x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
1879 with_cpu=${with_cpu:-core2}
1880 tmake_file="${tmake_file} t-slibgcc"
1883 with_cpu=${with_cpu:-core2}
1884 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1885 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
1887 i[34567]86-*-elfiamcu)
1888 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1891 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1894 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1897 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rtemself.h rtems.h"
1900 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1903 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rdos.h i386/rdos64.h"
1904 tmake_file="i386/t-i386elf t-svr4"
1906 i[34567]86-*-dragonfly*)
1907 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1908 tmake_file="${tmake_file} i386/t-crtstuff"
1910 x86_64-*-dragonfly*)
1911 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/x86-64.h i386/dragonfly.h"
1912 tmake_file="${tmake_file} i386/t-crtstuff"
1914 i[34567]86-*-freebsd*)
1915 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1918 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
1920 i[34567]86-*-netbsdelf*)
1921 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1922 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1925 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1926 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1928 i[34567]86-*-openbsd*)
1929 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1930 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1931 extra_options="${extra_options} openbsd.opt"
1936 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1937 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1938 extra_options="${extra_options} openbsd.opt"
1942 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1943 # Intel 80386's running GNU/*
1944 # with ELF format using glibc 2
1945 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1947 i[34567]86-*-linux*)
1948 tm_file="${tm_file} linux.h linux-android.h"
1949 extra_options="${extra_options} linux-android.opt"
1950 if test x$enable_targets = xall; then
1951 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1952 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1953 tmake_file="${tmake_file} i386/t-linux64"
1954 x86_multilibs="${with_multilib_list}"
1955 if test "$x86_multilibs" = "default"; then
1956 x86_multilibs="m64,m32"
1958 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1959 for x86_multilib in ${x86_multilibs}; do
1960 case ${x86_multilib} in
1962 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1965 echo "--with-multilib-list=${x86_with_multilib} not supported."
1969 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1971 if test x$with_cpu = x; then
1972 if test x$with_cpu_64 = x; then
1976 case " $x86_cpus $x86_archs $x86_64_archs " in
1980 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1981 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1987 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1990 i[34567]86-*-kfreebsd*-gnu)
1991 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1993 i[34567]86-*-kopensolaris*-gnu)
1994 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1997 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
2001 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
2002 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
2003 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
2006 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
2007 extra_options="${extra_options} linux-android.opt"
2009 x86_64-*-kfreebsd*-gnu)
2010 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
2013 tmake_file="${tmake_file} i386/t-linux64"
2014 x86_multilibs="${with_multilib_list}"
2015 if test "$x86_multilibs" = "default"; then
2018 x86_multilibs="mx32"
2021 x86_multilibs="m64,m32"
2025 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
2026 for x86_multilib in ${x86_multilibs}; do
2027 case ${x86_multilib} in
2029 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
2032 echo "--with-multilib-list=${x86_with_multilib} not supported."
2036 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2038 i[34567]86-pc-msdosdjgpp*)
2039 xm_file=i386/xm-djgpp.h
2040 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
2041 native_system_header_dir=/dev/env/DJDIR/include
2042 extra_options="${extra_options} i386/djgpp.opt"
2047 i[34567]86-*-lynxos*)
2049 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
2050 tmake_file="${tmake_file} t-lynx"
2051 extra_options="${extra_options} lynx.opt"
2056 i[34567]86-*-nto-qnx*)
2057 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
2058 extra_options="${extra_options} i386/nto.opt"
2062 i[34567]86-*-rtems*)
2063 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h i386/rtemself.h rtems.h newlib-stdint.h"
2064 tmake_file="${tmake_file} i386/t-rtems"
2066 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
2067 # Set default arch_32 to pentium4, tune_32 to generic like the other
2068 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
2069 with_arch_32=${with_arch_32:-pentium4}
2070 with_tune_32=${with_tune_32:-generic}
2071 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
2072 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2073 tmake_file="$tmake_file i386/t-sol2"
2075 if test x$with_cpu = x; then
2076 if test x$with_cpu_64 = x; then
2080 case " $x86_cpus $x86_archs $x86_64_archs " in
2084 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2085 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2091 i[4567]86-wrs-vxworks*|x86_64-wrs-vxworks7*)
2092 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
2096 tm_file="${tm_file} i386/x86-64.h"
2099 tm_file="${tm_file} vx-common.h"
2102 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2103 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2106 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2107 tmake_file="${tmake_file} i386/t-vxworks"
2111 i[34567]86-*-cygwin*)
2112 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h i386/cygwin-stdint.h"
2113 xm_file=i386/xm-cygwin.h
2114 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2115 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2116 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2117 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2118 c_target_objs="${c_target_objs} msformat-c.o"
2119 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2120 if test x$enable_threads = xyes; then
2123 default_use_cxa_atexit=yes
2128 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h i386/cygwin-w64.h i386/cygwin-stdint.h"
2129 xm_file=i386/xm-cygwin.h
2130 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
2131 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2132 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2133 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2134 c_target_objs="${c_target_objs} msformat-c.o"
2135 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2136 if test x$enable_threads = xyes; then
2139 default_use_cxa_atexit=yes
2141 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2143 i[34567]86-*-mingw* | x86_64-*-mingw*)
2144 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
2145 xm_file=i386/xm-mingw32.h
2146 c_target_objs="${c_target_objs} winnt-c.o"
2147 cxx_target_objs="${cxx_target_objs} winnt-c.o"
2148 target_has_targetcm="yes"
2150 x86_64-*-* | *-w64-*)
2156 if test x$enable_threads = xposix ; then
2157 tm_file="${tm_file} i386/mingw-pthread.h"
2159 tm_file="${tm_file} i386/mingw32.h"
2160 # This makes the logic if mingw's or the w64 feature set has to be used
2163 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2164 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2165 tm_file="${tm_file} i386/mingw-w64.h"
2166 if test x$enable_targets = xall; then
2167 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2168 if test x$with_cpu = x; then
2169 if test x$with_cpu_64 = x; then
2173 case " $x86_cpus $x86_archs $x86_64_archs " in
2177 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2178 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2188 tm_file="${tm_file} i386/mingw-stdint.h"
2189 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2192 tmake_file="${tmake_file} i386/t-mingw-w64"
2195 tmake_file="${tmake_file} i386/t-mingw-w32"
2198 native_system_header_dir=/mingw/include
2199 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2200 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2203 extra_options="${extra_options} i386/mingw-w64.opt"
2208 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2209 c_target_objs="${c_target_objs} msformat-c.o"
2210 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2213 default_use_cxa_atexit=yes
2215 case ${enable_threads} in
2225 tm_file="${tm_file} i386/crtdll.h"
2227 *mingw32msv* | *mingw*)
2232 tmake_file="${tmake_file} i386/t-x86_64-elf"
2233 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2236 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2237 tmake_file="ia64/t-ia64"
2238 target_cpu_default="0"
2239 if test x$gas = xyes
2241 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2243 if test x$gnu_ld = xyes
2245 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2249 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2250 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2251 tmake_file="${tmake_file} ia64/t-ia64"
2254 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2255 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2256 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2259 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
2260 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2261 target_cpu_default="MASK_GNU_AS"
2262 case x$enable_threads in
2268 c_target_objs="ia64-c.o"
2269 cxx_target_objs="ia64-c.o"
2270 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2272 tm_file="${tm_file} hpux-stdint.h"
2275 tm_file="${tm_file} ia64/hpux-unix2003.h"
2280 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2281 tmake_file="${tmake_file} ia64/t-ia64"
2282 target_cpu_default="0"
2283 if test x$gas = xyes
2285 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2287 extra_options="${extra_options} ia64/vms.opt"
2290 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2291 out_file=iq2000/iq2000.c
2292 md_file=iq2000/iq2000.md
2295 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2296 tmake_file="${tmake_file} lm32/t-lm32"
2299 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2300 tmake_file="${tmake_file} lm32/t-lm32"
2301 tmake_file="${tmake_file} lm32/t-rtems"
2304 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2305 tmake_file="${tmake_file} lm32/t-lm32"
2308 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2311 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2314 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
2315 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2317 if test x$enable_threads = xyes; then
2322 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
2323 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2325 if test x$enable_threads = xyes; then
2329 m68k-*-elf* | fido-*-elf*)
2332 # Check that $with_cpu makes sense.
2337 echo "Cannot accept --with-cpu=$with_cpu"
2344 default_m68k_cpu=68020
2348 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h newlib-stdint.h m68k/m68kemb.h m68k/m68020-elf.h"
2349 tm_defines="${tm_defines} MOTOROLA=1"
2350 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2351 # Add multilibs for targets other than fido.
2356 tmake_file="$tmake_file m68k/t-mlibs"
2361 default_m68k_cpu=68020
2363 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2364 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2365 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2368 default_m68k_cpu=68020
2370 # needed to unconfuse gdb
2371 tm_defines="${tm_defines} OBSD_OLD_GAS"
2372 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
2373 extra_options="${extra_options} openbsd.opt"
2374 tmake_file="t-openbsd m68k/t-openbsd"
2375 # we need collect2 until our bug is fixed...
2378 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2379 # with uClibc, using the new GNU/Linux-style
2381 default_m68k_cpu=68020
2383 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h"
2384 extra_options="${extra_options} m68k/uclinux.opt"
2385 tm_defines="${tm_defines} MOTOROLA=1"
2386 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2388 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2389 # with ELF format using glibc 2
2390 # aka the GNU/Linux C library 6.
2391 default_m68k_cpu=68020
2393 with_arch=${with_arch:-m68k}
2394 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2395 extra_options="${extra_options} m68k/ieee.opt"
2396 tm_defines="${tm_defines} MOTOROLA=1"
2397 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2400 default_m68k_cpu=68020
2402 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2403 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h newlib-stdint.h"
2404 tm_defines="${tm_defines} MOTOROLA=1"
2407 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2408 tmake_file=mcore/t-mcore
2414 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2417 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2420 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2421 tm_file="${tm_file} glibc-stdint.h"
2422 c_target_objs="${c_target_objs} microblaze-c.o"
2423 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2424 tmake_file="${tmake_file} microblaze/t-microblaze"
2425 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2427 microblaze*-*-rtems*)
2430 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2433 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2436 tm_file="${tm_file} dbxelf.h"
2437 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2438 c_target_objs="${c_target_objs} microblaze-c.o"
2439 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2440 tmake_file="${tmake_file} microblaze/t-microblaze"
2441 tmake_file="${tmake_file} microblaze/t-rtems"
2446 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2449 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2452 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2453 c_target_objs="${c_target_objs} microblaze-c.o"
2454 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2455 tmake_file="${tmake_file} microblaze/t-microblaze"
2458 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2459 case "x${enable_multilib}" in
2461 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2462 *) echo "Unknown value for enable_multilib"; exit 1
2464 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2467 # Force .init_array support. The configure script cannot always
2468 # automatically detect that GAS supports it, yet we require it.
2469 gcc_cv_initfini_array=yes
2471 riscv*-*-elf* | riscv*-*-rtems*)
2472 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2475 tm_file="${tm_file} rtems.h riscv/rtems.h"
2476 tmake_file="${tmake_file} riscv/t-rtems"
2479 if test "x${with_multilib_generator}" == xdefault; then
2480 case "x${enable_multilib}" in
2482 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2483 *) echo "Unknown value for enable_multilib"; exit 1
2487 tmake_file="${tmake_file} riscv/t-riscv"
2490 # Force .init_array support. The configure script cannot always
2491 # automatically detect that GAS supports it, yet we require it.
2492 gcc_cv_initfini_array=yes
2495 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2496 tmake_file="${tmake_file} riscv/t-riscv"
2499 # Force .init_array support. The configure script cannot always
2500 # automatically detect that GAS supports it, yet we require it.
2501 gcc_cv_initfini_array=yes
2503 mips*-*-netbsd*) # NetBSD/mips, either endian.
2504 target_cpu_default="MASK_ABICALLS"
2505 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2506 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2509 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h mips/mti-linux.h"
2510 extra_options="${extra_options} linux-android.opt"
2511 tmake_file="${tmake_file} mips/t-img-linux"
2512 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2513 with_arch_32="mips32r6"
2514 with_arch_64="mips64r6"
2519 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h mips/mti-linux.h"
2520 extra_options="${extra_options} linux-android.opt"
2521 tmake_file="${tmake_file} mips/t-mti-linux"
2522 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2523 with_arch_32="mips32r2"
2524 with_arch_64="mips64r2"
2528 mips*-*-linux*) # Linux MIPS, either endian.
2529 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h"
2530 extra_options="${extra_options} linux-android.opt"
2533 default_mips_arch=mips32r6
2536 default_mips_arch=mips32r2
2539 default_mips_arch=mips32
2541 mips64el-st-linux-gnu)
2542 default_mips_abi=n32
2543 tm_file="${tm_file} mips/st.h"
2544 tmake_file="${tmake_file} mips/t-st"
2545 enable_mips_multilibs="yes"
2547 mips64octeon*-*-linux*)
2548 default_mips_abi=n32
2549 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2550 target_cpu_default=MASK_SOFT_FLOAT_ABI
2551 enable_mips_multilibs="yes"
2553 mipsisa64r6*-*-linux*)
2554 default_mips_abi=n32
2555 default_mips_arch=mips64r6
2556 enable_mips_multilibs="yes"
2558 mipsisa64r2*-*-linux*)
2559 default_mips_abi=n32
2560 default_mips_arch=mips64r2
2561 enable_mips_multilibs="yes"
2563 mips64*-*-linux* | mipsisa64*-*-linux*)
2564 default_mips_abi=n32
2565 enable_mips_multilibs="yes"
2568 if test x$enable_targets = xall; then
2569 enable_mips_multilibs="yes"
2571 if test x$enable_mips_multilibs = xyes; then
2572 tmake_file="${tmake_file} mips/t-linux64"
2576 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2577 tmake_file="mips/t-mti-elf"
2578 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2579 with_arch_32="mips32r2"
2580 with_arch_64="mips64r2"
2583 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2584 tmake_file="mips/t-img-elf"
2585 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2586 with_arch_32="mips32r6"
2587 with_arch_64="mips64r6"
2590 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2591 tmake_file="mips/t-sde"
2592 extra_options="${extra_options} mips/sde.opt"
2593 case "${with_newlib}" in
2595 # newlib / libgloss.
2598 # MIPS toolkit libraries.
2599 tm_file="$tm_file mips/sdemtk.h"
2600 tmake_file="$tmake_file mips/t-sdemtk"
2601 case ${enable_threads} in
2603 thread_file='mipssde'
2610 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2613 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2616 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2619 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2622 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2625 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2629 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2630 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2631 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2632 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2633 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2634 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2635 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2636 tmake_file="mips/t-isa3264"
2639 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2642 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2645 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2648 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2651 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2654 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2658 mipsisa32*-*-elfoabi*)
2659 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2660 tm_file="${tm_file} mips/elfoabi.h"
2662 mipsisa64*-*-elfoabi*)
2663 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2664 tm_file="${tm_file} mips/elfoabi.h"
2667 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2671 mipsisa64sr71k-*-elf*)
2672 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2673 tmake_file=mips/t-sr71k
2674 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2676 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2677 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2678 tmake_file="mips/t-elf mips/t-sb1"
2679 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2681 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2682 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2683 tmake_file="mips/t-elf"
2685 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2686 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2687 tmake_file="mips/t-elf"
2688 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2690 mips64-*-elf* | mips64el-*-elf*)
2691 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2692 tmake_file="mips/t-elf"
2693 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2695 mips64vr-*-elf* | mips64vrel-*-elf*)
2696 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2697 tmake_file=mips/t-vr
2698 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2700 mips64orion-*-elf* | mips64orionel-*-elf*)
2701 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2702 tmake_file="mips/t-elf"
2703 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2706 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2707 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2710 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2711 tmake_file="${tmake_file} mips/t-vxworks"
2713 mipstx39-*-elf* | mipstx39el-*-elf*)
2714 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2715 tmake_file="mips/t-r3900"
2717 mmix-knuth-mmixware)
2718 tm_file="${tm_file} newlib-stdint.h"
2722 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2723 if test x$stabs = xyes
2725 tm_file="${tm_file} dbx.h"
2731 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2732 c_target_objs="msp430-c.o"
2733 cxx_target_objs="msp430-c.o"
2734 tmake_file="${tmake_file} msp430/t-msp430"
2735 extra_objs="${extra_objs} msp430-devices.o"
2736 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2737 # Enable .init_array unless it has been explicitly disabled.
2738 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2739 # code since mid-2019 expects it.
2740 if test x${disable_initfini_array} != xyes; then
2741 gcc_cv_initfini_array=yes
2745 # __cxa_atexit increases code size, and we don't need to support
2746 # dynamic shared objects on MSP430, so regular Newlib atexit is a
2747 # fine replacement as it also supports registration of more than 32
2749 default_use_cxa_atexit=no
2750 # This target does not match the generic *-*-elf case above which
2751 # sets use_gcc_stdint=wrap, so explicitly set it here.
2757 target_cpu_default="0"
2758 tm_defines="${tm_defines}"
2763 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2764 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2769 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2770 tmake_file="nds32/t-nds32 nds32/t-elf"
2773 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2774 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2775 gcc_cv_initfini_array=yes
2779 # Handle --enable-default-relax setting.
2780 if test x${enable_default_relax} = xyes; then
2781 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2783 # Handle --with-ext-dsp
2784 if test x${with_ext_dsp} = xyes; then
2785 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2789 tm_file="elfos.h ${tm_file}"
2790 tmake_file="${tmake_file} nios2/t-nios2"
2793 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2796 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2797 extra_options="${extra_options} nios2/elf.opt"
2800 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2801 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2806 tm_file="${tm_file} newlib-stdint.h"
2808 tmake_file="nvptx/t-nvptx"
2809 if test x$enable_as_accelerator = xyes; then
2810 extra_programs="${extra_programs} mkoffload\$(exeext)"
2811 tm_file="${tm_file} nvptx/offload.h"
2815 tm_file="elfos.h ${tm_file}"
2816 tmake_file="${tmake_file} or1k/t-or1k"
2817 # Force .init_array support. The configure script cannot always
2818 # automatically detect that GAS supports it, yet we require it.
2819 gcc_cv_initfini_array=yes
2821 # Handle --with-multilib-list=...
2822 or1k_multilibs="${with_multilib_list}"
2823 if test "$or1k_multilibs" = "default"; then
2824 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2826 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2827 for or1k_multilib in ${or1k_multilibs}; do
2828 case ${or1k_multilib} in
2829 mcmov | msext | msfimm | \
2831 mhard-float | mdouble-float | munordered-float | msoft-float | \
2832 mhard-div | mhard-mul | \
2833 msoft-div | msoft-mul )
2834 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2837 echo "--with-multilib-list=${with_multilib_list} not supported."
2841 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2845 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2846 tm_file="${tm_file} or1k/linux.h"
2849 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2850 extra_options="${extra_options} or1k/elf.opt"
2853 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2854 tmake_file="${tmake_file} or1k/t-rtems"
2859 tm_file="${tm_file} newlib-stdint.h"
2862 # port not yet contributed
2863 #powerpc-*-openbsd*)
2864 # tmake_file="${tmake_file} rs6000/t-fprules"
2868 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2870 *-darwin1[0-9]* | *-darwin9*)
2871 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2872 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2875 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2876 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2877 tm_file="${tm_file} ${cpu_type}/darwin8.h"
2880 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2883 # Earlier - ingle arch, with 32b only
2884 # OS X 10.0, the first edition is Darwin4
2887 tmake_file="${tmake_file} t-slibgcc"
2889 powerpc64-*-darwin*)
2890 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2891 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2892 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2894 powerpc*-*-freebsd*)
2895 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2896 extra_options="${extra_options} rs6000/sysv4.opt"
2897 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2900 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2904 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2905 tmake_file="${tmake_file} rs6000/t-freebsd64"
2906 extra_options="${extra_options} rs6000/linux64.opt"
2907 if test $fbsd_major -ge 13; then
2908 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2912 if test $fbsd_major -ge 13; then
2913 tm_file="rs6000/secureplt.h ${tm_file}"
2915 tm_file="${tm_file} rs6000/freebsd.h"
2920 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2921 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2922 tmake_file="${tmake_file} rs6000/t-netbsd"
2923 extra_options="${extra_options} rs6000/sysv4.opt"
2925 powerpc-*-eabisimaltivec*)
2926 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h"
2927 extra_options="${extra_options} rs6000/sysv4.opt"
2928 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2932 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
2933 extra_options="${extra_options} rs6000/sysv4.opt"
2934 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2938 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2939 extra_options="${extra_options} rs6000/sysv4.opt"
2940 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2942 powerpc-*-eabialtivec*)
2943 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
2944 extra_options="${extra_options} rs6000/sysv4.opt"
2945 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2949 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h"
2950 extra_options="${extra_options} rs6000/sysv4.opt"
2951 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2955 tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/rtems.h rtems.h"
2956 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2957 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2960 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2961 extra_options="${extra_options} rs6000/sysv4.opt"
2962 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2963 extra_objs="$extra_objs rs6000-linux.o"
2966 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2968 case ${target}:${with_cpu} in
2969 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2971 maybe_biarch=${cpu_is_64bit}
2972 case ${enable_targets} in
2973 *powerpc64*) maybe_biarch=yes ;;
2974 all) maybe_biarch=yes ;;
2976 case ${target}:${enable_targets}:${maybe_biarch} in
2977 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2978 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2979 | powerpcle-*:*powerpc64le*:yes)
2980 if test x$cpu_is_64bit = xyes; then
2981 tm_file="${tm_file} rs6000/default64.h"
2983 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2984 tmake_file="$tmake_file rs6000/t-linux64"
2987 tmake_file="$tmake_file rs6000/t-linux64le"
2988 case ${enable_targets} in
2989 all | *powerpc64-* | *powerpc-*)
2990 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2993 case ${enable_targets} in
2994 all | *powerpc64le-* | *powerpcle-*)
2995 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2998 extra_options="${extra_options} rs6000/linux64.opt"
3001 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
3002 extra_options="${extra_options} rs6000/linux64.opt"
3003 tmake_file="${tmake_file} rs6000/t-linux"
3006 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
3007 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
3011 powerpc*-*-linux*ppc476*)
3012 tm_file="${tm_file} rs6000/476.h"
3013 extra_options="${extra_options} rs6000/476.opt" ;;
3014 powerpc*-*-linux*altivec*)
3015 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
3019 enable_secureplt=yes ;;
3021 if test x${enable_secureplt} = xyes; then
3022 tm_file="rs6000/secureplt.h ${tm_file}"
3025 powerpc*-wrs-vxworks7r*)
3027 # Wind River 7 post SR0600 is mostly like Linux so we setup
3028 # our config in a very similar fashion and adjust to a few
3031 # The system compiler is configured with secureplt by default.
3032 tm_file="${tm_file} rs6000/secureplt.h"
3034 tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h"
3035 tm_file="${tm_file} rs6000/sysv4.h rs6000/biarch64.h rs6000/default64.h rs6000/linux64.h"
3036 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3038 extra_options="${extra_options} rs6000/sysv4.opt linux.opt rs6000/linux64.opt"
3040 tmake_file="${tmake_file} t-linux rs6000/t-linux64 rs6000/t-fprules rs6000/t-ppccomm"
3041 tmake_file="${tmake_file} rs6000/t-vxworks"
3043 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
3044 extra_objs="$extra_objs linux.o rs6000-linux.o"
3046 powerpc-wrs-vxworks*)
3047 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
3048 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
3049 extra_options="${extra_options} rs6000/sysv4.opt"
3050 extra_headers="${extra_headers} ppc-asm.h"
3053 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
3054 tmake_file="${tmake_file} rs6000/t-vxworksmils"
3057 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
3058 tmake_file="${tmake_file} rs6000/t-vxworksae"
3061 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3067 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3068 tmake_file="t-lynx rs6000/t-lynx"
3069 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3075 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
3076 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3077 extra_options="${extra_options} rs6000/sysv4.opt"
3079 powerpcle-*-eabisim*)
3080 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h"
3081 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3082 extra_options="${extra_options} rs6000/sysv4.opt"
3086 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h"
3087 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3088 extra_options="${extra_options} rs6000/sysv4.opt"
3092 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3093 tmake_file="${tmake_file} pru/t-pru"
3094 extra_objs="pru-pragma.o pru-passes.o"
3097 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
3098 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
3099 tmake_file="rs6000/t-aix52 t-slibgcc"
3100 extra_options="${extra_options} rs6000/aix64.opt"
3104 default_use_cxa_atexit=yes
3106 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3107 tmake_file="rs6000/t-aix52 t-slibgcc"
3108 if test x$cpu_is_64bit = xyes; then
3109 tm_file="${tm_file} rs6000/biarch64.h"
3110 tmake_file="rs6000/t-aix64 t-slibgcc"
3112 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3113 extra_options="${extra_options} rs6000/aix64.opt"
3117 default_use_cxa_atexit=yes
3119 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3120 tmake_file="rs6000/t-aix52 t-slibgcc"
3121 if test x$cpu_is_64bit = xyes; then
3122 tm_file="${tm_file} rs6000/biarch64.h"
3123 tmake_file="rs6000/t-aix64 t-slibgcc"
3125 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3126 extra_options="${extra_options} rs6000/aix64.opt"
3130 default_use_cxa_atexit=yes
3133 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3134 target_has_targetm_common=no
3135 c_target_objs="rl78-c.o"
3136 cxx_target_objs="rl78-c.o"
3137 tmake_file="${tmake_file} rl78/t-rl78"
3140 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3141 tmake_file="${tmake_file} rx/t-rx"
3142 extra_options="${extra_options} rx/elf.opt"
3145 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3146 tmake_file="${tmake_file} rx/t-linux"
3149 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3150 c_target_objs="${c_target_objs} s390-c.o"
3151 cxx_target_objs="${cxx_target_objs} s390-c.o"
3152 if test x$enable_targets = xall; then
3153 tmake_file="${tmake_file} s390/t-linux64"
3155 tmake_file="${tmake_file} s390/t-s390"
3158 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3159 tm_p_file="linux-protos.h s390/s390-protos.h"
3160 c_target_objs="${c_target_objs} s390-c.o"
3161 cxx_target_objs="${cxx_target_objs} s390-c.o"
3162 md_file=s390/s390.md
3163 extra_modes=s390/s390-modes.def
3164 out_file=s390/s390.c
3165 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3168 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h glibc-stdint.h s390/tpf.h"
3169 tm_p_file=s390/s390-protos.h
3170 c_target_objs="${c_target_objs} s390-c.o"
3171 cxx_target_objs="${cxx_target_objs} s390-c.o"
3172 md_file=s390/s390.md
3173 extra_modes=s390/s390-modes.def
3174 out_file=s390/s390.c
3176 extra_options="${extra_options} s390/tpf.opt"
3177 tmake_file="${tmake_file} s390/t-s390"
3179 sh-*-elf* | sh[12346l]*-*-elf* | \
3180 sh-*-linux* | sh[2346lbe]*-*-linux* | \
3181 sh-*-netbsdelf* | shl*-*-netbsdelf*)
3182 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3183 if test x${with_endian} = x; then
3185 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3186 shbe-*-* | sheb-*-*) with_endian=big,little ;;
3187 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
3188 shl* | sh*-*-linux* | \
3189 sh-superh-elf) with_endian=little,big ;;
3190 sh[1234]*-*-*) with_endian=big ;;
3191 *) with_endian=big,little ;;
3194 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3195 # First word : the default endian.
3196 # Second word: the secondary endian (optional).
3197 case ${with_endian} in
3198 big) TM_ENDIAN_CONFIG=mb ;;
3199 little) TM_ENDIAN_CONFIG=ml ;;
3200 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
3201 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
3202 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
3204 case ${with_endian} in
3205 little*) tm_file="sh/little.h ${tm_file}" ;;
3207 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
3209 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
3210 if test x$enable_fdpic = xyes; then
3211 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3213 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3215 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3216 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3219 sh*-superh-elf) if test x$with_libgloss != xno; then
3221 tm_file="${tm_file} sh/newlib.h"
3223 tm_file="${tm_file} sh/embed-elf.h"
3224 tm_file="${tm_file} sh/superh.h"
3225 extra_options="${extra_options} sh/superh.opt" ;;
3226 *) if test x$with_newlib = xyes \
3227 && test x$with_libgloss = xyes; then
3228 tm_file="${tm_file} sh/newlib.h"
3230 tm_file="${tm_file} sh/embed-elf.h" ;;
3236 tm_file="${tm_file} newlib-stdint.h"
3239 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3240 case `echo ${target} | sed 's/e[lb]-/-/'` in
3241 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
3242 sh4a_single*) sh_cpu_target=sh4a-single ;;
3243 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
3244 sh4al) sh_cpu_target=sh4al ;;
3245 sh4a*) sh_cpu_target=sh4a ;;
3246 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3247 sh4_single*) sh_cpu_target=sh4-single ;;
3248 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3249 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3250 sh3e*) sh_cpu_target=sh3e ;;
3251 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3252 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3253 sh2a_single*) sh_cpu_target=sh2a-single ;;
3254 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3255 sh2a*) sh_cpu_target=sh2a ;;
3256 sh2e*) sh_cpu_target=sh2e ;;
3257 sh2*) sh_cpu_target=sh2 ;;
3258 *) sh_cpu_target=sh1 ;;
3260 # did the user say --without-fp ?
3261 if test x$with_fp = xno; then
3262 case ${sh_cpu_target} in
3264 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3265 sh4*) sh_cpu_target=sh4-nofpu ;;
3266 sh3*) sh_cpu_target=sh3 ;;
3267 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3268 sh2*) sh_cpu_target=sh2 ;;
3269 *) echo --without-fp not available for $target: ignored
3271 tm_defines="$tm_defines STRICT_NOFPU=1"
3273 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3274 case $sh_cpu_default in
3275 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3276 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3277 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3278 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3279 "") sh_cpu_default=${sh_cpu_target} ;;
3280 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3282 sh_multilibs=${with_multilib_list}
3283 if test "$sh_multilibs" = "default" ; then
3285 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3286 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3287 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3288 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3289 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3291 if test x$with_fp = xno; then
3292 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`"
3295 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3296 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3297 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3298 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3299 for sh_multilib in ${sh_multilibs}; do
3300 case ${sh_multilib} in
3301 m1 | m2 | m2e | m3 | m3e | \
3302 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3303 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3304 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3305 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3306 # It is passed to MULTIILIB_OPTIONS verbatim.
3307 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3308 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3310 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3311 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3312 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3314 echo "with_multilib_list=${sh_multilib} not supported."
3319 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3320 if test x${enable_incomplete_targets} = xyes ; then
3321 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3323 tm_file="$tm_file ./sysroot-suffix.h"
3324 tmake_file="$tmake_file t-sysroot-suffix"
3327 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3328 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3331 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3332 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3335 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3338 tmake_file="sparc/t-sparc sparc/t-leon"
3341 tmake_file="sparc/t-sparc sparc/t-leon3"
3344 tmake_file="sparc/t-sparc sparc/t-elf"
3349 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3350 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3353 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3354 extra_options="${extra_options} sparc/long-double-switch.opt"
3357 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3360 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3363 tmake_file="${tmake_file} sparc/t-sparc"
3366 if test x$enable_targets = xall; then
3367 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3368 tmake_file="${tmake_file} sparc/t-linux64"
3370 tm_file="${tm_file} sparc/linux.h"
3371 tmake_file="${tmake_file} sparc/t-linux"
3375 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3376 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3377 extra_options="${extra_options} sparc/long-double-switch.opt"
3378 tmake_file="${tmake_file} sparc/t-sparc"
3381 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3383 sparc64-*-* | sparcv9-*-*)
3384 tm_file="sparc/default64.h ${tm_file}"
3387 test x$with_cpu != x || with_cpu=v9
3390 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3393 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3394 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3397 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3398 extra_options="${extra_options}"
3399 tmake_file="${tmake_file} sparc/t-sparc"
3402 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3403 extra_options="${extra_options}"
3404 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3407 tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h"
3408 extra_options="${extra_options} sparc/long-double-switch.opt"
3409 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3411 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3412 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3413 extra_options="${extra_options} sparc/long-double-switch.opt"
3414 case "x$with_cpu" in
3416 x) with_cpu=ultrasparc ;;
3417 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3419 tmake_file="${tmake_file} sparc/t-sparc"
3422 tm_file="sparc/biarch64.h ${tm_file}"
3423 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3424 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3425 extra_options="${extra_options} sparc/long-double-switch.opt"
3426 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3429 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3430 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3431 extra_options="${extra_options} openbsd.opt"
3432 extra_options="${extra_options}"
3435 tmake_file="${tmake_file} sparc/t-sparc"
3438 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3439 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3440 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3444 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3445 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3446 tm_file="${tm_file} ./sysroot-suffix.h"
3447 tmake_file="t-sysroot-suffix t-slibgcc"
3448 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3452 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3453 tmake_file="${tmake_file} tilegx/t-tilegx"
3454 extra_objs="${extra_objs} mul-tables.o"
3455 c_target_objs="${c_target_objs} tilegx-c.o"
3456 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3457 extra_headers="feedback.h"
3460 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3465 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3466 tmake_file="${tmake_file} tilepro/t-tilepro"
3467 extra_objs="${extra_objs} mul-tables.o"
3468 c_target_objs="${c_target_objs} tilepro-c.o"
3469 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3470 extra_headers="feedback.h"
3473 target_cpu_default="TARGET_CPU_generic"
3474 tm_file="dbxelf.h elfos.h v850/v850.h"
3475 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3476 tmake_file="${tmake_file} v850/t-v850"
3477 tmake_file="${tmake_file} v850/t-rtems"
3479 c_target_objs="v850-c.o"
3480 cxx_target_objs="v850-c.o"
3485 target_cpu_default="TARGET_CPU_v850e3v5"
3488 target_cpu_default="TARGET_CPU_v850e2v3"
3491 target_cpu_default="TARGET_CPU_v850e2"
3493 v850e1-*-* | v850es-*-*)
3494 target_cpu_default="TARGET_CPU_v850e1"
3497 target_cpu_default="TARGET_CPU_v850e"
3500 target_cpu_default="TARGET_CPU_generic"
3503 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3504 if test x$stabs = xyes
3506 tm_file="${tm_file} dbx.h"
3509 c_target_objs="v850-c.o"
3510 cxx_target_objs="v850-c.o"
3514 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3515 extra_options="${extra_options} vax/elf.opt"
3518 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3519 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3520 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3523 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3524 extra_options="${extra_options} openbsd.opt"
3528 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3529 tmake_file="visium/t-visium visium/t-crtstuff"
3532 # For historical reasons, the target files omit the 'x'.
3533 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3534 tm_p_file=stormy16/stormy16-protos.h
3535 tm_d_file="elfos.h stormy16/stormy16.h"
3536 md_file=stormy16/stormy16.md
3537 out_file=stormy16/stormy16.c
3538 extra_options=stormy16/stormy16.opt
3539 tmake_file="stormy16/t-stormy16"
3542 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3543 extra_options="${extra_options} xtensa/elf.opt"
3546 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3547 tmake_file="${tmake_file} xtensa/t-xtensa"
3550 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3551 tmake_file="${tmake_file} xtensa/t-xtensa"
3552 extra_options="${extra_options} xtensa/uclinux.opt"
3555 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3560 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3561 c_target_objs="m32c-pragma.o"
3562 cxx_target_objs="m32c-pragma.o"
3565 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3566 c_target_objs="m32c-pragma.o"
3567 cxx_target_objs="m32c-pragma.o"
3570 echo "*** Configuration ${target} not supported" 1>&2
3576 i[34567]86-*-linux* | x86_64-*-linux*)
3577 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3579 i[34567]86-*-* | x86_64-*-*)
3580 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3582 powerpc*-*-* | rs6000-*-*)
3583 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3589 tmake_file="${tmake_file} t-musl"
3592 tmake_file="${tmake_file} t-uclibc"
3596 # Assume the existence of indirect function support and allow the use of the
3597 # resolver attribute.
3599 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3601 *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
3603 *-*-linux* | *-*-gnu*)
3605 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3606 default_gnu_indirect_function=yes
3612 # Build mkoffload tool
3614 *-intelmic-* | *-intelmicemul-*)
3615 tmake_file="${tmake_file} i386/t-intelmic"
3616 tm_file="${tm_file} i386/intelmic-offload.h"
3620 if [ "$target_has_targetcm" = "no" ]; then
3621 c_target_objs="$c_target_objs default-c.o"
3622 cxx_target_objs="$cxx_target_objs default-c.o"
3625 if [ "$common_out_file" = "" ]; then
3626 if [ "$target_has_targetm_common" = "yes" ]; then
3627 common_out_file="$cpu_type/$cpu_type-common.c"
3629 common_out_file="default-common.c"
3633 if [ "$target_has_targetdm" = "no" ]; then
3634 d_target_objs="$d_target_objs default-d.o"
3637 # Support for --with-cpu and related options (and a few unrelated options,
3641 echo "--with-cpu must be passed a value" 1>&2
3646 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3647 # to generic if there is no processor scheduler model for the target.
3650 arch_without_sse2=no
3651 arch_without_64bit=no
3654 if test $fbsd_major -ge 6; then
3660 arch_without_sse2=yes
3661 arch_without_64bit=yes
3666 arch_without_sse2=yes
3667 arch_without_64bit=yes
3672 arch_without_sse2=yes
3673 arch_without_64bit=yes
3678 arch_without_sse2=yes
3679 arch_without_64bit=yes
3682 arch_without_sse2=yes
3683 arch_without_64bit=yes
3684 case ${target_noncanonical} in
3697 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3707 i686-*-* | i786-*-*)
3708 case ${target_noncanonical} in
3745 amdfam10-*|barcelona-*)
3749 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3753 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3757 athlon_xp-*|athlon_mp-*|athlon_4-*)
3760 arch_without_sse2=yes
3761 arch_without_64bit=yes
3763 athlon_tbird-*|athlon-*)
3766 arch_without_sse2=yes
3771 arch_without_sse2=yes
3776 arch_without_sse2=yes
3778 pentium3-*|pentium3m-*)
3781 arch_without_sse2=yes
3783 pentium4-*|pentium4m-*)
3822 arch_without_sse2=yes
3827 arch_without_sse2=yes
3828 arch_without_64bit=yes
3833 case ${target_noncanonical} in
3870 amdfam10-*|barcelona-*)
3874 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3878 k8-*|opteron-*|athlon_64-*)
3910 # If there is no $with_cpu option, try to infer one from ${target}.
3911 # This block sets nothing except for with_cpu.
3912 if test x$with_cpu = x ; then
3914 i[34567]86-*-elfiamcu)
3917 i[34567]86-*-*|x86_64-*-*)
3935 frv-*-*linux* | frv400-*-*linux*)
3942 case "$with_arch" in
3944 with_cpu=${default_cf_cpu}
3947 with_cpu=m${default_m68k_cpu}
3963 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3972 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3974 i[34567]86-*-*|x86_64-*-*)
3975 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3976 if test x$with_cpu_32 = x; then
3977 with_cpu_32=$with_cpu
3979 if test x$with_cpu_64 = x; then
3980 with_cpu_64=$with_cpu
3988 # Support for --with-arch and related options (and a few unrelated options,
3990 case ${with_arch} in
3992 echo "--with-arch must be passed a value" 1>&2
3997 # If there is no $with_arch option, try to infer one from ${target}.
3998 # This block sets nothing except for with_arch.
3999 if test x$with_arch = x ; then
4001 i[34567]86-*-darwin*|x86_64-*-darwin*)
4002 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4003 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4005 i[34567]86-*-elfiamcu)
4009 # --with-fpmath sets the default ISA to SSE2, which is the same
4010 # ISA supported by Pentium 4.
4011 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
4020 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4028 # Avoid overriding --with-arch-32 and --with-arch-64 values.
4030 i[34567]86-*-darwin*|x86_64-*-darwin*)
4031 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4032 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4034 i[34567]86-*-*|x86_64-*-*)
4035 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
4036 if test x$with_arch_32 = x; then
4037 with_arch_32=$with_arch
4039 if test x$with_arch_64 = x; then
4040 if test $arch_without_64bit = yes; then
4041 # Set the default 64bit arch to x86-64 if the default arch
4042 # doesn't support 64bit.
4045 with_arch_64=$with_arch
4049 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
4050 # Set the default 64bit arch to x86-64 if the default arch
4051 # doesn't support 64bit and we need 64bit ISA.
4052 with_arch_32=$with_arch
4060 # Infer a default setting for --with-float.
4061 if test x$with_float = x; then
4063 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4064 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
4065 # comply with IEEE 754.
4071 # Infer a default setting for --with-fpu.
4072 if test x$with_fpu = x; then
4074 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4075 # The R5900 FPU only supports single precision.
4081 # Support --with-fpmath.
4082 if test x$with_fpmath != x; then
4084 i[34567]86-*-* | x86_64-*-*)
4085 case ${with_fpmath} in
4087 tm_file="${tm_file} i386/avxmath.h"
4090 tm_file="${tm_file} i386/ssemath.h"
4093 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4099 echo "--with-fpmath isn't supported for $target." 1>&2
4105 # Similarly for --with-schedule.
4106 if test x$with_schedule = x; then
4109 # Override default PA8000 scheduling model.
4110 with_schedule=7100LC
4115 # Infer a default setting for --with-llsc.
4116 if test x$with_llsc = x; then
4119 # The kernel emulates LL and SC where necessary.
4122 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4123 # The R5900 doesn't support LL(D) and SC(D).
4129 # Validate and mark as valid any --with options supported
4130 # by this target. In order to use a particular --with option
4131 # you must list it in supported_defaults; validating the value
4132 # is optional. This case statement should set nothing besides
4133 # supported_defaults.
4138 supported_defaults="abi cpu cpu_64 arch arch_64 tune tune_64"
4139 if test x$with_cpu_64 != x && test x$with_cpu = x; then
4140 with_cpu=$with_cpu_64
4142 if test x$with_arch_64 != x && test x$with_arch = x; then
4143 with_arch=$with_arch_64
4145 if test x$with_tune_64 != x && test x$with_tune = x; then
4146 with_tune=$with_tune_64
4148 for which in cpu arch tune; do
4149 eval "val=\$with_$which"
4150 base_val=`echo $val | sed -e 's/\+.*//'`
4151 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4153 if [ $which = arch ]; then
4154 def=aarch64-arches.def
4155 pattern=AARCH64_ARCH
4157 def=aarch64-cores.def
4158 pattern=AARCH64_CORE
4161 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
4163 # Find the base CPU or ARCH id in aarch64-cores.def or
4164 # aarch64-arches.def
4165 if [ x"$base_val" = x ] \
4166 || grep "^$pattern(\"$base_val\"," \
4167 ${srcdir}/config/aarch64/$def \
4170 if [ $which = arch ]; then
4171 base_id=`grep "^$pattern(\"$base_val\"," \
4172 ${srcdir}/config/aarch64/$def | \
4173 sed -e 's/^[^,]*,[ ]*//' | \
4175 # Extract the architecture flags from aarch64-arches.def
4176 ext_mask=`grep "^$pattern(\"$base_val\"," \
4177 ${srcdir}/config/aarch64/$def | \
4181 base_id=`grep "^$pattern(\"$base_val\"," \
4182 ${srcdir}/config/aarch64/$def | \
4183 sed -e 's/^[^,]*,[ ]*//' | \
4187 # Disallow extensions in --with-tune=cortex-a53+crc.
4188 if [ $which = tune ] && [ x"$ext_val" != x ]; then
4189 echo "Architecture extensions not supported in --with-$which=$val" 1>&2
4193 # Use the pre-processor to strip flatten the options.
4194 # This makes the format less rigid than if we use
4195 # grep and sed directly here.
4196 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4197 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4198 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4200 # Match one element inside AARCH64_OPT_EXTENSION, we
4201 # consume anything that's not a ,.
4202 elem="[ ]*\([^,]\+\)[ ]*"
4204 # Repeat the pattern for the number of entries in the
4205 # AARCH64_OPT_EXTENSION, currently 6 times.
4206 sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
4208 while [ x"$ext_val" != x ]
4210 ext_val=`echo $ext_val | sed -e 's/\+//'`
4211 ext=`echo $ext_val | sed -e 's/\+.*//'`
4212 base_ext=`echo $ext | sed -e 's/^no//'`
4213 opt_line=`echo -e "$options_parsed" | \
4214 grep "^\"$base_ext\""`
4216 if [ x"$base_ext" = x ] \
4217 || [[ -n $opt_line ]]; then
4219 # These regexp extract the elements based on
4220 # their group match index in the regexp.
4221 ext_canon=`echo -e "$opt_line" | \
4222 sed -e "s/$sed_patt/\2/"`
4223 ext_on=`echo -e "$opt_line" | \
4224 sed -e "s/$sed_patt/\3/"`
4225 ext_off=`echo -e "$opt_line" | \
4226 sed -e "s/$sed_patt/\4/"`
4228 if [ $ext = $base_ext ]; then
4230 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
4232 # Removing extension
4233 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
4238 echo "Unknown extension used in --with-$which=$val" 1>&2
4241 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4244 ext_mask="(("$ext_mask") << 6)"
4245 if [ x"$base_id" != x ]; then
4246 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
4250 # Allow --with-$which=native.
4251 if [ "$val" = native ]; then
4254 echo "Unknown $which used in --with-$which=$val" 1>&2
4262 supported_defaults="cpu tune"
4263 for which in cpu tune; do
4264 eval "val=\$with_$which"
4267 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4268 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4272 echo "Unknown CPU used in --with-$which=$val" 1>&2
4280 supported_defaults="cpu"
4282 if [ x"$with_cpu" = x ] \
4283 || grep "^ARC_CPU ($with_cpu," \
4284 ${srcdir}/config/arc/arc-cpus.def \
4289 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4295 supported_defaults="cpu endian float"
4299 supported_defaults="arch cpu float tune fpu abi mode tls"
4300 for which in cpu tune arch; do
4301 # See if it matches a supported value
4302 eval "val=\$with_$which"
4303 if [ x"$val" != x ]; then
4304 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4305 -v cmd="chk$which $val" \
4306 ${srcdir}/config/arm/arm-cpus.in`
4307 if [ "$cpu" = "error" ]; then
4308 echo "Unknown target in --with-$which=$val" 1>&2
4312 eval "target_${which}_cname=$new_val"
4313 echo "For $val real value is $new_val"
4318 case "$with_float" in
4320 | soft | hard | softfp)
4324 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4329 # see if --with-fpu matches any of the supported FPUs
4330 if [ x"$with_fpu" != x ] ; then
4332 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4333 -v cmd="chkfpu $val" \
4334 ${srcdir}/config/arm/arm-cpus.in`
4335 if [ "$fpu" = "error" ]
4337 echo "Unknown target in --with-fpu=$val" 1>&2
4344 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4348 echo "Unknown ABI used in --with-abi=$with_abi"
4353 case "$with_mode" in
4359 echo "Unknown mode used in --with-mode=$with_mode"
4370 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4375 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4376 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4380 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4381 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4385 # Add extra multilibs
4386 if test "x$with_multilib_list" != x; then
4388 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4389 if test "x${arm_multilibs}" != xdefault ; then
4390 for arm_multilib in ${arm_multilibs}; do
4391 case ${arm_multilib} in
4393 tmake_profile_file="arm/t-multilib"
4396 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4397 if test -f "${srcdir}/config/arm/${ml}"; then
4398 tmake_file="${tmake_file} arm/${ml}"
4400 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4405 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4412 if test "x${tmake_profile_file}" != x ; then
4413 # arm/t-aprofile and arm/t-rmprofile are only
4414 # designed to work without any with-cpu,
4415 # with-arch, with-mode, with-fpu or with-float
4417 if test "x$with_arch" != x \
4418 || test "x$with_cpu" != x \
4419 || test "x$with_float" != x \
4420 || test "x$with_fpu" != x \
4421 || test "x$with_mode" != x ; then
4422 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4424 elif test "x$ml" != x ; then
4425 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4428 # But pass the default value for float-abi
4429 # through to the multilib selector
4431 tmake_file="${tmake_file} ${tmake_profile_file}"
4432 TM_MULTILIB_CONFIG="$with_multilib_list"
4435 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4436 with_cpu=${with_cpu:-$target_cpu_cname}
4440 supported_defaults=cpu
4445 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4451 fido-*-* | m68k*-*-*)
4452 supported_defaults="arch cpu"
4453 case "$with_arch" in
4455 m68k_arch_family="$with_arch"
4458 echo "Invalid --with-arch=$with_arch" 1>&2
4463 # We always have a $with_cpu setting here.
4465 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4466 m68k_cpu_ident=$with_cpu
4469 m68k_cpu_ident=m68020
4470 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4473 m68k_cpu_ident=m68020
4474 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4477 # We need the C identifier rather than the string.
4478 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4479 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4480 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4481 ${srcdir}/config/m68k/m68k-devices.def`
4482 if [ x"$m68k_cpu_ident" = x ] ; then
4483 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4486 with_cpu="mcpu=$with_cpu"
4492 supported_defaults="arch tune"
4494 for which in arch tune; do
4495 eval "val=\$with_$which"
4497 "" | fiji | gfx900 | gfx906 )
4501 echo "Unknown cpu used in --with-$which=$val." 1>&2
4506 [ "x$with_arch" = x ] && with_arch=fiji
4510 supported_defaults="arch schedule"
4512 case "$with_arch" in
4513 "" | 1.0 | 1.1 | 2.0)
4517 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4522 case "$with_schedule" in
4523 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4527 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4533 i[34567]86-*-* | x86_64-*-*)
4534 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4535 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4536 eval "val=\$with_$which"
4537 case " $x86_archs " in
4545 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4554 if test x${val} != x; then
4555 case " $x86_64_archs " in
4557 # Disallow x86-64-v* for --with-cpu=/--with-tune=
4558 case "x$which$val" in
4559 xcpu*x86-64-v*|xtune*x86-64-v*)
4560 echo "Unknown CPU given in --with-$which=$val." 1>&2
4569 # Allow $x86_cpus --with-cpu=/--with-tune=
4572 case " $x86_cpus " in
4577 echo "Unknown CPU given in --with-$which=$val." 1>&2
4583 echo "Unknown CPU given in --with-$which=$val." 1>&2
4596 supported_defaults="abi arch tune riscv_attribute isa_spec"
4599 riscv-* | riscv32*) xlen=32 ;;
4600 riscv64*) xlen=64 ;;
4601 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4604 case "${with_isa_spec}" in
4606 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_2P2"
4609 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20191213"
4612 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20190608"
4615 echo "--with-isa-spec only accept 2.2, 20191213, 201912, 20190608 or 201906" 1>&2
4619 case "${with_riscv_attribute}" in
4621 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4624 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4629 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4632 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4637 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4643 # Infer arch from --with-arch, --target, and --with-abi.
4644 case "${with_arch}" in
4645 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4649 # Infer XLEN, but otherwise assume GC.
4650 case "${with_abi}" in
4651 ilp32e) with_arch="rv32e" ;;
4652 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4653 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4654 *) with_arch="rv${xlen}gc" ;;
4658 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4662 PYTHON=`which python || which python3 || which python2`
4663 if test "x${PYTHON}" != x; then
4664 with_arch=`${PYTHON} ${srcdir}/config/riscv/arch-canonicalize ${with_arch}`
4666 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ARCH=${with_arch}"
4668 # Make sure --with-abi is valid. If it was not specified,
4669 # pick a default based on the ISA, preferring soft-float
4670 # unless the D extension is present.
4671 case "${with_abi}" in
4672 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4675 case "${with_arch}" in
4676 rv32*d* | rv32g*) with_abi=ilp32d ;;
4677 rv32e*) with_abi=ilp32e ;;
4678 rv32*) with_abi=ilp32 ;;
4679 rv64*d* | rv64g*) with_abi=lp64d ;;
4680 rv64*) with_abi=lp64 ;;
4684 echo "--with-abi=${with_abi} is not supported" 1>&2
4688 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ABI=${with_abi}"
4690 # Make sure ABI and ISA are compatible.
4691 case "${with_abi},${with_arch}" in
4692 ilp32,rv32* | ilp32e,rv32e* \
4693 | ilp32f,rv32*f* | ilp32f,rv32g* \
4694 | ilp32d,rv32*d* | ilp32d,rv32g* \
4696 | lp64f,rv64*f* | lp64f,rv64g* \
4697 | lp64d,rv64*d* | lp64d,rv64g*)
4700 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4704 # Handle --with-multilib-generator.
4705 if test "x${with_multilib_generator}" != xdefault; then
4706 if test "x${with_multilib_list}" != xdefault; then
4707 echo "--with-multilib-list= can't used with --with-multilib-generator= at same time" 1>&2
4712 if ${srcdir}/config/riscv/multilib-generator \
4713 `echo ${with_multilib_generator} | sed 's/;/ /g'`\
4714 > t-multilib-config;
4716 tmake_file="${tmake_file} riscv/t-withmultilib-generator"
4718 echo "invalid option for --with-multilib-generator" 1>&2
4723 echo "--with-multilib-generator= is not supported for ${target}, only supported for riscv*-*-elf*" 1>&2
4729 # Handle --with-multilib-list.
4730 if test "x${with_multilib_list}" != xdefault; then
4731 tmake_file="${tmake_file} riscv/t-withmultilib"
4733 case ${with_multilib_list} in
4734 ilp32 | ilp32f | ilp32d \
4735 | lp64 | lp64f | lp64d )
4736 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4739 echo "--with-multilib-list=${with_multilib_list} not supported."
4746 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"
4748 case ${with_float} in
4753 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4759 "" | single | double)
4763 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4773 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4778 case ${with_fp_32} in
4783 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4788 case ${with_odd_spreg_32} in
4790 with_odd_spreg_32="odd-spreg"
4793 with_odd_spreg_32="no-odd-spreg"
4799 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4805 "" | 32 | o64 | n32 | 64 | eabi)
4809 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4814 case ${with_divide} in
4815 "" | breaks | traps)
4819 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4824 case ${with_llsc} in
4835 echo "Unknown llsc type used in --with-llsc" 1>&2
4840 case ${with_mips_plt} in
4845 with_mips_plt=no-plt
4850 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4855 case ${with_synci} in
4865 echo "Unknown synci type used in --with-synci" 1>&2
4870 case ${with_lxc1_sxc1} in
4872 with_lxc1_sxc1=lxc1-sxc1
4875 with_lxc1_sxc1=no-lxc1-sxc1
4880 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4885 case ${with_madd4} in
4895 echo "Unknown madd4 type used in --with-madd4" 1>&2
4902 supported_defaults="arch cpu nds32_lib float fpu_config"
4904 # process --with-arch
4905 case "${with_arch}" in
4907 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4911 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4914 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4917 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4921 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4926 case "${with_cpu}" in
4930 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4934 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4939 # process --with-nds32-lib
4940 case "${with_nds32_lib}" in
4944 with_nds32_lib=ulibc
4947 with_nds32_lib=glibc
4950 with_nds32_lib=newlib
4951 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4957 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4961 # for the arch=v3f or arch=v3s under mculib toolchain,
4962 # we would like to set -fno-math-errno as default
4963 case "${with_arch}" in
4965 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4973 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4978 # process --with-float
4979 case "${with_float}" in
4984 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4989 # process --with-config-fpu
4990 case "${with_config_fpu}" in
4995 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
5003 supported_defaults="arch"
5004 case "$with_arch" in
5009 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
5015 powerpc*-*-* | rs6000-*-*)
5016 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
5018 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5019 eval "val=\$with_$which"
5021 default32 | default64)
5026 echo "$val only valid for --with-cpu and --with-tune." 1>&2
5030 with_which="with_$which"
5034 tm_defines="${tm_defines} CONFIG_PPC405CR"
5035 eval "with_$which=405"
5037 "" | common | native \
5038 | power[3456789] | power10 | power5+ | power6x \
5039 | powerpc | powerpc64 | powerpc64le \
5041 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
5042 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
5043 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
5044 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
5045 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
5049 echo "Unknown cpu used in --with-$which=$val." 1>&2
5056 "" | elfv1 | elfv2 )
5060 echo "Unknown ABI used in --with-abi=$with_abi"
5065 if test "x$with_advance_toolchain" != x; then
5066 if test -d "/opt/$with_advance_toolchain/." -a \
5067 -d "/opt/$with_advance_toolchain/bin/." -a \
5068 -d "/opt/$with_advance_toolchain/include/."; then
5070 tm_file="$tm_file ./advance-toolchain.h"
5071 (at="/opt/$with_advance_toolchain"
5072 echo "/* Use Advance Toolchain $at */"
5074 echo "#undef LINK_OS_EXTRA_SPEC32"
5075 echo "#define LINK_OS_EXTRA_SPEC32" \
5076 "\"%(link_os_new_dtags)" \
5077 "-rpath $prefix/lib -rpath $at/lib\""
5079 echo "#undef LINK_OS_EXTRA_SPEC64"
5080 echo "#define LINK_OS_EXTRA_SPEC64" \
5081 "\"%(link_os_new_dtags)" \
5082 "-rpath $prefix/lib64 -rpath $at/lib64\""
5084 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
5085 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
5086 "\"--enable-new-dtags\""
5088 echo "#undef DYNAMIC_LINKER_PREFIX"
5089 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
5091 echo "#undef MD_EXEC_PREFIX"
5092 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
5094 echo "#undef MD_STARTFILE_PREFIX"
5095 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
5097 echo "#undef MD_STARTFILE_PREFIX_1"
5098 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
5099 > advance-toolchain.h
5101 echo "Unknown advance-toolchain $with_advance_toolchain"
5106 # Set up the default long double format if the user changed it.
5107 if test x$with_long_double_format = xieee; then
5108 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
5110 elif test x$with_long_double_format = xibm; then
5111 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5116 supported_defaults="arch mode tune"
5118 for which in arch tune; do
5119 eval "val=\$with_$which"
5121 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 )
5125 echo "Unknown cpu used in --with-$which=$val." 1>&2
5131 case ${with_mode} in
5136 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5142 sh[123456ble]*-*-* | sh-*-*)
5143 supported_defaults="cpu"
5144 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5145 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5148 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5150 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5153 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
5154 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5155 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5156 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5162 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5164 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5165 eval "val=\$with_$which"
5167 "" | sparc | sparcv9 | sparc64 \
5169 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5170 | sparclite | f930 | f934 | sparclite86x \
5171 | sparclet | tsc701 \
5172 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5173 | niagara3 | niagara4 | niagara7 | m8)
5177 echo "Unknown cpu used in --with-$which=$val" 1>&2
5183 case ${with_float} in
5188 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5195 supported_defaults="arch"
5197 case ${with_arch} in
5198 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5202 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5209 supported_defaults=cpu
5211 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5215 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5221 supported_defaults="cpu"
5225 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5232 # Targets for which there is at least one VxWorks port should include
5233 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5234 # of markers from other files in the port, including the vxworks*.h files to
5235 # distinguish VxWorks variants such as VxWorks 7 or 64).
5238 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5239 | sparc*-*-* | x86_64-*-*)
5240 tm_file="vxworks-dummy.h ${tm_file}"
5244 # Set some miscellaneous flags for particular targets.
5245 target_cpu_default2=
5248 if test x"$target_cpu_cname" != x
5250 target_cpu_default2=$target_cpu_cname
5255 if test x$with_cpu = x
5257 echo "Don't know the target cpu" 1>&2
5260 target_cpu_default2="\\\"$with_cpu\\\""
5265 if test x$gas = xyes
5267 target_cpu_default2="MASK_GAS"
5271 fido*-*-* | m68k*-*-*)
5272 target_cpu_default2=$m68k_cpu_ident
5273 tmake_file="m68k/t-opts $tmake_file"
5274 if [ x"$m68k_arch_family" != x ]; then
5275 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5279 i[34567]86-*-darwin* | x86_64-*-darwin*)
5281 i[34567]86-*-linux* | x86_64-*-linux*)
5282 extra_objs="${extra_objs} gnu-property.o"
5283 tmake_file="$tmake_file i386/t-linux i386/t-gnu-property"
5285 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5286 tmake_file="$tmake_file i386/t-kfreebsd"
5289 tmake_file="$tmake_file i386/t-gnu"
5291 i[34567]86-*-msdosdjgpp*)
5292 tmake_file="${tmake_file} i386/t-djgpp"
5294 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5296 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5298 i[34567]86-*-mingw* | x86_64-*-mingw*)
5300 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5302 i[34567]86-*-freebsd*)
5305 tmake_file="${tmake_file} i386/t-freebsd64"
5311 if test x$gnu_ld = xyes
5313 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5317 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5320 if test x$with_arch != x; then
5321 default_mips_arch=$with_arch
5323 if test x$with_abi != x; then
5324 default_mips_abi=$with_abi
5326 case ${default_mips_arch} in
5327 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
5328 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
5329 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
5330 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
5331 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
5332 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
5333 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
5334 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
5335 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
5336 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
5338 case ${default_mips_abi} in
5339 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5340 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5341 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5342 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5343 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5345 tmake_file="mips/t-mips $tmake_file"
5348 powerpc*-*-* | rs6000-*-*)
5349 # FIXME: The PowerPC port uses the value set at compile time,
5350 # although it's only cosmetic.
5351 if test "x$with_cpu" != x
5353 target_cpu_default2="\\\"$with_cpu\\\""
5355 out_file="${cpu_type}/${cpu_type}.c"
5356 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5357 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5358 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5359 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5362 sh[123456ble]*-*-* | sh-*-*)
5363 c_target_objs="${c_target_objs} sh-c.o"
5364 cxx_target_objs="${cxx_target_objs} sh-c.o"
5368 # Some standard aliases.
5373 xsparcv9 | xsparc64)
5378 if test x$with_tune = x ; then
5389 # The SPARC port checks this value at compile-time.
5390 target_cpu_default2="TARGET_CPU_$with_cpu"
5394 case "x$with_cpu" in
5397 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5398 target_cpu_default2="TARGET_CPU_$with_cpu"
5401 target_cpu_default2="TARGET_CPU_v850e1"
5406 target_cpu_default2="TARGET_CPU_$with_cpu"
5411 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"
5412 for option in $all_defaults
5414 eval "val=\$with_"`echo $option | sed s/-/_/g`
5415 if test -n "$val"; then
5416 case " $supported_defaults " in
5420 echo "This target does not support --with-$option." 2>&1
5421 echo "Valid --with options are: $supported_defaults" 2>&1
5428 t="{ \"$option\", \"$val\" }"
5430 t="${t}, { \"$option\", \"$val\" }"
5437 configure_default_options="{ { NULL, NULL} }"
5439 configure_default_options="{ ${t} }"
5442 if test "$target_cpu_default2" != ""
5444 if test "$target_cpu_default" != ""
5446 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5448 target_cpu_default=$target_cpu_default2
5453 i[34567]86-*-* | x86_64-*-*)
5454 if test x$enable_as_accelerator = xyes; then
5455 extra_programs="mkoffload\$(exeext)"