1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2019 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.
253 if test "x$enable_obsolete" != xyes; then
254 echo "*** Configuration ${target} is obsolete." >&2
255 echo "*** Specify --enable-obsolete to build it anyway." >&2
256 echo "*** Support will be REMOVED in the next major release of GCC," >&2
257 echo "*** unless a maintainer comes forward." >&2
262 # Unsupported targets list. Do not put an entry in this list unless
263 # it would otherwise be caught by a more permissive pattern. The list
264 # should be in alphabetical order.
266 # Avoid special cases that are not obsolete
275 | i[34567]86-go32-* \
276 | i[34567]86-*-go32* \
277 | m68k-*-uclinuxoldabi* \
278 | mips64orion*-*-rtems* \
280 | powerpc*-*-linux*paired* \
282 | sparc-hal-solaris2* \
284 | *-*-freebsd[12] | *-*-freebsd[1234].* \
285 | *-*-freebsd*aout* \
293 | *-*-solaris2.[0-9] \
294 | *-*-solaris2.[0-9].* \
299 echo "*** Configuration ${target} not supported" 1>&2
304 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
305 # updated in each machine entry. Also set default extra_headers for some
308 cpu_type=`echo ${target} | sed 's/-.*$//'`
313 tmake_file=m32c/t-m32c
314 target_has_targetm_common=no
318 extra_headers="arm_fp16.h arm_neon.h arm_acle.h"
319 c_target_objs="aarch64-c.o"
320 cxx_target_objs="aarch64-c.o"
321 d_target_objs="aarch64-d.o"
322 extra_objs="aarch64-builtins.o aarch-common.o cortex-a57-fma-steering.o aarch64-speculation.o falkor-tag-collision-avoidance.o aarch64-bti-insert.o"
323 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c"
324 target_has_targetm_common=yes
328 extra_options="${extra_options} g.opt"
339 c_target_objs="arc-c.o"
340 cxx_target_objs="arc-c.o"
341 extra_options="${extra_options} arc/arc-tables.opt g.opt"
342 extra_headers="arc-simd.h"
346 extra_objs="arm-builtins.o aarch-common.o"
347 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h"
348 target_type_format_char='%'
349 c_target_objs="arm-c.o"
350 cxx_target_objs="arm-c.o"
351 d_target_objs="arm-d.o"
352 extra_options="${extra_options} arm/arm-tables.opt"
353 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
357 c_target_objs="avr-c.o"
358 cxx_target_objs="avr-c.o"
367 extra_options="${extra_options} g.opt"
370 target_has_targetm_common=no
372 moxie*) cpu_type=moxie
373 target_has_targetm_common=no
377 extra_headers=math-68881.h
378 extra_options="${extra_options} m68k/m68k-tables.opt"
382 c_target_objs="i386-c.o"
383 cxx_target_objs="i386-c.o"
384 d_target_objs="i386-d.o"
385 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"
386 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
387 extra_options="${extra_options} fused-madd.opt"
388 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
389 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
390 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
391 immintrin.h x86intrin.h avxintrin.h xopintrin.h
392 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
393 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
394 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
395 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
396 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
397 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
398 shaintrin.h clflushoptintrin.h xsavecintrin.h
399 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
400 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
401 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
402 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
403 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
404 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
405 gfniintrin.h cet.h avx512vbmi2intrin.h
406 avx512vbmi2vlintrin.h avx512vnniintrin.h
407 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
408 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
409 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
410 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h avx512bf16intrin.h
411 enqcmdintrin.h avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h"
415 c_target_objs="i386-c.o"
416 cxx_target_objs="i386-c.o"
417 d_target_objs="i386-d.o"
418 extra_options="${extra_options} fused-madd.opt"
419 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"
420 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
421 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
422 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
423 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
424 immintrin.h x86intrin.h avxintrin.h xopintrin.h
425 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
426 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
427 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
428 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
429 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
430 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
431 shaintrin.h clflushoptintrin.h xsavecintrin.h
432 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
433 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
434 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
435 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
436 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
437 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
438 gfniintrin.h cet.h avx512vbmi2intrin.h
439 avx512vbmi2vlintrin.h avx512vnniintrin.h
440 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
441 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
442 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
443 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h avx512bf16intrin.h
444 enqcmdintrin.h avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h"
447 extra_headers=ia64intrin.h
448 extra_options="${extra_options} g.opt fused-madd.opt"
454 extra_options="${extra_options} g.opt"
458 extra_options="${extra_options} g.opt"
461 extra_headers=math-68881.h
462 extra_options="${extra_options} m68k/m68k-tables.opt"
466 extra_options="${extra_options} g.opt"
470 d_target_objs="mips-d.o"
471 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
472 extra_objs="frame-header-opt.o"
473 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
477 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
480 extra_options="${extra_options} nds32/nds32-linux.opt"
483 extra_options="${extra_options} nds32/nds32-elf.opt"
488 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"
492 extra_options="${extra_options} g.opt"
502 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
503 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
504 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
505 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
506 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
507 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
508 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
509 extra_headers="${extra_headers} amo.h"
511 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500|xfuture)
515 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
522 extra_objs="riscv-builtins.o riscv-c.o"
523 d_target_objs="riscv-d.o"
526 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
527 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
531 c_target_objs="sparc-c.o"
532 cxx_target_objs="sparc-c.o"
533 d_target_objs="sparc-d.o"
534 extra_headers="visintrin.h"
541 d_target_objs="s390-d.o"
542 extra_options="${extra_options} fused-madd.opt"
543 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
545 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
546 sh[123456789lbe]*-*-* | sh-*-*)
548 extra_options="${extra_options} fused-madd.opt"
549 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
556 extra_headers="c6x_intrinsics.h"
557 extra_options="${extra_options} c6x/c6x-tables.opt"
560 extra_options="${extra_options} fused-madd.opt"
570 tm_file=${cpu_type}/${cpu_type}.h
571 tm_d_file=${cpu_type}/${cpu_type}.h
572 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
574 tm_p_file=${cpu_type}/${cpu_type}-protos.h
575 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
579 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
581 extra_modes=${cpu_type}/${cpu_type}-modes.def
583 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
585 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
590 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
593 if test "x$with_multilib_list" = xilp32; then
594 tm_file="aarch64/biarchilp32.h ${tm_file}"
596 tm_file="aarch64/biarchlp64.h ${tm_file}"
600 tm_file="aarch64/biarchilp32.h ${tm_file}"
603 tm_file="aarch64/biarchlp64.h ${tm_file}"
606 echo "Unknown ABI used in --with-abi=$with_abi"
611 if test "x$with_abi" != x; then
612 echo "This target does not support --with-abi."
619 if test "x$with_multilib_list" = xmx32; then
620 tm_file="i386/biarchx32.h ${tm_file}"
622 tm_file="i386/biarch64.h ${tm_file}"
626 tm_file="i386/biarch64.h ${tm_file}"
629 tm_file="i386/biarchx32.h ${tm_file}"
632 echo "Unknown ABI used in --with-abi=$with_abi"
637 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
641 # On a.out targets, we need to use collect2.
648 # Common C libraries.
649 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
651 # 32-bit x86 processors supported by --with-arch=. Each processor
652 # MUST be separated by exactly one space.
653 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
654 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
655 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
656 pentium4 pentium4m pentiumpro prescott lakemont"
658 # 64-bit x86 processors supported by --with-arch=. Each processor
659 # MUST be separated by exactly one space.
660 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
661 bdver3 bdver4 znver1 znver2 btver1 btver2 k8 k8-sse3 opteron \
662 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
663 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
664 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
665 skylake goldmont goldmont-plus tremont cascadelake x86-64 native"
667 # Additional x86 processors supported by --with-cpu=. Each processor
668 # MUST be separated by exactly one space.
669 x86_cpus="generic intel"
671 # Common parts for widely ported systems.
674 tmake_file="t-darwin ${cpu_type}/t-darwin"
675 tm_file="${tm_file} darwin.h"
678 tm_file="${tm_file} darwin9.h"
681 tm_file="${tm_file} darwin9.h darwin10.h"
683 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
684 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
687 tm_file="${tm_file} ${cpu_type}/darwin.h"
688 tm_p_file="${tm_p_file} darwin-protos.h"
689 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.c"
690 extra_options="${extra_options} darwin.opt"
691 c_target_objs="${c_target_objs} darwin-c.o"
692 cxx_target_objs="${cxx_target_objs} darwin-c.o"
693 fortran_target_objs="darwin-f.o"
694 target_has_targetcm=yes
695 extra_objs="${extra_objs} darwin.o"
696 extra_gcc_objs="darwin-driver.o"
697 default_use_cxa_atexit=yes
699 case ${enable_threads} in
700 "" | yes | posix) thread_file='posix' ;;
706 tmake_file="t-slibgcc"
707 case ${enable_threads} in
712 # Let these non-posix thread selections fall through if requested
715 echo 'Unknown thread configuration for DragonFly BSD'
719 extra_options="$extra_options rpath.opt dragonfly.opt"
720 default_use_cxa_atexit=yes
724 # This is the generic ELF configuration of FreeBSD. Later
725 # machine-specific sections may refine and add to this
728 # Due to tm_file entry ordering issues that vary between cpu
729 # architectures, we only define fbsd_tm_file to allow the
730 # machine-specific section to dictate the final order of all
731 # entries of tm_file with the minor exception that components
732 # of the tm_file set here will always be of the form:
734 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
736 # The machine-specific section should not tamper with this
737 # ordering but may order all other entries of tm_file as it
738 # pleases around the provided core setting.
741 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
742 if test "$fbsd_major" = ""; then
743 echo "Specify the major version number of the targeted FreeBSD release"
744 echo "like this: --target=amd64-unknown-freebsd10.1"
747 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
748 tmake_file="t-slibgcc"
749 case ${enable_threads} in
751 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
757 echo 'Unknown thread configuration for FreeBSD'
761 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
762 extra_options="$extra_options rpath.opt freebsd.opt"
767 default_use_cxa_atexit=yes;;
772 native_system_header_dir=/include
774 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
775 extra_options="$extra_options gnu-user.opt"
778 case ${enable_threads} in
779 "" | yes | posix) thread_file='posix' ;;
781 tmake_file="t-slibgcc"
783 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
786 native_system_header_dir=/include
789 # Linux C libraries selection switch: glibc / uclibc / bionic.
790 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
793 tm_p_file="${tm_p_file} linux-protos.h"
794 tmake_file="${tmake_file} t-linux"
795 extra_objs="${extra_objs} linux.o"
796 extra_options="${extra_options} linux.opt"
801 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
804 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
807 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
810 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
813 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
815 default_use_cxa_atexit=yes
818 # Enable compilation for Android by default for *android* targets.
821 tm_defines="$tm_defines ANDROID_DEFAULT=1"
824 tm_defines="$tm_defines ANDROID_DEFAULT=0"
827 c_target_objs="${c_target_objs} glibc-c.o"
828 cxx_target_objs="${cxx_target_objs} glibc-c.o"
829 d_target_objs="${d_target_objs} glibc-d.o"
830 tmake_file="${tmake_file} t-glibc"
831 target_has_targetcm=yes
832 target_has_targetdm=yes
835 tm_p_file="${tm_p_file} netbsd-protos.h"
836 tmake_file="t-netbsd t-slibgcc"
837 extra_objs="${extra_objs} netbsd.o"
838 d_target_objs="${d_target_objs} netbsd-d.o"
842 case ${enable_threads} in
843 "" | yes | posix) thread_file='posix' ;;
845 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
846 default_use_cxa_atexit=yes
847 target_has_targetdm=yes
849 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
850 default_gnu_indirect_function=yes
855 tmake_file="t-openbsd"
856 case ${enable_threads} in
862 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
863 default_use_cxa_atexit=yes
870 default_use_cxa_atexit=yes
873 case ${enable_threads} in
874 "" | yes | rtems) thread_file='rtems' ;;
875 posix) thread_file='posix' ;;
878 echo 'Unknown thread configuration for RTEMS'
882 tmake_file="${tmake_file} t-rtems"
883 extra_options="${extra_options} rtems.opt"
884 default_use_cxa_atexit=yes
888 extra_options="$extra_options gnu-user.opt"
890 case ${enable_threads} in
891 "" | yes | posix) thread_file='posix' ;;
893 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
899 # i?86-*-solaris2* needs to insert headers between cpu default and
900 # Solaris 2 specific ones.
901 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
902 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
903 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
905 *-*-solaris2.1[1-9]*)
906 # __cxa_atexit was introduced in Solaris 11.4.
907 default_use_cxa_atexit=yes
911 if test x$gnu_ld = xyes; then
912 tm_file="usegld.h ${tm_file}"
914 if test x$gas = xyes; then
915 tm_file="usegas.h ${tm_file}"
917 tm_p_file="${tm_p_file} sol2-protos.h"
918 tmake_file="${tmake_file} t-sol2 t-slibgcc"
919 c_target_objs="${c_target_objs} sol2-c.o"
920 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
921 d_target_objs="${d_target_objs} sol2-d.o"
922 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
923 extra_options="${extra_options} sol2.opt"
924 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
925 "":yes:* | yes:yes:* )
929 target_has_targetdm=yes
932 extra_options="${extra_options} vms/vms.opt"
934 tmake_file="vms/t-vms t-slibgcc"
936 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
937 tm_p_file="${tm_p_file} vms/vms-protos.h"
938 xm_file="vms/xm-vms.h"
939 c_target_objs="vms-c.o"
940 cxx_target_objs="vms-c.o"
941 fortran_target_objs="vms-f.o"
942 use_gcc_stdint=provide
943 tm_file="${tm_file} vms/vms-stdint.h"
944 if test x$gnu_ld != xyes; then
945 # Build wrappers for native case.
946 extra_programs="ld\$(exeext) ar\$(exeext)"
947 tmake_file="$tmake_file vms/t-vmsnative"
953 extra_options="${extra_options} vxworks.opt"
954 extra_objs="$extra_objs vxworks.o"
955 use_gcc_stdint=provide
956 tm_file="${tm_file} vxworks-stdint.h"
957 case ${enable_threads} in
959 "" | yes | vxworks) thread_file='vxworks' ;;
960 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
964 tm_defines="$tm_defines TARGET_VXWORKS7=1"
969 tm_defines="$tm_defines TARGET_VXWORKS64=1"
974 # Assume that newlib is being used and so __cxa_atexit is provided.
975 default_use_cxa_atexit=yes
981 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
982 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
983 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
984 tmake_file="${tmake_file} aarch64/t-aarch64"
990 tm_file="${tm_file} fuchsia.h"
993 tm_file="${tm_file} rtems.h aarch64/rtems.h"
998 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1001 aarch64_multilibs="${with_multilib_list}"
1002 if test "$aarch64_multilibs" = "default"; then
1003 aarch64_multilibs="lp64,ilp32"
1005 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1006 for aarch64_multilib in ${aarch64_multilibs}; do
1007 case ${aarch64_multilib} in
1009 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1012 echo "--with-multilib-list=${aarch64_multilib} not supported."
1016 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1018 aarch64*-*-freebsd*)
1019 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1020 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1021 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1022 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1025 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
1026 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1027 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1028 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1031 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1032 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1033 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1034 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1037 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1040 aarch64_multilibs="${with_multilib_list}"
1041 if test "$aarch64_multilibs" = "default"; then
1042 # TODO: turn on ILP32 multilib build after its support is mature.
1043 # aarch64_multilibs="lp64,ilp32"
1044 aarch64_multilibs="lp64"
1046 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1047 for aarch64_multilib in ${aarch64_multilibs}; do
1048 case ${aarch64_multilib} in
1050 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1053 echo "--with-multilib-list=${aarch64_multilib} not supported."
1057 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1060 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1061 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1062 extra_options="${extra_options} alpha/elf.opt"
1065 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1066 tmake_file="${tmake_file} alpha/t-alpha"
1067 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1071 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1072 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1073 tmake_file="${tmake_file} alpha/t-alpha"
1074 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1075 # default x-alpha is only appropriate for dec-osf.
1078 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1079 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1082 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1083 tmake_file="arc/t-multilib arc/t-arc"
1084 extra_gcc_objs="driver-arc.o"
1085 if test "x$with_cpu" != x; then
1086 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1088 if test x${with_endian} = x; then
1090 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1091 *) with_endian=little ;;
1094 case ${with_endian} in
1096 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1098 case ${with_endian} in
1099 big*) tm_file="arc/big.h ${tm_file}"
1103 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}"
1104 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1105 extra_gcc_objs="driver-arc.o"
1106 if test "x$with_cpu" != x; then
1107 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1109 if test x${with_endian} = x; then
1111 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1112 *) with_endian=little ;;
1115 case ${with_endian} in
1117 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1119 case ${with_endian} in
1120 big*) tm_file="arc/big.h ${tm_file}"
1122 # Force .init_array support. The configure script cannot always
1123 # automatically detect that GAS supports it, yet we require it.
1124 gcc_cv_initfini_array=yes
1126 arm-wrs-vxworks|arm-wrs-vxworks7)
1127 extra_options="${extra_options} arm/vxworks.opt"
1128 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1131 # VxWorks7 on ARM adheres to the ARM Base Platform ABI
1132 tmake_file="${tmake_file} arm/t-bpabi"
1133 tm_file="arm/bpabi.h ${tm_file}"
1134 # The BPABI long long divmod functions return a 128-bit value in
1136 need_64bit_hwint=yes
1137 default_use_cxa_atexit=yes
1141 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1142 target_cpu_cname="arm8"
1144 arm*-*-freebsd*) # ARM FreeBSD EABI
1145 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1148 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1151 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1152 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1155 target_cpu_cname="arm1176jzf-s"
1156 if test $fbsd_major -ge 11; then
1157 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1161 target_cpu_cname="generic-armv7-a"
1162 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1165 target_cpu_cname="arm9"
1168 with_tls=${with_tls:-gnu}
1171 target_cpu_cname="strongarm"
1172 tmake_file="${tmake_file} arm/t-arm"
1173 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1174 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1176 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1179 arm*-*-netbsdelf-*eabi*)
1180 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1181 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1184 tm_file="$tm_file arm/netbsd-elf.h"
1185 tmake_file="$tmake_file arm/t-netbsd"
1188 tm_file="${tm_file} arm/aout.h arm/arm.h"
1190 arm*-*-netbsdelf-*eabihf*)
1191 # Hard-float requires at least Arm v5te
1192 target_cpu_cname="arm10e"
1193 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1197 armv6*) target_cpu_cname="arm1176jzf-s";;
1198 armv7*) target_cpu_cname="generic-armv7-a";;
1201 arm*-*-linux-*) # ARM GNU/Linux with ELF
1202 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"
1203 extra_options="${extra_options} linux-android.opt"
1206 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1209 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1210 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1211 # Generation of floating-point instructions requires at least ARMv5te.
1212 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1213 target_cpu_cname="arm10e"
1215 target_cpu_cname="arm10tdmi"
1217 # Define multilib configuration for arm-linux-androideabi.
1220 tmake_file="$tmake_file arm/t-linux-androideabi"
1223 # The EABI requires the use of __cxa_atexit.
1224 default_use_cxa_atexit=yes
1225 with_tls=${with_tls:-gnu}
1227 arm*-*-uclinux*eabi*) # ARM ucLinux
1228 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1229 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1230 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1231 target_cpu_cname="arm7tdmi"
1232 # The EABI requires the use of __cxa_atexit.
1233 default_use_cxa_atexit=yes
1236 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1237 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1238 tm_file="${tm_file} arm/aout.h arm/arm.h"
1239 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1240 target_cpu_cname="arm7tdmi"
1242 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1245 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1247 default_use_cxa_atexit=yes
1248 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1249 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1250 target_cpu_cname="arm7tdmi"
1253 tm_file="$tm_file newlib-stdint.h"
1254 tmake_file="${tmake_file} arm/t-bpabi"
1258 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1259 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1260 target_cpu_cname="generic-armv7-a"
1263 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1264 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1267 tm_file="${tm_file} arm/symbian.h"
1268 # We do not include t-bpabi for Symbian OS because the system
1269 # provides its own implementation of the BPABI functions.
1270 tmake_file="${tmake_file} arm/t-symbian"
1271 target_cpu_cname="arm10tdmi"
1274 tm_file="${tm_file} arm/aout.h arm/arm.h"
1277 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1278 if test x${with_avrlibc} != xno; then
1279 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1280 tm_defines="${tm_defines} WITH_AVRLIBC"
1282 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1284 extra_gcc_objs="driver-avr.o avr-devices.o"
1285 extra_objs="avr-devices.o avr-log.o"
1288 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1289 tmake_file=bfin/t-bfin-elf
1293 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1294 tmake_file=bfin/t-bfin-uclinux
1297 bfin*-linux-uclibc*)
1298 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"
1299 tmake_file="${tmake_file} bfin/t-bfin-linux"
1303 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1304 tmake_file="${tmake_file} bfin/t-rtems"
1307 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1312 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1313 tmake_file="${tmake_file} cr16/t-cr16 "
1316 crisv32-*-elf | crisv32-*-none)
1317 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1318 tmake_file="cris/t-cris"
1319 target_cpu_default=32
1321 extra_options="${extra_options} cris/elf.opt"
1324 cris-*-elf | cris-*-none)
1325 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1326 tmake_file="cris/t-cris cris/t-elfmulti"
1328 extra_options="${extra_options} cris/elf.opt"
1331 crisv32-*-linux* | cris-*-linux*)
1332 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1333 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1334 extra_options="${extra_options} cris/linux.opt"
1337 target_cpu_default=10
1340 target_cpu_default=32
1345 if test x${with_endian} != x; then
1346 case ${with_endian} in
1349 echo "with_endian=${with_endian} not supported."
1354 if test x${with_float} != x; then
1355 case ${with_float} in
1358 "Unknown floating point type used in --with-float=$with_float"
1363 tm_file="csky/csky.h"
1364 md_file="csky/csky.md"
1365 out_file="csky/csky.c"
1366 tm_p_file="${tm_p_file} csky/csky-protos.h"
1367 extra_options="${extra_options} csky/csky_tables.opt"
1369 if test x${enable_tpf_debug} = xyes; then
1370 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1375 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1376 tmake_file="csky/t-csky csky/t-csky-elf"
1377 default_use_cxa_atexit=no
1380 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1381 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1383 if test "x${enable_multilib}" = xyes ; then
1384 tm_file="$tm_file ./sysroot-suffix.h"
1385 tmake_file="${tmake_file} csky/t-sysroot-suffix"
1390 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1391 # Force .init_array support. The configure script cannot always
1392 # automatically detect that GAS supports it, yet we require it.
1393 gcc_cv_initfini_array=yes
1395 csky-*-linux-uclibc*)
1396 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1397 default_use_cxa_atexit=no
1400 echo "Unknown target $target"
1406 echo "Unknown target $target"
1411 epiphany-*-elf | epiphany-*-rtems*)
1412 tm_file="${tm_file} dbxelf.h elfos.h"
1413 tmake_file="${tmake_file} epiphany/t-epiphany"
1416 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1419 tm_file="${tm_file} newlib-stdint.h"
1422 extra_options="${extra_options} fused-madd.opt"
1423 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1424 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1425 extra_headers="epiphany_intrinsics.h"
1428 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1431 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1432 tmake_file=frv/t-frv
1435 tm_file="dbxelf.h elfos.h ${tm_file} \
1436 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1437 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1442 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1443 tmake_file="${tmake_file} ft32/t-ft32"
1446 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1447 tmake_file="gcn/t-gcn-hsa"
1448 native_system_header_dir=/include
1449 extra_modes=gcn/gcn-modes.def
1450 extra_objs="${extra_objs} gcn-tree.o"
1451 extra_gcc_objs="driver-gcn.o"
1453 x86_64*-*-linux-gnu )
1454 if test "$ac_cv_search_dlopen" != no; then
1455 extra_programs="${extra_programs} gcn-run\$(exeext)"
1459 if test x$enable_as_accelerator = xyes; then
1460 extra_programs="${extra_programs} mkoffload\$(exeext)"
1461 tm_file="${tm_file} gcn/offload.h"
1463 # Force .init_array support.
1464 gcc_cv_initfini_array=yes
1470 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1471 tmake_file="${tmake_file} moxie/t-moxie"
1476 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1477 tmake_file="${tmake_file} moxie/t-moxie"
1480 tmake_file="${tmake_file} moxie/t-moxie"
1481 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1486 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1487 tmake_file="${tmake_file} moxie/t-moxiebox"
1490 tmake_file="h8300/t-h8300"
1491 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1494 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1495 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1498 target_cpu_default="MASK_PA_11|MASK_PA_20"
1499 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1500 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1502 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1503 d_target_objs="${d_target_objs} pa-d.o"
1507 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1508 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1509 pa/pa32-regs.h pa/pa32-linux.h"
1510 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1511 d_target_objs="${d_target_objs} pa-d.o"
1514 target_cpu_default="MASK_PA_11"
1515 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1516 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1517 extra_options="${extra_options} openbsd.opt"
1518 tmake_file="pa/t-pa"
1519 d_target_objs="${d_target_objs} pa-d.o"
1523 hppa[12]*-*-hpux10*)
1525 hppa1.1-*-* | hppa2*-*-*)
1526 target_cpu_default="MASK_PA_11"
1529 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1530 pa/pa-hpux.h pa/pa-hpux10.h"
1531 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1534 tm_file="${tm_file} pa/pa-hpux1010.h"
1535 extra_options="${extra_options} pa/pa-hpux1010.opt"
1538 use_gcc_stdint=provide
1539 tm_file="${tm_file} hpux-stdint.h"
1540 tmake_file="pa/t-pa t-slibgcc"
1541 d_target_objs="${d_target_objs} pa-d.o"
1542 case ${enable_threads} in
1544 if test x$have_pthread_h = xyes ; then
1545 tmake_file="${tmake_file} pa/t-dce-thr"
1549 tmake_file="${tmake_file} pa/t-dce-thr"
1554 if test "x$with_dwarf2" != x; then
1555 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1560 target_cpu_default="MASK_PA_11|MASK_PA_20"
1561 if test x$gnu_ld = xyes
1563 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1565 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1566 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1570 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1571 extra_options="${extra_options} pa/pa-hpux1111.opt"
1574 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1575 extra_options="${extra_options} pa/pa-hpux1131.opt"
1578 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1581 extra_options="${extra_options} pa/pa-hpux.opt \
1582 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1583 tmake_file="pa/t-pa t-slibgcc"
1584 d_target_objs="${d_target_objs} pa-d.o"
1585 case x${enable_threads} in
1593 use_gcc_stdint=provide
1594 tm_file="${tm_file} hpux-stdint.h"
1598 tm_file="${tm_file} hpux-stdint.h"
1602 hppa[12]*-*-hpux11*)
1604 hppa1.1-*-* | hppa2*-*-*)
1605 target_cpu_default="MASK_PA_11"
1608 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1609 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1610 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1614 tm_file="${tm_file} pa/pa-hpux1111.h"
1615 extra_options="${extra_options} pa/pa-hpux1111.opt"
1618 tm_file="${tm_file} pa/pa-hpux1131.h"
1619 extra_options="${extra_options} pa/pa-hpux1131.opt"
1622 tmake_file="pa/t-pa t-slibgcc"
1623 d_target_objs="${d_target_objs} pa-d.o"
1624 case x${enable_threads} in
1633 use_gcc_stdint=provide
1634 tm_file="${tm_file} hpux-stdint.h"
1638 tm_file="${tm_file} hpux-stdint.h"
1641 if test "x$with_dwarf2" != x; then
1642 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1646 i[34567]86-*-darwin*)
1648 # Baseline choice for a machine that allows m64 support.
1649 with_cpu=${with_cpu:-core2}
1650 tmake_file="${tmake_file} t-slibgcc"
1653 with_cpu=${with_cpu:-core2}
1654 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1655 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1657 i[34567]86-*-elfiamcu)
1658 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1661 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1664 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1667 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"
1670 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1673 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"
1674 tmake_file="i386/t-i386elf t-svr4"
1676 i[34567]86-*-dragonfly*)
1677 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1678 tmake_file="${tmake_file} i386/t-crtstuff"
1680 x86_64-*-dragonfly*)
1681 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"
1682 tmake_file="${tmake_file} i386/t-crtstuff"
1684 i[34567]86-*-freebsd*)
1685 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1688 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"
1690 i[34567]86-*-netbsdelf*)
1691 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1692 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1695 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1696 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1698 i[34567]86-*-openbsd*)
1699 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1700 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1701 extra_options="${extra_options} openbsd.opt"
1706 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1707 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1708 extra_options="${extra_options} openbsd.opt"
1712 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1713 # Intel 80386's running GNU/*
1714 # with ELF format using glibc 2
1715 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1717 i[34567]86-*-linux*)
1718 tm_file="${tm_file} linux.h linux-android.h"
1719 extra_options="${extra_options} linux-android.opt"
1720 if test x$enable_targets = xall; then
1721 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1722 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1723 tmake_file="${tmake_file} i386/t-linux64"
1724 x86_multilibs="${with_multilib_list}"
1725 if test "$x86_multilibs" = "default"; then
1726 x86_multilibs="m64,m32"
1728 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1729 for x86_multilib in ${x86_multilibs}; do
1730 case ${x86_multilib} in
1732 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1735 echo "--with-multilib-list=${x86_with_multilib} not supported."
1739 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1741 if test x$with_cpu = x; then
1742 if test x$with_cpu_64 = x; then
1746 case " $x86_cpus $x86_archs $x86_64_archs " in
1750 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1751 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1757 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1760 i[34567]86-*-kfreebsd*-gnu)
1761 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1763 i[34567]86-*-kopensolaris*-gnu)
1764 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1767 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1771 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1772 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1773 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1776 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1777 extra_options="${extra_options} linux-android.opt"
1779 x86_64-*-kfreebsd*-gnu)
1780 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1783 tmake_file="${tmake_file} i386/t-linux64"
1784 x86_multilibs="${with_multilib_list}"
1785 if test "$x86_multilibs" = "default"; then
1788 x86_multilibs="mx32"
1791 x86_multilibs="m64,m32"
1795 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1796 for x86_multilib in ${x86_multilibs}; do
1797 case ${x86_multilib} in
1799 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1802 echo "--with-multilib-list=${x86_with_multilib} not supported."
1806 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1808 i[34567]86-pc-msdosdjgpp*)
1809 xm_file=i386/xm-djgpp.h
1810 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1811 native_system_header_dir=/dev/env/DJDIR/include
1812 extra_options="${extra_options} i386/djgpp.opt"
1817 i[34567]86-*-lynxos*)
1819 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1820 tmake_file="${tmake_file} t-lynx"
1821 extra_options="${extra_options} lynx.opt"
1826 i[34567]86-*-nto-qnx*)
1827 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1828 extra_options="${extra_options} i386/nto.opt"
1832 i[34567]86-*-rtems*)
1833 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"
1834 tmake_file="${tmake_file} i386/t-rtems"
1836 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
1837 # Set default arch_32 to pentium4, tune_32 to generic like the other
1838 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1839 with_arch_32=${with_arch_32:-pentium4}
1840 with_tune_32=${with_tune_32:-generic}
1841 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1842 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1843 tmake_file="$tmake_file i386/t-sol2"
1845 if test x$with_cpu = x; then
1846 if test x$with_cpu_64 = x; then
1850 case " $x86_cpus $x86_archs $x86_64_archs " in
1854 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1855 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1861 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
1862 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1866 tm_file="${tm_file} i386/x86-64.h"
1869 tm_file="${tm_file} vx-common.h"
1872 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1873 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1876 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1877 tmake_file="${tmake_file} i386/t-vxworks"
1881 i[34567]86-*-cygwin*)
1882 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"
1883 xm_file=i386/xm-cygwin.h
1884 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1885 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
1886 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1887 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1888 c_target_objs="${c_target_objs} msformat-c.o"
1889 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1890 if test x$enable_threads = xyes; then
1893 default_use_cxa_atexit=yes
1898 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"
1899 xm_file=i386/xm-cygwin.h
1900 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1901 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
1902 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1903 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1904 c_target_objs="${c_target_objs} msformat-c.o"
1905 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1906 if test x$enable_threads = xyes; then
1909 default_use_cxa_atexit=yes
1911 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1913 i[34567]86-*-mingw* | x86_64-*-mingw*)
1914 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1915 xm_file=i386/xm-mingw32.h
1916 c_target_objs="${c_target_objs} winnt-c.o"
1917 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1918 target_has_targetcm="yes"
1920 x86_64-*-* | *-w64-*)
1926 if test x$enable_threads = xposix ; then
1927 tm_file="${tm_file} i386/mingw-pthread.h"
1929 tm_file="${tm_file} i386/mingw32.h"
1930 # This makes the logic if mingw's or the w64 feature set has to be used
1933 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1934 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1935 tm_file="${tm_file} i386/mingw-w64.h"
1936 if test x$enable_targets = xall; then
1937 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1938 if test x$with_cpu = x; then
1939 if test x$with_cpu_64 = x; then
1943 case " $x86_cpus $x86_archs $x86_64_archs " in
1947 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1948 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1958 tm_file="${tm_file} i386/mingw-stdint.h"
1959 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1962 tmake_file="${tmake_file} i386/t-mingw-w64"
1965 tmake_file="${tmake_file} i386/t-mingw-w32"
1968 native_system_header_dir=/mingw/include
1969 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
1970 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1973 extra_options="${extra_options} i386/mingw-w64.opt"
1978 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1979 c_target_objs="${c_target_objs} msformat-c.o"
1980 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1983 default_use_cxa_atexit=yes
1985 case ${enable_threads} in
1995 tm_file="${tm_file} i386/crtdll.h"
1997 *mingw32msv* | *mingw*)
2002 tmake_file="${tmake_file} i386/t-x86_64-elf"
2003 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2006 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2007 tmake_file="ia64/t-ia64"
2008 target_cpu_default="0"
2009 if test x$gas = xyes
2011 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2013 if test x$gnu_ld = xyes
2015 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2019 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2020 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2021 tmake_file="${tmake_file} ia64/t-ia64"
2024 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2025 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2026 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2029 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
2030 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2031 target_cpu_default="MASK_GNU_AS"
2032 case x$enable_threads in
2038 c_target_objs="ia64-c.o"
2039 cxx_target_objs="ia64-c.o"
2040 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2042 tm_file="${tm_file} hpux-stdint.h"
2045 tm_file="${tm_file} ia64/hpux-unix2003.h"
2050 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2051 tmake_file="${tmake_file} ia64/t-ia64"
2052 target_cpu_default="0"
2053 if test x$gas = xyes
2055 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2057 extra_options="${extra_options} ia64/vms.opt"
2060 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2061 out_file=iq2000/iq2000.c
2062 md_file=iq2000/iq2000.md
2065 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2066 tmake_file="${tmake_file} lm32/t-lm32"
2069 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2070 tmake_file="${tmake_file} lm32/t-lm32"
2071 tmake_file="${tmake_file} lm32/t-rtems"
2074 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2075 tmake_file="${tmake_file} lm32/t-lm32"
2078 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2081 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2084 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
2085 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2087 if test x$enable_threads = xyes; then
2092 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
2093 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2095 if test x$enable_threads = xyes; then
2099 m68k-*-elf* | fido-*-elf*)
2102 # Check that $with_cpu makes sense.
2107 echo "Cannot accept --with-cpu=$with_cpu"
2114 default_m68k_cpu=68020
2118 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"
2119 tm_defines="${tm_defines} MOTOROLA=1"
2120 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2121 # Add multilibs for targets other than fido.
2126 tmake_file="$tmake_file m68k/t-mlibs"
2131 default_m68k_cpu=68020
2133 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2134 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2135 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2138 default_m68k_cpu=68020
2140 # needed to unconfuse gdb
2141 tm_defines="${tm_defines} OBSD_OLD_GAS"
2142 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
2143 extra_options="${extra_options} openbsd.opt"
2144 tmake_file="t-openbsd m68k/t-openbsd"
2145 # we need collect2 until our bug is fixed...
2148 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2149 # with uClibc, using the new GNU/Linux-style
2151 default_m68k_cpu=68020
2153 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"
2154 extra_options="${extra_options} m68k/uclinux.opt"
2155 tm_defines="${tm_defines} MOTOROLA=1"
2156 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2158 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2159 # with ELF format using glibc 2
2160 # aka the GNU/Linux C library 6.
2161 default_m68k_cpu=68020
2163 with_arch=${with_arch:-m68k}
2164 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2165 extra_options="${extra_options} m68k/ieee.opt"
2166 tm_defines="${tm_defines} MOTOROLA=1"
2167 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2170 default_m68k_cpu=68020
2172 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2173 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"
2174 tm_defines="${tm_defines} MOTOROLA=1"
2177 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2178 tmake_file=mcore/t-mcore
2184 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2187 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2190 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2191 tm_file="${tm_file} glibc-stdint.h"
2192 c_target_objs="${c_target_objs} microblaze-c.o"
2193 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2194 tmake_file="${tmake_file} microblaze/t-microblaze"
2195 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2197 microblaze*-*-rtems*)
2200 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2203 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2206 tm_file="${tm_file} dbxelf.h"
2207 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2208 c_target_objs="${c_target_objs} microblaze-c.o"
2209 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2210 tmake_file="${tmake_file} microblaze/t-microblaze"
2211 tmake_file="${tmake_file} microblaze/t-rtems"
2216 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2219 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2222 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2223 c_target_objs="${c_target_objs} microblaze-c.o"
2224 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2225 tmake_file="${tmake_file} microblaze/t-microblaze"
2228 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2229 case "x${enable_multilib}" in
2231 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2232 *) echo "Unknown value for enable_multilib"; exit 1
2234 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2237 # Force .init_array support. The configure script cannot always
2238 # automatically detect that GAS supports it, yet we require it.
2239 gcc_cv_initfini_array=yes
2241 riscv*-*-elf* | riscv*-*-rtems*)
2242 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2245 tm_file="${tm_file} rtems.h riscv/rtems.h"
2246 tmake_file="${tmake_file} riscv/t-rtems"
2249 case "x${enable_multilib}" in
2251 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2252 *) echo "Unknown value for enable_multilib"; exit 1
2255 tmake_file="${tmake_file} riscv/t-riscv"
2258 # Force .init_array support. The configure script cannot always
2259 # automatically detect that GAS supports it, yet we require it.
2260 gcc_cv_initfini_array=yes
2263 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2264 tmake_file="${tmake_file} riscv/t-riscv"
2267 # Force .init_array support. The configure script cannot always
2268 # automatically detect that GAS supports it, yet we require it.
2269 gcc_cv_initfini_array=yes
2271 mips*-*-netbsd*) # NetBSD/mips, either endian.
2272 target_cpu_default="MASK_ABICALLS"
2273 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2274 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2277 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"
2278 extra_options="${extra_options} linux-android.opt"
2279 tmake_file="${tmake_file} mips/t-img-linux"
2280 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2281 with_arch_32="mips32r6"
2282 with_arch_64="mips64r6"
2287 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"
2288 extra_options="${extra_options} linux-android.opt"
2289 tmake_file="${tmake_file} mips/t-mti-linux"
2290 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2291 with_arch_32="mips32r2"
2292 with_arch_64="mips64r2"
2296 mips*-*-linux*) # Linux MIPS, either endian.
2297 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"
2298 extra_options="${extra_options} linux-android.opt"
2301 default_mips_arch=mips32r6
2304 default_mips_arch=mips32r2
2307 default_mips_arch=mips32
2309 mips64el-st-linux-gnu)
2310 default_mips_abi=n32
2311 tm_file="${tm_file} mips/st.h"
2312 tmake_file="${tmake_file} mips/t-st"
2313 enable_mips_multilibs="yes"
2315 mips64octeon*-*-linux*)
2316 default_mips_abi=n32
2317 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2318 target_cpu_default=MASK_SOFT_FLOAT_ABI
2319 enable_mips_multilibs="yes"
2321 mipsisa64r6*-*-linux*)
2322 default_mips_abi=n32
2323 default_mips_arch=mips64r6
2324 enable_mips_multilibs="yes"
2326 mipsisa64r2*-*-linux*)
2327 default_mips_abi=n32
2328 default_mips_arch=mips64r2
2329 enable_mips_multilibs="yes"
2331 mips64*-*-linux* | mipsisa64*-*-linux*)
2332 default_mips_abi=n32
2333 enable_mips_multilibs="yes"
2336 if test x$enable_targets = xall; then
2337 enable_mips_multilibs="yes"
2339 if test x$enable_mips_multilibs = xyes; then
2340 tmake_file="${tmake_file} mips/t-linux64"
2344 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2345 tmake_file="mips/t-mti-elf"
2346 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2347 with_arch_32="mips32r2"
2348 with_arch_64="mips64r2"
2351 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2352 tmake_file="mips/t-img-elf"
2353 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2354 with_arch_32="mips32r6"
2355 with_arch_64="mips64r6"
2358 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2359 tmake_file="mips/t-sde"
2360 extra_options="${extra_options} mips/sde.opt"
2361 case "${with_newlib}" in
2363 # newlib / libgloss.
2366 # MIPS toolkit libraries.
2367 tm_file="$tm_file mips/sdemtk.h"
2368 tmake_file="$tmake_file mips/t-sdemtk"
2369 case ${enable_threads} in
2371 thread_file='mipssde'
2378 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2381 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2384 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2387 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2390 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2393 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2397 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2398 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2399 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2400 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2401 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2402 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2403 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2404 tmake_file="mips/t-isa3264"
2407 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2410 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2413 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2416 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2419 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2422 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2426 mipsisa32*-*-elfoabi*)
2427 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2428 tm_file="${tm_file} mips/elfoabi.h"
2430 mipsisa64*-*-elfoabi*)
2431 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2432 tm_file="${tm_file} mips/elfoabi.h"
2435 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2439 mipsisa64sr71k-*-elf*)
2440 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2441 tmake_file=mips/t-sr71k
2442 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2444 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2445 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2446 tmake_file="mips/t-elf mips/t-sb1"
2447 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2449 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2450 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2451 tmake_file="mips/t-elf"
2453 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2454 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2455 tmake_file="mips/t-elf"
2456 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2458 mips64-*-elf* | mips64el-*-elf*)
2459 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2460 tmake_file="mips/t-elf"
2461 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2463 mips64vr-*-elf* | mips64vrel-*-elf*)
2464 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2465 tmake_file=mips/t-vr
2466 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2468 mips64orion-*-elf* | mips64orionel-*-elf*)
2469 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2470 tmake_file="mips/t-elf"
2471 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2474 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2475 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2478 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2479 tmake_file="${tmake_file} mips/t-vxworks"
2481 mipstx39-*-elf* | mipstx39el-*-elf*)
2482 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2483 tmake_file="mips/t-r3900"
2485 mmix-knuth-mmixware)
2486 tm_file="${tm_file} newlib-stdint.h"
2490 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2491 if test x$stabs = xyes
2493 tm_file="${tm_file} dbx.h"
2499 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2500 c_target_objs="msp430-c.o"
2501 cxx_target_objs="msp430-c.o"
2502 tmake_file="${tmake_file} msp430/t-msp430"
2503 extra_gcc_objs="driver-msp430.o"
2506 target_cpu_default="0"
2507 tm_defines="${tm_defines}"
2512 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2513 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2518 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2519 tmake_file="nds32/t-nds32 nds32/t-elf"
2522 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2523 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2524 gcc_cv_initfini_array=yes
2528 # Handle --enable-default-relax setting.
2529 if test x${enable_default_relax} = xyes; then
2530 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2532 # Handle --with-ext-dsp
2533 if test x${with_ext_dsp} = xyes; then
2534 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2538 tm_file="elfos.h ${tm_file}"
2539 tmake_file="${tmake_file} nios2/t-nios2"
2542 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2545 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2546 extra_options="${extra_options} nios2/elf.opt"
2549 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2550 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2555 tm_file="${tm_file} newlib-stdint.h"
2557 tmake_file="nvptx/t-nvptx"
2558 if test x$enable_as_accelerator = xyes; then
2559 extra_programs="${extra_programs} mkoffload\$(exeext)"
2560 tm_file="${tm_file} nvptx/offload.h"
2564 tm_file="elfos.h ${tm_file}"
2565 tmake_file="${tmake_file} or1k/t-or1k"
2566 # Force .init_array support. The configure script cannot always
2567 # automatically detect that GAS supports it, yet we require it.
2568 gcc_cv_initfini_array=yes
2570 # Handle --with-multilib-list=...
2571 or1k_multilibs="${with_multilib_list}"
2572 if test "$or1k_multilibs" = "default"; then
2573 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2575 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2576 for or1k_multilib in ${or1k_multilibs}; do
2577 case ${or1k_multilib} in
2578 mcmov | msext | msfimm | \
2579 mhard-div | mhard-mul | \
2580 msoft-div | msoft-mul )
2581 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2584 echo "--with-multilib-list=${with_multilib_list} not supported."
2588 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2592 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2593 tm_file="${tm_file} or1k/linux.h"
2596 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2597 extra_options="${extra_options} or1k/elf.opt"
2600 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2601 tmake_file="${tmake_file} or1k/t-rtems"
2606 tm_file="${tm_file} newlib-stdint.h"
2609 # port not yet contributed
2610 #powerpc-*-openbsd*)
2611 # tmake_file="${tmake_file} rs6000/t-fprules"
2615 extra_options="${extra_options} rs6000/darwin.opt"
2617 *-darwin1[0-9]* | *-darwin[8-9]*)
2618 tmake_file="${tmake_file} rs6000/t-darwin8"
2619 tm_file="${tm_file} rs6000/darwin8.h"
2622 tm_file="${tm_file} rs6000/darwin7.h"
2627 tmake_file="${tmake_file} t-slibgcc"
2628 extra_headers=altivec.h
2630 powerpc64-*-darwin*)
2631 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2632 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2633 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2634 extra_headers=altivec.h
2636 powerpc*-*-freebsd*)
2637 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2638 extra_options="${extra_options} rs6000/sysv4.opt"
2639 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2642 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2643 tmake_file="${tmake_file} rs6000/t-freebsd64"
2644 extra_options="${extra_options} rs6000/linux64.opt"
2647 tm_file="${tm_file} rs6000/freebsd.h"
2652 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2653 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2654 tmake_file="${tmake_file} rs6000/t-netbsd"
2655 extra_options="${extra_options} rs6000/sysv4.opt"
2657 powerpc-*-eabisimaltivec*)
2658 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"
2659 extra_options="${extra_options} rs6000/sysv4.opt"
2660 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2664 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"
2665 extra_options="${extra_options} rs6000/sysv4.opt"
2666 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2670 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2671 extra_options="${extra_options} rs6000/sysv4.opt"
2672 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2674 powerpc-*-eabialtivec*)
2675 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"
2676 extra_options="${extra_options} rs6000/sysv4.opt"
2677 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2681 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"
2682 extra_options="${extra_options} rs6000/sysv4.opt"
2683 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2687 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"
2688 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2689 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2692 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2693 extra_options="${extra_options} rs6000/sysv4.opt"
2694 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2695 extra_objs="$extra_objs rs6000-linux.o"
2696 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c"
2699 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2701 case ${target}:${with_cpu} in
2702 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2704 maybe_biarch=${cpu_is_64bit}
2705 case ${enable_targets} in
2706 *powerpc64*) maybe_biarch=yes ;;
2707 all) maybe_biarch=yes ;;
2709 case ${target}:${enable_targets}:${maybe_biarch} in
2710 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2711 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2712 | powerpcle-*:*powerpc64le*:yes)
2713 if test x$cpu_is_64bit = xyes; then
2714 tm_file="${tm_file} rs6000/default64.h"
2716 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2717 tmake_file="$tmake_file rs6000/t-linux64"
2720 tmake_file="$tmake_file rs6000/t-linux64le"
2721 case ${enable_targets} in
2722 all | *powerpc64-* | *powerpc-*)
2723 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2726 case ${enable_targets} in
2727 all | *powerpc64le-* | *powerpcle-*)
2728 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2731 extra_options="${extra_options} rs6000/linux64.opt"
2734 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2735 extra_options="${extra_options} rs6000/linux64.opt"
2736 tmake_file="${tmake_file} rs6000/t-linux"
2739 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2740 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2744 powerpc*-*-linux*ppc476*)
2745 tm_file="${tm_file} rs6000/476.h"
2746 extra_options="${extra_options} rs6000/476.opt" ;;
2747 powerpc*-*-linux*altivec*)
2748 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2752 enable_secureplt=yes ;;
2754 if test x${enable_secureplt} = xyes; then
2755 tm_file="rs6000/secureplt.h ${tm_file}"
2758 powerpc-wrs-vxworks*)
2759 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2760 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2761 extra_options="${extra_options} rs6000/sysv4.opt"
2762 extra_headers=ppc-asm.h
2765 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2766 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2769 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
2770 tmake_file="${tmake_file} rs6000/t-vxworksae"
2773 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
2779 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2780 tmake_file="t-lynx rs6000/t-lynx"
2781 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2787 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"
2788 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2789 extra_options="${extra_options} rs6000/sysv4.opt"
2791 powerpcle-*-eabisim*)
2792 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"
2793 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2794 extra_options="${extra_options} rs6000/sysv4.opt"
2798 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"
2799 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2800 extra_options="${extra_options} rs6000/sysv4.opt"
2804 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2805 tmake_file="${tmake_file} pru/t-pru"
2806 extra_objs="pru-pragma.o pru-passes.o"
2809 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
2810 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2811 tmake_file="rs6000/t-aix52 t-slibgcc"
2812 extra_options="${extra_options} rs6000/aix64.opt"
2813 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c"
2817 default_use_cxa_atexit=yes
2819 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
2820 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
2821 tmake_file="rs6000/t-aix52 t-slibgcc"
2822 extra_options="${extra_options} rs6000/aix64.opt"
2823 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c"
2827 default_use_cxa_atexit=yes
2829 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2830 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
2831 tmake_file="rs6000/t-aix52 t-slibgcc"
2832 extra_options="${extra_options} rs6000/aix64.opt"
2833 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c"
2837 default_use_cxa_atexit=yes
2840 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2841 target_has_targetm_common=no
2842 c_target_objs="rl78-c.o"
2843 cxx_target_objs="rl78-c.o"
2844 tmake_file="${tmake_file} rl78/t-rl78"
2847 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2848 tmake_file="${tmake_file} rx/t-rx"
2849 extra_options="${extra_options} rx/elf.opt"
2852 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
2853 tmake_file="${tmake_file} rx/t-linux"
2856 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2857 c_target_objs="${c_target_objs} s390-c.o"
2858 cxx_target_objs="${cxx_target_objs} s390-c.o"
2859 if test x$enable_targets = xall; then
2860 tmake_file="${tmake_file} s390/t-linux64"
2862 tmake_file="${tmake_file} s390/t-s390"
2865 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2866 tm_p_file="linux-protos.h s390/s390-protos.h"
2867 c_target_objs="${c_target_objs} s390-c.o"
2868 cxx_target_objs="${cxx_target_objs} s390-c.o"
2869 md_file=s390/s390.md
2870 extra_modes=s390/s390-modes.def
2871 out_file=s390/s390.c
2872 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
2875 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2876 tm_p_file=s390/s390-protos.h
2877 c_target_objs="${c_target_objs} s390-c.o"
2878 cxx_target_objs="${cxx_target_objs} s390-c.o"
2879 md_file=s390/s390.md
2880 extra_modes=s390/s390-modes.def
2881 out_file=s390/s390.c
2883 extra_options="${extra_options} s390/tpf.opt"
2884 tmake_file="${tmake_file} s390/t-s390"
2886 sh-*-elf* | sh[12346l]*-*-elf* | \
2887 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2888 sh-*-netbsdelf* | shl*-*-netbsdelf*)
2889 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2890 if test x${with_endian} = x; then
2892 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2893 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2894 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2895 shl* | sh*-*-linux* | \
2896 sh-superh-elf) with_endian=little,big ;;
2897 sh[1234]*-*-*) with_endian=big ;;
2898 *) with_endian=big,little ;;
2901 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2902 # First word : the default endian.
2903 # Second word: the secondary endian (optional).
2904 case ${with_endian} in
2905 big) TM_ENDIAN_CONFIG=mb ;;
2906 little) TM_ENDIAN_CONFIG=ml ;;
2907 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2908 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2909 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2911 case ${with_endian} in
2912 little*) tm_file="sh/little.h ${tm_file}" ;;
2914 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2916 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2917 if test x$enable_fdpic = xyes; then
2918 tm_defines="$tm_defines FDPIC_DEFAULT=1"
2920 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2922 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
2923 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2926 sh*-superh-elf) if test x$with_libgloss != xno; then
2928 tm_file="${tm_file} sh/newlib.h"
2930 tm_file="${tm_file} sh/embed-elf.h"
2931 tm_file="${tm_file} sh/superh.h"
2932 extra_options="${extra_options} sh/superh.opt" ;;
2933 *) if test x$with_newlib = xyes \
2934 && test x$with_libgloss = xyes; then
2935 tm_file="${tm_file} sh/newlib.h"
2937 tm_file="${tm_file} sh/embed-elf.h" ;;
2943 tm_file="${tm_file} newlib-stdint.h"
2946 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2947 case `echo ${target} | sed 's/e[lb]-/-/'` in
2948 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2949 sh4a_single*) sh_cpu_target=sh4a-single ;;
2950 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2951 sh4al) sh_cpu_target=sh4al ;;
2952 sh4a*) sh_cpu_target=sh4a ;;
2953 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2954 sh4_single*) sh_cpu_target=sh4-single ;;
2955 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2956 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2957 sh3e*) sh_cpu_target=sh3e ;;
2958 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2959 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2960 sh2a_single*) sh_cpu_target=sh2a-single ;;
2961 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2962 sh2a*) sh_cpu_target=sh2a ;;
2963 sh2e*) sh_cpu_target=sh2e ;;
2964 sh2*) sh_cpu_target=sh2 ;;
2965 *) sh_cpu_target=sh1 ;;
2967 # did the user say --without-fp ?
2968 if test x$with_fp = xno; then
2969 case ${sh_cpu_target} in
2971 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2972 sh4*) sh_cpu_target=sh4-nofpu ;;
2973 sh3*) sh_cpu_target=sh3 ;;
2974 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2975 sh2*) sh_cpu_target=sh2 ;;
2976 *) echo --without-fp not available for $target: ignored
2978 tm_defines="$tm_defines STRICT_NOFPU=1"
2980 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2981 case $sh_cpu_default in
2982 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2983 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2984 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2985 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2986 "") sh_cpu_default=${sh_cpu_target} ;;
2987 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2989 sh_multilibs=${with_multilib_list}
2990 if test "$sh_multilibs" = "default" ; then
2992 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2993 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2994 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2995 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2996 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2998 if test x$with_fp = xno; then
2999 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`"
3002 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3003 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3004 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3005 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3006 for sh_multilib in ${sh_multilibs}; do
3007 case ${sh_multilib} in
3008 m1 | m2 | m2e | m3 | m3e | \
3009 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3010 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3011 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3012 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3013 # It is passed to MULTIILIB_OPTIONS verbatim.
3014 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3015 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3017 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3018 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3019 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3021 echo "with_multilib_list=${sh_multilib} not supported."
3026 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3027 if test x${enable_incomplete_targets} = xyes ; then
3028 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3030 tm_file="$tm_file ./sysroot-suffix.h"
3031 tmake_file="$tmake_file t-sysroot-suffix"
3034 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3035 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3038 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3039 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3042 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3045 tmake_file="sparc/t-sparc sparc/t-leon"
3048 tmake_file="sparc/t-sparc sparc/t-leon3"
3051 tmake_file="sparc/t-sparc sparc/t-elf"
3056 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3057 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3060 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3061 extra_options="${extra_options} sparc/long-double-switch.opt"
3064 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3067 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3070 tmake_file="${tmake_file} sparc/t-sparc"
3073 if test x$enable_targets = xall; then
3074 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3075 tmake_file="${tmake_file} sparc/t-linux64"
3077 tm_file="${tm_file} sparc/linux.h"
3078 tmake_file="${tmake_file} sparc/t-linux"
3082 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3083 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3084 extra_options="${extra_options} sparc/long-double-switch.opt"
3085 tmake_file="${tmake_file} sparc/t-sparc"
3088 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3090 sparc64-*-* | sparcv9-*-*)
3091 tm_file="sparc/default64.h ${tm_file}"
3094 test x$with_cpu != x || with_cpu=v9
3097 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3100 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3101 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3104 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3105 extra_options="${extra_options}"
3106 tmake_file="${tmake_file} sparc/t-sparc"
3109 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3110 extra_options="${extra_options}"
3111 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3114 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"
3115 extra_options="${extra_options} sparc/long-double-switch.opt"
3116 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3118 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3119 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3120 extra_options="${extra_options} sparc/long-double-switch.opt"
3121 case "x$with_cpu" in
3123 x) with_cpu=ultrasparc ;;
3124 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3126 tmake_file="${tmake_file} sparc/t-sparc"
3129 tm_file="sparc/biarch64.h ${tm_file}"
3130 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3131 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3132 extra_options="${extra_options} sparc/long-double-switch.opt"
3133 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3136 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3137 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3138 extra_options="${extra_options} openbsd.opt"
3139 extra_options="${extra_options}"
3142 tmake_file="${tmake_file} sparc/t-sparc"
3145 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
3146 tmake_file="spu/t-spu-elf"
3147 native_system_header_dir=/include
3148 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
3149 extra_modes=spu/spu-modes.def
3150 c_target_objs="${c_target_objs} spu-c.o"
3151 cxx_target_objs="${cxx_target_objs} spu-c.o"
3154 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3155 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3156 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3160 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3161 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3162 tm_file="${tm_file} ./sysroot-suffix.h"
3163 tmake_file="t-sysroot-suffix t-slibgcc"
3164 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3168 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3169 tmake_file="${tmake_file} tilegx/t-tilegx"
3170 extra_objs="${extra_objs} mul-tables.o"
3171 c_target_objs="${c_target_objs} tilegx-c.o"
3172 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3173 extra_headers="feedback.h"
3176 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3181 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3182 tmake_file="${tmake_file} tilepro/t-tilepro"
3183 extra_objs="${extra_objs} mul-tables.o"
3184 c_target_objs="${c_target_objs} tilepro-c.o"
3185 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3186 extra_headers="feedback.h"
3189 target_cpu_default="TARGET_CPU_generic"
3190 tm_file="dbxelf.h elfos.h v850/v850.h"
3191 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3192 tmake_file="${tmake_file} v850/t-v850"
3193 tmake_file="${tmake_file} v850/t-rtems"
3195 c_target_objs="v850-c.o"
3196 cxx_target_objs="v850-c.o"
3201 target_cpu_default="TARGET_CPU_v850e3v5"
3204 target_cpu_default="TARGET_CPU_v850e2v3"
3207 target_cpu_default="TARGET_CPU_v850e2"
3209 v850e1-*-* | v850es-*-*)
3210 target_cpu_default="TARGET_CPU_v850e1"
3213 target_cpu_default="TARGET_CPU_v850e"
3216 target_cpu_default="TARGET_CPU_generic"
3219 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3220 if test x$stabs = xyes
3222 tm_file="${tm_file} dbx.h"
3225 c_target_objs="v850-c.o"
3226 cxx_target_objs="v850-c.o"
3230 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3231 extra_options="${extra_options} vax/elf.opt"
3234 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3235 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3236 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3239 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3240 extra_options="${extra_options} openbsd.opt"
3244 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3245 tmake_file="visium/t-visium visium/t-crtstuff"
3248 # For historical reasons, the target files omit the 'x'.
3249 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3250 tm_p_file=stormy16/stormy16-protos.h
3251 tm_d_file="elfos.h stormy16/stormy16.h"
3252 md_file=stormy16/stormy16.md
3253 out_file=stormy16/stormy16.c
3254 extra_options=stormy16/stormy16.opt
3255 tmake_file="stormy16/t-stormy16"
3258 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3259 extra_options="${extra_options} xtensa/elf.opt"
3262 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3263 tmake_file="${tmake_file} xtensa/t-xtensa"
3266 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3267 tmake_file="${tmake_file} xtensa/t-xtensa"
3268 extra_options="${extra_options} xtensa/uclinux.opt"
3271 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3276 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3277 c_target_objs="m32c-pragma.o"
3278 cxx_target_objs="m32c-pragma.o"
3281 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3282 c_target_objs="m32c-pragma.o"
3283 cxx_target_objs="m32c-pragma.o"
3286 echo "*** Configuration ${target} not supported" 1>&2
3292 i[34567]86-*-linux* | x86_64-*-linux*)
3293 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3295 i[34567]86-*-* | x86_64-*-*)
3296 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3298 powerpc*-*-* | rs6000-*-*)
3299 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3305 tmake_file="${tmake_file} t-musl"
3308 tmake_file="${tmake_file} t-uclibc"
3312 # Assume the existence of indirect function support and allow the use of the
3313 # resolver attribute.
3315 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3319 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3320 default_gnu_indirect_function=yes
3326 # Build mkoffload tool
3328 *-intelmic-* | *-intelmicemul-*)
3329 tmake_file="${tmake_file} i386/t-intelmic"
3330 tm_file="${tm_file} i386/intelmic-offload.h"
3334 if [ "$target_has_targetcm" = "no" ]; then
3335 c_target_objs="$c_target_objs default-c.o"
3336 cxx_target_objs="$cxx_target_objs default-c.o"
3339 if [ "$common_out_file" = "" ]; then
3340 if [ "$target_has_targetm_common" = "yes" ]; then
3341 common_out_file="$cpu_type/$cpu_type-common.c"
3343 common_out_file="default-common.c"
3347 if [ "$target_has_targetdm" = "no" ]; then
3348 d_target_objs="$d_target_objs default-d.o"
3351 # Support for --with-cpu and related options (and a few unrelated options,
3355 echo "--with-cpu must be passed a value" 1>&2
3360 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3361 # to generic if there is no processor scheduler model for the target.
3364 arch_without_sse2=no
3365 arch_without_64bit=no
3368 if test $fbsd_major -ge 6; then
3374 arch_without_sse2=yes
3375 arch_without_64bit=yes
3380 arch_without_sse2=yes
3381 arch_without_64bit=yes
3386 arch_without_sse2=yes
3387 arch_without_64bit=yes
3392 arch_without_sse2=yes
3393 arch_without_64bit=yes
3396 arch_without_sse2=yes
3397 arch_without_64bit=yes
3398 case ${target_noncanonical} in
3411 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3421 i686-*-* | i786-*-*)
3422 case ${target_noncanonical} in
3455 amdfam10-*|barcelona-*)
3459 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3463 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3467 athlon_xp-*|athlon_mp-*|athlon_4-*)
3470 arch_without_sse2=yes
3471 arch_without_64bit=yes
3473 athlon_tbird-*|athlon-*)
3476 arch_without_sse2=yes
3481 arch_without_sse2=yes
3486 arch_without_sse2=yes
3488 pentium3-*|pentium3m-*)
3491 arch_without_sse2=yes
3493 pentium4-*|pentium4m-*)
3532 arch_without_sse2=yes
3537 arch_without_sse2=yes
3538 arch_without_64bit=yes
3543 case ${target_noncanonical} in
3576 amdfam10-*|barcelona-*)
3580 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3584 k8-*|opteron-*|athlon_64-*)
3616 # If there is no $with_cpu option, try to infer one from ${target}.
3617 # This block sets nothing except for with_cpu.
3618 if test x$with_cpu = x ; then
3620 i[34567]86-*-elfiamcu)
3623 i[34567]86-*-*|x86_64-*-*)
3641 frv-*-*linux* | frv400-*-*linux*)
3648 case "$with_arch" in
3650 with_cpu=${default_cf_cpu}
3653 with_cpu=m${default_m68k_cpu}
3669 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3678 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3680 i[34567]86-*-*|x86_64-*-*)
3681 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3682 if test x$with_cpu_32 = x; then
3683 with_cpu_32=$with_cpu
3685 if test x$with_cpu_64 = x; then
3686 with_cpu_64=$with_cpu
3694 # Support for --with-arch and related options (and a few unrelated options,
3696 case ${with_arch} in
3698 echo "--with-arch must be passed a value" 1>&2
3703 # If there is no $with_arch option, try to infer one from ${target}.
3704 # This block sets nothing except for with_arch.
3705 if test x$with_arch = x ; then
3707 i[34567]86-*-darwin*|x86_64-*-darwin*)
3708 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3709 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3711 i[34567]86-*-elfiamcu)
3715 # --with-fpmath sets the default ISA to SSE2, which is the same
3716 # ISA supported by Pentium 4.
3717 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3726 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3734 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3736 i[34567]86-*-darwin*|x86_64-*-darwin*)
3737 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3738 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3740 i[34567]86-*-*|x86_64-*-*)
3741 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3742 if test x$with_arch_32 = x; then
3743 with_arch_32=$with_arch
3745 if test x$with_arch_64 = x; then
3746 if test $arch_without_64bit = yes; then
3747 # Set the default 64bit arch to x86-64 if the default arch
3748 # doesn't support 64bit.
3751 with_arch_64=$with_arch
3755 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3756 # Set the default 64bit arch to x86-64 if the default arch
3757 # doesn't support 64bit and we need 64bit ISA.
3758 with_arch_32=$with_arch
3766 # Infer a default setting for --with-float.
3767 if test x$with_float = x; then
3769 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3770 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3771 # comply with IEEE 754.
3777 # Infer a default setting for --with-fpu.
3778 if test x$with_fpu = x; then
3780 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3781 # The R5900 FPU only supports single precision.
3787 # Support --with-fpmath.
3788 if test x$with_fpmath != x; then
3790 i[34567]86-*-* | x86_64-*-*)
3791 case ${with_fpmath} in
3793 tm_file="${tm_file} i386/avxmath.h"
3796 tm_file="${tm_file} i386/ssemath.h"
3799 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3805 echo "--with-fpmath isn't supported for $target." 1>&2
3811 # Similarly for --with-schedule.
3812 if test x$with_schedule = x; then
3815 # Override default PA8000 scheduling model.
3816 with_schedule=7100LC
3821 # Infer a default setting for --with-llsc.
3822 if test x$with_llsc = x; then
3825 # The kernel emulates LL and SC where necessary.
3828 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3829 # The R5900 doesn't support LL(D) and SC(D).
3835 # Validate and mark as valid any --with options supported
3836 # by this target. In order to use a particular --with option
3837 # you must list it in supported_defaults; validating the value
3838 # is optional. This case statement should set nothing besides
3839 # supported_defaults.
3844 supported_defaults="abi cpu arch"
3845 for which in cpu arch; do
3847 eval "val=\$with_$which"
3848 base_val=`echo $val | sed -e 's/\+.*//'`
3849 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
3851 if [ $which = arch ]; then
3852 def=aarch64-arches.def
3853 pattern=AARCH64_ARCH
3855 def=aarch64-cores.def
3856 pattern=AARCH64_CORE
3859 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3861 # Find the base CPU or ARCH id in aarch64-cores.def or
3862 # aarch64-arches.def
3863 if [ x"$base_val" = x ] \
3864 || grep "^$pattern(\"$base_val\"," \
3865 ${srcdir}/config/aarch64/$def \
3868 if [ $which = arch ]; then
3869 base_id=`grep "^$pattern(\"$base_val\"," \
3870 ${srcdir}/config/aarch64/$def | \
3871 sed -e 's/^[^,]*,[ ]*//' | \
3873 # Extract the architecture flags from aarch64-arches.def
3874 ext_mask=`grep "^$pattern(\"$base_val\"," \
3875 ${srcdir}/config/aarch64/$def | \
3879 base_id=`grep "^$pattern(\"$base_val\"," \
3880 ${srcdir}/config/aarch64/$def | \
3881 sed -e 's/^[^,]*,[ ]*//' | \
3885 while [ x"$ext_val" != x ]
3887 ext_val=`echo $ext_val | sed -e 's/\+//'`
3888 ext=`echo $ext_val | sed -e 's/\+.*//'`
3889 base_ext=`echo $ext | sed -e 's/^no//'`
3891 if [ x"$base_ext" = x ] \
3892 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3893 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3896 ext_canon=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3897 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3898 sed -e 's/^[^,]*,[ ]*//' | \
3900 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3901 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3902 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3903 sed -e 's/,.*$//' | \
3905 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3906 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3907 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*[^,]*,[ ]*//' | \
3908 sed -e 's/,.*$//' | \
3912 if [ $ext = $base_ext ]; then
3914 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
3916 # Removing extension
3917 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
3922 echo "Unknown extension used in --with-$which=$val" 1>&2
3925 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3928 ext_mask="(("$ext_mask") << 6)"
3929 if [ x"$base_id" != x ]; then
3930 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3934 echo "Unknown $which used in --with-$which=$val" 1>&2
3941 supported_defaults="cpu tune"
3942 for which in cpu tune; do
3943 eval "val=\$with_$which"
3946 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3947 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3951 echo "Unknown CPU used in --with-$which=$val" 1>&2
3959 supported_defaults="cpu"
3961 if [ x"$with_cpu" = x ] \
3962 || grep "^ARC_CPU ($with_cpu," \
3963 ${srcdir}/config/arc/arc-cpus.def \
3968 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3974 supported_defaults="cpu endian float"
3978 supported_defaults="arch cpu float tune fpu abi mode tls"
3979 for which in cpu tune arch; do
3980 # See if it matches a supported value
3981 eval "val=\$with_$which"
3982 if [ x"$val" != x ]; then
3983 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3984 -v cmd="chk$which $val" \
3985 ${srcdir}/config/arm/arm-cpus.in`
3986 if [ "$cpu" = "error" ]; then
3987 echo "Unknown target in --with-$which=$val" 1>&2
3991 eval "target_${which}_cname=$new_val"
3992 echo "For $val real value is $new_val"
3997 case "$with_float" in
3999 | soft | hard | softfp)
4003 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4008 # see if --with-fpu matches any of the supported FPUs
4009 if [ x"$with_fpu" != x ] ; then
4011 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4012 -v cmd="chkfpu $val" \
4013 ${srcdir}/config/arm/arm-cpus.in`
4014 if [ "$fpu" = "error" ]
4016 echo "Unknown target in --with-fpu=$val" 1>&2
4023 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4027 echo "Unknown ABI used in --with-abi=$with_abi"
4032 case "$with_mode" in
4038 echo "Unknown mode used in --with-mode=$with_mode"
4049 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4054 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4055 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4059 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4060 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4064 # Add extra multilibs
4065 if test "x$with_multilib_list" != x; then
4067 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4068 if test "x${arm_multilibs}" != xdefault ; then
4069 for arm_multilib in ${arm_multilibs}; do
4070 case ${arm_multilib} in
4072 tmake_profile_file="arm/t-multilib"
4075 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4076 if test -f "${srcdir}/config/arm/${ml}"; then
4077 tmake_file="${tmake_file} arm/${ml}"
4079 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4084 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4091 if test "x${tmake_profile_file}" != x ; then
4092 # arm/t-aprofile and arm/t-rmprofile are only
4093 # designed to work without any with-cpu,
4094 # with-arch, with-mode, with-fpu or with-float
4096 if test "x$with_arch" != x \
4097 || test "x$with_cpu" != x \
4098 || test "x$with_float" != x \
4099 || test "x$with_fpu" != x \
4100 || test "x$with_mode" != x ; then
4101 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4103 elif test "x$ml" != x ; then
4104 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4107 # But pass the default value for float-abi
4108 # through to the multilib selector
4110 tmake_file="${tmake_file} ${tmake_profile_file}"
4111 TM_MULTILIB_CONFIG="$with_multilib_list"
4114 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4115 with_cpu=${with_cpu:-$target_cpu_cname}
4119 supported_defaults=cpu
4124 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4130 fido-*-* | m68k*-*-*)
4131 supported_defaults="arch cpu"
4132 case "$with_arch" in
4134 m68k_arch_family="$with_arch"
4137 echo "Invalid --with-arch=$with_arch" 1>&2
4142 # We always have a $with_cpu setting here.
4144 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4145 m68k_cpu_ident=$with_cpu
4148 m68k_cpu_ident=m68020
4149 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4152 m68k_cpu_ident=m68020
4153 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4156 # We need the C identifier rather than the string.
4157 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4158 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4159 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4160 ${srcdir}/config/m68k/m68k-devices.def`
4161 if [ x"$m68k_cpu_ident" = x ] ; then
4162 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4165 with_cpu="mcpu=$with_cpu"
4171 supported_defaults="arch tune"
4173 for which in arch tune; do
4174 eval "val=\$with_$which"
4176 "" | carrizo | fiji | gfx900 | gfx906 )
4180 echo "Unknown cpu used in --with-$which=$val." 1>&2
4185 [ "x$with_arch" = x ] && with_arch=fiji
4189 supported_defaults="arch schedule"
4191 case "$with_arch" in
4192 "" | 1.0 | 1.1 | 2.0)
4196 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4201 case "$with_schedule" in
4202 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4206 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4212 i[34567]86-*-* | x86_64-*-*)
4213 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4214 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4215 eval "val=\$with_$which"
4216 case " $x86_archs " in
4224 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4233 if test x${val} != x; then
4234 case " $x86_64_archs " in
4239 # Allow $x86_cpus --with-cpu=/--with-tune=
4242 case " $x86_cpus " in
4247 echo "Unknown CPU given in --with-$which=$val." 1>&2
4253 echo "Unknown CPU given in --with-$which=$val." 1>&2
4266 supported_defaults="abi arch tune riscv_attribute"
4269 riscv-* | riscv32*) xlen=32 ;;
4270 riscv64*) xlen=64 ;;
4271 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4274 case "${with_riscv_attribute}" in
4276 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4279 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4284 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4287 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4292 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4298 # Infer arch from --with-arch, --target, and --with-abi.
4299 case "${with_arch}" in
4300 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4304 # Infer XLEN, but otherwise assume GC.
4305 case "${with_abi}" in
4306 ilp32e) with_arch="rv32e" ;;
4307 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4308 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4309 *) with_arch="rv${xlen}gc" ;;
4313 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4318 # Make sure --with-abi is valid. If it was not specified,
4319 # pick a default based on the ISA, preferring soft-float
4320 # unless the D extension is present.
4321 case "${with_abi}" in
4322 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4325 case "${with_arch}" in
4326 rv32*d* | rv32g*) with_abi=ilp32d ;;
4327 rv32e*) with_abi=ilp32e ;;
4328 rv32*) with_abi=ilp32 ;;
4329 rv64*d* | rv64g*) with_abi=lp64d ;;
4330 rv64*) with_abi=lp64 ;;
4334 echo "--with-abi=${with_abi} is not supported" 1>&2
4339 # Make sure ABI and ISA are compatible.
4340 case "${with_abi},${with_arch}" in
4341 ilp32,rv32* | ilp32e,rv32e* \
4342 | ilp32f,rv32*f* | ilp32f,rv32g* \
4343 | ilp32d,rv32*d* | ilp32d,rv32g* \
4345 | lp64f,rv64*f* | lp64f,rv64g* \
4346 | lp64d,rv64*d* | lp64d,rv64g*)
4349 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4354 # Handle --with-multilib-list.
4355 if test "x${with_multilib_list}" != xdefault; then
4356 tm_file="${tm_file} riscv/withmultilib.h"
4357 tmake_file="${tmake_file} riscv/t-withmultilib"
4359 case ${with_multilib_list} in
4360 ilp32 | ilp32f | ilp32d \
4361 | lp64 | lp64f | lp64d )
4362 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4365 echo "--with-multilib-list=${with_multilib_list} not supported."
4369 # Define macros to select the default multilib.
4370 case ${with_arch} in
4372 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4375 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4378 echo "unsupported --with-arch for --with-multilib-list"
4383 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4386 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4389 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4392 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4395 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4398 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4401 echo "unsupported --with-abi for --with-multilib"
4408 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"
4410 case ${with_float} in
4415 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4421 "" | single | double)
4425 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4435 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4440 case ${with_fp_32} in
4445 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4450 case ${with_odd_spreg_32} in
4452 with_odd_spreg_32="odd-spreg"
4455 with_odd_spreg_32="no-odd-spreg"
4461 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4467 "" | 32 | o64 | n32 | 64 | eabi)
4471 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4476 case ${with_divide} in
4477 "" | breaks | traps)
4481 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4486 case ${with_llsc} in
4497 echo "Unknown llsc type used in --with-llsc" 1>&2
4502 case ${with_mips_plt} in
4507 with_mips_plt=no-plt
4512 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4517 case ${with_synci} in
4527 echo "Unknown synci type used in --with-synci" 1>&2
4532 case ${with_lxc1_sxc1} in
4534 with_lxc1_sxc1=lxc1-sxc1
4537 with_lxc1_sxc1=no-lxc1-sxc1
4542 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4547 case ${with_madd4} in
4557 echo "Unknown madd4 type used in --with-madd4" 1>&2
4564 supported_defaults="arch cpu nds32_lib float fpu_config"
4566 # process --with-arch
4567 case "${with_arch}" in
4569 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4573 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4576 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4579 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4583 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4588 case "${with_cpu}" in
4592 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4596 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4601 # process --with-nds32-lib
4602 case "${with_nds32_lib}" in
4606 with_nds32_lib=ulibc
4609 with_nds32_lib=glibc
4612 with_nds32_lib=newlib
4613 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4619 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4623 # for the arch=v3f or arch=v3s under mculib toolchain,
4624 # we would like to set -fno-math-errno as default
4625 case "${with_arch}" in
4627 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4635 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4640 # process --with-float
4641 case "${with_float}" in
4646 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4651 # process --with-config-fpu
4652 case "${with_config_fpu}" in
4657 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4665 supported_defaults="arch"
4666 case "$with_arch" in
4671 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4677 powerpc*-*-* | rs6000-*-*)
4678 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4680 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4681 eval "val=\$with_$which"
4683 default32 | default64)
4688 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4692 with_which="with_$which"
4696 tm_defines="${tm_defines} CONFIG_PPC405CR"
4697 eval "with_$which=405"
4699 "" | common | native \
4700 | power[3456789] | power5+ | power6x \
4701 | powerpc | powerpc64 | powerpc64le \
4703 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4704 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4705 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4706 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4707 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4711 echo "Unknown cpu used in --with-$which=$val." 1>&2
4718 "" | elfv1 | elfv2 )
4722 echo "Unknown ABI used in --with-abi=$with_abi"
4727 if test "x$with_advance_toolchain" != x; then
4728 if test -d "/opt/$with_advance_toolchain/." -a \
4729 -d "/opt/$with_advance_toolchain/bin/." -a \
4730 -d "/opt/$with_advance_toolchain/include/."; then
4732 tm_file="$tm_file ./advance-toolchain.h"
4733 (at="/opt/$with_advance_toolchain"
4734 echo "/* Use Advance Toolchain $at */"
4736 echo "#undef LINK_OS_EXTRA_SPEC32"
4737 echo "#define LINK_OS_EXTRA_SPEC32" \
4738 "\"%(link_os_new_dtags)" \
4739 "-rpath $prefix/lib -rpath $at/lib" \
4740 "-L $prefix/lib -L $at/lib\""
4742 echo "#undef LINK_OS_EXTRA_SPEC64"
4743 echo "#define LINK_OS_EXTRA_SPEC64" \
4744 "\"%(link_os_new_dtags)" \
4745 "-rpath $prefix/lib64 -rpath $at/lib64" \
4746 "-L $prefix/lib64 -L $at/lib64\""
4748 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4749 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4750 "\"--enable-new-dtags\""
4752 echo "#undef DYNAMIC_LINKER_PREFIX"
4753 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4755 echo "#undef MD_EXEC_PREFIX"
4756 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4758 echo "#undef MD_STARTFILE_PREFIX"
4759 echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \
4760 > advance-toolchain.h
4762 echo "Unknown advance-toolchain $with_advance_toolchain"
4767 # Set up the default long double format if the user changed it.
4768 if test x$with_long_double_format = xieee; then
4769 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
4771 elif test x$with_long_double_format = xibm; then
4772 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
4777 supported_defaults="arch mode tune"
4779 for which in arch tune; do
4780 eval "val=\$with_$which"
4782 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 )
4786 echo "Unknown cpu used in --with-$which=$val." 1>&2
4792 case ${with_mode} in
4797 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4803 sh[123456ble]*-*-* | sh-*-*)
4804 supported_defaults="cpu"
4805 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4806 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4809 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4811 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4814 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4815 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4816 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4817 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4823 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4825 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4826 eval "val=\$with_$which"
4828 "" | sparc | sparcv9 | sparc64 \
4830 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4831 | sparclite | f930 | f934 | sparclite86x \
4832 | sparclet | tsc701 \
4833 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4834 | niagara3 | niagara4 | niagara7 | m8)
4838 echo "Unknown cpu used in --with-$which=$val" 1>&2
4844 case ${with_float} in
4849 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4856 supported_defaults="arch tune"
4858 for which in arch tune; do
4859 eval "val=\$with_$which"
4861 "" | cell | celledp)
4865 echo "Unknown cpu used in --with-$which=$val." 1>&2
4873 supported_defaults="arch"
4875 case ${with_arch} in
4876 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4880 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4887 supported_defaults=cpu
4889 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4893 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4899 supported_defaults="cpu"
4903 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4910 # Targets for which there is at least one VxWorks port should include
4911 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
4912 # of markers from other files in the port, including the vxworks*.h files to
4913 # distinguish VxWorks variants such as VxWorks 7 or 64).
4916 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
4917 | sparc*-*-* | x86_64-*-*)
4918 tm_file="vxworks-dummy.h ${tm_file}"
4922 # Set some miscellaneous flags for particular targets.
4923 target_cpu_default2=
4926 if test x"$target_cpu_cname" != x
4928 target_cpu_default2=$target_cpu_cname
4933 if test x$with_cpu = x
4935 echo "Don't know the target cpu" 1>&2
4938 target_cpu_default2="\\\"$with_cpu\\\""
4943 if test x$gas = xyes
4945 target_cpu_default2="MASK_GAS"
4949 fido*-*-* | m68k*-*-*)
4950 target_cpu_default2=$m68k_cpu_ident
4951 tmake_file="m68k/t-opts $tmake_file"
4952 if [ x"$m68k_arch_family" != x ]; then
4953 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4957 i[34567]86-*-darwin* | x86_64-*-darwin*)
4959 i[34567]86-*-linux* | x86_64-*-linux*)
4960 extra_objs="${extra_objs} cet.o"
4961 tmake_file="$tmake_file i386/t-linux i386/t-cet"
4963 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4964 tmake_file="$tmake_file i386/t-kfreebsd"
4967 tmake_file="$tmake_file i386/t-gnu"
4969 i[34567]86-*-msdosdjgpp*)
4970 tmake_file="${tmake_file} i386/t-djgpp"
4972 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
4974 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4976 i[34567]86-*-mingw* | x86_64-*-mingw*)
4978 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4980 i[34567]86-*-freebsd*)
4983 tmake_file="${tmake_file} i386/t-freebsd64"
4989 if test x$gnu_ld = xyes
4991 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4995 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4998 if test x$with_arch != x; then
4999 default_mips_arch=$with_arch
5001 if test x$with_abi != x; then
5002 default_mips_abi=$with_abi
5004 case ${default_mips_arch} in
5005 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
5006 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
5007 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
5008 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
5009 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
5010 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
5011 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
5012 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
5013 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
5014 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
5016 case ${default_mips_abi} in
5017 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5018 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5019 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5020 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5021 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5023 tmake_file="mips/t-mips $tmake_file"
5026 powerpc*-*-* | rs6000-*-*)
5027 # FIXME: The PowerPC port uses the value set at compile time,
5028 # although it's only cosmetic.
5029 if test "x$with_cpu" != x
5031 target_cpu_default2="\\\"$with_cpu\\\""
5033 out_file="${cpu_type}/${cpu_type}.c"
5034 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5035 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5036 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5037 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5040 sh[123456ble]*-*-* | sh-*-*)
5041 c_target_objs="${c_target_objs} sh-c.o"
5042 cxx_target_objs="${cxx_target_objs} sh-c.o"
5046 # Some standard aliases.
5051 xsparcv9 | xsparc64)
5056 if test x$with_tune = x ; then
5067 # The SPARC port checks this value at compile-time.
5068 target_cpu_default2="TARGET_CPU_$with_cpu"
5072 case "x$with_cpu" in
5075 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5076 target_cpu_default2="TARGET_CPU_$with_cpu"
5079 target_cpu_default2="TARGET_CPU_v850e1"
5084 target_cpu_default2="TARGET_CPU_$with_cpu"
5089 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"
5090 for option in $all_defaults
5092 eval "val=\$with_"`echo $option | sed s/-/_/g`
5093 if test -n "$val"; then
5094 case " $supported_defaults " in
5098 echo "This target does not support --with-$option." 2>&1
5099 echo "Valid --with options are: $supported_defaults" 2>&1
5106 t="{ \"$option\", \"$val\" }"
5108 t="${t}, { \"$option\", \"$val\" }"
5115 configure_default_options="{ { NULL, NULL} }"
5117 configure_default_options="{ ${t} }"
5120 if test "$target_cpu_default2" != ""
5122 if test "$target_cpu_default" != ""
5124 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5126 target_cpu_default=$target_cpu_default2
5131 i[34567]86-*-* | x86_64-*-*)
5132 if test x$enable_as_accelerator = xyes; then
5133 extra_programs="mkoffload\$(exeext)"