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.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 avx512bf16intrin.h
416 enqcmdintrin.h avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h"
420 c_target_objs="i386-c.o"
421 cxx_target_objs="i386-c.o"
422 d_target_objs="i386-d.o"
423 extra_options="${extra_options} fused-madd.opt"
424 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"
425 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
426 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
427 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
428 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
429 immintrin.h x86intrin.h avxintrin.h xopintrin.h
430 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
431 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
432 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
433 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
434 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
435 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
436 shaintrin.h clflushoptintrin.h xsavecintrin.h
437 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
438 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
439 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
440 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
441 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
442 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
443 gfniintrin.h cet.h avx512vbmi2intrin.h
444 avx512vbmi2vlintrin.h avx512vnniintrin.h
445 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
446 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
447 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
448 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h avx512bf16intrin.h
449 enqcmdintrin.h avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h"
452 extra_headers=ia64intrin.h
453 extra_options="${extra_options} g.opt fused-madd.opt"
459 extra_options="${extra_options} g.opt"
463 extra_options="${extra_options} g.opt"
466 extra_headers=math-68881.h
467 extra_options="${extra_options} m68k/m68k-tables.opt"
471 extra_options="${extra_options} g.opt"
475 d_target_objs="mips-d.o"
476 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
477 extra_objs="frame-header-opt.o"
478 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
482 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
485 extra_options="${extra_options} nds32/nds32-linux.opt"
488 extra_options="${extra_options} nds32/nds32-elf.opt"
493 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"
497 extra_options="${extra_options} g.opt"
507 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o rs6000-call.o"
508 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
509 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
510 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
511 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
512 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
513 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
514 extra_headers="${extra_headers} amo.h"
516 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500|xfuture)
520 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
521 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
528 extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o"
529 d_target_objs="riscv-d.o"
532 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
533 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o rs6000-call.o"
534 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
538 c_target_objs="sparc-c.o"
539 cxx_target_objs="sparc-c.o"
540 d_target_objs="sparc-d.o"
541 extra_headers="visintrin.h"
545 d_target_objs="s390-d.o"
546 extra_options="${extra_options} fused-madd.opt"
547 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
549 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
550 sh[123456789lbe]*-*-* | sh-*-*)
552 extra_options="${extra_options} fused-madd.opt"
553 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
560 extra_headers="c6x_intrinsics.h"
561 extra_options="${extra_options} c6x/c6x-tables.opt"
564 extra_options="${extra_options} fused-madd.opt"
574 tm_file=${cpu_type}/${cpu_type}.h
575 tm_d_file=${cpu_type}/${cpu_type}.h
576 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
578 tm_p_file=${cpu_type}/${cpu_type}-protos.h
579 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
583 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
585 extra_modes=${cpu_type}/${cpu_type}-modes.def
587 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
589 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
594 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
597 if test "x$with_multilib_list" = xilp32; then
598 tm_file="aarch64/biarchilp32.h ${tm_file}"
600 tm_file="aarch64/biarchlp64.h ${tm_file}"
604 tm_file="aarch64/biarchilp32.h ${tm_file}"
607 tm_file="aarch64/biarchlp64.h ${tm_file}"
610 echo "Unknown ABI used in --with-abi=$with_abi"
615 if test "x$with_abi" != x; then
616 echo "This target does not support --with-abi."
623 if test "x$with_multilib_list" = xmx32; then
624 tm_file="i386/biarchx32.h ${tm_file}"
626 tm_file="i386/biarch64.h ${tm_file}"
630 tm_file="i386/biarch64.h ${tm_file}"
633 tm_file="i386/biarchx32.h ${tm_file}"
636 echo "Unknown ABI used in --with-abi=$with_abi"
641 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
645 # On a.out targets, we need to use collect2.
652 # Common C libraries.
653 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
655 # 32-bit x86 processors supported by --with-arch=. Each processor
656 # MUST be separated by exactly one space.
657 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
658 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
659 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
660 pentium4 pentium4m pentiumpro prescott lakemont"
662 # 64-bit x86 processors supported by --with-arch=. Each processor
663 # MUST be separated by exactly one space.
664 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
665 bdver3 bdver4 znver1 znver2 btver1 btver2 k8 k8-sse3 opteron \
666 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
667 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
668 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
669 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake x86-64 \
672 # Additional x86 processors supported by --with-cpu=. Each processor
673 # MUST be separated by exactly one space.
674 x86_cpus="generic intel"
676 # Common parts for widely ported systems.
679 tmake_file="t-darwin "
680 tm_file="${tm_file} darwin.h"
683 tm_file="${tm_file} darwin9.h"
686 tm_file="${tm_file} darwin9.h darwin10.h"
688 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
689 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
692 tm_file="${tm_file} ${cpu_type}/darwin.h"
693 tm_p_file="${tm_p_file} darwin-protos.h"
694 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.c"
695 extra_options="${extra_options} darwin.opt"
696 c_target_objs="${c_target_objs} darwin-c.o"
697 cxx_target_objs="${cxx_target_objs} darwin-c.o"
698 fortran_target_objs="darwin-f.o"
699 target_has_targetcm=yes
700 extra_objs="${extra_objs} darwin.o"
701 extra_gcc_objs="darwin-driver.o"
702 default_use_cxa_atexit=yes
704 case ${enable_threads} in
705 "" | yes | posix) thread_file='posix' ;;
711 tmake_file="t-slibgcc"
712 case ${enable_threads} in
717 # Let these non-posix thread selections fall through if requested
720 echo 'Unknown thread configuration for DragonFly BSD'
724 extra_options="$extra_options rpath.opt dragonfly.opt"
725 default_use_cxa_atexit=yes
729 # This is the generic ELF configuration of FreeBSD. Later
730 # machine-specific sections may refine and add to this
733 # Due to tm_file entry ordering issues that vary between cpu
734 # architectures, we only define fbsd_tm_file to allow the
735 # machine-specific section to dictate the final order of all
736 # entries of tm_file with the minor exception that components
737 # of the tm_file set here will always be of the form:
739 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
741 # The machine-specific section should not tamper with this
742 # ordering but may order all other entries of tm_file as it
743 # pleases around the provided core setting.
746 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
747 if test "$fbsd_major" = ""; then
748 echo "Specify the major version number of the targeted FreeBSD release"
749 echo "like this: --target=amd64-unknown-freebsd10.1"
752 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
753 tmake_file="t-slibgcc"
754 case ${enable_threads} in
756 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
762 echo 'Unknown thread configuration for FreeBSD'
766 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
767 extra_options="$extra_options rpath.opt freebsd.opt"
772 default_use_cxa_atexit=yes;;
777 native_system_header_dir=/include
779 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
780 extra_options="$extra_options gnu-user.opt"
783 case ${enable_threads} in
784 "" | yes | posix) thread_file='posix' ;;
786 tmake_file="t-slibgcc"
788 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
791 native_system_header_dir=/include
794 # Linux C libraries selection switch: glibc / uclibc / bionic.
795 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
798 tm_p_file="${tm_p_file} linux-protos.h"
799 tmake_file="${tmake_file} t-linux"
800 extra_objs="${extra_objs} linux.o"
801 extra_options="${extra_options} linux.opt"
806 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
808 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
809 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
812 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
815 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
818 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
820 default_use_cxa_atexit=yes
823 # Enable compilation for Android by default for *android* targets.
826 tm_defines="$tm_defines ANDROID_DEFAULT=1"
829 tm_defines="$tm_defines ANDROID_DEFAULT=0"
832 c_target_objs="${c_target_objs} glibc-c.o"
833 cxx_target_objs="${cxx_target_objs} glibc-c.o"
834 d_target_objs="${d_target_objs} glibc-d.o"
835 tmake_file="${tmake_file} t-glibc"
836 target_has_targetcm=yes
837 target_has_targetdm=yes
840 tm_p_file="${tm_p_file} netbsd-protos.h"
841 tmake_file="t-netbsd t-slibgcc"
842 extra_objs="${extra_objs} netbsd.o"
843 d_target_objs="${d_target_objs} netbsd-d.o"
847 case ${enable_threads} in
848 "" | yes | posix) thread_file='posix' ;;
850 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
851 default_use_cxa_atexit=yes
852 target_has_targetdm=yes
854 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
855 default_gnu_indirect_function=yes
860 tmake_file="t-openbsd"
861 case ${enable_threads} in
867 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
868 default_use_cxa_atexit=yes
875 default_use_cxa_atexit=yes
878 case ${enable_threads} in
879 "" | yes | rtems) thread_file='rtems' ;;
880 posix) thread_file='posix' ;;
883 echo 'Unknown thread configuration for RTEMS'
887 tmake_file="${tmake_file} t-rtems"
888 extra_options="${extra_options} rtems.opt"
889 default_use_cxa_atexit=yes
893 extra_options="$extra_options gnu-user.opt"
895 case ${enable_threads} in
896 "" | yes | posix) thread_file='posix' ;;
898 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
904 # i?86-*-solaris2* needs to insert headers between cpu default and
905 # Solaris 2 specific ones.
906 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
907 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
908 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
910 *-*-solaris2.1[1-9]*)
911 # __cxa_atexit was introduced in Solaris 11.4.
912 default_use_cxa_atexit=yes
916 if test x$gnu_ld = xyes; then
917 tm_file="usegld.h ${tm_file}"
919 if test x$gas = xyes; then
920 tm_file="usegas.h ${tm_file}"
922 tm_p_file="${tm_p_file} sol2-protos.h"
923 tmake_file="${tmake_file} t-sol2 t-slibgcc"
924 c_target_objs="${c_target_objs} sol2-c.o"
925 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
926 d_target_objs="${d_target_objs} sol2-d.o"
927 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
928 extra_options="${extra_options} sol2.opt"
929 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
930 "":yes:* | yes:yes:* )
934 target_has_targetdm=yes
937 extra_options="${extra_options} vms/vms.opt"
939 tmake_file="vms/t-vms t-slibgcc"
941 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
942 tm_p_file="${tm_p_file} vms/vms-protos.h"
943 xm_file="vms/xm-vms.h"
944 c_target_objs="vms-c.o"
945 cxx_target_objs="vms-c.o"
946 fortran_target_objs="vms-f.o"
947 use_gcc_stdint=provide
948 tm_file="${tm_file} vms/vms-stdint.h"
949 if test x$gnu_ld != xyes; then
950 # Build wrappers for native case.
951 extra_programs="ld\$(exeext) ar\$(exeext)"
952 tmake_file="$tmake_file vms/t-vmsnative"
959 extra_options="${extra_options} vxworks.opt"
960 extra_objs="$extra_objs vxworks.o"
962 c_target_objs="${c_target_objs} vxworks-c.o"
963 cxx_target_objs="${cxx_target_objs} vxworks-c.o"
964 extra_headers="${extra_headers} ../vxworks/vxworks-predef.h"
965 target_has_targetcm="yes"
967 # This private header exposes a consistent interface for checks on
968 # the VxWorks version our runtime header files need to perform, based on
969 # what the system headers adverstise:
971 extra_headers="${extra_headers} ../vxworks/_vxworks-versions.h"
973 # Starting from VxWorks 7, the system comes with a Dinkumware
974 # environment which requires the inclusion of "yvals.h" before other
975 # system headers. We provide wrapped versions of a few headers to
976 # accomodate such constraints:
978 extra_headers="${extra_headers} ../vxworks/_yvals.h"
979 extra_headers="${extra_headers} ../vxworks/_yvals-wrapper.h"
981 extra_headers="${extra_headers} ../vxworks/math.h ../vxworks/complex.h"
982 extra_headers="${extra_headers} ../vxworks/inttypes.h ../vxworks/setjmp.h"
984 # We provide stdint.h ...
986 tm_file="${tm_file} vxworks-stdint.h"
988 # .. only through the yvals conditional wrapping mentioned above
989 # to abide by the VxWorks 7 expectations. The final copy is performed
990 # explicitly by a t-vxworks Makefile rule.
993 extra_headers="${extra_headers} ../../ginclude/stdint-gcc.h"
995 case ${enable_threads} in
997 "" | yes | vxworks) thread_file='vxworks' ;;
998 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
1001 # A few common macro definitions conveying general characteristics
1002 # of the configuration at hand. Note that by VxWorks 7, we mean the
1003 # the SR6xx major update or beyond in vendor parlance:
1007 tm_defines="$tm_defines TARGET_VXWORKS7=1"
1012 tm_defines="$tm_defines TARGET_VXWORKS64=1"
1016 # Then a few build configuration controls for VxWorks 7, which
1017 # has specificities on top of which we aim to provide more complete
1022 # VxWorks 7 always has init/fini_array support and it is simpler to
1023 # just leverage this, sticking to what the system toolchain does:
1024 gcc_cv_initfini_array=yes
1028 *-*-elf|arc*-*-elf*)
1029 # Assume that newlib is being used and so __cxa_atexit is provided.
1030 default_use_cxa_atexit=yes
1036 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1037 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
1038 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1039 tmake_file="${tmake_file} aarch64/t-aarch64"
1045 tm_file="${tm_file} fuchsia.h"
1048 tm_file="${tm_file} rtems.h aarch64/rtems.h"
1053 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1056 aarch64_multilibs="${with_multilib_list}"
1057 if test "$aarch64_multilibs" = "default"; then
1058 aarch64_multilibs="lp64,ilp32"
1060 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1061 for aarch64_multilib in ${aarch64_multilibs}; do
1062 case ${aarch64_multilib} in
1064 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1067 echo "--with-multilib-list=${aarch64_multilib} not supported."
1071 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1073 aarch64*-*-freebsd*)
1074 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1075 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1076 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1077 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1080 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
1081 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1082 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1083 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1086 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1087 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1088 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1089 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1092 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1095 aarch64_multilibs="${with_multilib_list}"
1096 if test "$aarch64_multilibs" = "default"; then
1097 # TODO: turn on ILP32 multilib build after its support is mature.
1098 # aarch64_multilibs="lp64,ilp32"
1099 aarch64_multilibs="lp64"
1101 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1102 for aarch64_multilib in ${aarch64_multilibs}; do
1103 case ${aarch64_multilib} in
1105 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1108 echo "--with-multilib-list=${aarch64_multilib} not supported."
1112 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1114 aarch64*-wrs-vxworks*)
1115 tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
1116 tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
1117 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
1120 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1121 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1122 extra_options="${extra_options} alpha/elf.opt"
1125 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1126 tmake_file="${tmake_file} alpha/t-alpha"
1127 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1131 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1132 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1133 tmake_file="${tmake_file} alpha/t-alpha"
1134 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1135 # default x-alpha is only appropriate for dec-osf.
1138 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1139 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1142 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1143 tmake_file="arc/t-multilib arc/t-arc"
1144 extra_gcc_objs="driver-arc.o"
1145 if test "x$with_cpu" != x; then
1146 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1148 if test x${with_endian} = x; then
1150 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1151 *) with_endian=little ;;
1154 case ${with_endian} in
1156 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1158 case ${with_endian} in
1159 big*) tm_file="arc/big.h ${tm_file}"
1163 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}"
1164 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1165 extra_gcc_objs="driver-arc.o"
1166 if test "x$with_cpu" != x; then
1167 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1169 if test x${with_endian} = x; then
1171 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1172 *) with_endian=little ;;
1175 case ${with_endian} in
1177 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1179 case ${with_endian} in
1180 big*) tm_file="arc/big.h ${tm_file}"
1182 # Force .init_array support. The configure script cannot always
1183 # automatically detect that GAS supports it, yet we require it.
1184 gcc_cv_initfini_array=yes
1187 # We only support VxWorks 7 now on ARM, post SR600. Pre SR600
1188 # VxWorks 7 was transitory and major versions prior to 7 were based
1189 # on long deprecated ABI, not supported at all any more regardless
1191 extra_options="${extra_options} arm/vxworks.opt"
1192 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1193 tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1194 tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1195 target_cpu_cname="armv7-a"
1196 need_64bit_hwint=yes
1198 arm*-*-freebsd*) # ARM FreeBSD EABI
1199 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1202 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1205 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1206 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1209 target_cpu_cname="arm1176jzf-s"
1210 if test $fbsd_major -ge 11; then
1211 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1215 target_cpu_cname="generic-armv7-a"
1216 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1219 target_cpu_cname="arm9"
1222 with_tls=${with_tls:-gnu}
1225 target_cpu_cname="strongarm"
1226 tmake_file="${tmake_file} arm/t-arm"
1227 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1228 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1230 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1233 arm*-*-netbsdelf-*eabi*)
1234 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1235 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1238 tm_file="$tm_file arm/netbsd-elf.h"
1239 tmake_file="$tmake_file arm/t-netbsd"
1242 tm_file="${tm_file} arm/aout.h arm/arm.h"
1244 arm*-*-netbsdelf-*eabihf*)
1245 # Hard-float requires at least Arm v5te
1246 target_cpu_cname="arm10e"
1247 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1251 armv6*) target_cpu_cname="arm1176jzf-s";;
1252 armv7*) target_cpu_cname="generic-armv7-a";;
1255 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1256 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"
1257 extra_options="${extra_options} linux-android.opt"
1260 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1263 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1264 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1266 arm*-*-uclinuxfdpiceabi)
1267 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1270 # Generation of floating-point instructions requires at least ARMv5te.
1271 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1272 target_cpu_cname="arm10e"
1274 target_cpu_cname="arm10tdmi"
1276 # Define multilib configuration for arm-linux-androideabi.
1279 tmake_file="$tmake_file arm/t-linux-androideabi"
1282 # The EABI requires the use of __cxa_atexit.
1283 default_use_cxa_atexit=yes
1284 with_tls=${with_tls:-gnu}
1286 arm*-*-uclinux*eabi*) # ARM ucLinux
1287 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1288 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1289 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1290 target_cpu_cname="arm7tdmi"
1291 # The EABI requires the use of __cxa_atexit.
1292 default_use_cxa_atexit=yes
1295 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1296 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1297 tm_file="${tm_file} arm/aout.h arm/arm.h"
1298 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1299 target_cpu_cname="arm7tdmi"
1301 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1304 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1306 default_use_cxa_atexit=yes
1307 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1308 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1309 target_cpu_cname="arm7tdmi"
1312 tm_file="$tm_file newlib-stdint.h"
1313 tmake_file="${tmake_file} arm/t-bpabi"
1317 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1318 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1319 target_cpu_cname="generic-armv7-a"
1322 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1323 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1326 tm_file="${tm_file} arm/symbian.h"
1327 # We do not include t-bpabi for Symbian OS because the system
1328 # provides its own implementation of the BPABI functions.
1329 tmake_file="${tmake_file} arm/t-symbian"
1330 target_cpu_cname="arm10tdmi"
1333 tm_file="${tm_file} arm/aout.h arm/arm.h"
1336 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1337 if test x${with_avrlibc} != xno; then
1338 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1339 tm_defines="${tm_defines} WITH_AVRLIBC"
1341 # Work out avr_double_comparison which is 2 or 3 and is used in
1342 # target hook FLOAT_LIB_COMPARE_RETURNS_BOOL to determine whether
1343 # DFmode comparisons return 3-state or 2-state results.
1344 case y${with_double_comparison} in
1346 avr_double_comparison=3
1349 avr_double_comparison=2
1352 echo "Error: --with-double-comparison= can only be used with: 'tristate', 'bool', 'libf7'" 1>&2
1356 case "y${with_libf7}" in
1358 # avr_double_comparison as set above.
1361 avr_double_comparison=2
1362 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1364 y | yyes | ymath-symbols)
1365 avr_double_comparison=2
1366 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1367 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1368 tm_defines="${tm_defines} WITH_LIBF7_MATH_SYMBOLS"
1371 avr_double_comparison=2
1372 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1373 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1376 echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
1380 tm_defines="${tm_defines} WITH_DOUBLE_COMPARISON=${avr_double_comparison}"
1381 case y${with_double} in
1384 tm_defines="${tm_defines} HAVE_DOUBLE32"
1388 tm_defines="${tm_defines} HAVE_DOUBLE64"
1392 avr_double_multilib=1
1393 tm_defines="${tm_defines} HAVE_DOUBLE32"
1394 tm_defines="${tm_defines} HAVE_DOUBLE64"
1395 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1399 avr_double_multilib=1
1400 tm_defines="${tm_defines} HAVE_DOUBLE32"
1401 tm_defines="${tm_defines} HAVE_DOUBLE64"
1402 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1405 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1409 case y${with_long_double} in
1412 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1416 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1420 avr_long_double_multilib=1
1421 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1422 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1423 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1427 avr_long_double_multilib=1
1428 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1429 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1430 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1433 avr_long_double=${avr_double}
1434 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1435 if test y${avr_double_multilib} = y1; then
1436 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1437 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1439 tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1443 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1447 if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1448 if test y${with_long_double} != ydouble; then
1449 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
1453 if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1454 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
1457 if test y${avr_double}${avr_long_double} = y6432; then
1458 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
1461 tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1462 tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1463 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1465 extra_gcc_objs="driver-avr.o avr-devices.o"
1466 extra_objs="avr-devices.o avr-log.o"
1469 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1470 tmake_file=bfin/t-bfin-elf
1474 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1475 tmake_file=bfin/t-bfin-uclinux
1478 bfin*-linux-uclibc*)
1479 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"
1480 tmake_file="${tmake_file} bfin/t-bfin-linux"
1484 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1485 tmake_file="${tmake_file} bfin/t-rtems"
1488 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1493 tmake_file="${tmake_file} bpf/t-bpf"
1495 extra_headers="bpf-helpers.h"
1496 use_gcc_stdint=provide
1499 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1500 tmake_file="${tmake_file} cr16/t-cr16 "
1503 crisv32-*-elf | crisv32-*-none)
1504 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1505 tmake_file="cris/t-cris"
1506 target_cpu_default=32
1508 extra_options="${extra_options} cris/elf.opt"
1511 cris-*-elf | cris-*-none)
1512 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1513 tmake_file="cris/t-cris cris/t-elfmulti"
1515 extra_options="${extra_options} cris/elf.opt"
1518 crisv32-*-linux* | cris-*-linux*)
1519 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1520 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1521 extra_options="${extra_options} cris/linux.opt"
1524 target_cpu_default=10
1527 target_cpu_default=32
1532 if test x${with_endian} != x; then
1533 case ${with_endian} in
1536 echo "with_endian=${with_endian} not supported."
1541 if test x${with_float} != x; then
1542 case ${with_float} in
1545 "Unknown floating point type used in --with-float=$with_float"
1550 tm_file="csky/csky.h"
1551 md_file="csky/csky.md"
1552 out_file="csky/csky.c"
1553 tm_p_file="${tm_p_file} csky/csky-protos.h"
1554 extra_options="${extra_options} csky/csky_tables.opt"
1556 if test x${enable_tpf_debug} = xyes; then
1557 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1562 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1563 tmake_file="csky/t-csky csky/t-csky-elf"
1564 default_use_cxa_atexit=no
1567 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1568 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1570 if test "x${enable_multilib}" = xyes ; then
1571 tm_file="$tm_file ./sysroot-suffix.h"
1572 tmake_file="${tmake_file} csky/t-sysroot-suffix"
1577 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1578 # Force .init_array support. The configure script cannot always
1579 # automatically detect that GAS supports it, yet we require it.
1580 gcc_cv_initfini_array=yes
1582 csky-*-linux-uclibc*)
1583 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1584 default_use_cxa_atexit=no
1587 echo "Unknown target $target"
1593 echo "Unknown target $target"
1598 epiphany-*-elf | epiphany-*-rtems*)
1599 tm_file="${tm_file} dbxelf.h elfos.h"
1600 tmake_file="${tmake_file} epiphany/t-epiphany"
1603 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1606 tm_file="${tm_file} newlib-stdint.h"
1609 extra_options="${extra_options} fused-madd.opt"
1610 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1611 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1612 extra_headers="epiphany_intrinsics.h"
1615 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1618 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1619 tmake_file=frv/t-frv
1622 tm_file="dbxelf.h elfos.h ${tm_file} \
1623 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1624 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1629 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1630 tmake_file="${tmake_file} ft32/t-ft32"
1633 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1634 tmake_file="gcn/t-gcn-hsa"
1635 native_system_header_dir=/include
1636 extra_modes=gcn/gcn-modes.def
1637 extra_objs="${extra_objs} gcn-tree.o"
1638 extra_gcc_objs="driver-gcn.o"
1640 x86_64*-*-linux-gnu )
1641 if test "$ac_cv_search_dlopen" != no; then
1642 extra_programs="${extra_programs} gcn-run\$(exeext)"
1646 if test x$enable_as_accelerator = xyes; then
1647 extra_programs="${extra_programs} mkoffload\$(exeext)"
1648 tm_file="${tm_file} gcn/offload.h"
1650 # Force .init_array support.
1651 gcc_cv_initfini_array=yes
1657 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1658 tmake_file="${tmake_file} moxie/t-moxie"
1663 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1664 tmake_file="${tmake_file} moxie/t-moxie"
1667 tmake_file="${tmake_file} moxie/t-moxie"
1668 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1673 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1674 tmake_file="${tmake_file} moxie/t-moxiebox"
1677 tmake_file="h8300/t-h8300"
1678 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1681 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1682 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1685 target_cpu_default="MASK_PA_11|MASK_PA_20"
1686 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1687 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1689 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1690 d_target_objs="${d_target_objs} pa-d.o"
1694 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1695 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1696 pa/pa32-regs.h pa/pa32-linux.h"
1697 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1698 d_target_objs="${d_target_objs} pa-d.o"
1701 target_cpu_default="MASK_PA_11"
1702 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1703 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1704 extra_options="${extra_options} openbsd.opt"
1705 tmake_file="pa/t-pa"
1706 d_target_objs="${d_target_objs} pa-d.o"
1711 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1712 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} \
1713 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1714 tmake_file="${tmake_file}"
1715 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1716 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1718 hppa[12]*-*-hpux10*)
1720 hppa1.1-*-* | hppa2*-*-*)
1721 target_cpu_default="MASK_PA_11"
1724 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1725 pa/pa-hpux.h pa/pa-hpux10.h"
1726 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1729 tm_file="${tm_file} pa/pa-hpux1010.h"
1730 extra_options="${extra_options} pa/pa-hpux1010.opt"
1733 use_gcc_stdint=provide
1734 tm_file="${tm_file} hpux-stdint.h"
1735 tmake_file="pa/t-pa t-slibgcc"
1736 d_target_objs="${d_target_objs} pa-d.o"
1737 case ${enable_threads} in
1739 if test x$have_pthread_h = xyes ; then
1740 tmake_file="${tmake_file} pa/t-dce-thr"
1744 tmake_file="${tmake_file} pa/t-dce-thr"
1749 if test "x$with_dwarf2" != x; then
1750 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1755 target_cpu_default="MASK_PA_11|MASK_PA_20"
1756 if test x$gnu_ld = xyes
1758 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1760 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1761 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1765 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1766 extra_options="${extra_options} pa/pa-hpux1111.opt"
1769 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1770 extra_options="${extra_options} pa/pa-hpux1131.opt"
1773 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1776 extra_options="${extra_options} pa/pa-hpux.opt \
1777 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1778 tmake_file="pa/t-pa t-slibgcc"
1779 d_target_objs="${d_target_objs} pa-d.o"
1780 case x${enable_threads} in
1788 use_gcc_stdint=provide
1789 tm_file="${tm_file} hpux-stdint.h"
1793 tm_file="${tm_file} hpux-stdint.h"
1797 hppa[12]*-*-hpux11*)
1799 hppa1.1-*-* | hppa2*-*-*)
1800 target_cpu_default="MASK_PA_11"
1803 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1804 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1805 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1809 tm_file="${tm_file} pa/pa-hpux1111.h"
1810 extra_options="${extra_options} pa/pa-hpux1111.opt"
1813 tm_file="${tm_file} pa/pa-hpux1131.h"
1814 extra_options="${extra_options} pa/pa-hpux1131.opt"
1817 tmake_file="pa/t-pa t-slibgcc"
1818 d_target_objs="${d_target_objs} pa-d.o"
1819 case x${enable_threads} in
1828 use_gcc_stdint=provide
1829 tm_file="${tm_file} hpux-stdint.h"
1833 tm_file="${tm_file} hpux-stdint.h"
1836 if test "x$with_dwarf2" != x; then
1837 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1841 i[34567]86-*-darwin1[89]*)
1842 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1844 i[34567]86-*-darwin*)
1846 # Baseline choice for a machine that allows m64 support.
1847 with_cpu=${with_cpu:-core2}
1848 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1849 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
1851 x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
1853 with_cpu=${with_cpu:-core2}
1854 tmake_file="${tmake_file} t-slibgcc"
1857 with_cpu=${with_cpu:-core2}
1858 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1859 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
1861 i[34567]86-*-elfiamcu)
1862 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1865 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1868 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1871 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"
1874 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1877 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"
1878 tmake_file="i386/t-i386elf t-svr4"
1880 i[34567]86-*-dragonfly*)
1881 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1882 tmake_file="${tmake_file} i386/t-crtstuff"
1884 x86_64-*-dragonfly*)
1885 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"
1886 tmake_file="${tmake_file} i386/t-crtstuff"
1888 i[34567]86-*-freebsd*)
1889 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1892 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"
1894 i[34567]86-*-netbsdelf*)
1895 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1896 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1899 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1900 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1902 i[34567]86-*-openbsd*)
1903 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1904 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1905 extra_options="${extra_options} openbsd.opt"
1910 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1911 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1912 extra_options="${extra_options} openbsd.opt"
1916 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1917 # Intel 80386's running GNU/*
1918 # with ELF format using glibc 2
1919 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1921 i[34567]86-*-linux*)
1922 tm_file="${tm_file} linux.h linux-android.h"
1923 extra_options="${extra_options} linux-android.opt"
1924 if test x$enable_targets = xall; then
1925 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1926 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1927 tmake_file="${tmake_file} i386/t-linux64"
1928 x86_multilibs="${with_multilib_list}"
1929 if test "$x86_multilibs" = "default"; then
1930 x86_multilibs="m64,m32"
1932 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1933 for x86_multilib in ${x86_multilibs}; do
1934 case ${x86_multilib} in
1936 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1939 echo "--with-multilib-list=${x86_with_multilib} not supported."
1943 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1945 if test x$with_cpu = x; then
1946 if test x$with_cpu_64 = x; then
1950 case " $x86_cpus $x86_archs $x86_64_archs " in
1954 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1955 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1961 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1964 i[34567]86-*-kfreebsd*-gnu)
1965 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1967 i[34567]86-*-kopensolaris*-gnu)
1968 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1971 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1975 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1976 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1977 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1980 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1981 extra_options="${extra_options} linux-android.opt"
1983 x86_64-*-kfreebsd*-gnu)
1984 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1987 tmake_file="${tmake_file} i386/t-linux64"
1988 x86_multilibs="${with_multilib_list}"
1989 if test "$x86_multilibs" = "default"; then
1992 x86_multilibs="mx32"
1995 x86_multilibs="m64,m32"
1999 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
2000 for x86_multilib in ${x86_multilibs}; do
2001 case ${x86_multilib} in
2003 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
2006 echo "--with-multilib-list=${x86_with_multilib} not supported."
2010 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2012 i[34567]86-pc-msdosdjgpp*)
2013 xm_file=i386/xm-djgpp.h
2014 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
2015 native_system_header_dir=/dev/env/DJDIR/include
2016 extra_options="${extra_options} i386/djgpp.opt"
2021 i[34567]86-*-lynxos*)
2023 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
2024 tmake_file="${tmake_file} t-lynx"
2025 extra_options="${extra_options} lynx.opt"
2030 i[34567]86-*-nto-qnx*)
2031 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
2032 extra_options="${extra_options} i386/nto.opt"
2036 i[34567]86-*-rtems*)
2037 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"
2038 tmake_file="${tmake_file} i386/t-rtems"
2040 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
2041 # Set default arch_32 to pentium4, tune_32 to generic like the other
2042 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
2043 with_arch_32=${with_arch_32:-pentium4}
2044 with_tune_32=${with_tune_32:-generic}
2045 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
2046 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2047 tmake_file="$tmake_file i386/t-sol2"
2049 if test x$with_cpu = x; then
2050 if test x$with_cpu_64 = x; then
2054 case " $x86_cpus $x86_archs $x86_64_archs " in
2058 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2059 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2065 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
2066 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
2070 tm_file="${tm_file} i386/x86-64.h"
2073 tm_file="${tm_file} vx-common.h"
2076 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2077 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2080 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2081 tmake_file="${tmake_file} i386/t-vxworks"
2085 i[34567]86-*-cygwin*)
2086 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"
2087 xm_file=i386/xm-cygwin.h
2088 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2089 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2090 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2091 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2092 c_target_objs="${c_target_objs} msformat-c.o"
2093 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2094 if test x$enable_threads = xyes; then
2097 default_use_cxa_atexit=yes
2102 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"
2103 xm_file=i386/xm-cygwin.h
2104 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
2105 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2106 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2107 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2108 c_target_objs="${c_target_objs} msformat-c.o"
2109 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2110 if test x$enable_threads = xyes; then
2113 default_use_cxa_atexit=yes
2115 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2117 i[34567]86-*-mingw* | x86_64-*-mingw*)
2118 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
2119 xm_file=i386/xm-mingw32.h
2120 c_target_objs="${c_target_objs} winnt-c.o"
2121 cxx_target_objs="${cxx_target_objs} winnt-c.o"
2122 target_has_targetcm="yes"
2124 x86_64-*-* | *-w64-*)
2130 if test x$enable_threads = xposix ; then
2131 tm_file="${tm_file} i386/mingw-pthread.h"
2133 tm_file="${tm_file} i386/mingw32.h"
2134 # This makes the logic if mingw's or the w64 feature set has to be used
2137 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2138 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2139 tm_file="${tm_file} i386/mingw-w64.h"
2140 if test x$enable_targets = xall; then
2141 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2142 if test x$with_cpu = x; then
2143 if test x$with_cpu_64 = x; then
2147 case " $x86_cpus $x86_archs $x86_64_archs " in
2151 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2152 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2162 tm_file="${tm_file} i386/mingw-stdint.h"
2163 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2166 tmake_file="${tmake_file} i386/t-mingw-w64"
2169 tmake_file="${tmake_file} i386/t-mingw-w32"
2172 native_system_header_dir=/mingw/include
2173 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2174 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2177 extra_options="${extra_options} i386/mingw-w64.opt"
2182 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2183 c_target_objs="${c_target_objs} msformat-c.o"
2184 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2187 default_use_cxa_atexit=yes
2189 case ${enable_threads} in
2199 tm_file="${tm_file} i386/crtdll.h"
2201 *mingw32msv* | *mingw*)
2206 tmake_file="${tmake_file} i386/t-x86_64-elf"
2207 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2210 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2211 tmake_file="ia64/t-ia64"
2212 target_cpu_default="0"
2213 if test x$gas = xyes
2215 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2217 if test x$gnu_ld = xyes
2219 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2223 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2224 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2225 tmake_file="${tmake_file} ia64/t-ia64"
2228 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2229 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2230 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2233 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
2234 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2235 target_cpu_default="MASK_GNU_AS"
2236 case x$enable_threads in
2242 c_target_objs="ia64-c.o"
2243 cxx_target_objs="ia64-c.o"
2244 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2246 tm_file="${tm_file} hpux-stdint.h"
2249 tm_file="${tm_file} ia64/hpux-unix2003.h"
2254 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2255 tmake_file="${tmake_file} ia64/t-ia64"
2256 target_cpu_default="0"
2257 if test x$gas = xyes
2259 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2261 extra_options="${extra_options} ia64/vms.opt"
2264 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2265 out_file=iq2000/iq2000.c
2266 md_file=iq2000/iq2000.md
2269 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2270 tmake_file="${tmake_file} lm32/t-lm32"
2273 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2274 tmake_file="${tmake_file} lm32/t-lm32"
2275 tmake_file="${tmake_file} lm32/t-rtems"
2278 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2279 tmake_file="${tmake_file} lm32/t-lm32"
2282 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2285 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2288 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
2289 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2291 if test x$enable_threads = xyes; then
2296 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
2297 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2299 if test x$enable_threads = xyes; then
2303 m68k-*-elf* | fido-*-elf*)
2306 # Check that $with_cpu makes sense.
2311 echo "Cannot accept --with-cpu=$with_cpu"
2318 default_m68k_cpu=68020
2322 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"
2323 tm_defines="${tm_defines} MOTOROLA=1"
2324 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2325 # Add multilibs for targets other than fido.
2330 tmake_file="$tmake_file m68k/t-mlibs"
2335 default_m68k_cpu=68020
2337 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2338 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2339 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2342 default_m68k_cpu=68020
2344 # needed to unconfuse gdb
2345 tm_defines="${tm_defines} OBSD_OLD_GAS"
2346 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
2347 extra_options="${extra_options} openbsd.opt"
2348 tmake_file="t-openbsd m68k/t-openbsd"
2349 # we need collect2 until our bug is fixed...
2352 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2353 # with uClibc, using the new GNU/Linux-style
2355 default_m68k_cpu=68020
2357 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"
2358 extra_options="${extra_options} m68k/uclinux.opt"
2359 tm_defines="${tm_defines} MOTOROLA=1"
2360 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2362 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2363 # with ELF format using glibc 2
2364 # aka the GNU/Linux C library 6.
2365 default_m68k_cpu=68020
2367 with_arch=${with_arch:-m68k}
2368 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2369 extra_options="${extra_options} m68k/ieee.opt"
2370 tm_defines="${tm_defines} MOTOROLA=1"
2371 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2374 default_m68k_cpu=68020
2376 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2377 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"
2378 tm_defines="${tm_defines} MOTOROLA=1"
2381 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2382 tmake_file=mcore/t-mcore
2388 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2391 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2394 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2395 tm_file="${tm_file} glibc-stdint.h"
2396 c_target_objs="${c_target_objs} microblaze-c.o"
2397 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2398 tmake_file="${tmake_file} microblaze/t-microblaze"
2399 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2401 microblaze*-*-rtems*)
2404 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2407 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2410 tm_file="${tm_file} dbxelf.h"
2411 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2412 c_target_objs="${c_target_objs} microblaze-c.o"
2413 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2414 tmake_file="${tmake_file} microblaze/t-microblaze"
2415 tmake_file="${tmake_file} microblaze/t-rtems"
2420 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2423 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2426 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2427 c_target_objs="${c_target_objs} microblaze-c.o"
2428 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2429 tmake_file="${tmake_file} microblaze/t-microblaze"
2432 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2433 case "x${enable_multilib}" in
2435 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2436 *) echo "Unknown value for enable_multilib"; exit 1
2438 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2441 # Force .init_array support. The configure script cannot always
2442 # automatically detect that GAS supports it, yet we require it.
2443 gcc_cv_initfini_array=yes
2445 riscv*-*-elf* | riscv*-*-rtems*)
2446 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2449 tm_file="${tm_file} rtems.h riscv/rtems.h"
2450 tmake_file="${tmake_file} riscv/t-rtems"
2453 case "x${enable_multilib}" in
2455 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2456 *) echo "Unknown value for enable_multilib"; exit 1
2459 tmake_file="${tmake_file} riscv/t-riscv"
2462 # Force .init_array support. The configure script cannot always
2463 # automatically detect that GAS supports it, yet we require it.
2464 gcc_cv_initfini_array=yes
2467 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2468 tmake_file="${tmake_file} riscv/t-riscv"
2471 # Force .init_array support. The configure script cannot always
2472 # automatically detect that GAS supports it, yet we require it.
2473 gcc_cv_initfini_array=yes
2475 mips*-*-netbsd*) # NetBSD/mips, either endian.
2476 target_cpu_default="MASK_ABICALLS"
2477 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2478 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2481 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"
2482 extra_options="${extra_options} linux-android.opt"
2483 tmake_file="${tmake_file} mips/t-img-linux"
2484 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2485 with_arch_32="mips32r6"
2486 with_arch_64="mips64r6"
2491 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"
2492 extra_options="${extra_options} linux-android.opt"
2493 tmake_file="${tmake_file} mips/t-mti-linux"
2494 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2495 with_arch_32="mips32r2"
2496 with_arch_64="mips64r2"
2500 mips*-*-linux*) # Linux MIPS, either endian.
2501 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"
2502 extra_options="${extra_options} linux-android.opt"
2505 default_mips_arch=mips32r6
2508 default_mips_arch=mips32r2
2511 default_mips_arch=mips32
2513 mips64el-st-linux-gnu)
2514 default_mips_abi=n32
2515 tm_file="${tm_file} mips/st.h"
2516 tmake_file="${tmake_file} mips/t-st"
2517 enable_mips_multilibs="yes"
2519 mips64octeon*-*-linux*)
2520 default_mips_abi=n32
2521 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2522 target_cpu_default=MASK_SOFT_FLOAT_ABI
2523 enable_mips_multilibs="yes"
2525 mipsisa64r6*-*-linux*)
2526 default_mips_abi=n32
2527 default_mips_arch=mips64r6
2528 enable_mips_multilibs="yes"
2530 mipsisa64r2*-*-linux*)
2531 default_mips_abi=n32
2532 default_mips_arch=mips64r2
2533 enable_mips_multilibs="yes"
2535 mips64*-*-linux* | mipsisa64*-*-linux*)
2536 default_mips_abi=n32
2537 enable_mips_multilibs="yes"
2540 if test x$enable_targets = xall; then
2541 enable_mips_multilibs="yes"
2543 if test x$enable_mips_multilibs = xyes; then
2544 tmake_file="${tmake_file} mips/t-linux64"
2548 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2549 tmake_file="mips/t-mti-elf"
2550 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2551 with_arch_32="mips32r2"
2552 with_arch_64="mips64r2"
2555 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2556 tmake_file="mips/t-img-elf"
2557 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2558 with_arch_32="mips32r6"
2559 with_arch_64="mips64r6"
2562 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2563 tmake_file="mips/t-sde"
2564 extra_options="${extra_options} mips/sde.opt"
2565 case "${with_newlib}" in
2567 # newlib / libgloss.
2570 # MIPS toolkit libraries.
2571 tm_file="$tm_file mips/sdemtk.h"
2572 tmake_file="$tmake_file mips/t-sdemtk"
2573 case ${enable_threads} in
2575 thread_file='mipssde'
2582 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2585 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2588 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2591 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2594 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2597 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2601 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2602 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2603 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2604 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2605 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2606 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2607 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2608 tmake_file="mips/t-isa3264"
2611 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2614 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2617 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2620 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2623 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2626 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2630 mipsisa32*-*-elfoabi*)
2631 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2632 tm_file="${tm_file} mips/elfoabi.h"
2634 mipsisa64*-*-elfoabi*)
2635 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2636 tm_file="${tm_file} mips/elfoabi.h"
2639 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2643 mipsisa64sr71k-*-elf*)
2644 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2645 tmake_file=mips/t-sr71k
2646 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2648 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2649 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2650 tmake_file="mips/t-elf mips/t-sb1"
2651 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2653 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2654 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2655 tmake_file="mips/t-elf"
2657 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2658 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2659 tmake_file="mips/t-elf"
2660 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2662 mips64-*-elf* | mips64el-*-elf*)
2663 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2664 tmake_file="mips/t-elf"
2665 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2667 mips64vr-*-elf* | mips64vrel-*-elf*)
2668 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2669 tmake_file=mips/t-vr
2670 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2672 mips64orion-*-elf* | mips64orionel-*-elf*)
2673 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2674 tmake_file="mips/t-elf"
2675 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2678 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2679 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2682 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2683 tmake_file="${tmake_file} mips/t-vxworks"
2685 mipstx39-*-elf* | mipstx39el-*-elf*)
2686 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2687 tmake_file="mips/t-r3900"
2689 mmix-knuth-mmixware)
2690 tm_file="${tm_file} newlib-stdint.h"
2694 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2695 if test x$stabs = xyes
2697 tm_file="${tm_file} dbx.h"
2703 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2704 c_target_objs="msp430-c.o"
2705 cxx_target_objs="msp430-c.o"
2706 tmake_file="${tmake_file} msp430/t-msp430"
2707 extra_objs="${extra_objs} msp430-devices.o"
2708 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2709 # Enable .init_array unless it has been explicitly disabled.
2710 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2711 # code since mid-2019 expects it.
2712 if test x${disable_initfini_array} != xyes; then
2713 gcc_cv_initfini_array=yes
2717 # __cxa_atexit increases code size, and we don't need to support
2718 # dynamic shared objects on MSP430, so regular Newlib atexit is a
2719 # fine replacement as it also supports registration of more than 32
2721 default_use_cxa_atexit=no
2722 # This target does not match the generic *-*-elf case above which
2723 # sets use_gcc_stdint=wrap, so explicitly set it here.
2729 target_cpu_default="0"
2730 tm_defines="${tm_defines}"
2735 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2736 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2741 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2742 tmake_file="nds32/t-nds32 nds32/t-elf"
2745 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2746 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2747 gcc_cv_initfini_array=yes
2751 # Handle --enable-default-relax setting.
2752 if test x${enable_default_relax} = xyes; then
2753 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2755 # Handle --with-ext-dsp
2756 if test x${with_ext_dsp} = xyes; then
2757 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2761 tm_file="elfos.h ${tm_file}"
2762 tmake_file="${tmake_file} nios2/t-nios2"
2765 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2768 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2769 extra_options="${extra_options} nios2/elf.opt"
2772 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2773 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2778 tm_file="${tm_file} newlib-stdint.h"
2780 tmake_file="nvptx/t-nvptx"
2781 if test x$enable_as_accelerator = xyes; then
2782 extra_programs="${extra_programs} mkoffload\$(exeext)"
2783 tm_file="${tm_file} nvptx/offload.h"
2787 tm_file="elfos.h ${tm_file}"
2788 tmake_file="${tmake_file} or1k/t-or1k"
2789 # Force .init_array support. The configure script cannot always
2790 # automatically detect that GAS supports it, yet we require it.
2791 gcc_cv_initfini_array=yes
2793 # Handle --with-multilib-list=...
2794 or1k_multilibs="${with_multilib_list}"
2795 if test "$or1k_multilibs" = "default"; then
2796 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2798 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2799 for or1k_multilib in ${or1k_multilibs}; do
2800 case ${or1k_multilib} in
2801 mcmov | msext | msfimm | \
2803 mhard-float | mdouble-float | munordered-float | msoft-float | \
2804 mhard-div | mhard-mul | \
2805 msoft-div | msoft-mul )
2806 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2809 echo "--with-multilib-list=${with_multilib_list} not supported."
2813 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2817 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2818 tm_file="${tm_file} or1k/linux.h"
2821 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2822 extra_options="${extra_options} or1k/elf.opt"
2825 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2826 tmake_file="${tmake_file} or1k/t-rtems"
2831 tm_file="${tm_file} newlib-stdint.h"
2834 # port not yet contributed
2835 #powerpc-*-openbsd*)
2836 # tmake_file="${tmake_file} rs6000/t-fprules"
2840 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2842 *-darwin1[0-9]* | *-darwin9*)
2843 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2844 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2847 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2848 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2849 tm_file="${tm_file} ${cpu_type}/darwin8.h"
2852 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2855 # Earlier - ingle arch, with 32b only
2856 # OS X 10.0, the first edition is Darwin4
2859 tmake_file="${tmake_file} t-slibgcc"
2861 powerpc64-*-darwin*)
2862 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2863 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2864 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2866 powerpc*-*-freebsd*)
2867 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2868 extra_options="${extra_options} rs6000/sysv4.opt"
2869 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2872 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2873 tmake_file="${tmake_file} rs6000/t-freebsd64"
2874 extra_options="${extra_options} rs6000/linux64.opt"
2875 if test $fbsd_major -ge 13; then
2876 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2880 if test $fbsd_major -ge 13; then
2881 tm_file="rs6000/secureplt.h ${tm_file}"
2883 tm_file="${tm_file} rs6000/freebsd.h"
2888 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2889 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2890 tmake_file="${tmake_file} rs6000/t-netbsd"
2891 extra_options="${extra_options} rs6000/sysv4.opt"
2893 powerpc-*-eabisimaltivec*)
2894 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"
2895 extra_options="${extra_options} rs6000/sysv4.opt"
2896 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2900 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"
2901 extra_options="${extra_options} rs6000/sysv4.opt"
2902 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2906 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2907 extra_options="${extra_options} rs6000/sysv4.opt"
2908 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2910 powerpc-*-eabialtivec*)
2911 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"
2912 extra_options="${extra_options} rs6000/sysv4.opt"
2913 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2917 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"
2918 extra_options="${extra_options} rs6000/sysv4.opt"
2919 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2923 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"
2924 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2925 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2928 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2929 extra_options="${extra_options} rs6000/sysv4.opt"
2930 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2931 extra_objs="$extra_objs rs6000-linux.o"
2934 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2936 case ${target}:${with_cpu} in
2937 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2939 maybe_biarch=${cpu_is_64bit}
2940 case ${enable_targets} in
2941 *powerpc64*) maybe_biarch=yes ;;
2942 all) maybe_biarch=yes ;;
2944 case ${target}:${enable_targets}:${maybe_biarch} in
2945 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2946 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2947 | powerpcle-*:*powerpc64le*:yes)
2948 if test x$cpu_is_64bit = xyes; then
2949 tm_file="${tm_file} rs6000/default64.h"
2951 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2952 tmake_file="$tmake_file rs6000/t-linux64"
2955 tmake_file="$tmake_file rs6000/t-linux64le"
2956 case ${enable_targets} in
2957 all | *powerpc64-* | *powerpc-*)
2958 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2961 case ${enable_targets} in
2962 all | *powerpc64le-* | *powerpcle-*)
2963 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2966 extra_options="${extra_options} rs6000/linux64.opt"
2969 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2970 extra_options="${extra_options} rs6000/linux64.opt"
2971 tmake_file="${tmake_file} rs6000/t-linux"
2974 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2975 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2979 powerpc*-*-linux*ppc476*)
2980 tm_file="${tm_file} rs6000/476.h"
2981 extra_options="${extra_options} rs6000/476.opt" ;;
2982 powerpc*-*-linux*altivec*)
2983 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2987 enable_secureplt=yes ;;
2989 if test x${enable_secureplt} = xyes; then
2990 tm_file="rs6000/secureplt.h ${tm_file}"
2993 powerpc-wrs-vxworks*)
2994 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2995 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2996 extra_options="${extra_options} rs6000/sysv4.opt"
2997 extra_headers="${extra_headers} ppc-asm.h"
3000 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
3001 tmake_file="${tmake_file} rs6000/t-vxworksmils"
3004 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
3005 tmake_file="${tmake_file} rs6000/t-vxworksae"
3008 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3014 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3015 tmake_file="t-lynx rs6000/t-lynx"
3016 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3022 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"
3023 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3024 extra_options="${extra_options} rs6000/sysv4.opt"
3026 powerpcle-*-eabisim*)
3027 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"
3028 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3029 extra_options="${extra_options} rs6000/sysv4.opt"
3033 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"
3034 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3035 extra_options="${extra_options} rs6000/sysv4.opt"
3039 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3040 tmake_file="${tmake_file} pru/t-pru"
3041 extra_objs="pru-pragma.o pru-passes.o"
3044 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
3045 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
3046 tmake_file="rs6000/t-aix52 t-slibgcc"
3047 extra_options="${extra_options} rs6000/aix64.opt"
3051 default_use_cxa_atexit=yes
3053 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3054 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3055 tmake_file="rs6000/t-aix52 t-slibgcc"
3056 extra_options="${extra_options} rs6000/aix64.opt"
3060 default_use_cxa_atexit=yes
3062 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3063 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3064 tmake_file="rs6000/t-aix52 t-slibgcc"
3065 extra_options="${extra_options} rs6000/aix64.opt"
3069 default_use_cxa_atexit=yes
3072 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3073 target_has_targetm_common=no
3074 c_target_objs="rl78-c.o"
3075 cxx_target_objs="rl78-c.o"
3076 tmake_file="${tmake_file} rl78/t-rl78"
3079 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3080 tmake_file="${tmake_file} rx/t-rx"
3081 extra_options="${extra_options} rx/elf.opt"
3084 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3085 tmake_file="${tmake_file} rx/t-linux"
3088 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3089 c_target_objs="${c_target_objs} s390-c.o"
3090 cxx_target_objs="${cxx_target_objs} s390-c.o"
3091 if test x$enable_targets = xall; then
3092 tmake_file="${tmake_file} s390/t-linux64"
3094 tmake_file="${tmake_file} s390/t-s390"
3097 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3098 tm_p_file="linux-protos.h s390/s390-protos.h"
3099 c_target_objs="${c_target_objs} s390-c.o"
3100 cxx_target_objs="${cxx_target_objs} s390-c.o"
3101 md_file=s390/s390.md
3102 extra_modes=s390/s390-modes.def
3103 out_file=s390/s390.c
3104 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3107 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h glibc-stdint.h s390/tpf.h"
3108 tm_p_file=s390/s390-protos.h
3109 c_target_objs="${c_target_objs} s390-c.o"
3110 cxx_target_objs="${cxx_target_objs} s390-c.o"
3111 md_file=s390/s390.md
3112 extra_modes=s390/s390-modes.def
3113 out_file=s390/s390.c
3115 extra_options="${extra_options} s390/tpf.opt"
3116 tmake_file="${tmake_file} s390/t-s390"
3118 sh-*-elf* | sh[12346l]*-*-elf* | \
3119 sh-*-linux* | sh[2346lbe]*-*-linux* | \
3120 sh-*-netbsdelf* | shl*-*-netbsdelf*)
3121 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3122 if test x${with_endian} = x; then
3124 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3125 shbe-*-* | sheb-*-*) with_endian=big,little ;;
3126 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
3127 shl* | sh*-*-linux* | \
3128 sh-superh-elf) with_endian=little,big ;;
3129 sh[1234]*-*-*) with_endian=big ;;
3130 *) with_endian=big,little ;;
3133 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3134 # First word : the default endian.
3135 # Second word: the secondary endian (optional).
3136 case ${with_endian} in
3137 big) TM_ENDIAN_CONFIG=mb ;;
3138 little) TM_ENDIAN_CONFIG=ml ;;
3139 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
3140 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
3141 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
3143 case ${with_endian} in
3144 little*) tm_file="sh/little.h ${tm_file}" ;;
3146 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
3148 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
3149 if test x$enable_fdpic = xyes; then
3150 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3152 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3154 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3155 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3158 sh*-superh-elf) if test x$with_libgloss != xno; then
3160 tm_file="${tm_file} sh/newlib.h"
3162 tm_file="${tm_file} sh/embed-elf.h"
3163 tm_file="${tm_file} sh/superh.h"
3164 extra_options="${extra_options} sh/superh.opt" ;;
3165 *) if test x$with_newlib = xyes \
3166 && test x$with_libgloss = xyes; then
3167 tm_file="${tm_file} sh/newlib.h"
3169 tm_file="${tm_file} sh/embed-elf.h" ;;
3175 tm_file="${tm_file} newlib-stdint.h"
3178 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3179 case `echo ${target} | sed 's/e[lb]-/-/'` in
3180 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
3181 sh4a_single*) sh_cpu_target=sh4a-single ;;
3182 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
3183 sh4al) sh_cpu_target=sh4al ;;
3184 sh4a*) sh_cpu_target=sh4a ;;
3185 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3186 sh4_single*) sh_cpu_target=sh4-single ;;
3187 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3188 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3189 sh3e*) sh_cpu_target=sh3e ;;
3190 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3191 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3192 sh2a_single*) sh_cpu_target=sh2a-single ;;
3193 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3194 sh2a*) sh_cpu_target=sh2a ;;
3195 sh2e*) sh_cpu_target=sh2e ;;
3196 sh2*) sh_cpu_target=sh2 ;;
3197 *) sh_cpu_target=sh1 ;;
3199 # did the user say --without-fp ?
3200 if test x$with_fp = xno; then
3201 case ${sh_cpu_target} in
3203 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3204 sh4*) sh_cpu_target=sh4-nofpu ;;
3205 sh3*) sh_cpu_target=sh3 ;;
3206 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3207 sh2*) sh_cpu_target=sh2 ;;
3208 *) echo --without-fp not available for $target: ignored
3210 tm_defines="$tm_defines STRICT_NOFPU=1"
3212 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3213 case $sh_cpu_default in
3214 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3215 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3216 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3217 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3218 "") sh_cpu_default=${sh_cpu_target} ;;
3219 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3221 sh_multilibs=${with_multilib_list}
3222 if test "$sh_multilibs" = "default" ; then
3224 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3225 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3226 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3227 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3228 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3230 if test x$with_fp = xno; then
3231 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`"
3234 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3235 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3236 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3237 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3238 for sh_multilib in ${sh_multilibs}; do
3239 case ${sh_multilib} in
3240 m1 | m2 | m2e | m3 | m3e | \
3241 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3242 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3243 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3244 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3245 # It is passed to MULTIILIB_OPTIONS verbatim.
3246 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3247 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3249 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3250 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3251 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3253 echo "with_multilib_list=${sh_multilib} not supported."
3258 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3259 if test x${enable_incomplete_targets} = xyes ; then
3260 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3262 tm_file="$tm_file ./sysroot-suffix.h"
3263 tmake_file="$tmake_file t-sysroot-suffix"
3266 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3267 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3270 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3271 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3274 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3277 tmake_file="sparc/t-sparc sparc/t-leon"
3280 tmake_file="sparc/t-sparc sparc/t-leon3"
3283 tmake_file="sparc/t-sparc sparc/t-elf"
3288 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3289 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3292 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3293 extra_options="${extra_options} sparc/long-double-switch.opt"
3296 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3299 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3302 tmake_file="${tmake_file} sparc/t-sparc"
3305 if test x$enable_targets = xall; then
3306 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3307 tmake_file="${tmake_file} sparc/t-linux64"
3309 tm_file="${tm_file} sparc/linux.h"
3310 tmake_file="${tmake_file} sparc/t-linux"
3314 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3315 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3316 extra_options="${extra_options} sparc/long-double-switch.opt"
3317 tmake_file="${tmake_file} sparc/t-sparc"
3320 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3322 sparc64-*-* | sparcv9-*-*)
3323 tm_file="sparc/default64.h ${tm_file}"
3326 test x$with_cpu != x || with_cpu=v9
3329 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3332 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3333 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3336 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3337 extra_options="${extra_options}"
3338 tmake_file="${tmake_file} sparc/t-sparc"
3341 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3342 extra_options="${extra_options}"
3343 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3346 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"
3347 extra_options="${extra_options} sparc/long-double-switch.opt"
3348 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3350 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3351 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3352 extra_options="${extra_options} sparc/long-double-switch.opt"
3353 case "x$with_cpu" in
3355 x) with_cpu=ultrasparc ;;
3356 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3358 tmake_file="${tmake_file} sparc/t-sparc"
3361 tm_file="sparc/biarch64.h ${tm_file}"
3362 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3363 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3364 extra_options="${extra_options} sparc/long-double-switch.opt"
3365 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3368 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3369 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3370 extra_options="${extra_options} openbsd.opt"
3371 extra_options="${extra_options}"
3374 tmake_file="${tmake_file} sparc/t-sparc"
3377 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3378 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3379 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3383 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3384 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3385 tm_file="${tm_file} ./sysroot-suffix.h"
3386 tmake_file="t-sysroot-suffix t-slibgcc"
3387 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3391 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3392 tmake_file="${tmake_file} tilegx/t-tilegx"
3393 extra_objs="${extra_objs} mul-tables.o"
3394 c_target_objs="${c_target_objs} tilegx-c.o"
3395 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3396 extra_headers="feedback.h"
3399 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3404 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3405 tmake_file="${tmake_file} tilepro/t-tilepro"
3406 extra_objs="${extra_objs} mul-tables.o"
3407 c_target_objs="${c_target_objs} tilepro-c.o"
3408 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3409 extra_headers="feedback.h"
3412 target_cpu_default="TARGET_CPU_generic"
3413 tm_file="dbxelf.h elfos.h v850/v850.h"
3414 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3415 tmake_file="${tmake_file} v850/t-v850"
3416 tmake_file="${tmake_file} v850/t-rtems"
3418 c_target_objs="v850-c.o"
3419 cxx_target_objs="v850-c.o"
3424 target_cpu_default="TARGET_CPU_v850e3v5"
3427 target_cpu_default="TARGET_CPU_v850e2v3"
3430 target_cpu_default="TARGET_CPU_v850e2"
3432 v850e1-*-* | v850es-*-*)
3433 target_cpu_default="TARGET_CPU_v850e1"
3436 target_cpu_default="TARGET_CPU_v850e"
3439 target_cpu_default="TARGET_CPU_generic"
3442 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3443 if test x$stabs = xyes
3445 tm_file="${tm_file} dbx.h"
3448 c_target_objs="v850-c.o"
3449 cxx_target_objs="v850-c.o"
3453 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3454 extra_options="${extra_options} vax/elf.opt"
3457 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3458 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3459 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3462 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3463 extra_options="${extra_options} openbsd.opt"
3467 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3468 tmake_file="visium/t-visium visium/t-crtstuff"
3471 # For historical reasons, the target files omit the 'x'.
3472 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3473 tm_p_file=stormy16/stormy16-protos.h
3474 tm_d_file="elfos.h stormy16/stormy16.h"
3475 md_file=stormy16/stormy16.md
3476 out_file=stormy16/stormy16.c
3477 extra_options=stormy16/stormy16.opt
3478 tmake_file="stormy16/t-stormy16"
3481 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3482 extra_options="${extra_options} xtensa/elf.opt"
3485 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3486 tmake_file="${tmake_file} xtensa/t-xtensa"
3489 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3490 tmake_file="${tmake_file} xtensa/t-xtensa"
3491 extra_options="${extra_options} xtensa/uclinux.opt"
3494 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3499 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3500 c_target_objs="m32c-pragma.o"
3501 cxx_target_objs="m32c-pragma.o"
3504 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3505 c_target_objs="m32c-pragma.o"
3506 cxx_target_objs="m32c-pragma.o"
3509 echo "*** Configuration ${target} not supported" 1>&2
3515 i[34567]86-*-linux* | x86_64-*-linux*)
3516 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3518 i[34567]86-*-* | x86_64-*-*)
3519 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3521 powerpc*-*-* | rs6000-*-*)
3522 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3528 tmake_file="${tmake_file} t-musl"
3531 tmake_file="${tmake_file} t-uclibc"
3535 # Assume the existence of indirect function support and allow the use of the
3536 # resolver attribute.
3538 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3542 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3543 default_gnu_indirect_function=yes
3549 # Build mkoffload tool
3551 *-intelmic-* | *-intelmicemul-*)
3552 tmake_file="${tmake_file} i386/t-intelmic"
3553 tm_file="${tm_file} i386/intelmic-offload.h"
3557 if [ "$target_has_targetcm" = "no" ]; then
3558 c_target_objs="$c_target_objs default-c.o"
3559 cxx_target_objs="$cxx_target_objs default-c.o"
3562 if [ "$common_out_file" = "" ]; then
3563 if [ "$target_has_targetm_common" = "yes" ]; then
3564 common_out_file="$cpu_type/$cpu_type-common.c"
3566 common_out_file="default-common.c"
3570 if [ "$target_has_targetdm" = "no" ]; then
3571 d_target_objs="$d_target_objs default-d.o"
3574 # Support for --with-cpu and related options (and a few unrelated options,
3578 echo "--with-cpu must be passed a value" 1>&2
3583 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3584 # to generic if there is no processor scheduler model for the target.
3587 arch_without_sse2=no
3588 arch_without_64bit=no
3591 if test $fbsd_major -ge 6; then
3597 arch_without_sse2=yes
3598 arch_without_64bit=yes
3603 arch_without_sse2=yes
3604 arch_without_64bit=yes
3609 arch_without_sse2=yes
3610 arch_without_64bit=yes
3615 arch_without_sse2=yes
3616 arch_without_64bit=yes
3619 arch_without_sse2=yes
3620 arch_without_64bit=yes
3621 case ${target_noncanonical} in
3634 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3644 i686-*-* | i786-*-*)
3645 case ${target_noncanonical} in
3678 amdfam10-*|barcelona-*)
3682 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3686 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3690 athlon_xp-*|athlon_mp-*|athlon_4-*)
3693 arch_without_sse2=yes
3694 arch_without_64bit=yes
3696 athlon_tbird-*|athlon-*)
3699 arch_without_sse2=yes
3704 arch_without_sse2=yes
3709 arch_without_sse2=yes
3711 pentium3-*|pentium3m-*)
3714 arch_without_sse2=yes
3716 pentium4-*|pentium4m-*)
3755 arch_without_sse2=yes
3760 arch_without_sse2=yes
3761 arch_without_64bit=yes
3766 case ${target_noncanonical} in
3799 amdfam10-*|barcelona-*)
3803 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3807 k8-*|opteron-*|athlon_64-*)
3839 # If there is no $with_cpu option, try to infer one from ${target}.
3840 # This block sets nothing except for with_cpu.
3841 if test x$with_cpu = x ; then
3843 i[34567]86-*-elfiamcu)
3846 i[34567]86-*-*|x86_64-*-*)
3864 frv-*-*linux* | frv400-*-*linux*)
3871 case "$with_arch" in
3873 with_cpu=${default_cf_cpu}
3876 with_cpu=m${default_m68k_cpu}
3892 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3901 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3903 i[34567]86-*-*|x86_64-*-*)
3904 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3905 if test x$with_cpu_32 = x; then
3906 with_cpu_32=$with_cpu
3908 if test x$with_cpu_64 = x; then
3909 with_cpu_64=$with_cpu
3917 # Support for --with-arch and related options (and a few unrelated options,
3919 case ${with_arch} in
3921 echo "--with-arch must be passed a value" 1>&2
3926 # If there is no $with_arch option, try to infer one from ${target}.
3927 # This block sets nothing except for with_arch.
3928 if test x$with_arch = x ; then
3930 i[34567]86-*-darwin*|x86_64-*-darwin*)
3931 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3932 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3934 i[34567]86-*-elfiamcu)
3938 # --with-fpmath sets the default ISA to SSE2, which is the same
3939 # ISA supported by Pentium 4.
3940 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3949 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3957 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3959 i[34567]86-*-darwin*|x86_64-*-darwin*)
3960 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3961 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3963 i[34567]86-*-*|x86_64-*-*)
3964 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3965 if test x$with_arch_32 = x; then
3966 with_arch_32=$with_arch
3968 if test x$with_arch_64 = x; then
3969 if test $arch_without_64bit = yes; then
3970 # Set the default 64bit arch to x86-64 if the default arch
3971 # doesn't support 64bit.
3974 with_arch_64=$with_arch
3978 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3979 # Set the default 64bit arch to x86-64 if the default arch
3980 # doesn't support 64bit and we need 64bit ISA.
3981 with_arch_32=$with_arch
3989 # Infer a default setting for --with-float.
3990 if test x$with_float = x; then
3992 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3993 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3994 # comply with IEEE 754.
4000 # Infer a default setting for --with-fpu.
4001 if test x$with_fpu = x; then
4003 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4004 # The R5900 FPU only supports single precision.
4010 # Support --with-fpmath.
4011 if test x$with_fpmath != x; then
4013 i[34567]86-*-* | x86_64-*-*)
4014 case ${with_fpmath} in
4016 tm_file="${tm_file} i386/avxmath.h"
4019 tm_file="${tm_file} i386/ssemath.h"
4022 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4028 echo "--with-fpmath isn't supported for $target." 1>&2
4034 # Similarly for --with-schedule.
4035 if test x$with_schedule = x; then
4038 # Override default PA8000 scheduling model.
4039 with_schedule=7100LC
4044 # Infer a default setting for --with-llsc.
4045 if test x$with_llsc = x; then
4048 # The kernel emulates LL and SC where necessary.
4051 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4052 # The R5900 doesn't support LL(D) and SC(D).
4058 # Validate and mark as valid any --with options supported
4059 # by this target. In order to use a particular --with option
4060 # you must list it in supported_defaults; validating the value
4061 # is optional. This case statement should set nothing besides
4062 # supported_defaults.
4067 supported_defaults="abi cpu arch"
4068 for which in cpu arch; do
4070 eval "val=\$with_$which"
4071 base_val=`echo $val | sed -e 's/\+.*//'`
4072 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4074 if [ $which = arch ]; then
4075 def=aarch64-arches.def
4076 pattern=AARCH64_ARCH
4078 def=aarch64-cores.def
4079 pattern=AARCH64_CORE
4082 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
4084 # Find the base CPU or ARCH id in aarch64-cores.def or
4085 # aarch64-arches.def
4086 if [ x"$base_val" = x ] \
4087 || grep "^$pattern(\"$base_val\"," \
4088 ${srcdir}/config/aarch64/$def \
4091 if [ $which = arch ]; then
4092 base_id=`grep "^$pattern(\"$base_val\"," \
4093 ${srcdir}/config/aarch64/$def | \
4094 sed -e 's/^[^,]*,[ ]*//' | \
4096 # Extract the architecture flags from aarch64-arches.def
4097 ext_mask=`grep "^$pattern(\"$base_val\"," \
4098 ${srcdir}/config/aarch64/$def | \
4102 base_id=`grep "^$pattern(\"$base_val\"," \
4103 ${srcdir}/config/aarch64/$def | \
4104 sed -e 's/^[^,]*,[ ]*//' | \
4108 # Use the pre-processor to strip flatten the options.
4109 # This makes the format less rigid than if we use
4110 # grep and sed directly here.
4111 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4112 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4113 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4115 # Match one element inside AARCH64_OPT_EXTENSION, we
4116 # consume anything that's not a ,.
4117 elem="[ ]*\([^,]\+\)[ ]*"
4119 # Repeat the pattern for the number of entries in the
4120 # AARCH64_OPT_EXTENSION, currently 6 times.
4121 sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
4123 while [ x"$ext_val" != x ]
4125 ext_val=`echo $ext_val | sed -e 's/\+//'`
4126 ext=`echo $ext_val | sed -e 's/\+.*//'`
4127 base_ext=`echo $ext | sed -e 's/^no//'`
4128 opt_line=`echo -e "$options_parsed" | \
4129 grep "^\"$base_ext\""`
4131 if [ x"$base_ext" = x ] \
4132 || [[ -n $opt_line ]]; then
4134 # These regexp extract the elements based on
4135 # their group match index in the regexp.
4136 ext_canon=`echo -e "$opt_line" | \
4137 sed -e "s/$sed_patt/\2/"`
4138 ext_on=`echo -e "$opt_line" | \
4139 sed -e "s/$sed_patt/\3/"`
4140 ext_off=`echo -e "$opt_line" | \
4141 sed -e "s/$sed_patt/\4/"`
4143 if [ $ext = $base_ext ]; then
4145 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
4147 # Removing extension
4148 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
4153 echo "Unknown extension used in --with-$which=$val" 1>&2
4156 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4159 ext_mask="(("$ext_mask") << 6)"
4160 if [ x"$base_id" != x ]; then
4161 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
4165 echo "Unknown $which used in --with-$which=$val" 1>&2
4172 supported_defaults="cpu tune"
4173 for which in cpu tune; do
4174 eval "val=\$with_$which"
4177 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4178 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4182 echo "Unknown CPU used in --with-$which=$val" 1>&2
4190 supported_defaults="cpu"
4192 if [ x"$with_cpu" = x ] \
4193 || grep "^ARC_CPU ($with_cpu," \
4194 ${srcdir}/config/arc/arc-cpus.def \
4199 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4205 supported_defaults="cpu endian float"
4209 supported_defaults="arch cpu float tune fpu abi mode tls"
4210 for which in cpu tune arch; do
4211 # See if it matches a supported value
4212 eval "val=\$with_$which"
4213 if [ x"$val" != x ]; then
4214 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4215 -v cmd="chk$which $val" \
4216 ${srcdir}/config/arm/arm-cpus.in`
4217 if [ "$cpu" = "error" ]; then
4218 echo "Unknown target in --with-$which=$val" 1>&2
4222 eval "target_${which}_cname=$new_val"
4223 echo "For $val real value is $new_val"
4228 case "$with_float" in
4230 | soft | hard | softfp)
4234 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4239 # see if --with-fpu matches any of the supported FPUs
4240 if [ x"$with_fpu" != x ] ; then
4242 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4243 -v cmd="chkfpu $val" \
4244 ${srcdir}/config/arm/arm-cpus.in`
4245 if [ "$fpu" = "error" ]
4247 echo "Unknown target in --with-fpu=$val" 1>&2
4254 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4258 echo "Unknown ABI used in --with-abi=$with_abi"
4263 case "$with_mode" in
4269 echo "Unknown mode used in --with-mode=$with_mode"
4280 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4285 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4286 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4290 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4291 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4295 # Add extra multilibs
4296 if test "x$with_multilib_list" != x; then
4298 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4299 if test "x${arm_multilibs}" != xdefault ; then
4300 for arm_multilib in ${arm_multilibs}; do
4301 case ${arm_multilib} in
4303 tmake_profile_file="arm/t-multilib"
4306 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4307 if test -f "${srcdir}/config/arm/${ml}"; then
4308 tmake_file="${tmake_file} arm/${ml}"
4310 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4315 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4322 if test "x${tmake_profile_file}" != x ; then
4323 # arm/t-aprofile and arm/t-rmprofile are only
4324 # designed to work without any with-cpu,
4325 # with-arch, with-mode, with-fpu or with-float
4327 if test "x$with_arch" != x \
4328 || test "x$with_cpu" != x \
4329 || test "x$with_float" != x \
4330 || test "x$with_fpu" != x \
4331 || test "x$with_mode" != x ; then
4332 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4334 elif test "x$ml" != x ; then
4335 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4338 # But pass the default value for float-abi
4339 # through to the multilib selector
4341 tmake_file="${tmake_file} ${tmake_profile_file}"
4342 TM_MULTILIB_CONFIG="$with_multilib_list"
4345 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4346 with_cpu=${with_cpu:-$target_cpu_cname}
4350 supported_defaults=cpu
4355 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4361 fido-*-* | m68k*-*-*)
4362 supported_defaults="arch cpu"
4363 case "$with_arch" in
4365 m68k_arch_family="$with_arch"
4368 echo "Invalid --with-arch=$with_arch" 1>&2
4373 # We always have a $with_cpu setting here.
4375 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4376 m68k_cpu_ident=$with_cpu
4379 m68k_cpu_ident=m68020
4380 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4383 m68k_cpu_ident=m68020
4384 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4387 # We need the C identifier rather than the string.
4388 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4389 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4390 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4391 ${srcdir}/config/m68k/m68k-devices.def`
4392 if [ x"$m68k_cpu_ident" = x ] ; then
4393 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4396 with_cpu="mcpu=$with_cpu"
4402 supported_defaults="arch tune"
4404 for which in arch tune; do
4405 eval "val=\$with_$which"
4407 "" | fiji | gfx900 | gfx906 )
4411 echo "Unknown cpu used in --with-$which=$val." 1>&2
4416 [ "x$with_arch" = x ] && with_arch=fiji
4420 supported_defaults="arch schedule"
4422 case "$with_arch" in
4423 "" | 1.0 | 1.1 | 2.0)
4427 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4432 case "$with_schedule" in
4433 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4437 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4443 i[34567]86-*-* | x86_64-*-*)
4444 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4445 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4446 eval "val=\$with_$which"
4447 case " $x86_archs " in
4455 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4464 if test x${val} != x; then
4465 case " $x86_64_archs " in
4470 # Allow $x86_cpus --with-cpu=/--with-tune=
4473 case " $x86_cpus " in
4478 echo "Unknown CPU given in --with-$which=$val." 1>&2
4484 echo "Unknown CPU given in --with-$which=$val." 1>&2
4497 supported_defaults="abi arch tune riscv_attribute"
4500 riscv-* | riscv32*) xlen=32 ;;
4501 riscv64*) xlen=64 ;;
4502 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4505 case "${with_riscv_attribute}" in
4507 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4510 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4515 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4518 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4523 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4529 # Infer arch from --with-arch, --target, and --with-abi.
4530 case "${with_arch}" in
4531 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4535 # Infer XLEN, but otherwise assume GC.
4536 case "${with_abi}" in
4537 ilp32e) with_arch="rv32e" ;;
4538 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4539 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4540 *) with_arch="rv${xlen}gc" ;;
4544 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4549 # Make sure --with-abi is valid. If it was not specified,
4550 # pick a default based on the ISA, preferring soft-float
4551 # unless the D extension is present.
4552 case "${with_abi}" in
4553 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4556 case "${with_arch}" in
4557 rv32*d* | rv32g*) with_abi=ilp32d ;;
4558 rv32e*) with_abi=ilp32e ;;
4559 rv32*) with_abi=ilp32 ;;
4560 rv64*d* | rv64g*) with_abi=lp64d ;;
4561 rv64*) with_abi=lp64 ;;
4565 echo "--with-abi=${with_abi} is not supported" 1>&2
4570 # Make sure ABI and ISA are compatible.
4571 case "${with_abi},${with_arch}" in
4572 ilp32,rv32* | ilp32e,rv32e* \
4573 | ilp32f,rv32*f* | ilp32f,rv32g* \
4574 | ilp32d,rv32*d* | ilp32d,rv32g* \
4576 | lp64f,rv64*f* | lp64f,rv64g* \
4577 | lp64d,rv64*d* | lp64d,rv64g*)
4580 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4585 # Handle --with-multilib-list.
4586 if test "x${with_multilib_list}" != xdefault; then
4587 tm_file="${tm_file} riscv/withmultilib.h"
4588 tmake_file="${tmake_file} riscv/t-withmultilib"
4590 case ${with_multilib_list} in
4591 ilp32 | ilp32f | ilp32d \
4592 | lp64 | lp64f | lp64d )
4593 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4596 echo "--with-multilib-list=${with_multilib_list} not supported."
4600 # Define macros to select the default multilib.
4601 case ${with_arch} in
4603 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4606 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4609 echo "unsupported --with-arch for --with-multilib-list"
4614 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4617 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4620 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4623 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4626 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4629 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4632 echo "unsupported --with-abi for --with-multilib"
4639 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"
4641 case ${with_float} in
4646 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4652 "" | single | double)
4656 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4666 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4671 case ${with_fp_32} in
4676 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4681 case ${with_odd_spreg_32} in
4683 with_odd_spreg_32="odd-spreg"
4686 with_odd_spreg_32="no-odd-spreg"
4692 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4698 "" | 32 | o64 | n32 | 64 | eabi)
4702 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4707 case ${with_divide} in
4708 "" | breaks | traps)
4712 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4717 case ${with_llsc} in
4728 echo "Unknown llsc type used in --with-llsc" 1>&2
4733 case ${with_mips_plt} in
4738 with_mips_plt=no-plt
4743 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4748 case ${with_synci} in
4758 echo "Unknown synci type used in --with-synci" 1>&2
4763 case ${with_lxc1_sxc1} in
4765 with_lxc1_sxc1=lxc1-sxc1
4768 with_lxc1_sxc1=no-lxc1-sxc1
4773 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4778 case ${with_madd4} in
4788 echo "Unknown madd4 type used in --with-madd4" 1>&2
4795 supported_defaults="arch cpu nds32_lib float fpu_config"
4797 # process --with-arch
4798 case "${with_arch}" in
4800 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4804 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4807 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4810 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4814 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4819 case "${with_cpu}" in
4823 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4827 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4832 # process --with-nds32-lib
4833 case "${with_nds32_lib}" in
4837 with_nds32_lib=ulibc
4840 with_nds32_lib=glibc
4843 with_nds32_lib=newlib
4844 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4850 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4854 # for the arch=v3f or arch=v3s under mculib toolchain,
4855 # we would like to set -fno-math-errno as default
4856 case "${with_arch}" in
4858 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4866 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4871 # process --with-float
4872 case "${with_float}" in
4877 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4882 # process --with-config-fpu
4883 case "${with_config_fpu}" in
4888 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4896 supported_defaults="arch"
4897 case "$with_arch" in
4902 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4908 powerpc*-*-* | rs6000-*-*)
4909 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4911 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4912 eval "val=\$with_$which"
4914 default32 | default64)
4919 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4923 with_which="with_$which"
4927 tm_defines="${tm_defines} CONFIG_PPC405CR"
4928 eval "with_$which=405"
4930 "" | common | native \
4931 | power[3456789] | power5+ | power6x \
4932 | powerpc | powerpc64 | powerpc64le \
4934 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4935 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4936 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4937 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4938 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4942 echo "Unknown cpu used in --with-$which=$val." 1>&2
4949 "" | elfv1 | elfv2 )
4953 echo "Unknown ABI used in --with-abi=$with_abi"
4958 if test "x$with_advance_toolchain" != x; then
4959 if test -d "/opt/$with_advance_toolchain/." -a \
4960 -d "/opt/$with_advance_toolchain/bin/." -a \
4961 -d "/opt/$with_advance_toolchain/include/."; then
4963 tm_file="$tm_file ./advance-toolchain.h"
4964 (at="/opt/$with_advance_toolchain"
4965 echo "/* Use Advance Toolchain $at */"
4967 echo "#undef LINK_OS_EXTRA_SPEC32"
4968 echo "#define LINK_OS_EXTRA_SPEC32" \
4969 "\"%(link_os_new_dtags)" \
4970 "-rpath $prefix/lib -rpath $at/lib\""
4972 echo "#undef LINK_OS_EXTRA_SPEC64"
4973 echo "#define LINK_OS_EXTRA_SPEC64" \
4974 "\"%(link_os_new_dtags)" \
4975 "-rpath $prefix/lib64 -rpath $at/lib64\""
4977 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4978 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4979 "\"--enable-new-dtags\""
4981 echo "#undef DYNAMIC_LINKER_PREFIX"
4982 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4984 echo "#undef MD_EXEC_PREFIX"
4985 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4987 echo "#undef MD_STARTFILE_PREFIX"
4988 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
4990 echo "#undef MD_STARTFILE_PREFIX_1"
4991 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
4992 > advance-toolchain.h
4994 echo "Unknown advance-toolchain $with_advance_toolchain"
4999 # Set up the default long double format if the user changed it.
5000 if test x$with_long_double_format = xieee; then
5001 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
5003 elif test x$with_long_double_format = xibm; then
5004 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5009 supported_defaults="arch mode tune"
5011 for which in arch tune; do
5012 eval "val=\$with_$which"
5014 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 )
5018 echo "Unknown cpu used in --with-$which=$val." 1>&2
5024 case ${with_mode} in
5029 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5035 sh[123456ble]*-*-* | sh-*-*)
5036 supported_defaults="cpu"
5037 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5038 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5041 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5043 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5046 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
5047 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5048 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5049 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5055 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5057 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5058 eval "val=\$with_$which"
5060 "" | sparc | sparcv9 | sparc64 \
5062 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5063 | sparclite | f930 | f934 | sparclite86x \
5064 | sparclet | tsc701 \
5065 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5066 | niagara3 | niagara4 | niagara7 | m8)
5070 echo "Unknown cpu used in --with-$which=$val" 1>&2
5076 case ${with_float} in
5081 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5088 supported_defaults="arch"
5090 case ${with_arch} in
5091 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5095 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5102 supported_defaults=cpu
5104 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5108 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5114 supported_defaults="cpu"
5118 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5125 # Targets for which there is at least one VxWorks port should include
5126 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5127 # of markers from other files in the port, including the vxworks*.h files to
5128 # distinguish VxWorks variants such as VxWorks 7 or 64).
5131 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5132 | sparc*-*-* | x86_64-*-*)
5133 tm_file="vxworks-dummy.h ${tm_file}"
5137 # Set some miscellaneous flags for particular targets.
5138 target_cpu_default2=
5141 if test x"$target_cpu_cname" != x
5143 target_cpu_default2=$target_cpu_cname
5148 if test x$with_cpu = x
5150 echo "Don't know the target cpu" 1>&2
5153 target_cpu_default2="\\\"$with_cpu\\\""
5158 if test x$gas = xyes
5160 target_cpu_default2="MASK_GAS"
5164 fido*-*-* | m68k*-*-*)
5165 target_cpu_default2=$m68k_cpu_ident
5166 tmake_file="m68k/t-opts $tmake_file"
5167 if [ x"$m68k_arch_family" != x ]; then
5168 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5172 i[34567]86-*-darwin* | x86_64-*-darwin*)
5174 i[34567]86-*-linux* | x86_64-*-linux*)
5175 extra_objs="${extra_objs} cet.o"
5176 tmake_file="$tmake_file i386/t-linux i386/t-cet"
5178 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5179 tmake_file="$tmake_file i386/t-kfreebsd"
5182 tmake_file="$tmake_file i386/t-gnu"
5184 i[34567]86-*-msdosdjgpp*)
5185 tmake_file="${tmake_file} i386/t-djgpp"
5187 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5189 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5191 i[34567]86-*-mingw* | x86_64-*-mingw*)
5193 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5195 i[34567]86-*-freebsd*)
5198 tmake_file="${tmake_file} i386/t-freebsd64"
5204 if test x$gnu_ld = xyes
5206 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5210 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5213 if test x$with_arch != x; then
5214 default_mips_arch=$with_arch
5216 if test x$with_abi != x; then
5217 default_mips_abi=$with_abi
5219 case ${default_mips_arch} in
5220 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
5221 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
5222 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
5223 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
5224 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
5225 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
5226 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
5227 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
5228 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
5229 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
5231 case ${default_mips_abi} in
5232 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5233 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5234 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5235 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5236 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5238 tmake_file="mips/t-mips $tmake_file"
5241 powerpc*-*-* | rs6000-*-*)
5242 # FIXME: The PowerPC port uses the value set at compile time,
5243 # although it's only cosmetic.
5244 if test "x$with_cpu" != x
5246 target_cpu_default2="\\\"$with_cpu\\\""
5248 out_file="${cpu_type}/${cpu_type}.c"
5249 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5250 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5251 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5252 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5255 sh[123456ble]*-*-* | sh-*-*)
5256 c_target_objs="${c_target_objs} sh-c.o"
5257 cxx_target_objs="${cxx_target_objs} sh-c.o"
5261 # Some standard aliases.
5266 xsparcv9 | xsparc64)
5271 if test x$with_tune = x ; then
5282 # The SPARC port checks this value at compile-time.
5283 target_cpu_default2="TARGET_CPU_$with_cpu"
5287 case "x$with_cpu" in
5290 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5291 target_cpu_default2="TARGET_CPU_$with_cpu"
5294 target_cpu_default2="TARGET_CPU_v850e1"
5299 target_cpu_default2="TARGET_CPU_$with_cpu"
5304 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"
5305 for option in $all_defaults
5307 eval "val=\$with_"`echo $option | sed s/-/_/g`
5308 if test -n "$val"; then
5309 case " $supported_defaults " in
5313 echo "This target does not support --with-$option." 2>&1
5314 echo "Valid --with options are: $supported_defaults" 2>&1
5321 t="{ \"$option\", \"$val\" }"
5323 t="${t}, { \"$option\", \"$val\" }"
5330 configure_default_options="{ { NULL, NULL} }"
5332 configure_default_options="{ ${t} }"
5335 if test "$target_cpu_default2" != ""
5337 if test "$target_cpu_default" != ""
5339 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5341 target_cpu_default=$target_cpu_default2
5346 i[34567]86-*-* | x86_64-*-*)
5347 if test x$enable_as_accelerator = xyes; then
5348 extra_programs="mkoffload\$(exeext)"