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.
254 if test "x$enable_obsolete" != xyes; then
255 echo "*** Configuration ${target} is obsolete." >&2
256 echo "*** Specify --enable-obsolete to build it anyway." >&2
257 echo "*** Support will be REMOVED in the next major release of GCC," >&2
258 echo "*** unless a maintainer comes forward." >&2
263 # Unsupported targets list. Do not put an entry in this list unless
264 # it would otherwise be caught by a more permissive pattern. The list
265 # should be in alphabetical order.
267 # 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"
372 extra_options="${extra_options} g.opt"
375 target_has_targetm_common=no
377 moxie*) cpu_type=moxie
378 target_has_targetm_common=no
382 extra_headers=math-68881.h
383 extra_options="${extra_options} m68k/m68k-tables.opt"
387 c_target_objs="i386-c.o"
388 cxx_target_objs="i386-c.o"
389 d_target_objs="i386-d.o"
390 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"
391 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
392 extra_options="${extra_options} fused-madd.opt"
393 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
394 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
395 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
396 immintrin.h x86intrin.h avxintrin.h xopintrin.h
397 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
398 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
399 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
400 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
401 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
402 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
403 shaintrin.h clflushoptintrin.h xsavecintrin.h
404 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
405 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
406 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
407 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
408 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
409 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
410 gfniintrin.h cet.h avx512vbmi2intrin.h
411 avx512vbmi2vlintrin.h avx512vnniintrin.h
412 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
413 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
414 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
415 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h
416 avx512bf16intrin.h enqcmdintrin.h serializeintrin.h
417 avx512vp2intersectintrin.h avx512vp2intersectvlintrin.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"
454 extra_headers=ia64intrin.h
455 extra_options="${extra_options} g.opt fused-madd.opt"
461 extra_options="${extra_options} g.opt"
465 extra_options="${extra_options} g.opt"
468 extra_headers=math-68881.h
469 extra_options="${extra_options} m68k/m68k-tables.opt"
473 extra_options="${extra_options} g.opt"
477 d_target_objs="mips-d.o"
478 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
479 extra_objs="frame-header-opt.o"
480 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
484 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
487 extra_options="${extra_options} nds32/nds32-linux.opt"
490 extra_options="${extra_options} nds32/nds32-elf.opt"
495 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"
499 extra_options="${extra_options} g.opt"
509 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o rs6000-call.o"
510 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
511 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
512 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
513 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
514 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
515 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
516 extra_headers="${extra_headers} amo.h"
518 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500|xfuture)
522 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
523 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
530 extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o"
531 d_target_objs="riscv-d.o"
534 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
535 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o rs6000-call.o"
536 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
540 c_target_objs="sparc-c.o"
541 cxx_target_objs="sparc-c.o"
542 d_target_objs="sparc-d.o"
543 extra_headers="visintrin.h"
547 d_target_objs="s390-d.o"
548 extra_options="${extra_options} fused-madd.opt"
549 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
551 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
552 sh[123456789lbe]*-*-* | sh-*-*)
554 extra_options="${extra_options} fused-madd.opt"
555 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
562 extra_headers="c6x_intrinsics.h"
563 extra_options="${extra_options} c6x/c6x-tables.opt"
566 extra_options="${extra_options} fused-madd.opt"
576 tm_file=${cpu_type}/${cpu_type}.h
577 tm_d_file=${cpu_type}/${cpu_type}.h
578 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
580 tm_p_file=${cpu_type}/${cpu_type}-protos.h
581 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
585 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
587 extra_modes=${cpu_type}/${cpu_type}-modes.def
589 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
591 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
596 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
599 if test "x$with_multilib_list" = xilp32; then
600 tm_file="aarch64/biarchilp32.h ${tm_file}"
602 tm_file="aarch64/biarchlp64.h ${tm_file}"
606 tm_file="aarch64/biarchilp32.h ${tm_file}"
609 tm_file="aarch64/biarchlp64.h ${tm_file}"
612 echo "Unknown ABI used in --with-abi=$with_abi"
617 if test "x$with_abi" != x; then
618 echo "This target does not support --with-abi."
625 if test "x$with_multilib_list" = xmx32; then
626 tm_file="i386/biarchx32.h ${tm_file}"
628 tm_file="i386/biarch64.h ${tm_file}"
632 tm_file="i386/biarch64.h ${tm_file}"
635 tm_file="i386/biarchx32.h ${tm_file}"
638 echo "Unknown ABI used in --with-abi=$with_abi"
643 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
647 # On a.out targets, we need to use collect2.
654 # Common C libraries.
655 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
657 # 32-bit x86 processors supported by --with-arch=. Each processor
658 # MUST be separated by exactly one space.
659 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
660 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
661 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
662 pentium4 pentium4m pentiumpro prescott lakemont"
664 # 64-bit x86 processors supported by --with-arch=. Each processor
665 # MUST be separated by exactly one space.
666 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
667 bdver3 bdver4 znver1 znver2 btver1 btver2 k8 k8-sse3 opteron \
668 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
669 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
670 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
671 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake x86-64 \
674 # Additional x86 processors supported by --with-cpu=. Each processor
675 # MUST be separated by exactly one space.
676 x86_cpus="generic intel"
678 # Common parts for widely ported systems.
681 tmake_file="t-darwin "
682 tm_file="${tm_file} darwin.h"
685 tm_file="${tm_file} darwin9.h"
688 tm_file="${tm_file} darwin9.h darwin10.h"
690 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
691 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
694 tm_file="${tm_file} ${cpu_type}/darwin.h"
695 tm_p_file="${tm_p_file} darwin-protos.h"
696 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.c"
697 extra_options="${extra_options} darwin.opt"
698 c_target_objs="${c_target_objs} darwin-c.o"
699 cxx_target_objs="${cxx_target_objs} darwin-c.o"
700 fortran_target_objs="darwin-f.o"
701 target_has_targetcm=yes
702 extra_objs="${extra_objs} darwin.o"
703 extra_gcc_objs="darwin-driver.o"
704 default_use_cxa_atexit=yes
706 case ${enable_threads} in
707 "" | yes | posix) thread_file='posix' ;;
713 tmake_file="t-slibgcc"
714 case ${enable_threads} in
719 # Let these non-posix thread selections fall through if requested
722 echo 'Unknown thread configuration for DragonFly BSD'
726 extra_options="$extra_options rpath.opt dragonfly.opt"
727 default_use_cxa_atexit=yes
731 # This is the generic ELF configuration of FreeBSD. Later
732 # machine-specific sections may refine and add to this
735 # Due to tm_file entry ordering issues that vary between cpu
736 # architectures, we only define fbsd_tm_file to allow the
737 # machine-specific section to dictate the final order of all
738 # entries of tm_file with the minor exception that components
739 # of the tm_file set here will always be of the form:
741 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
743 # The machine-specific section should not tamper with this
744 # ordering but may order all other entries of tm_file as it
745 # pleases around the provided core setting.
748 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
749 if test "$fbsd_major" = ""; then
750 echo "Specify the major version number of the targeted FreeBSD release"
751 echo "like this: --target=amd64-unknown-freebsd10.1"
754 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
755 tmake_file="t-slibgcc"
756 case ${enable_threads} in
758 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
764 echo 'Unknown thread configuration for FreeBSD'
768 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
769 extra_options="$extra_options rpath.opt freebsd.opt"
774 default_use_cxa_atexit=yes;;
779 native_system_header_dir=/include
781 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
782 extra_options="$extra_options gnu-user.opt"
785 case ${enable_threads} in
786 "" | yes | posix) thread_file='posix' ;;
788 tmake_file="t-slibgcc"
790 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
793 native_system_header_dir=/include
796 # Linux C libraries selection switch: glibc / uclibc / bionic.
797 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
800 tm_p_file="${tm_p_file} linux-protos.h"
801 tmake_file="${tmake_file} t-linux"
802 extra_objs="${extra_objs} linux.o"
803 extra_options="${extra_options} linux.opt"
808 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
810 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
811 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
814 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
817 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
820 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
822 default_use_cxa_atexit=yes
825 # Enable compilation for Android by default for *android* targets.
828 tm_defines="$tm_defines ANDROID_DEFAULT=1"
831 tm_defines="$tm_defines ANDROID_DEFAULT=0"
834 c_target_objs="${c_target_objs} glibc-c.o"
835 cxx_target_objs="${cxx_target_objs} glibc-c.o"
836 d_target_objs="${d_target_objs} glibc-d.o"
837 tmake_file="${tmake_file} t-glibc"
838 target_has_targetcm=yes
839 target_has_targetdm=yes
842 tm_p_file="${tm_p_file} netbsd-protos.h"
843 tmake_file="t-netbsd t-slibgcc"
844 extra_objs="${extra_objs} netbsd.o"
845 d_target_objs="${d_target_objs} netbsd-d.o"
849 case ${enable_threads} in
850 "" | yes | posix) thread_file='posix' ;;
852 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
853 default_use_cxa_atexit=yes
854 target_has_targetdm=yes
856 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
857 default_gnu_indirect_function=yes
862 tmake_file="t-openbsd"
863 case ${enable_threads} in
869 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
870 default_use_cxa_atexit=yes
877 default_use_cxa_atexit=yes
880 case ${enable_threads} in
881 "" | yes | rtems) thread_file='rtems' ;;
882 posix) thread_file='posix' ;;
885 echo 'Unknown thread configuration for RTEMS'
889 tmake_file="${tmake_file} t-rtems"
890 extra_options="${extra_options} rtems.opt"
891 default_use_cxa_atexit=yes
895 extra_options="$extra_options gnu-user.opt"
897 case ${enable_threads} in
898 "" | yes | posix) thread_file='posix' ;;
900 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
906 # i?86-*-solaris2* needs to insert headers between cpu default and
907 # Solaris 2 specific ones.
908 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
909 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
910 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
912 *-*-solaris2.1[1-9]*)
913 # __cxa_atexit was introduced in Solaris 11.4.
914 default_use_cxa_atexit=yes
918 if test x$gnu_ld = xyes; then
919 tm_file="usegld.h ${tm_file}"
921 if test x$gas = xyes; then
922 tm_file="usegas.h ${tm_file}"
924 tm_p_file="${tm_p_file} sol2-protos.h"
925 tmake_file="${tmake_file} t-sol2 t-slibgcc"
926 c_target_objs="${c_target_objs} sol2-c.o"
927 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
928 d_target_objs="${d_target_objs} sol2-d.o"
929 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
930 extra_options="${extra_options} sol2.opt"
931 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
932 "":yes:* | yes:yes:* )
936 target_has_targetdm=yes
939 extra_options="${extra_options} vms/vms.opt"
941 tmake_file="vms/t-vms t-slibgcc"
943 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
944 tm_p_file="${tm_p_file} vms/vms-protos.h"
945 xm_file="vms/xm-vms.h"
946 c_target_objs="vms-c.o"
947 cxx_target_objs="vms-c.o"
948 fortran_target_objs="vms-f.o"
949 use_gcc_stdint=provide
950 tm_file="${tm_file} vms/vms-stdint.h"
951 if test x$gnu_ld != xyes; then
952 # Build wrappers for native case.
953 extra_programs="ld\$(exeext) ar\$(exeext)"
954 tmake_file="$tmake_file vms/t-vmsnative"
961 extra_options="${extra_options} vxworks.opt"
962 extra_objs="$extra_objs vxworks.o"
964 c_target_objs="${c_target_objs} vxworks-c.o"
965 cxx_target_objs="${cxx_target_objs} vxworks-c.o"
966 extra_headers="${extra_headers} ../vxworks/vxworks-predef.h"
967 target_has_targetcm="yes"
969 # This private header exposes a consistent interface for checks on
970 # the VxWorks version our runtime header files need to perform, based on
971 # what the system headers adverstise:
973 extra_headers="${extra_headers} ../vxworks/_vxworks-versions.h"
975 # Starting from VxWorks 7, the system comes with a Dinkumware
976 # environment which requires the inclusion of "yvals.h" before other
977 # system headers. We provide wrapped versions of a few headers to
978 # accomodate such constraints:
980 extra_headers="${extra_headers} ../vxworks/_yvals.h"
981 extra_headers="${extra_headers} ../vxworks/_yvals-wrapper.h"
983 extra_headers="${extra_headers} ../vxworks/math.h ../vxworks/complex.h"
984 extra_headers="${extra_headers} ../vxworks/inttypes.h ../vxworks/setjmp.h"
986 # We provide stdint.h ...
988 tm_file="${tm_file} vxworks-stdint.h"
990 # .. only through the yvals conditional wrapping mentioned above
991 # to abide by the VxWorks 7 expectations. The final copy is performed
992 # explicitly by a t-vxworks Makefile rule.
995 extra_headers="${extra_headers} ../../ginclude/stdint-gcc.h"
997 case ${enable_threads} in
999 "" | yes | vxworks) thread_file='vxworks' ;;
1000 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
1003 # A few common macro definitions conveying general characteristics
1004 # of the configuration at hand. Note that by VxWorks 7, we mean the
1005 # the SR6xx major update or beyond in vendor parlance:
1009 tm_defines="$tm_defines TARGET_VXWORKS7=1"
1014 tm_defines="$tm_defines TARGET_VXWORKS64=1"
1018 # Then a few build configuration controls for VxWorks 7, which
1019 # has specificities on top of which we aim to provide more complete
1024 # VxWorks 7 always has init/fini_array support and it is simpler to
1025 # just leverage this, sticking to what the system toolchain does:
1026 gcc_cv_initfini_array=yes
1030 *-*-elf|arc*-*-elf*)
1031 # Assume that newlib is being used and so __cxa_atexit is provided.
1032 default_use_cxa_atexit=yes
1038 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1039 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
1040 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1041 tmake_file="${tmake_file} aarch64/t-aarch64"
1047 tm_file="${tm_file} fuchsia.h"
1050 tm_file="${tm_file} rtems.h aarch64/rtems.h"
1055 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1058 aarch64_multilibs="${with_multilib_list}"
1059 if test "$aarch64_multilibs" = "default"; then
1060 aarch64_multilibs="lp64,ilp32"
1062 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1063 for aarch64_multilib in ${aarch64_multilibs}; do
1064 case ${aarch64_multilib} in
1066 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1069 echo "--with-multilib-list=${aarch64_multilib} not supported."
1073 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1075 aarch64*-*-freebsd*)
1076 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1077 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1078 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1079 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1082 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
1083 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1084 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1085 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1088 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1089 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1090 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1091 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1094 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1097 aarch64_multilibs="${with_multilib_list}"
1098 if test "$aarch64_multilibs" = "default"; then
1099 # TODO: turn on ILP32 multilib build after its support is mature.
1100 # aarch64_multilibs="lp64,ilp32"
1101 aarch64_multilibs="lp64"
1103 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1104 for aarch64_multilib in ${aarch64_multilibs}; do
1105 case ${aarch64_multilib} in
1107 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1110 echo "--with-multilib-list=${aarch64_multilib} not supported."
1114 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1116 aarch64*-wrs-vxworks*)
1117 tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
1118 tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
1119 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
1122 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1123 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1124 extra_options="${extra_options} alpha/elf.opt"
1127 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1128 tmake_file="${tmake_file} alpha/t-alpha"
1129 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1133 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1134 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1135 tmake_file="${tmake_file} alpha/t-alpha"
1136 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1137 # default x-alpha is only appropriate for dec-osf.
1140 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1141 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1144 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1145 tmake_file="arc/t-multilib arc/t-arc"
1146 extra_gcc_objs="driver-arc.o"
1147 if test "x$with_cpu" != x; then
1148 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1150 if test x${with_endian} = x; then
1152 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1153 *) with_endian=little ;;
1156 case ${with_endian} in
1158 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1160 case ${with_endian} in
1161 big*) tm_file="arc/big.h ${tm_file}"
1165 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}"
1166 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1167 extra_gcc_objs="driver-arc.o"
1168 if test "x$with_cpu" != x; then
1169 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1171 if test x${with_endian} = x; then
1173 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1174 *) with_endian=little ;;
1177 case ${with_endian} in
1179 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1181 case ${with_endian} in
1182 big*) tm_file="arc/big.h ${tm_file}"
1184 # Force .init_array support. The configure script cannot always
1185 # automatically detect that GAS supports it, yet we require it.
1186 gcc_cv_initfini_array=yes
1189 # We only support VxWorks 7 now on ARM, post SR600. Pre SR600
1190 # VxWorks 7 was transitory and major versions prior to 7 were based
1191 # on long deprecated ABI, not supported at all any more regardless
1193 extra_options="${extra_options} arm/vxworks.opt"
1194 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1195 tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1196 tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1197 target_cpu_cname="armv7-a"
1198 need_64bit_hwint=yes
1200 arm*-*-freebsd*) # ARM FreeBSD EABI
1201 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1204 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1207 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1208 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1211 target_cpu_cname="arm1176jzf-s"
1212 if test $fbsd_major -ge 11; then
1213 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1217 target_cpu_cname="generic-armv7-a"
1218 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1221 target_cpu_cname="arm9"
1224 with_tls=${with_tls:-gnu}
1227 target_cpu_cname="strongarm"
1228 tmake_file="${tmake_file} arm/t-arm"
1229 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1230 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1232 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1235 arm*-*-netbsdelf-*eabi*)
1236 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1237 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1240 tm_file="$tm_file arm/netbsd-elf.h"
1241 tmake_file="$tmake_file arm/t-netbsd"
1244 tm_file="${tm_file} arm/aout.h arm/arm.h"
1246 arm*-*-netbsdelf-*eabihf*)
1247 # Hard-float requires at least Arm v5te
1248 target_cpu_cname="arm10e"
1249 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1253 armv6*) target_cpu_cname="arm1176jzf-s";;
1254 armv7*) target_cpu_cname="generic-armv7-a";;
1257 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1258 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"
1259 extra_options="${extra_options} linux-android.opt"
1262 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1265 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1266 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1268 arm*-*-uclinuxfdpiceabi)
1269 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1272 # Generation of floating-point instructions requires at least ARMv5te.
1273 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1274 target_cpu_cname="arm10e"
1276 target_cpu_cname="arm10tdmi"
1278 # Define multilib configuration for arm-linux-androideabi.
1281 tmake_file="$tmake_file arm/t-linux-androideabi"
1284 # The EABI requires the use of __cxa_atexit.
1285 default_use_cxa_atexit=yes
1286 with_tls=${with_tls:-gnu}
1288 arm*-*-uclinux*eabi*) # ARM ucLinux
1289 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1290 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1291 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1292 target_cpu_cname="arm7tdmi"
1293 # The EABI requires the use of __cxa_atexit.
1294 default_use_cxa_atexit=yes
1297 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1298 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1299 tm_file="${tm_file} arm/aout.h arm/arm.h"
1300 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1301 target_cpu_cname="arm7tdmi"
1303 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1306 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1308 default_use_cxa_atexit=yes
1309 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1310 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1311 target_cpu_cname="arm7tdmi"
1314 tm_file="$tm_file newlib-stdint.h"
1315 tmake_file="${tmake_file} arm/t-bpabi"
1319 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1320 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1321 target_cpu_cname="generic-armv7-a"
1324 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1325 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1328 tm_file="${tm_file} arm/symbian.h"
1329 # We do not include t-bpabi for Symbian OS because the system
1330 # provides its own implementation of the BPABI functions.
1331 tmake_file="${tmake_file} arm/t-symbian"
1332 target_cpu_cname="arm10tdmi"
1335 tm_file="${tm_file} arm/aout.h arm/arm.h"
1338 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1339 if test x${with_avrlibc} != xno; then
1340 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1341 tm_defines="${tm_defines} WITH_AVRLIBC"
1343 # Work out avr_double_comparison which is 2 or 3 and is used in
1344 # target hook FLOAT_LIB_COMPARE_RETURNS_BOOL to determine whether
1345 # DFmode comparisons return 3-state or 2-state results.
1346 case y${with_double_comparison} in
1348 avr_double_comparison=3
1351 avr_double_comparison=2
1354 echo "Error: --with-double-comparison= can only be used with: 'tristate', 'bool', 'libf7'" 1>&2
1358 case "y${with_libf7}" in
1360 # avr_double_comparison as set above.
1363 avr_double_comparison=2
1364 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1366 y | yyes | ymath-symbols)
1367 avr_double_comparison=2
1368 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1369 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1370 tm_defines="${tm_defines} WITH_LIBF7_MATH_SYMBOLS"
1373 avr_double_comparison=2
1374 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1375 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1378 echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
1382 tm_defines="${tm_defines} WITH_DOUBLE_COMPARISON=${avr_double_comparison}"
1383 case y${with_double} in
1386 tm_defines="${tm_defines} HAVE_DOUBLE32"
1390 tm_defines="${tm_defines} HAVE_DOUBLE64"
1394 avr_double_multilib=1
1395 tm_defines="${tm_defines} HAVE_DOUBLE32"
1396 tm_defines="${tm_defines} HAVE_DOUBLE64"
1397 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1401 avr_double_multilib=1
1402 tm_defines="${tm_defines} HAVE_DOUBLE32"
1403 tm_defines="${tm_defines} HAVE_DOUBLE64"
1404 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1407 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1411 case y${with_long_double} in
1414 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1418 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1422 avr_long_double_multilib=1
1423 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1424 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1425 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1429 avr_long_double_multilib=1
1430 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1431 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1432 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1435 avr_long_double=${avr_double}
1436 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1437 if test y${avr_double_multilib} = y1; then
1438 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1439 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1441 tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1445 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1449 if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1450 if test y${with_long_double} != ydouble; then
1451 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
1455 if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1456 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
1459 if test y${avr_double}${avr_long_double} = y6432; then
1460 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
1463 tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1464 tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1465 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1467 extra_gcc_objs="driver-avr.o avr-devices.o"
1468 extra_objs="avr-devices.o avr-log.o"
1471 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1472 tmake_file=bfin/t-bfin-elf
1476 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1477 tmake_file=bfin/t-bfin-uclinux
1480 bfin*-linux-uclibc*)
1481 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"
1482 tmake_file="${tmake_file} bfin/t-bfin-linux"
1486 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1487 tmake_file="${tmake_file} bfin/t-rtems"
1490 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1495 tmake_file="${tmake_file} bpf/t-bpf"
1497 extra_headers="bpf-helpers.h"
1498 use_gcc_stdint=provide
1501 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1502 tmake_file="${tmake_file} cr16/t-cr16 "
1505 crisv32-*-elf | crisv32-*-none)
1506 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1507 tmake_file="cris/t-cris"
1508 target_cpu_default=32
1510 extra_options="${extra_options} cris/elf.opt"
1513 cris-*-elf | cris-*-none)
1514 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1515 tmake_file="cris/t-cris cris/t-elfmulti"
1517 extra_options="${extra_options} cris/elf.opt"
1520 crisv32-*-linux* | cris-*-linux*)
1521 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1522 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1523 extra_options="${extra_options} cris/linux.opt"
1526 target_cpu_default=10
1529 target_cpu_default=32
1534 if test x${with_endian} != x; then
1535 case ${with_endian} in
1538 echo "with_endian=${with_endian} not supported."
1543 if test x${with_float} != x; then
1544 case ${with_float} in
1547 "Unknown floating point type used in --with-float=$with_float"
1552 tm_file="csky/csky.h"
1553 md_file="csky/csky.md"
1554 out_file="csky/csky.c"
1555 tm_p_file="${tm_p_file} csky/csky-protos.h"
1556 extra_options="${extra_options} csky/csky_tables.opt"
1558 if test x${enable_tpf_debug} = xyes; then
1559 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1564 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1565 tmake_file="csky/t-csky csky/t-csky-elf"
1566 default_use_cxa_atexit=no
1569 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1570 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1572 if test "x${enable_multilib}" = xyes ; then
1573 tm_file="$tm_file ./sysroot-suffix.h"
1574 tmake_file="${tmake_file} csky/t-sysroot-suffix"
1579 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1580 # Force .init_array support. The configure script cannot always
1581 # automatically detect that GAS supports it, yet we require it.
1582 gcc_cv_initfini_array=yes
1584 csky-*-linux-uclibc*)
1585 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1586 default_use_cxa_atexit=no
1589 echo "Unknown target $target"
1595 echo "Unknown target $target"
1600 epiphany-*-elf | epiphany-*-rtems*)
1601 tm_file="${tm_file} dbxelf.h elfos.h"
1602 tmake_file="${tmake_file} epiphany/t-epiphany"
1605 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1608 tm_file="${tm_file} newlib-stdint.h"
1611 extra_options="${extra_options} fused-madd.opt"
1612 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1613 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1614 extra_headers="epiphany_intrinsics.h"
1617 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1620 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1621 tmake_file=frv/t-frv
1624 tm_file="dbxelf.h elfos.h ${tm_file} \
1625 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1626 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1631 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1632 tmake_file="${tmake_file} ft32/t-ft32"
1635 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1636 tmake_file="gcn/t-gcn-hsa"
1637 native_system_header_dir=/include
1638 extra_modes=gcn/gcn-modes.def
1639 extra_objs="${extra_objs} gcn-tree.o"
1640 extra_gcc_objs="driver-gcn.o"
1642 x86_64*-*-linux-gnu )
1643 if test "$ac_cv_search_dlopen" != no; then
1644 extra_programs="${extra_programs} gcn-run\$(exeext)"
1648 if test x$enable_as_accelerator = xyes; then
1649 extra_programs="${extra_programs} mkoffload\$(exeext)"
1650 tm_file="${tm_file} gcn/offload.h"
1652 # Force .init_array support.
1653 gcc_cv_initfini_array=yes
1659 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1660 tmake_file="${tmake_file} moxie/t-moxie"
1665 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1666 tmake_file="${tmake_file} moxie/t-moxie"
1669 tmake_file="${tmake_file} moxie/t-moxie"
1670 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1675 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1676 tmake_file="${tmake_file} moxie/t-moxiebox"
1679 tmake_file="h8300/t-h8300"
1680 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1683 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1684 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1687 target_cpu_default="MASK_PA_11|MASK_PA_20"
1688 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1689 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1691 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1692 d_target_objs="${d_target_objs} pa-d.o"
1696 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1697 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1698 pa/pa32-regs.h pa/pa32-linux.h"
1699 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1700 d_target_objs="${d_target_objs} pa-d.o"
1703 target_cpu_default="MASK_PA_11"
1704 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1705 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1706 extra_options="${extra_options} openbsd.opt"
1707 tmake_file="pa/t-pa"
1708 d_target_objs="${d_target_objs} pa-d.o"
1713 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1714 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} \
1715 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1716 tmake_file="${tmake_file}"
1717 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1718 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1720 hppa[12]*-*-hpux10*)
1722 hppa1.1-*-* | hppa2*-*-*)
1723 target_cpu_default="MASK_PA_11"
1726 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1727 pa/pa-hpux.h pa/pa-hpux10.h"
1728 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1731 tm_file="${tm_file} pa/pa-hpux1010.h"
1732 extra_options="${extra_options} pa/pa-hpux1010.opt"
1735 use_gcc_stdint=provide
1736 tm_file="${tm_file} hpux-stdint.h"
1737 tmake_file="pa/t-pa t-slibgcc"
1738 d_target_objs="${d_target_objs} pa-d.o"
1739 case ${enable_threads} in
1741 if test x$have_pthread_h = xyes ; then
1742 tmake_file="${tmake_file} pa/t-dce-thr"
1746 tmake_file="${tmake_file} pa/t-dce-thr"
1751 if test "x$with_dwarf2" != x; then
1752 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1757 target_cpu_default="MASK_PA_11|MASK_PA_20"
1758 if test x$gnu_ld = xyes
1760 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1762 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1763 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1767 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1768 extra_options="${extra_options} pa/pa-hpux1111.opt"
1771 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1772 extra_options="${extra_options} pa/pa-hpux1131.opt"
1775 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1778 extra_options="${extra_options} pa/pa-hpux.opt \
1779 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1780 tmake_file="pa/t-pa t-slibgcc"
1781 d_target_objs="${d_target_objs} pa-d.o"
1782 case x${enable_threads} in
1790 use_gcc_stdint=provide
1791 tm_file="${tm_file} hpux-stdint.h"
1795 tm_file="${tm_file} hpux-stdint.h"
1799 hppa[12]*-*-hpux11*)
1801 hppa1.1-*-* | hppa2*-*-*)
1802 target_cpu_default="MASK_PA_11"
1805 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1806 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1807 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1811 tm_file="${tm_file} pa/pa-hpux1111.h"
1812 extra_options="${extra_options} pa/pa-hpux1111.opt"
1815 tm_file="${tm_file} pa/pa-hpux1131.h"
1816 extra_options="${extra_options} pa/pa-hpux1131.opt"
1819 tmake_file="pa/t-pa t-slibgcc"
1820 d_target_objs="${d_target_objs} pa-d.o"
1821 case x${enable_threads} in
1830 use_gcc_stdint=provide
1831 tm_file="${tm_file} hpux-stdint.h"
1835 tm_file="${tm_file} hpux-stdint.h"
1838 if test "x$with_dwarf2" != x; then
1839 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1843 i[34567]86-*-darwin1[89]*)
1844 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1846 i[34567]86-*-darwin*)
1848 # Baseline choice for a machine that allows m64 support.
1849 with_cpu=${with_cpu:-core2}
1850 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1851 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
1853 x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
1855 with_cpu=${with_cpu:-core2}
1856 tmake_file="${tmake_file} t-slibgcc"
1859 with_cpu=${with_cpu:-core2}
1860 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1861 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
1863 i[34567]86-*-elfiamcu)
1864 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1867 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1870 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1873 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"
1876 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1879 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"
1880 tmake_file="i386/t-i386elf t-svr4"
1882 i[34567]86-*-dragonfly*)
1883 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1884 tmake_file="${tmake_file} i386/t-crtstuff"
1886 x86_64-*-dragonfly*)
1887 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/x86-64.h i386/dragonfly.h"
1888 tmake_file="${tmake_file} i386/t-crtstuff"
1890 i[34567]86-*-freebsd*)
1891 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1894 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"
1896 i[34567]86-*-netbsdelf*)
1897 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1898 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1901 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1902 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1904 i[34567]86-*-openbsd*)
1905 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1906 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1907 extra_options="${extra_options} openbsd.opt"
1912 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1913 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1914 extra_options="${extra_options} openbsd.opt"
1918 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1919 # Intel 80386's running GNU/*
1920 # with ELF format using glibc 2
1921 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1923 i[34567]86-*-linux*)
1924 tm_file="${tm_file} linux.h linux-android.h"
1925 extra_options="${extra_options} linux-android.opt"
1926 if test x$enable_targets = xall; then
1927 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1928 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1929 tmake_file="${tmake_file} i386/t-linux64"
1930 x86_multilibs="${with_multilib_list}"
1931 if test "$x86_multilibs" = "default"; then
1932 x86_multilibs="m64,m32"
1934 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1935 for x86_multilib in ${x86_multilibs}; do
1936 case ${x86_multilib} in
1938 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1941 echo "--with-multilib-list=${x86_with_multilib} not supported."
1945 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1947 if test x$with_cpu = x; then
1948 if test x$with_cpu_64 = x; then
1952 case " $x86_cpus $x86_archs $x86_64_archs " in
1956 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1957 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1963 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1966 i[34567]86-*-kfreebsd*-gnu)
1967 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1969 i[34567]86-*-kopensolaris*-gnu)
1970 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1973 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1977 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1978 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1979 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1982 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1983 extra_options="${extra_options} linux-android.opt"
1985 x86_64-*-kfreebsd*-gnu)
1986 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1989 tmake_file="${tmake_file} i386/t-linux64"
1990 x86_multilibs="${with_multilib_list}"
1991 if test "$x86_multilibs" = "default"; then
1994 x86_multilibs="mx32"
1997 x86_multilibs="m64,m32"
2001 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
2002 for x86_multilib in ${x86_multilibs}; do
2003 case ${x86_multilib} in
2005 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
2008 echo "--with-multilib-list=${x86_with_multilib} not supported."
2012 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2014 i[34567]86-pc-msdosdjgpp*)
2015 xm_file=i386/xm-djgpp.h
2016 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
2017 native_system_header_dir=/dev/env/DJDIR/include
2018 extra_options="${extra_options} i386/djgpp.opt"
2023 i[34567]86-*-lynxos*)
2025 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
2026 tmake_file="${tmake_file} t-lynx"
2027 extra_options="${extra_options} lynx.opt"
2032 i[34567]86-*-nto-qnx*)
2033 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
2034 extra_options="${extra_options} i386/nto.opt"
2038 i[34567]86-*-rtems*)
2039 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"
2040 tmake_file="${tmake_file} i386/t-rtems"
2042 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
2043 # Set default arch_32 to pentium4, tune_32 to generic like the other
2044 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
2045 with_arch_32=${with_arch_32:-pentium4}
2046 with_tune_32=${with_tune_32:-generic}
2047 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
2048 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2049 tmake_file="$tmake_file i386/t-sol2"
2051 if test x$with_cpu = x; then
2052 if test x$with_cpu_64 = x; then
2056 case " $x86_cpus $x86_archs $x86_64_archs " in
2060 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2061 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2067 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
2068 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
2072 tm_file="${tm_file} i386/x86-64.h"
2075 tm_file="${tm_file} vx-common.h"
2078 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2079 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2082 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2083 tmake_file="${tmake_file} i386/t-vxworks"
2087 i[34567]86-*-cygwin*)
2088 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"
2089 xm_file=i386/xm-cygwin.h
2090 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
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
2104 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"
2105 xm_file=i386/xm-cygwin.h
2106 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
2107 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2108 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2109 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2110 c_target_objs="${c_target_objs} msformat-c.o"
2111 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2112 if test x$enable_threads = xyes; then
2115 default_use_cxa_atexit=yes
2117 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2119 i[34567]86-*-mingw* | x86_64-*-mingw*)
2120 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
2121 xm_file=i386/xm-mingw32.h
2122 c_target_objs="${c_target_objs} winnt-c.o"
2123 cxx_target_objs="${cxx_target_objs} winnt-c.o"
2124 target_has_targetcm="yes"
2126 x86_64-*-* | *-w64-*)
2132 if test x$enable_threads = xposix ; then
2133 tm_file="${tm_file} i386/mingw-pthread.h"
2135 tm_file="${tm_file} i386/mingw32.h"
2136 # This makes the logic if mingw's or the w64 feature set has to be used
2139 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2140 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2141 tm_file="${tm_file} i386/mingw-w64.h"
2142 if test x$enable_targets = xall; then
2143 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2144 if test x$with_cpu = x; then
2145 if test x$with_cpu_64 = x; then
2149 case " $x86_cpus $x86_archs $x86_64_archs " in
2153 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2154 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2164 tm_file="${tm_file} i386/mingw-stdint.h"
2165 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2168 tmake_file="${tmake_file} i386/t-mingw-w64"
2171 tmake_file="${tmake_file} i386/t-mingw-w32"
2174 native_system_header_dir=/mingw/include
2175 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2176 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2179 extra_options="${extra_options} i386/mingw-w64.opt"
2184 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2185 c_target_objs="${c_target_objs} msformat-c.o"
2186 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2189 default_use_cxa_atexit=yes
2191 case ${enable_threads} in
2201 tm_file="${tm_file} i386/crtdll.h"
2203 *mingw32msv* | *mingw*)
2208 tmake_file="${tmake_file} i386/t-x86_64-elf"
2209 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2212 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2213 tmake_file="ia64/t-ia64"
2214 target_cpu_default="0"
2215 if test x$gas = xyes
2217 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2219 if test x$gnu_ld = xyes
2221 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2225 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2226 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2227 tmake_file="${tmake_file} ia64/t-ia64"
2230 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2231 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2232 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2235 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
2236 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2237 target_cpu_default="MASK_GNU_AS"
2238 case x$enable_threads in
2244 c_target_objs="ia64-c.o"
2245 cxx_target_objs="ia64-c.o"
2246 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2248 tm_file="${tm_file} hpux-stdint.h"
2251 tm_file="${tm_file} ia64/hpux-unix2003.h"
2256 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2257 tmake_file="${tmake_file} ia64/t-ia64"
2258 target_cpu_default="0"
2259 if test x$gas = xyes
2261 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2263 extra_options="${extra_options} ia64/vms.opt"
2266 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2267 out_file=iq2000/iq2000.c
2268 md_file=iq2000/iq2000.md
2271 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2272 tmake_file="${tmake_file} lm32/t-lm32"
2275 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2276 tmake_file="${tmake_file} lm32/t-lm32"
2277 tmake_file="${tmake_file} lm32/t-rtems"
2280 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2281 tmake_file="${tmake_file} lm32/t-lm32"
2284 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2287 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2290 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
2291 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2293 if test x$enable_threads = xyes; then
2298 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
2299 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2301 if test x$enable_threads = xyes; then
2305 m68k-*-elf* | fido-*-elf*)
2308 # Check that $with_cpu makes sense.
2313 echo "Cannot accept --with-cpu=$with_cpu"
2320 default_m68k_cpu=68020
2324 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"
2325 tm_defines="${tm_defines} MOTOROLA=1"
2326 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2327 # Add multilibs for targets other than fido.
2332 tmake_file="$tmake_file m68k/t-mlibs"
2337 default_m68k_cpu=68020
2339 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2340 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2341 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2344 default_m68k_cpu=68020
2346 # needed to unconfuse gdb
2347 tm_defines="${tm_defines} OBSD_OLD_GAS"
2348 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
2349 extra_options="${extra_options} openbsd.opt"
2350 tmake_file="t-openbsd m68k/t-openbsd"
2351 # we need collect2 until our bug is fixed...
2354 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2355 # with uClibc, using the new GNU/Linux-style
2357 default_m68k_cpu=68020
2359 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"
2360 extra_options="${extra_options} m68k/uclinux.opt"
2361 tm_defines="${tm_defines} MOTOROLA=1"
2362 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2364 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2365 # with ELF format using glibc 2
2366 # aka the GNU/Linux C library 6.
2367 default_m68k_cpu=68020
2369 with_arch=${with_arch:-m68k}
2370 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2371 extra_options="${extra_options} m68k/ieee.opt"
2372 tm_defines="${tm_defines} MOTOROLA=1"
2373 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2376 default_m68k_cpu=68020
2378 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2379 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"
2380 tm_defines="${tm_defines} MOTOROLA=1"
2383 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2384 tmake_file=mcore/t-mcore
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 gnu-user.h linux.h microblaze/linux.h"
2397 tm_file="${tm_file} glibc-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-microblaze-linux"
2403 microblaze*-*-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"
2413 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2414 c_target_objs="${c_target_objs} microblaze-c.o"
2415 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2416 tmake_file="${tmake_file} microblaze/t-microblaze"
2417 tmake_file="${tmake_file} microblaze/t-rtems"
2422 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2425 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2428 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2429 c_target_objs="${c_target_objs} microblaze-c.o"
2430 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2431 tmake_file="${tmake_file} microblaze/t-microblaze"
2434 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2435 case "x${enable_multilib}" in
2437 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2438 *) echo "Unknown value for enable_multilib"; exit 1
2440 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2443 # Force .init_array support. The configure script cannot always
2444 # automatically detect that GAS supports it, yet we require it.
2445 gcc_cv_initfini_array=yes
2447 riscv*-*-elf* | riscv*-*-rtems*)
2448 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2451 tm_file="${tm_file} rtems.h riscv/rtems.h"
2452 tmake_file="${tmake_file} riscv/t-rtems"
2455 case "x${enable_multilib}" in
2457 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2458 *) echo "Unknown value for enable_multilib"; exit 1
2461 tmake_file="${tmake_file} riscv/t-riscv"
2464 # Force .init_array support. The configure script cannot always
2465 # automatically detect that GAS supports it, yet we require it.
2466 gcc_cv_initfini_array=yes
2469 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2470 tmake_file="${tmake_file} riscv/t-riscv"
2473 # Force .init_array support. The configure script cannot always
2474 # automatically detect that GAS supports it, yet we require it.
2475 gcc_cv_initfini_array=yes
2477 mips*-*-netbsd*) # NetBSD/mips, either endian.
2478 target_cpu_default="MASK_ABICALLS"
2479 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2480 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2483 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"
2484 extra_options="${extra_options} linux-android.opt"
2485 tmake_file="${tmake_file} mips/t-img-linux"
2486 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2487 with_arch_32="mips32r6"
2488 with_arch_64="mips64r6"
2493 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"
2494 extra_options="${extra_options} linux-android.opt"
2495 tmake_file="${tmake_file} mips/t-mti-linux"
2496 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2497 with_arch_32="mips32r2"
2498 with_arch_64="mips64r2"
2502 mips*-*-linux*) # Linux MIPS, either endian.
2503 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"
2504 extra_options="${extra_options} linux-android.opt"
2507 default_mips_arch=mips32r6
2510 default_mips_arch=mips32r2
2513 default_mips_arch=mips32
2515 mips64el-st-linux-gnu)
2516 default_mips_abi=n32
2517 tm_file="${tm_file} mips/st.h"
2518 tmake_file="${tmake_file} mips/t-st"
2519 enable_mips_multilibs="yes"
2521 mips64octeon*-*-linux*)
2522 default_mips_abi=n32
2523 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2524 target_cpu_default=MASK_SOFT_FLOAT_ABI
2525 enable_mips_multilibs="yes"
2527 mipsisa64r6*-*-linux*)
2528 default_mips_abi=n32
2529 default_mips_arch=mips64r6
2530 enable_mips_multilibs="yes"
2532 mipsisa64r2*-*-linux*)
2533 default_mips_abi=n32
2534 default_mips_arch=mips64r2
2535 enable_mips_multilibs="yes"
2537 mips64*-*-linux* | mipsisa64*-*-linux*)
2538 default_mips_abi=n32
2539 enable_mips_multilibs="yes"
2542 if test x$enable_targets = xall; then
2543 enable_mips_multilibs="yes"
2545 if test x$enable_mips_multilibs = xyes; then
2546 tmake_file="${tmake_file} mips/t-linux64"
2550 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2551 tmake_file="mips/t-mti-elf"
2552 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2553 with_arch_32="mips32r2"
2554 with_arch_64="mips64r2"
2557 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2558 tmake_file="mips/t-img-elf"
2559 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2560 with_arch_32="mips32r6"
2561 with_arch_64="mips64r6"
2564 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2565 tmake_file="mips/t-sde"
2566 extra_options="${extra_options} mips/sde.opt"
2567 case "${with_newlib}" in
2569 # newlib / libgloss.
2572 # MIPS toolkit libraries.
2573 tm_file="$tm_file mips/sdemtk.h"
2574 tmake_file="$tmake_file mips/t-sdemtk"
2575 case ${enable_threads} in
2577 thread_file='mipssde'
2584 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2587 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2590 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2593 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2596 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2599 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2603 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2604 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2605 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2606 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2607 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2608 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2609 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2610 tmake_file="mips/t-isa3264"
2613 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2616 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2619 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2622 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2625 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2628 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2632 mipsisa32*-*-elfoabi*)
2633 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2634 tm_file="${tm_file} mips/elfoabi.h"
2636 mipsisa64*-*-elfoabi*)
2637 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2638 tm_file="${tm_file} mips/elfoabi.h"
2641 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2645 mipsisa64sr71k-*-elf*)
2646 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2647 tmake_file=mips/t-sr71k
2648 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2650 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2651 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2652 tmake_file="mips/t-elf mips/t-sb1"
2653 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2655 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2656 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2657 tmake_file="mips/t-elf"
2659 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2660 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2661 tmake_file="mips/t-elf"
2662 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2664 mips64-*-elf* | mips64el-*-elf*)
2665 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2666 tmake_file="mips/t-elf"
2667 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2669 mips64vr-*-elf* | mips64vrel-*-elf*)
2670 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2671 tmake_file=mips/t-vr
2672 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2674 mips64orion-*-elf* | mips64orionel-*-elf*)
2675 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2676 tmake_file="mips/t-elf"
2677 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2680 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2681 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2684 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2685 tmake_file="${tmake_file} mips/t-vxworks"
2687 mipstx39-*-elf* | mipstx39el-*-elf*)
2688 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2689 tmake_file="mips/t-r3900"
2691 mmix-knuth-mmixware)
2692 tm_file="${tm_file} newlib-stdint.h"
2696 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2697 if test x$stabs = xyes
2699 tm_file="${tm_file} dbx.h"
2705 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2706 c_target_objs="msp430-c.o"
2707 cxx_target_objs="msp430-c.o"
2708 tmake_file="${tmake_file} msp430/t-msp430"
2709 extra_objs="${extra_objs} msp430-devices.o"
2710 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2711 # Enable .init_array unless it has been explicitly disabled.
2712 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2713 # code since mid-2019 expects it.
2714 if test x${disable_initfini_array} != xyes; then
2715 gcc_cv_initfini_array=yes
2719 # __cxa_atexit increases code size, and we don't need to support
2720 # dynamic shared objects on MSP430, so regular Newlib atexit is a
2721 # fine replacement as it also supports registration of more than 32
2723 default_use_cxa_atexit=no
2724 # This target does not match the generic *-*-elf case above which
2725 # sets use_gcc_stdint=wrap, so explicitly set it here.
2731 target_cpu_default="0"
2732 tm_defines="${tm_defines}"
2737 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2738 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2743 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2744 tmake_file="nds32/t-nds32 nds32/t-elf"
2747 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2748 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2749 gcc_cv_initfini_array=yes
2753 # Handle --enable-default-relax setting.
2754 if test x${enable_default_relax} = xyes; then
2755 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2757 # Handle --with-ext-dsp
2758 if test x${with_ext_dsp} = xyes; then
2759 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2763 tm_file="elfos.h ${tm_file}"
2764 tmake_file="${tmake_file} nios2/t-nios2"
2767 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2770 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2771 extra_options="${extra_options} nios2/elf.opt"
2774 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2775 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2780 tm_file="${tm_file} newlib-stdint.h"
2782 tmake_file="nvptx/t-nvptx"
2783 if test x$enable_as_accelerator = xyes; then
2784 extra_programs="${extra_programs} mkoffload\$(exeext)"
2785 tm_file="${tm_file} nvptx/offload.h"
2789 tm_file="elfos.h ${tm_file}"
2790 tmake_file="${tmake_file} or1k/t-or1k"
2791 # Force .init_array support. The configure script cannot always
2792 # automatically detect that GAS supports it, yet we require it.
2793 gcc_cv_initfini_array=yes
2795 # Handle --with-multilib-list=...
2796 or1k_multilibs="${with_multilib_list}"
2797 if test "$or1k_multilibs" = "default"; then
2798 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2800 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2801 for or1k_multilib in ${or1k_multilibs}; do
2802 case ${or1k_multilib} in
2803 mcmov | msext | msfimm | \
2805 mhard-float | mdouble-float | munordered-float | msoft-float | \
2806 mhard-div | mhard-mul | \
2807 msoft-div | msoft-mul )
2808 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2811 echo "--with-multilib-list=${with_multilib_list} not supported."
2815 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2819 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2820 tm_file="${tm_file} or1k/linux.h"
2823 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2824 extra_options="${extra_options} or1k/elf.opt"
2827 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2828 tmake_file="${tmake_file} or1k/t-rtems"
2833 tm_file="${tm_file} newlib-stdint.h"
2836 # port not yet contributed
2837 #powerpc-*-openbsd*)
2838 # tmake_file="${tmake_file} rs6000/t-fprules"
2842 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2844 *-darwin1[0-9]* | *-darwin9*)
2845 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2846 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2849 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2850 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2851 tm_file="${tm_file} ${cpu_type}/darwin8.h"
2854 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2857 # Earlier - ingle arch, with 32b only
2858 # OS X 10.0, the first edition is Darwin4
2861 tmake_file="${tmake_file} t-slibgcc"
2863 powerpc64-*-darwin*)
2864 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2865 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2866 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2868 powerpc*-*-freebsd*)
2869 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2870 extra_options="${extra_options} rs6000/sysv4.opt"
2871 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2874 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2875 tmake_file="${tmake_file} rs6000/t-freebsd64"
2876 extra_options="${extra_options} rs6000/linux64.opt"
2877 if test $fbsd_major -ge 13; then
2878 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2882 if test $fbsd_major -ge 13; then
2883 tm_file="rs6000/secureplt.h ${tm_file}"
2885 tm_file="${tm_file} rs6000/freebsd.h"
2890 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2891 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2892 tmake_file="${tmake_file} rs6000/t-netbsd"
2893 extra_options="${extra_options} rs6000/sysv4.opt"
2895 powerpc-*-eabisimaltivec*)
2896 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"
2897 extra_options="${extra_options} rs6000/sysv4.opt"
2898 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2902 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"
2903 extra_options="${extra_options} rs6000/sysv4.opt"
2904 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2908 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2909 extra_options="${extra_options} rs6000/sysv4.opt"
2910 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2912 powerpc-*-eabialtivec*)
2913 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"
2914 extra_options="${extra_options} rs6000/sysv4.opt"
2915 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2919 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"
2920 extra_options="${extra_options} rs6000/sysv4.opt"
2921 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2925 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"
2926 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2927 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2930 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2931 extra_options="${extra_options} rs6000/sysv4.opt"
2932 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2933 extra_objs="$extra_objs rs6000-linux.o"
2936 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2938 case ${target}:${with_cpu} in
2939 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2941 maybe_biarch=${cpu_is_64bit}
2942 case ${enable_targets} in
2943 *powerpc64*) maybe_biarch=yes ;;
2944 all) maybe_biarch=yes ;;
2946 case ${target}:${enable_targets}:${maybe_biarch} in
2947 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2948 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2949 | powerpcle-*:*powerpc64le*:yes)
2950 if test x$cpu_is_64bit = xyes; then
2951 tm_file="${tm_file} rs6000/default64.h"
2953 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2954 tmake_file="$tmake_file rs6000/t-linux64"
2957 tmake_file="$tmake_file rs6000/t-linux64le"
2958 case ${enable_targets} in
2959 all | *powerpc64-* | *powerpc-*)
2960 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2963 case ${enable_targets} in
2964 all | *powerpc64le-* | *powerpcle-*)
2965 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2968 extra_options="${extra_options} rs6000/linux64.opt"
2971 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2972 extra_options="${extra_options} rs6000/linux64.opt"
2973 tmake_file="${tmake_file} rs6000/t-linux"
2976 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2977 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2981 powerpc*-*-linux*ppc476*)
2982 tm_file="${tm_file} rs6000/476.h"
2983 extra_options="${extra_options} rs6000/476.opt" ;;
2984 powerpc*-*-linux*altivec*)
2985 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2989 enable_secureplt=yes ;;
2991 if test x${enable_secureplt} = xyes; then
2992 tm_file="rs6000/secureplt.h ${tm_file}"
2995 powerpc-wrs-vxworks*)
2996 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2997 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2998 extra_options="${extra_options} rs6000/sysv4.opt"
2999 extra_headers="${extra_headers} ppc-asm.h"
3002 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
3003 tmake_file="${tmake_file} rs6000/t-vxworksmils"
3006 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
3007 tmake_file="${tmake_file} rs6000/t-vxworksae"
3010 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3016 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3017 tmake_file="t-lynx rs6000/t-lynx"
3018 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3024 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"
3025 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3026 extra_options="${extra_options} rs6000/sysv4.opt"
3028 powerpcle-*-eabisim*)
3029 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"
3030 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3031 extra_options="${extra_options} rs6000/sysv4.opt"
3035 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"
3036 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3037 extra_options="${extra_options} rs6000/sysv4.opt"
3041 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3042 tmake_file="${tmake_file} pru/t-pru"
3043 extra_objs="pru-pragma.o pru-passes.o"
3046 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
3047 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
3048 tmake_file="rs6000/t-aix52 t-slibgcc"
3049 extra_options="${extra_options} rs6000/aix64.opt"
3053 default_use_cxa_atexit=yes
3055 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3056 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3057 tmake_file="rs6000/t-aix52 t-slibgcc"
3058 extra_options="${extra_options} rs6000/aix64.opt"
3062 default_use_cxa_atexit=yes
3064 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3065 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3066 tmake_file="rs6000/t-aix52 t-slibgcc"
3067 extra_options="${extra_options} rs6000/aix64.opt"
3071 default_use_cxa_atexit=yes
3074 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3075 target_has_targetm_common=no
3076 c_target_objs="rl78-c.o"
3077 cxx_target_objs="rl78-c.o"
3078 tmake_file="${tmake_file} rl78/t-rl78"
3081 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3082 tmake_file="${tmake_file} rx/t-rx"
3083 extra_options="${extra_options} rx/elf.opt"
3086 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3087 tmake_file="${tmake_file} rx/t-linux"
3090 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3091 c_target_objs="${c_target_objs} s390-c.o"
3092 cxx_target_objs="${cxx_target_objs} s390-c.o"
3093 if test x$enable_targets = xall; then
3094 tmake_file="${tmake_file} s390/t-linux64"
3096 tmake_file="${tmake_file} s390/t-s390"
3099 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3100 tm_p_file="linux-protos.h s390/s390-protos.h"
3101 c_target_objs="${c_target_objs} s390-c.o"
3102 cxx_target_objs="${cxx_target_objs} s390-c.o"
3103 md_file=s390/s390.md
3104 extra_modes=s390/s390-modes.def
3105 out_file=s390/s390.c
3106 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3109 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h glibc-stdint.h s390/tpf.h"
3110 tm_p_file=s390/s390-protos.h
3111 c_target_objs="${c_target_objs} s390-c.o"
3112 cxx_target_objs="${cxx_target_objs} s390-c.o"
3113 md_file=s390/s390.md
3114 extra_modes=s390/s390-modes.def
3115 out_file=s390/s390.c
3117 extra_options="${extra_options} s390/tpf.opt"
3118 tmake_file="${tmake_file} s390/t-s390"
3120 sh-*-elf* | sh[12346l]*-*-elf* | \
3121 sh-*-linux* | sh[2346lbe]*-*-linux* | \
3122 sh-*-netbsdelf* | shl*-*-netbsdelf*)
3123 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3124 if test x${with_endian} = x; then
3126 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3127 shbe-*-* | sheb-*-*) with_endian=big,little ;;
3128 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
3129 shl* | sh*-*-linux* | \
3130 sh-superh-elf) with_endian=little,big ;;
3131 sh[1234]*-*-*) with_endian=big ;;
3132 *) with_endian=big,little ;;
3135 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3136 # First word : the default endian.
3137 # Second word: the secondary endian (optional).
3138 case ${with_endian} in
3139 big) TM_ENDIAN_CONFIG=mb ;;
3140 little) TM_ENDIAN_CONFIG=ml ;;
3141 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
3142 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
3143 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
3145 case ${with_endian} in
3146 little*) tm_file="sh/little.h ${tm_file}" ;;
3148 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
3150 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
3151 if test x$enable_fdpic = xyes; then
3152 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3154 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3156 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3157 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3160 sh*-superh-elf) if test x$with_libgloss != xno; then
3162 tm_file="${tm_file} sh/newlib.h"
3164 tm_file="${tm_file} sh/embed-elf.h"
3165 tm_file="${tm_file} sh/superh.h"
3166 extra_options="${extra_options} sh/superh.opt" ;;
3167 *) if test x$with_newlib = xyes \
3168 && test x$with_libgloss = xyes; then
3169 tm_file="${tm_file} sh/newlib.h"
3171 tm_file="${tm_file} sh/embed-elf.h" ;;
3177 tm_file="${tm_file} newlib-stdint.h"
3180 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3181 case `echo ${target} | sed 's/e[lb]-/-/'` in
3182 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
3183 sh4a_single*) sh_cpu_target=sh4a-single ;;
3184 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
3185 sh4al) sh_cpu_target=sh4al ;;
3186 sh4a*) sh_cpu_target=sh4a ;;
3187 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3188 sh4_single*) sh_cpu_target=sh4-single ;;
3189 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3190 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3191 sh3e*) sh_cpu_target=sh3e ;;
3192 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3193 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3194 sh2a_single*) sh_cpu_target=sh2a-single ;;
3195 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3196 sh2a*) sh_cpu_target=sh2a ;;
3197 sh2e*) sh_cpu_target=sh2e ;;
3198 sh2*) sh_cpu_target=sh2 ;;
3199 *) sh_cpu_target=sh1 ;;
3201 # did the user say --without-fp ?
3202 if test x$with_fp = xno; then
3203 case ${sh_cpu_target} in
3205 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3206 sh4*) sh_cpu_target=sh4-nofpu ;;
3207 sh3*) sh_cpu_target=sh3 ;;
3208 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3209 sh2*) sh_cpu_target=sh2 ;;
3210 *) echo --without-fp not available for $target: ignored
3212 tm_defines="$tm_defines STRICT_NOFPU=1"
3214 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3215 case $sh_cpu_default in
3216 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3217 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3218 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3219 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3220 "") sh_cpu_default=${sh_cpu_target} ;;
3221 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3223 sh_multilibs=${with_multilib_list}
3224 if test "$sh_multilibs" = "default" ; then
3226 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3227 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3228 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3229 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3230 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3232 if test x$with_fp = xno; then
3233 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`"
3236 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3237 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3238 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3239 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3240 for sh_multilib in ${sh_multilibs}; do
3241 case ${sh_multilib} in
3242 m1 | m2 | m2e | m3 | m3e | \
3243 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3244 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3245 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3246 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3247 # It is passed to MULTIILIB_OPTIONS verbatim.
3248 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3249 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3251 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3252 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3253 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3255 echo "with_multilib_list=${sh_multilib} not supported."
3260 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3261 if test x${enable_incomplete_targets} = xyes ; then
3262 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3264 tm_file="$tm_file ./sysroot-suffix.h"
3265 tmake_file="$tmake_file t-sysroot-suffix"
3268 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3269 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3272 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3273 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3276 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3279 tmake_file="sparc/t-sparc sparc/t-leon"
3282 tmake_file="sparc/t-sparc sparc/t-leon3"
3285 tmake_file="sparc/t-sparc sparc/t-elf"
3290 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3291 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3294 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3295 extra_options="${extra_options} sparc/long-double-switch.opt"
3298 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3301 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3304 tmake_file="${tmake_file} sparc/t-sparc"
3307 if test x$enable_targets = xall; then
3308 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3309 tmake_file="${tmake_file} sparc/t-linux64"
3311 tm_file="${tm_file} sparc/linux.h"
3312 tmake_file="${tmake_file} sparc/t-linux"
3316 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3317 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3318 extra_options="${extra_options} sparc/long-double-switch.opt"
3319 tmake_file="${tmake_file} sparc/t-sparc"
3322 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3324 sparc64-*-* | sparcv9-*-*)
3325 tm_file="sparc/default64.h ${tm_file}"
3328 test x$with_cpu != x || with_cpu=v9
3331 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3334 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3335 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3338 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3339 extra_options="${extra_options}"
3340 tmake_file="${tmake_file} sparc/t-sparc"
3343 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3344 extra_options="${extra_options}"
3345 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3348 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"
3349 extra_options="${extra_options} sparc/long-double-switch.opt"
3350 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3352 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3353 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3354 extra_options="${extra_options} sparc/long-double-switch.opt"
3355 case "x$with_cpu" in
3357 x) with_cpu=ultrasparc ;;
3358 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3360 tmake_file="${tmake_file} sparc/t-sparc"
3363 tm_file="sparc/biarch64.h ${tm_file}"
3364 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3365 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3366 extra_options="${extra_options} sparc/long-double-switch.opt"
3367 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3370 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3371 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3372 extra_options="${extra_options} openbsd.opt"
3373 extra_options="${extra_options}"
3376 tmake_file="${tmake_file} sparc/t-sparc"
3379 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3380 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3381 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3385 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3386 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3387 tm_file="${tm_file} ./sysroot-suffix.h"
3388 tmake_file="t-sysroot-suffix t-slibgcc"
3389 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3393 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3394 tmake_file="${tmake_file} tilegx/t-tilegx"
3395 extra_objs="${extra_objs} mul-tables.o"
3396 c_target_objs="${c_target_objs} tilegx-c.o"
3397 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3398 extra_headers="feedback.h"
3401 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3406 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3407 tmake_file="${tmake_file} tilepro/t-tilepro"
3408 extra_objs="${extra_objs} mul-tables.o"
3409 c_target_objs="${c_target_objs} tilepro-c.o"
3410 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3411 extra_headers="feedback.h"
3414 target_cpu_default="TARGET_CPU_generic"
3415 tm_file="dbxelf.h elfos.h v850/v850.h"
3416 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3417 tmake_file="${tmake_file} v850/t-v850"
3418 tmake_file="${tmake_file} v850/t-rtems"
3420 c_target_objs="v850-c.o"
3421 cxx_target_objs="v850-c.o"
3426 target_cpu_default="TARGET_CPU_v850e3v5"
3429 target_cpu_default="TARGET_CPU_v850e2v3"
3432 target_cpu_default="TARGET_CPU_v850e2"
3434 v850e1-*-* | v850es-*-*)
3435 target_cpu_default="TARGET_CPU_v850e1"
3438 target_cpu_default="TARGET_CPU_v850e"
3441 target_cpu_default="TARGET_CPU_generic"
3444 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3445 if test x$stabs = xyes
3447 tm_file="${tm_file} dbx.h"
3450 c_target_objs="v850-c.o"
3451 cxx_target_objs="v850-c.o"
3455 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3456 extra_options="${extra_options} vax/elf.opt"
3459 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3460 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3461 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3464 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3465 extra_options="${extra_options} openbsd.opt"
3469 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3470 tmake_file="visium/t-visium visium/t-crtstuff"
3473 # For historical reasons, the target files omit the 'x'.
3474 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3475 tm_p_file=stormy16/stormy16-protos.h
3476 tm_d_file="elfos.h stormy16/stormy16.h"
3477 md_file=stormy16/stormy16.md
3478 out_file=stormy16/stormy16.c
3479 extra_options=stormy16/stormy16.opt
3480 tmake_file="stormy16/t-stormy16"
3483 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3484 extra_options="${extra_options} xtensa/elf.opt"
3487 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3488 tmake_file="${tmake_file} xtensa/t-xtensa"
3491 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3492 tmake_file="${tmake_file} xtensa/t-xtensa"
3493 extra_options="${extra_options} xtensa/uclinux.opt"
3496 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3501 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3502 c_target_objs="m32c-pragma.o"
3503 cxx_target_objs="m32c-pragma.o"
3506 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3507 c_target_objs="m32c-pragma.o"
3508 cxx_target_objs="m32c-pragma.o"
3511 echo "*** Configuration ${target} not supported" 1>&2
3517 i[34567]86-*-linux* | x86_64-*-linux*)
3518 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3520 i[34567]86-*-* | x86_64-*-*)
3521 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3523 powerpc*-*-* | rs6000-*-*)
3524 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3530 tmake_file="${tmake_file} t-musl"
3533 tmake_file="${tmake_file} t-uclibc"
3537 # Assume the existence of indirect function support and allow the use of the
3538 # resolver attribute.
3540 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3544 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3545 default_gnu_indirect_function=yes
3551 # Build mkoffload tool
3553 *-intelmic-* | *-intelmicemul-*)
3554 tmake_file="${tmake_file} i386/t-intelmic"
3555 tm_file="${tm_file} i386/intelmic-offload.h"
3559 if [ "$target_has_targetcm" = "no" ]; then
3560 c_target_objs="$c_target_objs default-c.o"
3561 cxx_target_objs="$cxx_target_objs default-c.o"
3564 if [ "$common_out_file" = "" ]; then
3565 if [ "$target_has_targetm_common" = "yes" ]; then
3566 common_out_file="$cpu_type/$cpu_type-common.c"
3568 common_out_file="default-common.c"
3572 if [ "$target_has_targetdm" = "no" ]; then
3573 d_target_objs="$d_target_objs default-d.o"
3576 # Support for --with-cpu and related options (and a few unrelated options,
3580 echo "--with-cpu must be passed a value" 1>&2
3585 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3586 # to generic if there is no processor scheduler model for the target.
3589 arch_without_sse2=no
3590 arch_without_64bit=no
3593 if test $fbsd_major -ge 6; then
3599 arch_without_sse2=yes
3600 arch_without_64bit=yes
3605 arch_without_sse2=yes
3606 arch_without_64bit=yes
3611 arch_without_sse2=yes
3612 arch_without_64bit=yes
3617 arch_without_sse2=yes
3618 arch_without_64bit=yes
3621 arch_without_sse2=yes
3622 arch_without_64bit=yes
3623 case ${target_noncanonical} in
3636 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3646 i686-*-* | i786-*-*)
3647 case ${target_noncanonical} in
3680 amdfam10-*|barcelona-*)
3684 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3688 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3692 athlon_xp-*|athlon_mp-*|athlon_4-*)
3695 arch_without_sse2=yes
3696 arch_without_64bit=yes
3698 athlon_tbird-*|athlon-*)
3701 arch_without_sse2=yes
3706 arch_without_sse2=yes
3711 arch_without_sse2=yes
3713 pentium3-*|pentium3m-*)
3716 arch_without_sse2=yes
3718 pentium4-*|pentium4m-*)
3757 arch_without_sse2=yes
3762 arch_without_sse2=yes
3763 arch_without_64bit=yes
3768 case ${target_noncanonical} in
3801 amdfam10-*|barcelona-*)
3805 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3809 k8-*|opteron-*|athlon_64-*)
3841 # If there is no $with_cpu option, try to infer one from ${target}.
3842 # This block sets nothing except for with_cpu.
3843 if test x$with_cpu = x ; then
3845 i[34567]86-*-elfiamcu)
3848 i[34567]86-*-*|x86_64-*-*)
3866 frv-*-*linux* | frv400-*-*linux*)
3873 case "$with_arch" in
3875 with_cpu=${default_cf_cpu}
3878 with_cpu=m${default_m68k_cpu}
3894 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3903 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3905 i[34567]86-*-*|x86_64-*-*)
3906 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3907 if test x$with_cpu_32 = x; then
3908 with_cpu_32=$with_cpu
3910 if test x$with_cpu_64 = x; then
3911 with_cpu_64=$with_cpu
3919 # Support for --with-arch and related options (and a few unrelated options,
3921 case ${with_arch} in
3923 echo "--with-arch must be passed a value" 1>&2
3928 # If there is no $with_arch option, try to infer one from ${target}.
3929 # This block sets nothing except for with_arch.
3930 if test x$with_arch = x ; then
3932 i[34567]86-*-darwin*|x86_64-*-darwin*)
3933 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3934 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3936 i[34567]86-*-elfiamcu)
3940 # --with-fpmath sets the default ISA to SSE2, which is the same
3941 # ISA supported by Pentium 4.
3942 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3951 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3959 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3961 i[34567]86-*-darwin*|x86_64-*-darwin*)
3962 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3963 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3965 i[34567]86-*-*|x86_64-*-*)
3966 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3967 if test x$with_arch_32 = x; then
3968 with_arch_32=$with_arch
3970 if test x$with_arch_64 = x; then
3971 if test $arch_without_64bit = yes; then
3972 # Set the default 64bit arch to x86-64 if the default arch
3973 # doesn't support 64bit.
3976 with_arch_64=$with_arch
3980 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3981 # Set the default 64bit arch to x86-64 if the default arch
3982 # doesn't support 64bit and we need 64bit ISA.
3983 with_arch_32=$with_arch
3991 # Infer a default setting for --with-float.
3992 if test x$with_float = x; then
3994 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3995 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3996 # comply with IEEE 754.
4002 # Infer a default setting for --with-fpu.
4003 if test x$with_fpu = x; then
4005 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4006 # The R5900 FPU only supports single precision.
4012 # Support --with-fpmath.
4013 if test x$with_fpmath != x; then
4015 i[34567]86-*-* | x86_64-*-*)
4016 case ${with_fpmath} in
4018 tm_file="${tm_file} i386/avxmath.h"
4021 tm_file="${tm_file} i386/ssemath.h"
4024 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4030 echo "--with-fpmath isn't supported for $target." 1>&2
4036 # Similarly for --with-schedule.
4037 if test x$with_schedule = x; then
4040 # Override default PA8000 scheduling model.
4041 with_schedule=7100LC
4046 # Infer a default setting for --with-llsc.
4047 if test x$with_llsc = x; then
4050 # The kernel emulates LL and SC where necessary.
4053 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4054 # The R5900 doesn't support LL(D) and SC(D).
4060 # Validate and mark as valid any --with options supported
4061 # by this target. In order to use a particular --with option
4062 # you must list it in supported_defaults; validating the value
4063 # is optional. This case statement should set nothing besides
4064 # supported_defaults.
4069 supported_defaults="abi cpu arch"
4070 for which in cpu arch; do
4072 eval "val=\$with_$which"
4073 base_val=`echo $val | sed -e 's/\+.*//'`
4074 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4076 if [ $which = arch ]; then
4077 def=aarch64-arches.def
4078 pattern=AARCH64_ARCH
4080 def=aarch64-cores.def
4081 pattern=AARCH64_CORE
4084 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
4086 # Find the base CPU or ARCH id in aarch64-cores.def or
4087 # aarch64-arches.def
4088 if [ x"$base_val" = x ] \
4089 || grep "^$pattern(\"$base_val\"," \
4090 ${srcdir}/config/aarch64/$def \
4093 if [ $which = arch ]; then
4094 base_id=`grep "^$pattern(\"$base_val\"," \
4095 ${srcdir}/config/aarch64/$def | \
4096 sed -e 's/^[^,]*,[ ]*//' | \
4098 # Extract the architecture flags from aarch64-arches.def
4099 ext_mask=`grep "^$pattern(\"$base_val\"," \
4100 ${srcdir}/config/aarch64/$def | \
4104 base_id=`grep "^$pattern(\"$base_val\"," \
4105 ${srcdir}/config/aarch64/$def | \
4106 sed -e 's/^[^,]*,[ ]*//' | \
4110 # Use the pre-processor to strip flatten the options.
4111 # This makes the format less rigid than if we use
4112 # grep and sed directly here.
4113 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4114 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4115 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4117 # Match one element inside AARCH64_OPT_EXTENSION, we
4118 # consume anything that's not a ,.
4119 elem="[ ]*\([^,]\+\)[ ]*"
4121 # Repeat the pattern for the number of entries in the
4122 # AARCH64_OPT_EXTENSION, currently 6 times.
4123 sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
4125 while [ x"$ext_val" != x ]
4127 ext_val=`echo $ext_val | sed -e 's/\+//'`
4128 ext=`echo $ext_val | sed -e 's/\+.*//'`
4129 base_ext=`echo $ext | sed -e 's/^no//'`
4130 opt_line=`echo -e "$options_parsed" | \
4131 grep "^\"$base_ext\""`
4133 if [ x"$base_ext" = x ] \
4134 || [[ -n $opt_line ]]; then
4136 # These regexp extract the elements based on
4137 # their group match index in the regexp.
4138 ext_canon=`echo -e "$opt_line" | \
4139 sed -e "s/$sed_patt/\2/"`
4140 ext_on=`echo -e "$opt_line" | \
4141 sed -e "s/$sed_patt/\3/"`
4142 ext_off=`echo -e "$opt_line" | \
4143 sed -e "s/$sed_patt/\4/"`
4145 if [ $ext = $base_ext ]; then
4147 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
4149 # Removing extension
4150 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
4155 echo "Unknown extension used in --with-$which=$val" 1>&2
4158 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4161 ext_mask="(("$ext_mask") << 6)"
4162 if [ x"$base_id" != x ]; then
4163 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
4167 echo "Unknown $which used in --with-$which=$val" 1>&2
4174 supported_defaults="cpu tune"
4175 for which in cpu tune; do
4176 eval "val=\$with_$which"
4179 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4180 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4184 echo "Unknown CPU used in --with-$which=$val" 1>&2
4192 supported_defaults="cpu"
4194 if [ x"$with_cpu" = x ] \
4195 || grep "^ARC_CPU ($with_cpu," \
4196 ${srcdir}/config/arc/arc-cpus.def \
4201 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4207 supported_defaults="cpu endian float"
4211 supported_defaults="arch cpu float tune fpu abi mode tls"
4212 for which in cpu tune arch; do
4213 # See if it matches a supported value
4214 eval "val=\$with_$which"
4215 if [ x"$val" != x ]; then
4216 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4217 -v cmd="chk$which $val" \
4218 ${srcdir}/config/arm/arm-cpus.in`
4219 if [ "$cpu" = "error" ]; then
4220 echo "Unknown target in --with-$which=$val" 1>&2
4224 eval "target_${which}_cname=$new_val"
4225 echo "For $val real value is $new_val"
4230 case "$with_float" in
4232 | soft | hard | softfp)
4236 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4241 # see if --with-fpu matches any of the supported FPUs
4242 if [ x"$with_fpu" != x ] ; then
4244 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4245 -v cmd="chkfpu $val" \
4246 ${srcdir}/config/arm/arm-cpus.in`
4247 if [ "$fpu" = "error" ]
4249 echo "Unknown target in --with-fpu=$val" 1>&2
4256 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4260 echo "Unknown ABI used in --with-abi=$with_abi"
4265 case "$with_mode" in
4271 echo "Unknown mode used in --with-mode=$with_mode"
4282 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4287 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4288 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4292 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4293 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4297 # Add extra multilibs
4298 if test "x$with_multilib_list" != x; then
4300 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4301 if test "x${arm_multilibs}" != xdefault ; then
4302 for arm_multilib in ${arm_multilibs}; do
4303 case ${arm_multilib} in
4305 tmake_profile_file="arm/t-multilib"
4308 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4309 if test -f "${srcdir}/config/arm/${ml}"; then
4310 tmake_file="${tmake_file} arm/${ml}"
4312 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4317 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4324 if test "x${tmake_profile_file}" != x ; then
4325 # arm/t-aprofile and arm/t-rmprofile are only
4326 # designed to work without any with-cpu,
4327 # with-arch, with-mode, with-fpu or with-float
4329 if test "x$with_arch" != x \
4330 || test "x$with_cpu" != x \
4331 || test "x$with_float" != x \
4332 || test "x$with_fpu" != x \
4333 || test "x$with_mode" != x ; then
4334 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4336 elif test "x$ml" != x ; then
4337 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4340 # But pass the default value for float-abi
4341 # through to the multilib selector
4343 tmake_file="${tmake_file} ${tmake_profile_file}"
4344 TM_MULTILIB_CONFIG="$with_multilib_list"
4347 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4348 with_cpu=${with_cpu:-$target_cpu_cname}
4352 supported_defaults=cpu
4357 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4363 fido-*-* | m68k*-*-*)
4364 supported_defaults="arch cpu"
4365 case "$with_arch" in
4367 m68k_arch_family="$with_arch"
4370 echo "Invalid --with-arch=$with_arch" 1>&2
4375 # We always have a $with_cpu setting here.
4377 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4378 m68k_cpu_ident=$with_cpu
4381 m68k_cpu_ident=m68020
4382 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4385 m68k_cpu_ident=m68020
4386 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4389 # We need the C identifier rather than the string.
4390 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4391 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4392 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4393 ${srcdir}/config/m68k/m68k-devices.def`
4394 if [ x"$m68k_cpu_ident" = x ] ; then
4395 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4398 with_cpu="mcpu=$with_cpu"
4404 supported_defaults="arch tune"
4406 for which in arch tune; do
4407 eval "val=\$with_$which"
4409 "" | fiji | gfx900 | gfx906 )
4413 echo "Unknown cpu used in --with-$which=$val." 1>&2
4418 [ "x$with_arch" = x ] && with_arch=fiji
4422 supported_defaults="arch schedule"
4424 case "$with_arch" in
4425 "" | 1.0 | 1.1 | 2.0)
4429 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4434 case "$with_schedule" in
4435 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4439 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4445 i[34567]86-*-* | x86_64-*-*)
4446 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4447 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4448 eval "val=\$with_$which"
4449 case " $x86_archs " in
4457 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4466 if test x${val} != x; then
4467 case " $x86_64_archs " in
4472 # Allow $x86_cpus --with-cpu=/--with-tune=
4475 case " $x86_cpus " in
4480 echo "Unknown CPU given in --with-$which=$val." 1>&2
4486 echo "Unknown CPU given in --with-$which=$val." 1>&2
4499 supported_defaults="abi arch tune riscv_attribute"
4502 riscv-* | riscv32*) xlen=32 ;;
4503 riscv64*) xlen=64 ;;
4504 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4507 case "${with_riscv_attribute}" in
4509 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4512 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4517 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4520 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4525 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4531 # Infer arch from --with-arch, --target, and --with-abi.
4532 case "${with_arch}" in
4533 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4537 # Infer XLEN, but otherwise assume GC.
4538 case "${with_abi}" in
4539 ilp32e) with_arch="rv32e" ;;
4540 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4541 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4542 *) with_arch="rv${xlen}gc" ;;
4546 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4551 # Make sure --with-abi is valid. If it was not specified,
4552 # pick a default based on the ISA, preferring soft-float
4553 # unless the D extension is present.
4554 case "${with_abi}" in
4555 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4558 case "${with_arch}" in
4559 rv32*d* | rv32g*) with_abi=ilp32d ;;
4560 rv32e*) with_abi=ilp32e ;;
4561 rv32*) with_abi=ilp32 ;;
4562 rv64*d* | rv64g*) with_abi=lp64d ;;
4563 rv64*) with_abi=lp64 ;;
4567 echo "--with-abi=${with_abi} is not supported" 1>&2
4572 # Make sure ABI and ISA are compatible.
4573 case "${with_abi},${with_arch}" in
4574 ilp32,rv32* | ilp32e,rv32e* \
4575 | ilp32f,rv32*f* | ilp32f,rv32g* \
4576 | ilp32d,rv32*d* | ilp32d,rv32g* \
4578 | lp64f,rv64*f* | lp64f,rv64g* \
4579 | lp64d,rv64*d* | lp64d,rv64g*)
4582 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4587 # Handle --with-multilib-list.
4588 if test "x${with_multilib_list}" != xdefault; then
4589 tm_file="${tm_file} riscv/withmultilib.h"
4590 tmake_file="${tmake_file} riscv/t-withmultilib"
4592 case ${with_multilib_list} in
4593 ilp32 | ilp32f | ilp32d \
4594 | lp64 | lp64f | lp64d )
4595 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4598 echo "--with-multilib-list=${with_multilib_list} not supported."
4602 # Define macros to select the default multilib.
4603 case ${with_arch} in
4605 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4608 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4611 echo "unsupported --with-arch for --with-multilib-list"
4616 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4619 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4622 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4625 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4628 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4631 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4634 echo "unsupported --with-abi for --with-multilib"
4641 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"
4643 case ${with_float} in
4648 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4654 "" | single | double)
4658 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4668 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4673 case ${with_fp_32} in
4678 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4683 case ${with_odd_spreg_32} in
4685 with_odd_spreg_32="odd-spreg"
4688 with_odd_spreg_32="no-odd-spreg"
4694 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4700 "" | 32 | o64 | n32 | 64 | eabi)
4704 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4709 case ${with_divide} in
4710 "" | breaks | traps)
4714 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4719 case ${with_llsc} in
4730 echo "Unknown llsc type used in --with-llsc" 1>&2
4735 case ${with_mips_plt} in
4740 with_mips_plt=no-plt
4745 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4750 case ${with_synci} in
4760 echo "Unknown synci type used in --with-synci" 1>&2
4765 case ${with_lxc1_sxc1} in
4767 with_lxc1_sxc1=lxc1-sxc1
4770 with_lxc1_sxc1=no-lxc1-sxc1
4775 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4780 case ${with_madd4} in
4790 echo "Unknown madd4 type used in --with-madd4" 1>&2
4797 supported_defaults="arch cpu nds32_lib float fpu_config"
4799 # process --with-arch
4800 case "${with_arch}" in
4802 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4806 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4809 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4812 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4816 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4821 case "${with_cpu}" in
4825 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4829 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4834 # process --with-nds32-lib
4835 case "${with_nds32_lib}" in
4839 with_nds32_lib=ulibc
4842 with_nds32_lib=glibc
4845 with_nds32_lib=newlib
4846 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4852 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4856 # for the arch=v3f or arch=v3s under mculib toolchain,
4857 # we would like to set -fno-math-errno as default
4858 case "${with_arch}" in
4860 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4868 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4873 # process --with-float
4874 case "${with_float}" in
4879 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4884 # process --with-config-fpu
4885 case "${with_config_fpu}" in
4890 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4898 supported_defaults="arch"
4899 case "$with_arch" in
4904 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4910 powerpc*-*-* | rs6000-*-*)
4911 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4913 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4914 eval "val=\$with_$which"
4916 default32 | default64)
4921 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4925 with_which="with_$which"
4929 tm_defines="${tm_defines} CONFIG_PPC405CR"
4930 eval "with_$which=405"
4932 "" | common | native \
4933 | power[3456789] | power5+ | power6x \
4934 | powerpc | powerpc64 | powerpc64le \
4936 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4937 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4938 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4939 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4940 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4944 echo "Unknown cpu used in --with-$which=$val." 1>&2
4951 "" | elfv1 | elfv2 )
4955 echo "Unknown ABI used in --with-abi=$with_abi"
4960 if test "x$with_advance_toolchain" != x; then
4961 if test -d "/opt/$with_advance_toolchain/." -a \
4962 -d "/opt/$with_advance_toolchain/bin/." -a \
4963 -d "/opt/$with_advance_toolchain/include/."; then
4965 tm_file="$tm_file ./advance-toolchain.h"
4966 (at="/opt/$with_advance_toolchain"
4967 echo "/* Use Advance Toolchain $at */"
4969 echo "#undef LINK_OS_EXTRA_SPEC32"
4970 echo "#define LINK_OS_EXTRA_SPEC32" \
4971 "\"%(link_os_new_dtags)" \
4972 "-rpath $prefix/lib -rpath $at/lib\""
4974 echo "#undef LINK_OS_EXTRA_SPEC64"
4975 echo "#define LINK_OS_EXTRA_SPEC64" \
4976 "\"%(link_os_new_dtags)" \
4977 "-rpath $prefix/lib64 -rpath $at/lib64\""
4979 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4980 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4981 "\"--enable-new-dtags\""
4983 echo "#undef DYNAMIC_LINKER_PREFIX"
4984 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4986 echo "#undef MD_EXEC_PREFIX"
4987 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4989 echo "#undef MD_STARTFILE_PREFIX"
4990 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
4992 echo "#undef MD_STARTFILE_PREFIX_1"
4993 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
4994 > advance-toolchain.h
4996 echo "Unknown advance-toolchain $with_advance_toolchain"
5001 # Set up the default long double format if the user changed it.
5002 if test x$with_long_double_format = xieee; then
5003 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
5005 elif test x$with_long_double_format = xibm; then
5006 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5011 supported_defaults="arch mode tune"
5013 for which in arch tune; do
5014 eval "val=\$with_$which"
5016 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 )
5020 echo "Unknown cpu used in --with-$which=$val." 1>&2
5026 case ${with_mode} in
5031 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5037 sh[123456ble]*-*-* | sh-*-*)
5038 supported_defaults="cpu"
5039 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5040 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5043 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5045 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5048 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
5049 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5050 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5051 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5057 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5059 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5060 eval "val=\$with_$which"
5062 "" | sparc | sparcv9 | sparc64 \
5064 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5065 | sparclite | f930 | f934 | sparclite86x \
5066 | sparclet | tsc701 \
5067 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5068 | niagara3 | niagara4 | niagara7 | m8)
5072 echo "Unknown cpu used in --with-$which=$val" 1>&2
5078 case ${with_float} in
5083 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5090 supported_defaults="arch"
5092 case ${with_arch} in
5093 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5097 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5104 supported_defaults=cpu
5106 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5110 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5116 supported_defaults="cpu"
5120 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5127 # Targets for which there is at least one VxWorks port should include
5128 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5129 # of markers from other files in the port, including the vxworks*.h files to
5130 # distinguish VxWorks variants such as VxWorks 7 or 64).
5133 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5134 | sparc*-*-* | x86_64-*-*)
5135 tm_file="vxworks-dummy.h ${tm_file}"
5139 # Set some miscellaneous flags for particular targets.
5140 target_cpu_default2=
5143 if test x"$target_cpu_cname" != x
5145 target_cpu_default2=$target_cpu_cname
5150 if test x$with_cpu = x
5152 echo "Don't know the target cpu" 1>&2
5155 target_cpu_default2="\\\"$with_cpu\\\""
5160 if test x$gas = xyes
5162 target_cpu_default2="MASK_GAS"
5166 fido*-*-* | m68k*-*-*)
5167 target_cpu_default2=$m68k_cpu_ident
5168 tmake_file="m68k/t-opts $tmake_file"
5169 if [ x"$m68k_arch_family" != x ]; then
5170 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5174 i[34567]86-*-darwin* | x86_64-*-darwin*)
5176 i[34567]86-*-linux* | x86_64-*-linux*)
5177 extra_objs="${extra_objs} cet.o"
5178 tmake_file="$tmake_file i386/t-linux i386/t-cet"
5180 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5181 tmake_file="$tmake_file i386/t-kfreebsd"
5184 tmake_file="$tmake_file i386/t-gnu"
5186 i[34567]86-*-msdosdjgpp*)
5187 tmake_file="${tmake_file} i386/t-djgpp"
5189 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5191 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5193 i[34567]86-*-mingw* | x86_64-*-mingw*)
5195 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5197 i[34567]86-*-freebsd*)
5200 tmake_file="${tmake_file} i386/t-freebsd64"
5206 if test x$gnu_ld = xyes
5208 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5212 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5215 if test x$with_arch != x; then
5216 default_mips_arch=$with_arch
5218 if test x$with_abi != x; then
5219 default_mips_abi=$with_abi
5221 case ${default_mips_arch} in
5222 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
5223 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
5224 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
5225 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
5226 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
5227 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
5228 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
5229 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
5230 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
5231 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
5233 case ${default_mips_abi} in
5234 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5235 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5236 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5237 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5238 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5240 tmake_file="mips/t-mips $tmake_file"
5243 powerpc*-*-* | rs6000-*-*)
5244 # FIXME: The PowerPC port uses the value set at compile time,
5245 # although it's only cosmetic.
5246 if test "x$with_cpu" != x
5248 target_cpu_default2="\\\"$with_cpu\\\""
5250 out_file="${cpu_type}/${cpu_type}.c"
5251 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5252 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5253 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5254 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5257 sh[123456ble]*-*-* | sh-*-*)
5258 c_target_objs="${c_target_objs} sh-c.o"
5259 cxx_target_objs="${cxx_target_objs} sh-c.o"
5263 # Some standard aliases.
5268 xsparcv9 | xsparc64)
5273 if test x$with_tune = x ; then
5284 # The SPARC port checks this value at compile-time.
5285 target_cpu_default2="TARGET_CPU_$with_cpu"
5289 case "x$with_cpu" in
5292 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5293 target_cpu_default2="TARGET_CPU_$with_cpu"
5296 target_cpu_default2="TARGET_CPU_v850e1"
5301 target_cpu_default2="TARGET_CPU_$with_cpu"
5306 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"
5307 for option in $all_defaults
5309 eval "val=\$with_"`echo $option | sed s/-/_/g`
5310 if test -n "$val"; then
5311 case " $supported_defaults " in
5315 echo "This target does not support --with-$option." 2>&1
5316 echo "Valid --with options are: $supported_defaults" 2>&1
5323 t="{ \"$option\", \"$val\" }"
5325 t="${t}, { \"$option\", \"$val\" }"
5332 configure_default_options="{ { NULL, NULL} }"
5334 configure_default_options="{ ${t} }"
5337 if test "$target_cpu_default2" != ""
5339 if test "$target_cpu_default" != ""
5341 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5343 target_cpu_default=$target_cpu_default2
5348 i[34567]86-*-* | x86_64-*-*)
5349 if test x$enable_as_accelerator = xyes; then
5350 extra_programs="mkoffload\$(exeext)"