1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2020 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"
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
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
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"
667 # 64-bit x86 processors supported by --with-arch=. Each processor
668 # MUST be separated by exactly one space.
669 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
670 bdver3 bdver4 znver1 znver2 btver1 btver2 k8 k8-sse3 opteron \
671 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
672 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
673 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
674 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake \
675 sapphirerapids alderlake x86-64 native"
677 # Additional x86 processors supported by --with-cpu=. Each processor
678 # MUST be separated by exactly one space.
679 x86_cpus="generic intel"
681 # Common parts for widely ported systems.
684 tmake_file="t-darwin "
685 tm_file="${tm_file} darwin.h"
688 tm_file="${tm_file} darwin9.h"
691 tm_file="${tm_file} darwin9.h darwin10.h"
693 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
694 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
697 tm_file="${tm_file} ${cpu_type}/darwin.h"
698 tm_p_file="${tm_p_file} darwin-protos.h"
699 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.c"
700 extra_options="${extra_options} darwin.opt"
701 c_target_objs="${c_target_objs} darwin-c.o"
702 cxx_target_objs="${cxx_target_objs} darwin-c.o"
703 fortran_target_objs="darwin-f.o"
704 target_has_targetcm=yes
705 extra_objs="${extra_objs} darwin.o"
706 extra_gcc_objs="darwin-driver.o"
707 default_use_cxa_atexit=yes
709 case ${enable_threads} in
710 "" | yes | posix) thread_file='posix' ;;
716 tmake_file="t-slibgcc"
717 case ${enable_threads} in
722 # Let these non-posix thread selections fall through if requested
725 echo 'Unknown thread configuration for DragonFly BSD'
729 extra_options="$extra_options rpath.opt dragonfly.opt"
730 default_use_cxa_atexit=yes
734 # This is the generic ELF configuration of FreeBSD. Later
735 # machine-specific sections may refine and add to this
738 # Due to tm_file entry ordering issues that vary between cpu
739 # architectures, we only define fbsd_tm_file to allow the
740 # machine-specific section to dictate the final order of all
741 # entries of tm_file with the minor exception that components
742 # of the tm_file set here will always be of the form:
744 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
746 # The machine-specific section should not tamper with this
747 # ordering but may order all other entries of tm_file as it
748 # pleases around the provided core setting.
751 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
752 if test "$fbsd_major" = ""; then
753 echo "Specify the major version number of the targeted FreeBSD release"
754 echo "like this: --target=amd64-unknown-freebsd10.1"
757 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
758 tmake_file="t-slibgcc"
759 case ${enable_threads} in
761 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
767 echo 'Unknown thread configuration for FreeBSD'
771 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
772 extra_options="$extra_options rpath.opt freebsd.opt"
777 default_use_cxa_atexit=yes;;
782 native_system_header_dir=/include
784 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
785 extra_options="$extra_options gnu-user.opt"
788 case ${enable_threads} in
789 "" | yes | posix) thread_file='posix' ;;
791 tmake_file="t-slibgcc"
793 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
796 native_system_header_dir=/include
799 # Linux C libraries selection switch: glibc / uclibc / bionic.
800 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
803 tm_p_file="${tm_p_file} linux-protos.h"
804 tmake_file="${tmake_file} t-linux"
805 extra_objs="${extra_objs} linux.o"
806 extra_options="${extra_options} linux.opt"
811 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
813 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
814 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
817 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
820 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
823 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
825 default_use_cxa_atexit=yes
828 # Enable compilation for Android by default for *android* targets.
831 tm_defines="$tm_defines ANDROID_DEFAULT=1"
834 tm_defines="$tm_defines ANDROID_DEFAULT=0"
837 c_target_objs="${c_target_objs} glibc-c.o"
838 cxx_target_objs="${cxx_target_objs} glibc-c.o"
839 d_target_objs="${d_target_objs} glibc-d.o"
840 tmake_file="${tmake_file} t-glibc"
841 target_has_targetcm=yes
842 target_has_targetdm=yes
845 tm_p_file="${tm_p_file} netbsd-protos.h"
846 tmake_file="t-netbsd t-slibgcc"
847 extra_objs="${extra_objs} netbsd.o"
848 d_target_objs="${d_target_objs} netbsd-d.o"
852 case ${enable_threads} in
853 "" | yes | posix) thread_file='posix' ;;
855 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
856 default_use_cxa_atexit=yes
857 target_has_targetdm=yes
859 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
860 default_gnu_indirect_function=yes
865 tmake_file="t-openbsd"
866 case ${enable_threads} in
872 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
873 default_use_cxa_atexit=yes
880 default_use_cxa_atexit=yes
883 case ${enable_threads} in
884 "" | yes | rtems) thread_file='rtems' ;;
885 posix) thread_file='posix' ;;
888 echo 'Unknown thread configuration for RTEMS'
892 tmake_file="${tmake_file} t-rtems"
893 extra_options="${extra_options} rtems.opt"
894 default_use_cxa_atexit=yes
898 extra_options="$extra_options gnu-user.opt"
900 case ${enable_threads} in
901 "" | yes | posix) thread_file='posix' ;;
903 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
909 # i?86-*-solaris2* needs to insert headers between cpu default and
910 # Solaris 2 specific ones.
911 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
912 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
913 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
915 *-*-solaris2.1[1-9]*)
916 # __cxa_atexit was introduced in Solaris 11.4.
917 default_use_cxa_atexit=yes
921 if test x$gnu_ld = xyes; then
922 tm_file="usegld.h ${tm_file}"
924 if test x$gas = xyes; then
925 tm_file="usegas.h ${tm_file}"
927 tm_p_file="${tm_p_file} sol2-protos.h"
928 tmake_file="${tmake_file} t-sol2 t-slibgcc"
929 c_target_objs="${c_target_objs} sol2-c.o"
930 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
931 d_target_objs="${d_target_objs} sol2-d.o"
932 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
933 extra_options="${extra_options} sol2.opt"
934 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
935 "":yes:* | yes:yes:* )
939 target_has_targetdm=yes
942 extra_options="${extra_options} vms/vms.opt"
944 tmake_file="vms/t-vms t-slibgcc"
946 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
947 tm_p_file="${tm_p_file} vms/vms-protos.h"
948 xm_file="vms/xm-vms.h"
949 c_target_objs="vms-c.o"
950 cxx_target_objs="vms-c.o"
951 fortran_target_objs="vms-f.o"
952 use_gcc_stdint=provide
953 tm_file="${tm_file} vms/vms-stdint.h"
954 if test x$gnu_ld != xyes; then
955 # Build wrappers for native case.
956 extra_programs="ld\$(exeext) ar\$(exeext)"
957 tmake_file="$tmake_file vms/t-vmsnative"
964 extra_options="${extra_options} vxworks.opt"
965 extra_objs="$extra_objs vxworks.o"
967 c_target_objs="${c_target_objs} vxworks-c.o"
968 cxx_target_objs="${cxx_target_objs} vxworks-c.o"
969 extra_headers="${extra_headers} ../vxworks/vxworks-predef.h"
970 target_has_targetcm="yes"
972 # This private header exposes a consistent interface for checks on
973 # the VxWorks version our runtime header files need to perform, based on
974 # what the system headers adverstise:
976 extra_headers="${extra_headers} ../vxworks/_vxworks-versions.h"
978 # Starting from VxWorks 7, the system comes with a Dinkumware
979 # environment which requires the inclusion of "yvals.h" before other
980 # system headers. We provide wrapped versions of a few headers to
981 # accomodate such constraints:
983 extra_headers="${extra_headers} ../vxworks/_yvals.h"
984 extra_headers="${extra_headers} ../vxworks/_yvals-wrapper.h"
986 extra_headers="${extra_headers} ../vxworks/math.h ../vxworks/complex.h"
987 extra_headers="${extra_headers} ../vxworks/inttypes.h ../vxworks/setjmp.h"
989 # We provide stdint.h ...
991 tm_file="${tm_file} vxworks-stdint.h"
993 # .. only through the yvals conditional wrapping mentioned above
994 # to abide by the VxWorks 7 expectations. The final copy is performed
995 # explicitly by a t-vxworks Makefile rule.
998 extra_headers="${extra_headers} ../../ginclude/stdint-gcc.h"
1000 case ${enable_threads} in
1002 "" | yes | vxworks) thread_file='vxworks' ;;
1003 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
1006 # A few common macro definitions conveying general characteristics
1007 # of the configuration at hand. Note that by VxWorks 7, we mean the
1008 # the SR6xx major update or beyond in vendor parlance:
1012 tm_defines="$tm_defines TARGET_VXWORKS7=1"
1017 tm_defines="$tm_defines TARGET_VXWORKS64=1"
1021 # Then a few build configuration controls for VxWorks 7, which
1022 # has specificities on top of which we aim to provide more complete
1027 # VxWorks 7 always has init/fini_array support and it is simpler to
1028 # just leverage this, sticking to what the system toolchain does:
1029 gcc_cv_initfini_array=yes
1033 *-*-elf|arc*-*-elf*)
1034 # Assume that newlib is being used and so __cxa_atexit is provided.
1035 default_use_cxa_atexit=yes
1041 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1042 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
1043 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1044 tmake_file="${tmake_file} aarch64/t-aarch64"
1050 tm_file="${tm_file} fuchsia.h"
1053 tm_file="${tm_file} rtems.h aarch64/rtems.h"
1058 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1061 aarch64_multilibs="${with_multilib_list}"
1062 if test "$aarch64_multilibs" = "default"; then
1063 aarch64_multilibs="lp64,ilp32"
1065 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1066 for aarch64_multilib in ${aarch64_multilibs}; do
1067 case ${aarch64_multilib} in
1069 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1072 echo "--with-multilib-list=${aarch64_multilib} not supported."
1076 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1078 aarch64*-*-freebsd*)
1079 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1080 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1081 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1082 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1085 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
1086 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1087 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1088 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1091 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1092 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1093 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1094 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1097 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1100 aarch64_multilibs="${with_multilib_list}"
1101 if test "$aarch64_multilibs" = "default"; then
1102 # TODO: turn on ILP32 multilib build after its support is mature.
1103 # aarch64_multilibs="lp64,ilp32"
1104 aarch64_multilibs="lp64"
1106 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1107 for aarch64_multilib in ${aarch64_multilibs}; do
1108 case ${aarch64_multilib} in
1110 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1113 echo "--with-multilib-list=${aarch64_multilib} not supported."
1117 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1119 aarch64*-wrs-vxworks*)
1120 tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
1121 tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
1122 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
1125 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1126 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1127 extra_options="${extra_options} alpha/elf.opt"
1130 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1131 tmake_file="${tmake_file} alpha/t-alpha"
1132 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1136 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1137 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1138 tmake_file="${tmake_file} alpha/t-alpha"
1139 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1140 # default x-alpha is only appropriate for dec-osf.
1143 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1144 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1147 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1148 tmake_file="arc/t-multilib arc/t-arc"
1149 extra_gcc_objs="driver-arc.o"
1150 if test "x$with_cpu" != x; then
1151 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1153 if test x${with_endian} = x; then
1155 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1156 *) with_endian=little ;;
1159 case ${with_endian} in
1161 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1163 case ${with_endian} in
1164 big*) tm_file="arc/big.h ${tm_file}"
1168 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}"
1169 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1170 extra_gcc_objs="driver-arc.o"
1171 if test "x$with_cpu" != x; then
1172 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1174 if test x${with_endian} = x; then
1176 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1177 *) with_endian=little ;;
1180 case ${with_endian} in
1182 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1184 case ${with_endian} in
1185 big*) tm_file="arc/big.h ${tm_file}"
1187 # Force .init_array support. The configure script cannot always
1188 # automatically detect that GAS supports it, yet we require it.
1189 gcc_cv_initfini_array=yes
1192 # We only support VxWorks 7 now on ARM, post SR600. Pre SR600
1193 # VxWorks 7 was transitory and major versions prior to 7 were based
1194 # on long deprecated ABI, not supported at all any more regardless
1196 extra_options="${extra_options} arm/vxworks.opt"
1197 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1198 tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1199 tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1200 target_cpu_cname="generic-armv7-a"
1201 need_64bit_hwint=yes
1203 arm*-*-freebsd*) # ARM FreeBSD EABI
1204 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1207 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1210 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1211 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1214 target_cpu_cname="arm1176jzf-s"
1215 if test $fbsd_major -ge 11; then
1216 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1220 target_cpu_cname="generic-armv7-a"
1221 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1224 target_cpu_cname="arm9"
1227 with_tls=${with_tls:-gnu}
1230 target_cpu_cname="strongarm"
1231 tmake_file="${tmake_file} arm/t-arm"
1232 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1233 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1235 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1238 arm*-*-netbsdelf-*eabi*)
1239 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1240 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1243 tm_file="$tm_file arm/netbsd-elf.h"
1244 tmake_file="$tmake_file arm/t-netbsd"
1247 tm_file="${tm_file} arm/aout.h arm/arm.h"
1249 arm*-*-netbsdelf-*eabihf*)
1250 # Hard-float requires at least Arm v5te
1251 target_cpu_cname="arm10e"
1252 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1256 armv6*) target_cpu_cname="arm1176jzf-s";;
1257 armv7*) target_cpu_cname="generic-armv7-a";;
1260 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1261 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"
1262 extra_options="${extra_options} linux-android.opt"
1265 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1268 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1269 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1271 arm*-*-uclinuxfdpiceabi)
1272 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1275 # Generation of floating-point instructions requires at least ARMv5te.
1276 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1277 target_cpu_cname="arm10e"
1279 target_cpu_cname="arm10tdmi"
1281 # Define multilib configuration for arm-linux-androideabi.
1284 tmake_file="$tmake_file arm/t-linux-androideabi"
1287 # The EABI requires the use of __cxa_atexit.
1288 default_use_cxa_atexit=yes
1289 with_tls=${with_tls:-gnu}
1291 arm*-*-uclinux*eabi*) # ARM ucLinux
1292 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1293 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1294 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1295 target_cpu_cname="arm7tdmi"
1296 # The EABI requires the use of __cxa_atexit.
1297 default_use_cxa_atexit=yes
1300 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1301 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1302 tm_file="${tm_file} arm/aout.h arm/arm.h"
1303 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1304 target_cpu_cname="arm7tdmi"
1306 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1309 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1311 default_use_cxa_atexit=yes
1312 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1313 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1314 target_cpu_cname="arm7tdmi"
1317 tm_file="$tm_file newlib-stdint.h"
1318 tmake_file="${tmake_file} arm/t-bpabi"
1322 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1323 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1324 target_cpu_cname="generic-armv7-a"
1327 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1328 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1331 tm_file="${tm_file} arm/symbian.h"
1332 # We do not include t-bpabi for Symbian OS because the system
1333 # provides its own implementation of the BPABI functions.
1334 tmake_file="${tmake_file} arm/t-symbian"
1335 target_cpu_cname="arm10tdmi"
1338 tm_file="${tm_file} arm/aout.h arm/arm.h"
1341 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1342 if test x${with_avrlibc} != xno; then
1343 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1344 tm_defines="${tm_defines} WITH_AVRLIBC"
1346 # Work out avr_double_comparison which is 2 or 3 and is used in
1347 # target hook FLOAT_LIB_COMPARE_RETURNS_BOOL to determine whether
1348 # DFmode comparisons return 3-state or 2-state results.
1349 case y${with_double_comparison} in
1351 avr_double_comparison=3
1354 avr_double_comparison=2
1357 echo "Error: --with-double-comparison= can only be used with: 'tristate', 'bool', 'libf7'" 1>&2
1361 case "y${with_libf7}" in
1363 # avr_double_comparison as set above.
1366 avr_double_comparison=2
1367 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1369 y | yyes | ymath-symbols)
1370 avr_double_comparison=2
1371 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1372 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1373 tm_defines="${tm_defines} WITH_LIBF7_MATH_SYMBOLS"
1376 avr_double_comparison=2
1377 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1378 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1381 echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
1385 tm_defines="${tm_defines} WITH_DOUBLE_COMPARISON=${avr_double_comparison}"
1386 case y${with_double} in
1389 tm_defines="${tm_defines} HAVE_DOUBLE32"
1393 tm_defines="${tm_defines} HAVE_DOUBLE64"
1397 avr_double_multilib=1
1398 tm_defines="${tm_defines} HAVE_DOUBLE32"
1399 tm_defines="${tm_defines} HAVE_DOUBLE64"
1400 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1404 avr_double_multilib=1
1405 tm_defines="${tm_defines} HAVE_DOUBLE32"
1406 tm_defines="${tm_defines} HAVE_DOUBLE64"
1407 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1410 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1414 case y${with_long_double} in
1417 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1421 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1425 avr_long_double_multilib=1
1426 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1427 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1428 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1432 avr_long_double_multilib=1
1433 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1434 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1435 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1438 avr_long_double=${avr_double}
1439 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1440 if test y${avr_double_multilib} = y1; then
1441 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1442 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1444 tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1448 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1452 if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1453 if test y${with_long_double} != ydouble; then
1454 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
1458 if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1459 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
1462 if test y${avr_double}${avr_long_double} = y6432; then
1463 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
1466 tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1467 tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1468 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1470 extra_gcc_objs="driver-avr.o avr-devices.o"
1471 extra_objs="avr-devices.o avr-log.o"
1474 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1475 tmake_file=bfin/t-bfin-elf
1479 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1480 tmake_file=bfin/t-bfin-uclinux
1483 bfin*-linux-uclibc*)
1484 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"
1485 tmake_file="${tmake_file} bfin/t-bfin-linux"
1489 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1490 tmake_file="${tmake_file} bfin/t-rtems"
1493 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1498 tm_file="elfos.h ${tm_file}"
1499 tmake_file="${tmake_file} bpf/t-bpf"
1501 extra_headers="bpf-helpers.h"
1502 use_gcc_stdint=provide
1505 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1506 tmake_file="${tmake_file} cr16/t-cr16 "
1509 cris-*-elf | cris-*-none)
1510 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1511 tmake_file="cris/t-cris cris/t-elfmulti"
1513 extra_options="${extra_options} cris/elf.opt"
1517 if test x${with_endian} != x; then
1518 case ${with_endian} in
1521 echo "with_endian=${with_endian} not supported."
1526 if test x${with_float} != x; then
1527 case ${with_float} in
1530 "Unknown floating point type used in --with-float=$with_float"
1535 tm_file="csky/csky.h"
1536 md_file="csky/csky.md"
1537 out_file="csky/csky.c"
1538 tm_p_file="${tm_p_file} csky/csky-protos.h"
1539 extra_options="${extra_options} csky/csky_tables.opt"
1541 if test x${enable_tpf_debug} = xyes; then
1542 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1547 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1548 tmake_file="csky/t-csky csky/t-csky-elf"
1549 default_use_cxa_atexit=no
1553 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1554 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1556 if test "x${enable_multilib}" = xyes ; then
1557 tm_file="$tm_file ./sysroot-suffix.h"
1558 tmake_file="${tmake_file} csky/t-sysroot-suffix"
1563 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1564 # Force .init_array support. The configure script cannot always
1565 # automatically detect that GAS supports it, yet we require it.
1566 gcc_cv_initfini_array=yes
1568 csky-*-linux-uclibc*)
1569 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1570 default_use_cxa_atexit=no
1573 echo "Unknown target $target"
1579 echo "Unknown target $target"
1584 epiphany-*-elf | epiphany-*-rtems*)
1585 tm_file="${tm_file} dbxelf.h elfos.h"
1586 tmake_file="${tmake_file} epiphany/t-epiphany"
1589 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1592 tm_file="${tm_file} newlib-stdint.h"
1595 extra_options="${extra_options} fused-madd.opt"
1596 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1597 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1598 extra_headers="epiphany_intrinsics.h"
1601 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1604 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1605 tmake_file=frv/t-frv
1608 tm_file="dbxelf.h elfos.h ${tm_file} \
1609 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1610 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1615 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1616 tmake_file="${tmake_file} ft32/t-ft32"
1619 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1620 tmake_file="gcn/t-gcn-hsa"
1621 native_system_header_dir=/include
1622 extra_modes=gcn/gcn-modes.def
1623 extra_objs="${extra_objs} gcn-tree.o"
1624 extra_gcc_objs="driver-gcn.o"
1626 x86_64*-*-linux-gnu )
1627 if test "$ac_cv_search_dlopen" != no; then
1628 extra_programs="${extra_programs} gcn-run\$(exeext)"
1632 if test x$enable_as_accelerator = xyes; then
1633 extra_programs="${extra_programs} mkoffload\$(exeext)"
1634 tm_file="${tm_file} gcn/offload.h"
1636 # Force .init_array support.
1637 gcc_cv_initfini_array=yes
1643 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1644 tmake_file="${tmake_file} moxie/t-moxie"
1649 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1650 tmake_file="${tmake_file} moxie/t-moxie"
1653 tmake_file="${tmake_file} moxie/t-moxie"
1654 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1659 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1660 tmake_file="${tmake_file} moxie/t-moxiebox"
1663 tmake_file="h8300/t-h8300"
1664 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1667 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1668 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1671 target_cpu_default="MASK_PA_11|MASK_PA_20"
1672 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1673 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1675 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1676 d_target_objs="${d_target_objs} pa-d.o"
1680 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1681 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1682 pa/pa32-regs.h pa/pa32-linux.h"
1683 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1684 d_target_objs="${d_target_objs} pa-d.o"
1687 target_cpu_default="MASK_PA_11"
1688 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1689 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1690 extra_options="${extra_options} openbsd.opt"
1691 tmake_file="pa/t-pa"
1692 d_target_objs="${d_target_objs} pa-d.o"
1697 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1698 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} \
1699 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1700 tmake_file="${tmake_file}"
1701 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1702 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1704 hppa[12]*-*-hpux10*)
1706 hppa1.1-*-* | hppa2*-*-*)
1707 target_cpu_default="MASK_PA_11"
1710 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1711 pa/pa-hpux.h pa/pa-hpux10.h"
1712 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1715 tm_file="${tm_file} pa/pa-hpux1010.h"
1716 extra_options="${extra_options} pa/pa-hpux1010.opt"
1719 use_gcc_stdint=provide
1720 tm_file="${tm_file} hpux-stdint.h"
1721 tmake_file="pa/t-pa t-slibgcc"
1722 d_target_objs="${d_target_objs} pa-d.o"
1723 case ${enable_threads} in
1725 if test x$have_pthread_h = xyes ; then
1726 tmake_file="${tmake_file} pa/t-dce-thr"
1730 tmake_file="${tmake_file} pa/t-dce-thr"
1735 if test "x$with_dwarf2" != x; then
1736 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1741 target_cpu_default="MASK_PA_11|MASK_PA_20"
1742 if test x$gnu_ld = xyes
1744 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1746 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1747 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1751 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1752 extra_options="${extra_options} pa/pa-hpux1111.opt"
1755 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1756 extra_options="${extra_options} pa/pa-hpux1131.opt"
1759 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1762 extra_options="${extra_options} pa/pa-hpux.opt \
1763 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1764 tmake_file="pa/t-pa t-slibgcc"
1765 d_target_objs="${d_target_objs} pa-d.o"
1766 case x${enable_threads} in
1774 use_gcc_stdint=provide
1775 tm_file="${tm_file} hpux-stdint.h"
1779 tm_file="${tm_file} hpux-stdint.h"
1783 hppa[12]*-*-hpux11*)
1785 hppa1.1-*-* | hppa2*-*-*)
1786 target_cpu_default="MASK_PA_11"
1789 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1790 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1791 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1795 tm_file="${tm_file} pa/pa-hpux1111.h"
1796 extra_options="${extra_options} pa/pa-hpux1111.opt"
1799 tm_file="${tm_file} pa/pa-hpux1131.h"
1800 extra_options="${extra_options} pa/pa-hpux1131.opt"
1803 tmake_file="pa/t-pa t-slibgcc"
1804 d_target_objs="${d_target_objs} pa-d.o"
1805 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"
1822 if test "x$with_dwarf2" != x; then
1823 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1827 i[34567]86-*-darwin1[89]*)
1828 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1830 i[34567]86-*-darwin*)
1832 # Baseline choice for a machine that allows m64 support.
1833 with_cpu=${with_cpu:-core2}
1834 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1835 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
1837 x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
1839 with_cpu=${with_cpu:-core2}
1840 tmake_file="${tmake_file} t-slibgcc"
1843 with_cpu=${with_cpu:-core2}
1844 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1845 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
1847 i[34567]86-*-elfiamcu)
1848 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1851 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1854 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1857 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"
1860 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1863 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"
1864 tmake_file="i386/t-i386elf t-svr4"
1866 i[34567]86-*-dragonfly*)
1867 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1868 tmake_file="${tmake_file} i386/t-crtstuff"
1870 x86_64-*-dragonfly*)
1871 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"
1872 tmake_file="${tmake_file} i386/t-crtstuff"
1874 i[34567]86-*-freebsd*)
1875 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1878 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"
1880 i[34567]86-*-netbsdelf*)
1881 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1882 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1885 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1886 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1888 i[34567]86-*-openbsd*)
1889 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1890 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1891 extra_options="${extra_options} openbsd.opt"
1896 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1897 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1898 extra_options="${extra_options} openbsd.opt"
1902 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1903 # Intel 80386's running GNU/*
1904 # with ELF format using glibc 2
1905 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1907 i[34567]86-*-linux*)
1908 tm_file="${tm_file} linux.h linux-android.h"
1909 extra_options="${extra_options} linux-android.opt"
1910 if test x$enable_targets = xall; then
1911 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1912 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1913 tmake_file="${tmake_file} i386/t-linux64"
1914 x86_multilibs="${with_multilib_list}"
1915 if test "$x86_multilibs" = "default"; then
1916 x86_multilibs="m64,m32"
1918 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1919 for x86_multilib in ${x86_multilibs}; do
1920 case ${x86_multilib} in
1922 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1925 echo "--with-multilib-list=${x86_with_multilib} not supported."
1929 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1931 if test x$with_cpu = x; then
1932 if test x$with_cpu_64 = x; then
1936 case " $x86_cpus $x86_archs $x86_64_archs " in
1940 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1941 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1947 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1950 i[34567]86-*-kfreebsd*-gnu)
1951 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1953 i[34567]86-*-kopensolaris*-gnu)
1954 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1957 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1961 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1962 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1963 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1966 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1967 extra_options="${extra_options} linux-android.opt"
1969 x86_64-*-kfreebsd*-gnu)
1970 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1973 tmake_file="${tmake_file} i386/t-linux64"
1974 x86_multilibs="${with_multilib_list}"
1975 if test "$x86_multilibs" = "default"; then
1978 x86_multilibs="mx32"
1981 x86_multilibs="m64,m32"
1985 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1986 for x86_multilib in ${x86_multilibs}; do
1987 case ${x86_multilib} in
1989 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1992 echo "--with-multilib-list=${x86_with_multilib} not supported."
1996 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1998 i[34567]86-pc-msdosdjgpp*)
1999 xm_file=i386/xm-djgpp.h
2000 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
2001 native_system_header_dir=/dev/env/DJDIR/include
2002 extra_options="${extra_options} i386/djgpp.opt"
2007 i[34567]86-*-lynxos*)
2009 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
2010 tmake_file="${tmake_file} t-lynx"
2011 extra_options="${extra_options} lynx.opt"
2016 i[34567]86-*-nto-qnx*)
2017 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
2018 extra_options="${extra_options} i386/nto.opt"
2022 i[34567]86-*-rtems*)
2023 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"
2024 tmake_file="${tmake_file} i386/t-rtems"
2026 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
2027 # Set default arch_32 to pentium4, tune_32 to generic like the other
2028 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
2029 with_arch_32=${with_arch_32:-pentium4}
2030 with_tune_32=${with_tune_32:-generic}
2031 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
2032 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2033 tmake_file="$tmake_file i386/t-sol2"
2035 if test x$with_cpu = x; then
2036 if test x$with_cpu_64 = x; then
2040 case " $x86_cpus $x86_archs $x86_64_archs " in
2044 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2045 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2051 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
2052 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
2056 tm_file="${tm_file} i386/x86-64.h"
2059 tm_file="${tm_file} vx-common.h"
2062 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2063 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2066 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2067 tmake_file="${tmake_file} i386/t-vxworks"
2071 i[34567]86-*-cygwin*)
2072 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"
2073 xm_file=i386/xm-cygwin.h
2074 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2075 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2076 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2077 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2078 c_target_objs="${c_target_objs} msformat-c.o"
2079 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2080 if test x$enable_threads = xyes; then
2083 default_use_cxa_atexit=yes
2088 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"
2089 xm_file=i386/xm-cygwin.h
2090 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
2091 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2092 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2093 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2094 c_target_objs="${c_target_objs} msformat-c.o"
2095 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2096 if test x$enable_threads = xyes; then
2099 default_use_cxa_atexit=yes
2101 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2103 i[34567]86-*-mingw* | x86_64-*-mingw*)
2104 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
2105 xm_file=i386/xm-mingw32.h
2106 c_target_objs="${c_target_objs} winnt-c.o"
2107 cxx_target_objs="${cxx_target_objs} winnt-c.o"
2108 target_has_targetcm="yes"
2110 x86_64-*-* | *-w64-*)
2116 if test x$enable_threads = xposix ; then
2117 tm_file="${tm_file} i386/mingw-pthread.h"
2119 tm_file="${tm_file} i386/mingw32.h"
2120 # This makes the logic if mingw's or the w64 feature set has to be used
2123 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2124 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2125 tm_file="${tm_file} i386/mingw-w64.h"
2126 if test x$enable_targets = xall; then
2127 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2128 if test x$with_cpu = x; then
2129 if test x$with_cpu_64 = x; then
2133 case " $x86_cpus $x86_archs $x86_64_archs " in
2137 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2138 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2148 tm_file="${tm_file} i386/mingw-stdint.h"
2149 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2152 tmake_file="${tmake_file} i386/t-mingw-w64"
2155 tmake_file="${tmake_file} i386/t-mingw-w32"
2158 native_system_header_dir=/mingw/include
2159 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2160 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2163 extra_options="${extra_options} i386/mingw-w64.opt"
2168 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2169 c_target_objs="${c_target_objs} msformat-c.o"
2170 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2173 default_use_cxa_atexit=yes
2175 case ${enable_threads} in
2185 tm_file="${tm_file} i386/crtdll.h"
2187 *mingw32msv* | *mingw*)
2192 tmake_file="${tmake_file} i386/t-x86_64-elf"
2193 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2196 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2197 tmake_file="ia64/t-ia64"
2198 target_cpu_default="0"
2199 if test x$gas = xyes
2201 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2203 if test x$gnu_ld = xyes
2205 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2209 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2210 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2211 tmake_file="${tmake_file} ia64/t-ia64"
2214 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2215 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2216 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2219 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
2220 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2221 target_cpu_default="MASK_GNU_AS"
2222 case x$enable_threads in
2228 c_target_objs="ia64-c.o"
2229 cxx_target_objs="ia64-c.o"
2230 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2232 tm_file="${tm_file} hpux-stdint.h"
2235 tm_file="${tm_file} ia64/hpux-unix2003.h"
2240 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2241 tmake_file="${tmake_file} ia64/t-ia64"
2242 target_cpu_default="0"
2243 if test x$gas = xyes
2245 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2247 extra_options="${extra_options} ia64/vms.opt"
2250 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2251 out_file=iq2000/iq2000.c
2252 md_file=iq2000/iq2000.md
2255 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2256 tmake_file="${tmake_file} lm32/t-lm32"
2259 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2260 tmake_file="${tmake_file} lm32/t-lm32"
2261 tmake_file="${tmake_file} lm32/t-rtems"
2264 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2265 tmake_file="${tmake_file} lm32/t-lm32"
2268 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2271 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2274 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
2275 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2277 if test x$enable_threads = xyes; then
2282 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
2283 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2285 if test x$enable_threads = xyes; then
2289 m68k-*-elf* | fido-*-elf*)
2292 # Check that $with_cpu makes sense.
2297 echo "Cannot accept --with-cpu=$with_cpu"
2304 default_m68k_cpu=68020
2308 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"
2309 tm_defines="${tm_defines} MOTOROLA=1"
2310 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2311 # Add multilibs for targets other than fido.
2316 tmake_file="$tmake_file m68k/t-mlibs"
2321 default_m68k_cpu=68020
2323 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2324 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2325 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2328 default_m68k_cpu=68020
2330 # needed to unconfuse gdb
2331 tm_defines="${tm_defines} OBSD_OLD_GAS"
2332 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
2333 extra_options="${extra_options} openbsd.opt"
2334 tmake_file="t-openbsd m68k/t-openbsd"
2335 # we need collect2 until our bug is fixed...
2338 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2339 # with uClibc, using the new GNU/Linux-style
2341 default_m68k_cpu=68020
2343 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"
2344 extra_options="${extra_options} m68k/uclinux.opt"
2345 tm_defines="${tm_defines} MOTOROLA=1"
2346 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2348 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2349 # with ELF format using glibc 2
2350 # aka the GNU/Linux C library 6.
2351 default_m68k_cpu=68020
2353 with_arch=${with_arch:-m68k}
2354 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2355 extra_options="${extra_options} m68k/ieee.opt"
2356 tm_defines="${tm_defines} MOTOROLA=1"
2357 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2360 default_m68k_cpu=68020
2362 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2363 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"
2364 tm_defines="${tm_defines} MOTOROLA=1"
2367 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2368 tmake_file=mcore/t-mcore
2374 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2377 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2380 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2381 tm_file="${tm_file} glibc-stdint.h"
2382 c_target_objs="${c_target_objs} microblaze-c.o"
2383 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2384 tmake_file="${tmake_file} microblaze/t-microblaze"
2385 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2387 microblaze*-*-rtems*)
2390 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2393 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2396 tm_file="${tm_file} dbxelf.h"
2397 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2398 c_target_objs="${c_target_objs} microblaze-c.o"
2399 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2400 tmake_file="${tmake_file} microblaze/t-microblaze"
2401 tmake_file="${tmake_file} microblaze/t-rtems"
2406 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2409 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2412 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2413 c_target_objs="${c_target_objs} microblaze-c.o"
2414 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2415 tmake_file="${tmake_file} microblaze/t-microblaze"
2418 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2419 case "x${enable_multilib}" in
2421 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2422 *) echo "Unknown value for enable_multilib"; exit 1
2424 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2427 # Force .init_array support. The configure script cannot always
2428 # automatically detect that GAS supports it, yet we require it.
2429 gcc_cv_initfini_array=yes
2431 riscv*-*-elf* | riscv*-*-rtems*)
2432 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2435 tm_file="${tm_file} rtems.h riscv/rtems.h"
2436 tmake_file="${tmake_file} riscv/t-rtems"
2439 case "x${enable_multilib}" in
2441 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2442 *) echo "Unknown value for enable_multilib"; exit 1
2445 tmake_file="${tmake_file} riscv/t-riscv"
2448 # Force .init_array support. The configure script cannot always
2449 # automatically detect that GAS supports it, yet we require it.
2450 gcc_cv_initfini_array=yes
2453 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2454 tmake_file="${tmake_file} riscv/t-riscv"
2457 # Force .init_array support. The configure script cannot always
2458 # automatically detect that GAS supports it, yet we require it.
2459 gcc_cv_initfini_array=yes
2461 mips*-*-netbsd*) # NetBSD/mips, either endian.
2462 target_cpu_default="MASK_ABICALLS"
2463 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2464 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2467 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"
2468 extra_options="${extra_options} linux-android.opt"
2469 tmake_file="${tmake_file} mips/t-img-linux"
2470 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2471 with_arch_32="mips32r6"
2472 with_arch_64="mips64r6"
2477 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"
2478 extra_options="${extra_options} linux-android.opt"
2479 tmake_file="${tmake_file} mips/t-mti-linux"
2480 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2481 with_arch_32="mips32r2"
2482 with_arch_64="mips64r2"
2486 mips*-*-linux*) # Linux MIPS, either endian.
2487 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"
2488 extra_options="${extra_options} linux-android.opt"
2491 default_mips_arch=mips32r6
2494 default_mips_arch=mips32r2
2497 default_mips_arch=mips32
2499 mips64el-st-linux-gnu)
2500 default_mips_abi=n32
2501 tm_file="${tm_file} mips/st.h"
2502 tmake_file="${tmake_file} mips/t-st"
2503 enable_mips_multilibs="yes"
2505 mips64octeon*-*-linux*)
2506 default_mips_abi=n32
2507 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2508 target_cpu_default=MASK_SOFT_FLOAT_ABI
2509 enable_mips_multilibs="yes"
2511 mipsisa64r6*-*-linux*)
2512 default_mips_abi=n32
2513 default_mips_arch=mips64r6
2514 enable_mips_multilibs="yes"
2516 mipsisa64r2*-*-linux*)
2517 default_mips_abi=n32
2518 default_mips_arch=mips64r2
2519 enable_mips_multilibs="yes"
2521 mips64*-*-linux* | mipsisa64*-*-linux*)
2522 default_mips_abi=n32
2523 enable_mips_multilibs="yes"
2526 if test x$enable_targets = xall; then
2527 enable_mips_multilibs="yes"
2529 if test x$enable_mips_multilibs = xyes; then
2530 tmake_file="${tmake_file} mips/t-linux64"
2534 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2535 tmake_file="mips/t-mti-elf"
2536 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2537 with_arch_32="mips32r2"
2538 with_arch_64="mips64r2"
2541 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2542 tmake_file="mips/t-img-elf"
2543 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2544 with_arch_32="mips32r6"
2545 with_arch_64="mips64r6"
2548 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2549 tmake_file="mips/t-sde"
2550 extra_options="${extra_options} mips/sde.opt"
2551 case "${with_newlib}" in
2553 # newlib / libgloss.
2556 # MIPS toolkit libraries.
2557 tm_file="$tm_file mips/sdemtk.h"
2558 tmake_file="$tmake_file mips/t-sdemtk"
2559 case ${enable_threads} in
2561 thread_file='mipssde'
2568 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2571 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2574 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2577 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2580 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2583 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2587 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2588 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2589 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2590 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2591 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2592 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2593 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2594 tmake_file="mips/t-isa3264"
2597 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2600 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2603 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2606 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2609 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2612 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2616 mipsisa32*-*-elfoabi*)
2617 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2618 tm_file="${tm_file} mips/elfoabi.h"
2620 mipsisa64*-*-elfoabi*)
2621 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2622 tm_file="${tm_file} mips/elfoabi.h"
2625 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2629 mipsisa64sr71k-*-elf*)
2630 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2631 tmake_file=mips/t-sr71k
2632 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2634 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2635 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2636 tmake_file="mips/t-elf mips/t-sb1"
2637 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2639 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2640 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2641 tmake_file="mips/t-elf"
2643 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2644 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2645 tmake_file="mips/t-elf"
2646 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2648 mips64-*-elf* | mips64el-*-elf*)
2649 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2650 tmake_file="mips/t-elf"
2651 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2653 mips64vr-*-elf* | mips64vrel-*-elf*)
2654 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2655 tmake_file=mips/t-vr
2656 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2658 mips64orion-*-elf* | mips64orionel-*-elf*)
2659 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2660 tmake_file="mips/t-elf"
2661 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2664 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2665 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2668 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2669 tmake_file="${tmake_file} mips/t-vxworks"
2671 mipstx39-*-elf* | mipstx39el-*-elf*)
2672 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2673 tmake_file="mips/t-r3900"
2675 mmix-knuth-mmixware)
2676 tm_file="${tm_file} newlib-stdint.h"
2680 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2681 if test x$stabs = xyes
2683 tm_file="${tm_file} dbx.h"
2689 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2690 c_target_objs="msp430-c.o"
2691 cxx_target_objs="msp430-c.o"
2692 tmake_file="${tmake_file} msp430/t-msp430"
2693 extra_objs="${extra_objs} msp430-devices.o"
2694 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2695 # Enable .init_array unless it has been explicitly disabled.
2696 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2697 # code since mid-2019 expects it.
2698 if test x${disable_initfini_array} != xyes; then
2699 gcc_cv_initfini_array=yes
2703 # __cxa_atexit increases code size, and we don't need to support
2704 # dynamic shared objects on MSP430, so regular Newlib atexit is a
2705 # fine replacement as it also supports registration of more than 32
2707 default_use_cxa_atexit=no
2708 # This target does not match the generic *-*-elf case above which
2709 # sets use_gcc_stdint=wrap, so explicitly set it here.
2715 target_cpu_default="0"
2716 tm_defines="${tm_defines}"
2721 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2722 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2727 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2728 tmake_file="nds32/t-nds32 nds32/t-elf"
2731 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2732 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2733 gcc_cv_initfini_array=yes
2737 # Handle --enable-default-relax setting.
2738 if test x${enable_default_relax} = xyes; then
2739 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2741 # Handle --with-ext-dsp
2742 if test x${with_ext_dsp} = xyes; then
2743 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2747 tm_file="elfos.h ${tm_file}"
2748 tmake_file="${tmake_file} nios2/t-nios2"
2751 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2754 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2755 extra_options="${extra_options} nios2/elf.opt"
2758 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2759 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2764 tm_file="${tm_file} newlib-stdint.h"
2766 tmake_file="nvptx/t-nvptx"
2767 if test x$enable_as_accelerator = xyes; then
2768 extra_programs="${extra_programs} mkoffload\$(exeext)"
2769 tm_file="${tm_file} nvptx/offload.h"
2773 tm_file="elfos.h ${tm_file}"
2774 tmake_file="${tmake_file} or1k/t-or1k"
2775 # Force .init_array support. The configure script cannot always
2776 # automatically detect that GAS supports it, yet we require it.
2777 gcc_cv_initfini_array=yes
2779 # Handle --with-multilib-list=...
2780 or1k_multilibs="${with_multilib_list}"
2781 if test "$or1k_multilibs" = "default"; then
2782 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2784 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2785 for or1k_multilib in ${or1k_multilibs}; do
2786 case ${or1k_multilib} in
2787 mcmov | msext | msfimm | \
2789 mhard-float | mdouble-float | munordered-float | msoft-float | \
2790 mhard-div | mhard-mul | \
2791 msoft-div | msoft-mul )
2792 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2795 echo "--with-multilib-list=${with_multilib_list} not supported."
2799 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2803 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2804 tm_file="${tm_file} or1k/linux.h"
2807 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2808 extra_options="${extra_options} or1k/elf.opt"
2811 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2812 tmake_file="${tmake_file} or1k/t-rtems"
2817 tm_file="${tm_file} newlib-stdint.h"
2820 # port not yet contributed
2821 #powerpc-*-openbsd*)
2822 # tmake_file="${tmake_file} rs6000/t-fprules"
2826 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2828 *-darwin1[0-9]* | *-darwin9*)
2829 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2830 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2833 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2834 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2835 tm_file="${tm_file} ${cpu_type}/darwin8.h"
2838 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2841 # Earlier - ingle arch, with 32b only
2842 # OS X 10.0, the first edition is Darwin4
2845 tmake_file="${tmake_file} t-slibgcc"
2847 powerpc64-*-darwin*)
2848 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2849 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2850 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2852 powerpc*-*-freebsd*)
2853 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2854 extra_options="${extra_options} rs6000/sysv4.opt"
2855 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2858 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2859 tmake_file="${tmake_file} rs6000/t-freebsd64"
2860 extra_options="${extra_options} rs6000/linux64.opt"
2861 if test $fbsd_major -ge 13; then
2862 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2866 if test $fbsd_major -ge 13; then
2867 tm_file="rs6000/secureplt.h ${tm_file}"
2869 tm_file="${tm_file} rs6000/freebsd.h"
2874 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2875 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2876 tmake_file="${tmake_file} rs6000/t-netbsd"
2877 extra_options="${extra_options} rs6000/sysv4.opt"
2879 powerpc-*-eabisimaltivec*)
2880 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"
2881 extra_options="${extra_options} rs6000/sysv4.opt"
2882 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2886 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"
2887 extra_options="${extra_options} rs6000/sysv4.opt"
2888 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2892 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2893 extra_options="${extra_options} rs6000/sysv4.opt"
2894 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2896 powerpc-*-eabialtivec*)
2897 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"
2898 extra_options="${extra_options} rs6000/sysv4.opt"
2899 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2903 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"
2904 extra_options="${extra_options} rs6000/sysv4.opt"
2905 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2909 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"
2910 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2911 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2914 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2915 extra_options="${extra_options} rs6000/sysv4.opt"
2916 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2917 extra_objs="$extra_objs rs6000-linux.o"
2920 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2922 case ${target}:${with_cpu} in
2923 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2925 maybe_biarch=${cpu_is_64bit}
2926 case ${enable_targets} in
2927 *powerpc64*) maybe_biarch=yes ;;
2928 all) maybe_biarch=yes ;;
2930 case ${target}:${enable_targets}:${maybe_biarch} in
2931 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2932 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2933 | powerpcle-*:*powerpc64le*:yes)
2934 if test x$cpu_is_64bit = xyes; then
2935 tm_file="${tm_file} rs6000/default64.h"
2937 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2938 tmake_file="$tmake_file rs6000/t-linux64"
2941 tmake_file="$tmake_file rs6000/t-linux64le"
2942 case ${enable_targets} in
2943 all | *powerpc64-* | *powerpc-*)
2944 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2947 case ${enable_targets} in
2948 all | *powerpc64le-* | *powerpcle-*)
2949 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2952 extra_options="${extra_options} rs6000/linux64.opt"
2955 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2956 extra_options="${extra_options} rs6000/linux64.opt"
2957 tmake_file="${tmake_file} rs6000/t-linux"
2960 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2961 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2965 powerpc*-*-linux*ppc476*)
2966 tm_file="${tm_file} rs6000/476.h"
2967 extra_options="${extra_options} rs6000/476.opt" ;;
2968 powerpc*-*-linux*altivec*)
2969 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2973 enable_secureplt=yes ;;
2975 if test x${enable_secureplt} = xyes; then
2976 tm_file="rs6000/secureplt.h ${tm_file}"
2979 powerpc-wrs-vxworks*)
2980 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2981 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2982 extra_options="${extra_options} rs6000/sysv4.opt"
2983 extra_headers="${extra_headers} ppc-asm.h"
2986 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2987 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2990 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
2991 tmake_file="${tmake_file} rs6000/t-vxworksae"
2994 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3000 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3001 tmake_file="t-lynx rs6000/t-lynx"
3002 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3008 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"
3009 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3010 extra_options="${extra_options} rs6000/sysv4.opt"
3012 powerpcle-*-eabisim*)
3013 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"
3014 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3015 extra_options="${extra_options} rs6000/sysv4.opt"
3019 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"
3020 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3021 extra_options="${extra_options} rs6000/sysv4.opt"
3025 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3026 tmake_file="${tmake_file} pru/t-pru"
3027 extra_objs="pru-pragma.o pru-passes.o"
3030 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
3031 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
3032 tmake_file="rs6000/t-aix52 t-slibgcc"
3033 extra_options="${extra_options} rs6000/aix64.opt"
3037 default_use_cxa_atexit=yes
3039 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3040 tmake_file="rs6000/t-aix52 t-slibgcc"
3041 if test x$cpu_is_64bit = xyes; then
3042 tm_file="${tm_file} rs6000/biarch64.h"
3043 tmake_file="rs6000/t-aix64 t-slibgcc"
3045 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3046 extra_options="${extra_options} rs6000/aix64.opt"
3050 default_use_cxa_atexit=yes
3052 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3053 tmake_file="rs6000/t-aix52 t-slibgcc"
3054 if test x$cpu_is_64bit = xyes; then
3055 tm_file="${tm_file} rs6000/biarch64.h"
3056 tmake_file="rs6000/t-aix64 t-slibgcc"
3058 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3059 extra_options="${extra_options} rs6000/aix64.opt"
3063 default_use_cxa_atexit=yes
3066 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3067 target_has_targetm_common=no
3068 c_target_objs="rl78-c.o"
3069 cxx_target_objs="rl78-c.o"
3070 tmake_file="${tmake_file} rl78/t-rl78"
3073 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3074 tmake_file="${tmake_file} rx/t-rx"
3075 extra_options="${extra_options} rx/elf.opt"
3078 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3079 tmake_file="${tmake_file} rx/t-linux"
3082 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3083 c_target_objs="${c_target_objs} s390-c.o"
3084 cxx_target_objs="${cxx_target_objs} s390-c.o"
3085 if test x$enable_targets = xall; then
3086 tmake_file="${tmake_file} s390/t-linux64"
3088 tmake_file="${tmake_file} s390/t-s390"
3091 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3092 tm_p_file="linux-protos.h s390/s390-protos.h"
3093 c_target_objs="${c_target_objs} s390-c.o"
3094 cxx_target_objs="${cxx_target_objs} s390-c.o"
3095 md_file=s390/s390.md
3096 extra_modes=s390/s390-modes.def
3097 out_file=s390/s390.c
3098 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3101 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h glibc-stdint.h s390/tpf.h"
3102 tm_p_file=s390/s390-protos.h
3103 c_target_objs="${c_target_objs} s390-c.o"
3104 cxx_target_objs="${cxx_target_objs} s390-c.o"
3105 md_file=s390/s390.md
3106 extra_modes=s390/s390-modes.def
3107 out_file=s390/s390.c
3109 extra_options="${extra_options} s390/tpf.opt"
3110 tmake_file="${tmake_file} s390/t-s390"
3112 sh-*-elf* | sh[12346l]*-*-elf* | \
3113 sh-*-linux* | sh[2346lbe]*-*-linux* | \
3114 sh-*-netbsdelf* | shl*-*-netbsdelf*)
3115 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3116 if test x${with_endian} = x; then
3118 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3119 shbe-*-* | sheb-*-*) with_endian=big,little ;;
3120 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
3121 shl* | sh*-*-linux* | \
3122 sh-superh-elf) with_endian=little,big ;;
3123 sh[1234]*-*-*) with_endian=big ;;
3124 *) with_endian=big,little ;;
3127 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3128 # First word : the default endian.
3129 # Second word: the secondary endian (optional).
3130 case ${with_endian} in
3131 big) TM_ENDIAN_CONFIG=mb ;;
3132 little) TM_ENDIAN_CONFIG=ml ;;
3133 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
3134 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
3135 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
3137 case ${with_endian} in
3138 little*) tm_file="sh/little.h ${tm_file}" ;;
3140 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
3142 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
3143 if test x$enable_fdpic = xyes; then
3144 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3146 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3148 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3149 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3152 sh*-superh-elf) if test x$with_libgloss != xno; then
3154 tm_file="${tm_file} sh/newlib.h"
3156 tm_file="${tm_file} sh/embed-elf.h"
3157 tm_file="${tm_file} sh/superh.h"
3158 extra_options="${extra_options} sh/superh.opt" ;;
3159 *) if test x$with_newlib = xyes \
3160 && test x$with_libgloss = xyes; then
3161 tm_file="${tm_file} sh/newlib.h"
3163 tm_file="${tm_file} sh/embed-elf.h" ;;
3169 tm_file="${tm_file} newlib-stdint.h"
3172 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3173 case `echo ${target} | sed 's/e[lb]-/-/'` in
3174 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
3175 sh4a_single*) sh_cpu_target=sh4a-single ;;
3176 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
3177 sh4al) sh_cpu_target=sh4al ;;
3178 sh4a*) sh_cpu_target=sh4a ;;
3179 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3180 sh4_single*) sh_cpu_target=sh4-single ;;
3181 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3182 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3183 sh3e*) sh_cpu_target=sh3e ;;
3184 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3185 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3186 sh2a_single*) sh_cpu_target=sh2a-single ;;
3187 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3188 sh2a*) sh_cpu_target=sh2a ;;
3189 sh2e*) sh_cpu_target=sh2e ;;
3190 sh2*) sh_cpu_target=sh2 ;;
3191 *) sh_cpu_target=sh1 ;;
3193 # did the user say --without-fp ?
3194 if test x$with_fp = xno; then
3195 case ${sh_cpu_target} in
3197 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3198 sh4*) sh_cpu_target=sh4-nofpu ;;
3199 sh3*) sh_cpu_target=sh3 ;;
3200 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3201 sh2*) sh_cpu_target=sh2 ;;
3202 *) echo --without-fp not available for $target: ignored
3204 tm_defines="$tm_defines STRICT_NOFPU=1"
3206 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3207 case $sh_cpu_default in
3208 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3209 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3210 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3211 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3212 "") sh_cpu_default=${sh_cpu_target} ;;
3213 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3215 sh_multilibs=${with_multilib_list}
3216 if test "$sh_multilibs" = "default" ; then
3218 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3219 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3220 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3221 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3222 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3224 if test x$with_fp = xno; then
3225 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`"
3228 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3229 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3230 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3231 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3232 for sh_multilib in ${sh_multilibs}; do
3233 case ${sh_multilib} in
3234 m1 | m2 | m2e | m3 | m3e | \
3235 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3236 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3237 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3238 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3239 # It is passed to MULTIILIB_OPTIONS verbatim.
3240 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3241 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3243 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3244 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3245 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3247 echo "with_multilib_list=${sh_multilib} not supported."
3252 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3253 if test x${enable_incomplete_targets} = xyes ; then
3254 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3256 tm_file="$tm_file ./sysroot-suffix.h"
3257 tmake_file="$tmake_file t-sysroot-suffix"
3260 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3261 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3264 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3265 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3268 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3271 tmake_file="sparc/t-sparc sparc/t-leon"
3274 tmake_file="sparc/t-sparc sparc/t-leon3"
3277 tmake_file="sparc/t-sparc sparc/t-elf"
3282 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3283 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3286 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3287 extra_options="${extra_options} sparc/long-double-switch.opt"
3290 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3293 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3296 tmake_file="${tmake_file} sparc/t-sparc"
3299 if test x$enable_targets = xall; then
3300 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3301 tmake_file="${tmake_file} sparc/t-linux64"
3303 tm_file="${tm_file} sparc/linux.h"
3304 tmake_file="${tmake_file} sparc/t-linux"
3308 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3309 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3310 extra_options="${extra_options} sparc/long-double-switch.opt"
3311 tmake_file="${tmake_file} sparc/t-sparc"
3314 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3316 sparc64-*-* | sparcv9-*-*)
3317 tm_file="sparc/default64.h ${tm_file}"
3320 test x$with_cpu != x || with_cpu=v9
3323 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3326 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3327 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3330 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3331 extra_options="${extra_options}"
3332 tmake_file="${tmake_file} sparc/t-sparc"
3335 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3336 extra_options="${extra_options}"
3337 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3340 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"
3341 extra_options="${extra_options} sparc/long-double-switch.opt"
3342 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3344 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3345 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3346 extra_options="${extra_options} sparc/long-double-switch.opt"
3347 case "x$with_cpu" in
3349 x) with_cpu=ultrasparc ;;
3350 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3352 tmake_file="${tmake_file} sparc/t-sparc"
3355 tm_file="sparc/biarch64.h ${tm_file}"
3356 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3357 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3358 extra_options="${extra_options} sparc/long-double-switch.opt"
3359 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3362 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3363 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3364 extra_options="${extra_options} openbsd.opt"
3365 extra_options="${extra_options}"
3368 tmake_file="${tmake_file} sparc/t-sparc"
3371 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3372 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3373 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3377 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3378 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3379 tm_file="${tm_file} ./sysroot-suffix.h"
3380 tmake_file="t-sysroot-suffix t-slibgcc"
3381 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3385 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3386 tmake_file="${tmake_file} tilegx/t-tilegx"
3387 extra_objs="${extra_objs} mul-tables.o"
3388 c_target_objs="${c_target_objs} tilegx-c.o"
3389 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3390 extra_headers="feedback.h"
3393 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3398 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3399 tmake_file="${tmake_file} tilepro/t-tilepro"
3400 extra_objs="${extra_objs} mul-tables.o"
3401 c_target_objs="${c_target_objs} tilepro-c.o"
3402 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3403 extra_headers="feedback.h"
3406 target_cpu_default="TARGET_CPU_generic"
3407 tm_file="dbxelf.h elfos.h v850/v850.h"
3408 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3409 tmake_file="${tmake_file} v850/t-v850"
3410 tmake_file="${tmake_file} v850/t-rtems"
3412 c_target_objs="v850-c.o"
3413 cxx_target_objs="v850-c.o"
3418 target_cpu_default="TARGET_CPU_v850e3v5"
3421 target_cpu_default="TARGET_CPU_v850e2v3"
3424 target_cpu_default="TARGET_CPU_v850e2"
3426 v850e1-*-* | v850es-*-*)
3427 target_cpu_default="TARGET_CPU_v850e1"
3430 target_cpu_default="TARGET_CPU_v850e"
3433 target_cpu_default="TARGET_CPU_generic"
3436 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3437 if test x$stabs = xyes
3439 tm_file="${tm_file} dbx.h"
3442 c_target_objs="v850-c.o"
3443 cxx_target_objs="v850-c.o"
3447 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3448 extra_options="${extra_options} vax/elf.opt"
3451 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3452 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3453 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3456 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3457 extra_options="${extra_options} openbsd.opt"
3461 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3462 tmake_file="visium/t-visium visium/t-crtstuff"
3465 # For historical reasons, the target files omit the 'x'.
3466 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3467 tm_p_file=stormy16/stormy16-protos.h
3468 tm_d_file="elfos.h stormy16/stormy16.h"
3469 md_file=stormy16/stormy16.md
3470 out_file=stormy16/stormy16.c
3471 extra_options=stormy16/stormy16.opt
3472 tmake_file="stormy16/t-stormy16"
3475 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3476 extra_options="${extra_options} xtensa/elf.opt"
3479 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3480 tmake_file="${tmake_file} xtensa/t-xtensa"
3483 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3484 tmake_file="${tmake_file} xtensa/t-xtensa"
3485 extra_options="${extra_options} xtensa/uclinux.opt"
3488 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3493 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3494 c_target_objs="m32c-pragma.o"
3495 cxx_target_objs="m32c-pragma.o"
3498 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3499 c_target_objs="m32c-pragma.o"
3500 cxx_target_objs="m32c-pragma.o"
3503 echo "*** Configuration ${target} not supported" 1>&2
3509 i[34567]86-*-linux* | x86_64-*-linux*)
3510 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3512 i[34567]86-*-* | x86_64-*-*)
3513 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3515 powerpc*-*-* | rs6000-*-*)
3516 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3522 tmake_file="${tmake_file} t-musl"
3525 tmake_file="${tmake_file} t-uclibc"
3529 # Assume the existence of indirect function support and allow the use of the
3530 # resolver attribute.
3532 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3536 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3537 default_gnu_indirect_function=yes
3543 # Build mkoffload tool
3545 *-intelmic-* | *-intelmicemul-*)
3546 tmake_file="${tmake_file} i386/t-intelmic"
3547 tm_file="${tm_file} i386/intelmic-offload.h"
3551 if [ "$target_has_targetcm" = "no" ]; then
3552 c_target_objs="$c_target_objs default-c.o"
3553 cxx_target_objs="$cxx_target_objs default-c.o"
3556 if [ "$common_out_file" = "" ]; then
3557 if [ "$target_has_targetm_common" = "yes" ]; then
3558 common_out_file="$cpu_type/$cpu_type-common.c"
3560 common_out_file="default-common.c"
3564 if [ "$target_has_targetdm" = "no" ]; then
3565 d_target_objs="$d_target_objs default-d.o"
3568 # Support for --with-cpu and related options (and a few unrelated options,
3572 echo "--with-cpu must be passed a value" 1>&2
3577 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3578 # to generic if there is no processor scheduler model for the target.
3581 arch_without_sse2=no
3582 arch_without_64bit=no
3585 if test $fbsd_major -ge 6; then
3591 arch_without_sse2=yes
3592 arch_without_64bit=yes
3597 arch_without_sse2=yes
3598 arch_without_64bit=yes
3603 arch_without_sse2=yes
3604 arch_without_64bit=yes
3609 arch_without_sse2=yes
3610 arch_without_64bit=yes
3613 arch_without_sse2=yes
3614 arch_without_64bit=yes
3615 case ${target_noncanonical} in
3628 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3638 i686-*-* | i786-*-*)
3639 case ${target_noncanonical} in
3672 amdfam10-*|barcelona-*)
3676 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3680 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3684 athlon_xp-*|athlon_mp-*|athlon_4-*)
3687 arch_without_sse2=yes
3688 arch_without_64bit=yes
3690 athlon_tbird-*|athlon-*)
3693 arch_without_sse2=yes
3698 arch_without_sse2=yes
3703 arch_without_sse2=yes
3705 pentium3-*|pentium3m-*)
3708 arch_without_sse2=yes
3710 pentium4-*|pentium4m-*)
3749 arch_without_sse2=yes
3754 arch_without_sse2=yes
3755 arch_without_64bit=yes
3760 case ${target_noncanonical} in
3793 amdfam10-*|barcelona-*)
3797 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3801 k8-*|opteron-*|athlon_64-*)
3833 # If there is no $with_cpu option, try to infer one from ${target}.
3834 # This block sets nothing except for with_cpu.
3835 if test x$with_cpu = x ; then
3837 i[34567]86-*-elfiamcu)
3840 i[34567]86-*-*|x86_64-*-*)
3858 frv-*-*linux* | frv400-*-*linux*)
3865 case "$with_arch" in
3867 with_cpu=${default_cf_cpu}
3870 with_cpu=m${default_m68k_cpu}
3886 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3895 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3897 i[34567]86-*-*|x86_64-*-*)
3898 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3899 if test x$with_cpu_32 = x; then
3900 with_cpu_32=$with_cpu
3902 if test x$with_cpu_64 = x; then
3903 with_cpu_64=$with_cpu
3911 # Support for --with-arch and related options (and a few unrelated options,
3913 case ${with_arch} in
3915 echo "--with-arch must be passed a value" 1>&2
3920 # If there is no $with_arch option, try to infer one from ${target}.
3921 # This block sets nothing except for with_arch.
3922 if test x$with_arch = x ; then
3924 i[34567]86-*-darwin*|x86_64-*-darwin*)
3925 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3926 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3928 i[34567]86-*-elfiamcu)
3932 # --with-fpmath sets the default ISA to SSE2, which is the same
3933 # ISA supported by Pentium 4.
3934 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3943 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3951 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3953 i[34567]86-*-darwin*|x86_64-*-darwin*)
3954 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3955 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3957 i[34567]86-*-*|x86_64-*-*)
3958 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3959 if test x$with_arch_32 = x; then
3960 with_arch_32=$with_arch
3962 if test x$with_arch_64 = x; then
3963 if test $arch_without_64bit = yes; then
3964 # Set the default 64bit arch to x86-64 if the default arch
3965 # doesn't support 64bit.
3968 with_arch_64=$with_arch
3972 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3973 # Set the default 64bit arch to x86-64 if the default arch
3974 # doesn't support 64bit and we need 64bit ISA.
3975 with_arch_32=$with_arch
3983 # Infer a default setting for --with-float.
3984 if test x$with_float = x; then
3986 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3987 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3988 # comply with IEEE 754.
3994 # Infer a default setting for --with-fpu.
3995 if test x$with_fpu = x; then
3997 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3998 # The R5900 FPU only supports single precision.
4004 # Support --with-fpmath.
4005 if test x$with_fpmath != x; then
4007 i[34567]86-*-* | x86_64-*-*)
4008 case ${with_fpmath} in
4010 tm_file="${tm_file} i386/avxmath.h"
4013 tm_file="${tm_file} i386/ssemath.h"
4016 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4022 echo "--with-fpmath isn't supported for $target." 1>&2
4028 # Similarly for --with-schedule.
4029 if test x$with_schedule = x; then
4032 # Override default PA8000 scheduling model.
4033 with_schedule=7100LC
4038 # Infer a default setting for --with-llsc.
4039 if test x$with_llsc = x; then
4042 # The kernel emulates LL and SC where necessary.
4045 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4046 # The R5900 doesn't support LL(D) and SC(D).
4052 # Validate and mark as valid any --with options supported
4053 # by this target. In order to use a particular --with option
4054 # you must list it in supported_defaults; validating the value
4055 # is optional. This case statement should set nothing besides
4056 # supported_defaults.
4061 supported_defaults="abi cpu arch"
4062 for which in cpu arch; do
4064 eval "val=\$with_$which"
4065 base_val=`echo $val | sed -e 's/\+.*//'`
4066 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4068 if [ $which = arch ]; then
4069 def=aarch64-arches.def
4070 pattern=AARCH64_ARCH
4072 def=aarch64-cores.def
4073 pattern=AARCH64_CORE
4076 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
4078 # Find the base CPU or ARCH id in aarch64-cores.def or
4079 # aarch64-arches.def
4080 if [ x"$base_val" = x ] \
4081 || grep "^$pattern(\"$base_val\"," \
4082 ${srcdir}/config/aarch64/$def \
4085 if [ $which = arch ]; then
4086 base_id=`grep "^$pattern(\"$base_val\"," \
4087 ${srcdir}/config/aarch64/$def | \
4088 sed -e 's/^[^,]*,[ ]*//' | \
4090 # Extract the architecture flags from aarch64-arches.def
4091 ext_mask=`grep "^$pattern(\"$base_val\"," \
4092 ${srcdir}/config/aarch64/$def | \
4096 base_id=`grep "^$pattern(\"$base_val\"," \
4097 ${srcdir}/config/aarch64/$def | \
4098 sed -e 's/^[^,]*,[ ]*//' | \
4102 # Use the pre-processor to strip flatten the options.
4103 # This makes the format less rigid than if we use
4104 # grep and sed directly here.
4105 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4106 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4107 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4109 # Match one element inside AARCH64_OPT_EXTENSION, we
4110 # consume anything that's not a ,.
4111 elem="[ ]*\([^,]\+\)[ ]*"
4113 # Repeat the pattern for the number of entries in the
4114 # AARCH64_OPT_EXTENSION, currently 6 times.
4115 sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
4117 while [ x"$ext_val" != x ]
4119 ext_val=`echo $ext_val | sed -e 's/\+//'`
4120 ext=`echo $ext_val | sed -e 's/\+.*//'`
4121 base_ext=`echo $ext | sed -e 's/^no//'`
4122 opt_line=`echo -e "$options_parsed" | \
4123 grep "^\"$base_ext\""`
4125 if [ x"$base_ext" = x ] \
4126 || [[ -n $opt_line ]]; then
4128 # These regexp extract the elements based on
4129 # their group match index in the regexp.
4130 ext_canon=`echo -e "$opt_line" | \
4131 sed -e "s/$sed_patt/\2/"`
4132 ext_on=`echo -e "$opt_line" | \
4133 sed -e "s/$sed_patt/\3/"`
4134 ext_off=`echo -e "$opt_line" | \
4135 sed -e "s/$sed_patt/\4/"`
4137 if [ $ext = $base_ext ]; then
4139 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
4141 # Removing extension
4142 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
4147 echo "Unknown extension used in --with-$which=$val" 1>&2
4150 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4153 ext_mask="(("$ext_mask") << 6)"
4154 if [ x"$base_id" != x ]; then
4155 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
4159 echo "Unknown $which used in --with-$which=$val" 1>&2
4166 supported_defaults="cpu tune"
4167 for which in cpu tune; do
4168 eval "val=\$with_$which"
4171 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4172 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4176 echo "Unknown CPU used in --with-$which=$val" 1>&2
4184 supported_defaults="cpu"
4186 if [ x"$with_cpu" = x ] \
4187 || grep "^ARC_CPU ($with_cpu," \
4188 ${srcdir}/config/arc/arc-cpus.def \
4193 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4199 supported_defaults="cpu endian float"
4203 supported_defaults="arch cpu float tune fpu abi mode tls"
4204 for which in cpu tune arch; do
4205 # See if it matches a supported value
4206 eval "val=\$with_$which"
4207 if [ x"$val" != x ]; then
4208 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4209 -v cmd="chk$which $val" \
4210 ${srcdir}/config/arm/arm-cpus.in`
4211 if [ "$cpu" = "error" ]; then
4212 echo "Unknown target in --with-$which=$val" 1>&2
4216 eval "target_${which}_cname=$new_val"
4217 echo "For $val real value is $new_val"
4222 case "$with_float" in
4224 | soft | hard | softfp)
4228 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4233 # see if --with-fpu matches any of the supported FPUs
4234 if [ x"$with_fpu" != x ] ; then
4236 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4237 -v cmd="chkfpu $val" \
4238 ${srcdir}/config/arm/arm-cpus.in`
4239 if [ "$fpu" = "error" ]
4241 echo "Unknown target in --with-fpu=$val" 1>&2
4248 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4252 echo "Unknown ABI used in --with-abi=$with_abi"
4257 case "$with_mode" in
4263 echo "Unknown mode used in --with-mode=$with_mode"
4274 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4279 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4280 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4284 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4285 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4289 # Add extra multilibs
4290 if test "x$with_multilib_list" != x; then
4292 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4293 if test "x${arm_multilibs}" != xdefault ; then
4294 for arm_multilib in ${arm_multilibs}; do
4295 case ${arm_multilib} in
4297 tmake_profile_file="arm/t-multilib"
4300 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4301 if test -f "${srcdir}/config/arm/${ml}"; then
4302 tmake_file="${tmake_file} arm/${ml}"
4304 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4309 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4316 if test "x${tmake_profile_file}" != x ; then
4317 # arm/t-aprofile and arm/t-rmprofile are only
4318 # designed to work without any with-cpu,
4319 # with-arch, with-mode, with-fpu or with-float
4321 if test "x$with_arch" != x \
4322 || test "x$with_cpu" != x \
4323 || test "x$with_float" != x \
4324 || test "x$with_fpu" != x \
4325 || test "x$with_mode" != x ; then
4326 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4328 elif test "x$ml" != x ; then
4329 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4332 # But pass the default value for float-abi
4333 # through to the multilib selector
4335 tmake_file="${tmake_file} ${tmake_profile_file}"
4336 TM_MULTILIB_CONFIG="$with_multilib_list"
4339 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4340 with_cpu=${with_cpu:-$target_cpu_cname}
4344 supported_defaults=cpu
4349 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4355 fido-*-* | m68k*-*-*)
4356 supported_defaults="arch cpu"
4357 case "$with_arch" in
4359 m68k_arch_family="$with_arch"
4362 echo "Invalid --with-arch=$with_arch" 1>&2
4367 # We always have a $with_cpu setting here.
4369 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4370 m68k_cpu_ident=$with_cpu
4373 m68k_cpu_ident=m68020
4374 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4377 m68k_cpu_ident=m68020
4378 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4381 # We need the C identifier rather than the string.
4382 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4383 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4384 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4385 ${srcdir}/config/m68k/m68k-devices.def`
4386 if [ x"$m68k_cpu_ident" = x ] ; then
4387 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4390 with_cpu="mcpu=$with_cpu"
4396 supported_defaults="arch tune"
4398 for which in arch tune; do
4399 eval "val=\$with_$which"
4401 "" | fiji | gfx900 | gfx906 )
4405 echo "Unknown cpu used in --with-$which=$val." 1>&2
4410 [ "x$with_arch" = x ] && with_arch=fiji
4414 supported_defaults="arch schedule"
4416 case "$with_arch" in
4417 "" | 1.0 | 1.1 | 2.0)
4421 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4426 case "$with_schedule" in
4427 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4431 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4437 i[34567]86-*-* | x86_64-*-*)
4438 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4439 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4440 eval "val=\$with_$which"
4441 case " $x86_archs " in
4449 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4458 if test x${val} != x; then
4459 case " $x86_64_archs " in
4464 # Allow $x86_cpus --with-cpu=/--with-tune=
4467 case " $x86_cpus " in
4472 echo "Unknown CPU given in --with-$which=$val." 1>&2
4478 echo "Unknown CPU given in --with-$which=$val." 1>&2
4491 supported_defaults="abi arch tune riscv_attribute"
4494 riscv-* | riscv32*) xlen=32 ;;
4495 riscv64*) xlen=64 ;;
4496 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4499 case "${with_riscv_attribute}" in
4501 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4504 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4509 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4512 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4517 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4523 # Infer arch from --with-arch, --target, and --with-abi.
4524 case "${with_arch}" in
4525 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4529 # Infer XLEN, but otherwise assume GC.
4530 case "${with_abi}" in
4531 ilp32e) with_arch="rv32e" ;;
4532 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4533 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4534 *) with_arch="rv${xlen}gc" ;;
4538 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4543 # Make sure --with-abi is valid. If it was not specified,
4544 # pick a default based on the ISA, preferring soft-float
4545 # unless the D extension is present.
4546 case "${with_abi}" in
4547 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4550 case "${with_arch}" in
4551 rv32*d* | rv32g*) with_abi=ilp32d ;;
4552 rv32e*) with_abi=ilp32e ;;
4553 rv32*) with_abi=ilp32 ;;
4554 rv64*d* | rv64g*) with_abi=lp64d ;;
4555 rv64*) with_abi=lp64 ;;
4559 echo "--with-abi=${with_abi} is not supported" 1>&2
4564 # Make sure ABI and ISA are compatible.
4565 case "${with_abi},${with_arch}" in
4566 ilp32,rv32* | ilp32e,rv32e* \
4567 | ilp32f,rv32*f* | ilp32f,rv32g* \
4568 | ilp32d,rv32*d* | ilp32d,rv32g* \
4570 | lp64f,rv64*f* | lp64f,rv64g* \
4571 | lp64d,rv64*d* | lp64d,rv64g*)
4574 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4579 # Handle --with-multilib-list.
4580 if test "x${with_multilib_list}" != xdefault; then
4581 tm_file="${tm_file} riscv/withmultilib.h"
4582 tmake_file="${tmake_file} riscv/t-withmultilib"
4584 case ${with_multilib_list} in
4585 ilp32 | ilp32f | ilp32d \
4586 | lp64 | lp64f | lp64d )
4587 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4590 echo "--with-multilib-list=${with_multilib_list} not supported."
4594 # Define macros to select the default multilib.
4595 case ${with_arch} in
4597 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4600 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4603 echo "unsupported --with-arch for --with-multilib-list"
4608 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4611 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4614 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4617 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4620 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4623 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4626 echo "unsupported --with-abi for --with-multilib"
4633 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"
4635 case ${with_float} in
4640 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4646 "" | single | double)
4650 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4660 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4665 case ${with_fp_32} in
4670 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4675 case ${with_odd_spreg_32} in
4677 with_odd_spreg_32="odd-spreg"
4680 with_odd_spreg_32="no-odd-spreg"
4686 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4692 "" | 32 | o64 | n32 | 64 | eabi)
4696 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4701 case ${with_divide} in
4702 "" | breaks | traps)
4706 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4711 case ${with_llsc} in
4722 echo "Unknown llsc type used in --with-llsc" 1>&2
4727 case ${with_mips_plt} in
4732 with_mips_plt=no-plt
4737 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4742 case ${with_synci} in
4752 echo "Unknown synci type used in --with-synci" 1>&2
4757 case ${with_lxc1_sxc1} in
4759 with_lxc1_sxc1=lxc1-sxc1
4762 with_lxc1_sxc1=no-lxc1-sxc1
4767 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4772 case ${with_madd4} in
4782 echo "Unknown madd4 type used in --with-madd4" 1>&2
4789 supported_defaults="arch cpu nds32_lib float fpu_config"
4791 # process --with-arch
4792 case "${with_arch}" in
4794 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4798 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4801 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4804 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4808 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4813 case "${with_cpu}" in
4817 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4821 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4826 # process --with-nds32-lib
4827 case "${with_nds32_lib}" in
4831 with_nds32_lib=ulibc
4834 with_nds32_lib=glibc
4837 with_nds32_lib=newlib
4838 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4844 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4848 # for the arch=v3f or arch=v3s under mculib toolchain,
4849 # we would like to set -fno-math-errno as default
4850 case "${with_arch}" in
4852 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4860 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4865 # process --with-float
4866 case "${with_float}" in
4871 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4876 # process --with-config-fpu
4877 case "${with_config_fpu}" in
4882 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4890 supported_defaults="arch"
4891 case "$with_arch" in
4896 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4902 powerpc*-*-* | rs6000-*-*)
4903 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4905 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4906 eval "val=\$with_$which"
4908 default32 | default64)
4913 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4917 with_which="with_$which"
4921 tm_defines="${tm_defines} CONFIG_PPC405CR"
4922 eval "with_$which=405"
4924 "" | common | native \
4925 | power[3456789] | power10 | power5+ | power6x \
4926 | powerpc | powerpc64 | powerpc64le \
4928 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4929 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4930 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4931 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4932 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4936 echo "Unknown cpu used in --with-$which=$val." 1>&2
4943 "" | elfv1 | elfv2 )
4947 echo "Unknown ABI used in --with-abi=$with_abi"
4952 if test "x$with_advance_toolchain" != x; then
4953 if test -d "/opt/$with_advance_toolchain/." -a \
4954 -d "/opt/$with_advance_toolchain/bin/." -a \
4955 -d "/opt/$with_advance_toolchain/include/."; then
4957 tm_file="$tm_file ./advance-toolchain.h"
4958 (at="/opt/$with_advance_toolchain"
4959 echo "/* Use Advance Toolchain $at */"
4961 echo "#undef LINK_OS_EXTRA_SPEC32"
4962 echo "#define LINK_OS_EXTRA_SPEC32" \
4963 "\"%(link_os_new_dtags)" \
4964 "-rpath $prefix/lib -rpath $at/lib\""
4966 echo "#undef LINK_OS_EXTRA_SPEC64"
4967 echo "#define LINK_OS_EXTRA_SPEC64" \
4968 "\"%(link_os_new_dtags)" \
4969 "-rpath $prefix/lib64 -rpath $at/lib64\""
4971 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4972 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4973 "\"--enable-new-dtags\""
4975 echo "#undef DYNAMIC_LINKER_PREFIX"
4976 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4978 echo "#undef MD_EXEC_PREFIX"
4979 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4981 echo "#undef MD_STARTFILE_PREFIX"
4982 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
4984 echo "#undef MD_STARTFILE_PREFIX_1"
4985 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
4986 > advance-toolchain.h
4988 echo "Unknown advance-toolchain $with_advance_toolchain"
4993 # Set up the default long double format if the user changed it.
4994 if test x$with_long_double_format = xieee; then
4995 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
4997 elif test x$with_long_double_format = xibm; then
4998 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5003 supported_defaults="arch mode tune"
5005 for which in arch tune; do
5006 eval "val=\$with_$which"
5008 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 )
5012 echo "Unknown cpu used in --with-$which=$val." 1>&2
5018 case ${with_mode} in
5023 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5029 sh[123456ble]*-*-* | sh-*-*)
5030 supported_defaults="cpu"
5031 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5032 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5035 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5037 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5040 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
5041 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5042 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5043 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5049 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5051 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5052 eval "val=\$with_$which"
5054 "" | sparc | sparcv9 | sparc64 \
5056 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5057 | sparclite | f930 | f934 | sparclite86x \
5058 | sparclet | tsc701 \
5059 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5060 | niagara3 | niagara4 | niagara7 | m8)
5064 echo "Unknown cpu used in --with-$which=$val" 1>&2
5070 case ${with_float} in
5075 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5082 supported_defaults="arch"
5084 case ${with_arch} in
5085 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5089 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5096 supported_defaults=cpu
5098 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5102 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5108 supported_defaults="cpu"
5112 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5119 # Targets for which there is at least one VxWorks port should include
5120 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5121 # of markers from other files in the port, including the vxworks*.h files to
5122 # distinguish VxWorks variants such as VxWorks 7 or 64).
5125 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5126 | sparc*-*-* | x86_64-*-*)
5127 tm_file="vxworks-dummy.h ${tm_file}"
5131 # Set some miscellaneous flags for particular targets.
5132 target_cpu_default2=
5135 if test x"$target_cpu_cname" != x
5137 target_cpu_default2=$target_cpu_cname
5142 if test x$with_cpu = x
5144 echo "Don't know the target cpu" 1>&2
5147 target_cpu_default2="\\\"$with_cpu\\\""
5152 if test x$gas = xyes
5154 target_cpu_default2="MASK_GAS"
5158 fido*-*-* | m68k*-*-*)
5159 target_cpu_default2=$m68k_cpu_ident
5160 tmake_file="m68k/t-opts $tmake_file"
5161 if [ x"$m68k_arch_family" != x ]; then
5162 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5166 i[34567]86-*-darwin* | x86_64-*-darwin*)
5168 i[34567]86-*-linux* | x86_64-*-linux*)
5169 extra_objs="${extra_objs} cet.o"
5170 tmake_file="$tmake_file i386/t-linux i386/t-cet"
5172 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5173 tmake_file="$tmake_file i386/t-kfreebsd"
5176 tmake_file="$tmake_file i386/t-gnu"
5178 i[34567]86-*-msdosdjgpp*)
5179 tmake_file="${tmake_file} i386/t-djgpp"
5181 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5183 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5185 i[34567]86-*-mingw* | x86_64-*-mingw*)
5187 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5189 i[34567]86-*-freebsd*)
5192 tmake_file="${tmake_file} i386/t-freebsd64"
5198 if test x$gnu_ld = xyes
5200 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5204 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5207 if test x$with_arch != x; then
5208 default_mips_arch=$with_arch
5210 if test x$with_abi != x; then
5211 default_mips_abi=$with_abi
5213 case ${default_mips_arch} in
5214 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
5215 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
5216 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
5217 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
5218 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
5219 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
5220 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
5221 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
5222 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
5223 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
5225 case ${default_mips_abi} in
5226 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5227 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5228 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5229 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5230 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5232 tmake_file="mips/t-mips $tmake_file"
5235 powerpc*-*-* | rs6000-*-*)
5236 # FIXME: The PowerPC port uses the value set at compile time,
5237 # although it's only cosmetic.
5238 if test "x$with_cpu" != x
5240 target_cpu_default2="\\\"$with_cpu\\\""
5242 out_file="${cpu_type}/${cpu_type}.c"
5243 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5244 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5245 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5246 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5249 sh[123456ble]*-*-* | sh-*-*)
5250 c_target_objs="${c_target_objs} sh-c.o"
5251 cxx_target_objs="${cxx_target_objs} sh-c.o"
5255 # Some standard aliases.
5260 xsparcv9 | xsparc64)
5265 if test x$with_tune = x ; then
5276 # The SPARC port checks this value at compile-time.
5277 target_cpu_default2="TARGET_CPU_$with_cpu"
5281 case "x$with_cpu" in
5284 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5285 target_cpu_default2="TARGET_CPU_$with_cpu"
5288 target_cpu_default2="TARGET_CPU_v850e1"
5293 target_cpu_default2="TARGET_CPU_$with_cpu"
5298 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"
5299 for option in $all_defaults
5301 eval "val=\$with_"`echo $option | sed s/-/_/g`
5302 if test -n "$val"; then
5303 case " $supported_defaults " in
5307 echo "This target does not support --with-$option." 2>&1
5308 echo "Valid --with options are: $supported_defaults" 2>&1
5315 t="{ \"$option\", \"$val\" }"
5317 t="${t}, { \"$option\", \"$val\" }"
5324 configure_default_options="{ { NULL, NULL} }"
5326 configure_default_options="{ ${t} }"
5329 if test "$target_cpu_default2" != ""
5331 if test "$target_cpu_default" != ""
5333 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5335 target_cpu_default=$target_cpu_default2
5340 i[34567]86-*-* | x86_64-*-*)
5341 if test x$enable_as_accelerator = xyes; then
5342 extra_programs="mkoffload\$(exeext)"