1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2018 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 # out_file The name of the machine description C support
90 # file, if different from "$cpu_type/$cpu_type.c".
92 # common_out_file The name of the source file for code shared between
93 # the compiler proper and the driver.
95 # md_file The name of the machine-description file, if
96 # different from "$cpu_type/$cpu_type.md".
98 # tmake_file A list of machine-description-specific
99 # makefile-fragments, if different from
100 # "$cpu_type/t-$cpu_type".
102 # extra_modes The name of the file containing a list of extra
103 # machine modes, if necessary and different from
104 # "$cpu_type/$cpu_type-modes.def".
106 # extra_objs List of extra objects that should be linked into
107 # the compiler proper (cc1, cc1obj, cc1plus)
108 # depending on target.
110 # extra_gcc_objs List of extra objects that should be linked into
111 # the compiler driver (gcc) depending on target.
113 # extra_headers List of used header files from the directory
114 # config/${cpu_type}.
116 # user_headers_inc_next_pre
117 # List of header file names of internal gcc header
118 # files, which should be prefixed by an include_next.
119 # user_headers_inc_next_post
120 # List of header file names of internal gcc header
121 # files, which should be postfixed by an include_next.
122 # use_gcc_tgmath If set, add tgmath.h to the list of used header
125 # use_gcc_stdint If "wrap", install a version of stdint.h that
126 # wraps the system's copy for hosted compilations;
127 # if "provide", provide a version of systems without
128 # such a system header; otherwise "none", do not
129 # provide such a header at all.
131 # extra_programs List of extra executables compiled for this target
132 # machine, used when linking.
134 # extra_options List of target-dependent .opt files.
136 # c_target_objs List of extra target-dependent objects that be
137 # linked into the C compiler only.
139 # cxx_target_objs List of extra target-dependent objects that be
140 # linked into the C++ compiler only.
142 # fortran_target_objs List of extra target-dependent objects that be
143 # linked into the fortran compiler only.
145 # target_gtfiles List of extra source files with type information.
147 # xm_defines List of macros to define when compiling for the
150 # xm_file List of files to include when compiling for the
153 # use_collect2 Set to yes or no, depending on whether collect2
156 # target_cpu_default Set to override the default target model.
158 # gdb_needs_out_file_path
159 # Set to yes if gdb needs a dir command with
160 # `dirname $out_file`.
162 # thread_file Set to control which thread package to use.
164 # gas Set to yes or no depending on whether the target
165 # system normally uses GNU as.
167 # configure_default_options
168 # Set to an initializer for configure_default_options
169 # in configargs.h, based on --with-cpu et cetera.
171 # native_system_header_dir
172 # Where system header files are found for this
173 # target. This defaults to /usr/include. If
174 # the --with-sysroot configure option or the
175 # --sysroot command line option is used this
176 # will be relative to the sysroot.
177 # target_type_format_char
178 # The default character to be used for formatting
180 # .type symbol_name, ${t_t_f_c}<property>
183 # The following variables are used in each case-construct to build up the
184 # outgoing variables:
186 # gnu_ld Set to yes or no depending on whether the target
187 # system normally uses GNU ld.
189 # target_has_targetcm Set to yes or no depending on whether the target
190 # has its own definition of targetcm.
192 # target_has_targetm_common Set to yes or no depending on whether the
193 # target has its own definition of targetm_common.
199 user_headers_inc_next_pre=
200 user_headers_inc_next_post=
210 target_has_targetcm=no
211 target_has_targetm_common=yes
214 # Set this to force installation and use of collect2.
216 # Set this to override the default target model.
218 # Set this if gdb needs a dir command with `dirname $out_file`
219 gdb_needs_out_file_path=
220 # Set this to control which thread package will be used.
222 # Reinitialize these from the flag values every loop pass, since some
223 # configure entries modify them.
225 gnu_ld="$gnu_ld_flag"
226 default_use_cxa_atexit=no
227 default_gnu_indirect_function=no
230 native_system_header_dir=/usr/include
231 target_type_format_char='@'
233 # Don't carry these over build->host->target. Please.
237 # Obsolete configurations.
242 if test "x$enable_obsolete" != xyes; then
243 echo "*** Configuration ${target} is obsolete." >&2
244 echo "*** Specify --enable-obsolete to build it anyway." >&2
245 echo "*** Support will be REMOVED in the next major release of GCC," >&2
246 echo "*** unless a maintainer comes forward." >&2
251 # Unsupported targets list. Do not put an entry in this list unless
252 # it would otherwise be caught by a more permissive pattern. The list
253 # should be in alphabetical order.
255 # Avoid special cases that are not obsolete
264 | i[34567]86-go32-* \
265 | i[34567]86-*-go32* \
266 | m68k-*-uclinuxoldabi* \
267 | mips64orion*-*-rtems* \
269 | sparc-hal-solaris2* \
271 | *-*-freebsd[12] | *-*-freebsd[1234].* \
272 | *-*-freebsd*aout* \
280 | *-*-solaris2.[0-9] \
281 | *-*-solaris2.[0-9].* \
285 echo "*** Configuration ${target} not supported" 1>&2
290 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
291 # updated in each machine entry. Also set default extra_headers for some
294 cpu_type=`echo ${target} | sed 's/-.*$//'`
299 tmake_file=m32c/t-m32c
300 target_has_targetm_common=no
304 extra_headers="arm_fp16.h arm_neon.h arm_acle.h"
305 c_target_objs="aarch64-c.o"
306 cxx_target_objs="aarch64-c.o"
307 extra_objs="aarch64-builtins.o aarch-common.o cortex-a57-fma-steering.o"
308 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c"
309 target_has_targetm_common=yes
313 extra_options="${extra_options} g.opt"
320 c_target_objs="arc-c.o"
321 cxx_target_objs="arc-c.o"
322 extra_options="${extra_options} arc/arc-tables.opt g.opt"
323 extra_headers="arc-simd.h"
327 extra_objs="arm-builtins.o aarch-common.o"
328 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h"
329 target_type_format_char='%'
330 c_target_objs="arm-c.o"
331 cxx_target_objs="arm-c.o"
332 extra_options="${extra_options} arm/arm-tables.opt"
333 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
337 c_target_objs="avr-c.o"
338 cxx_target_objs="avr-c.o"
347 extra_options="${extra_options} g.opt"
350 target_has_targetm_common=no
352 moxie*) cpu_type=moxie
353 target_has_targetm_common=no
357 extra_headers=math-68881.h
358 extra_options="${extra_options} m68k/m68k-tables.opt"
362 c_target_objs="i386-c.o"
363 cxx_target_objs="i386-c.o"
364 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
365 extra_options="${extra_options} fused-madd.opt"
366 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
367 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
368 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
369 immintrin.h x86intrin.h avxintrin.h xopintrin.h
370 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
371 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
372 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
373 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
374 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
375 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
376 shaintrin.h clflushoptintrin.h xsavecintrin.h
377 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
378 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
379 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
380 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
381 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
382 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
383 gfniintrin.h cet.h avx512vbmi2intrin.h
384 avx512vbmi2vlintrin.h avx512vnniintrin.h
385 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
386 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
387 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
388 waitpkgintrin.h cldemoteintrin.h"
392 c_target_objs="i386-c.o"
393 cxx_target_objs="i386-c.o"
394 extra_options="${extra_options} fused-madd.opt"
395 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
396 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
397 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
398 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
399 immintrin.h x86intrin.h avxintrin.h xopintrin.h
400 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
401 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
402 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
403 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
404 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
405 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
406 shaintrin.h clflushoptintrin.h xsavecintrin.h
407 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
408 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
409 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
410 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
411 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
412 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
413 gfniintrin.h cet.h avx512vbmi2intrin.h
414 avx512vbmi2vlintrin.h avx512vnniintrin.h
415 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
416 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
417 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
418 waitpkgintrin.h cldemoteintrin.h"
421 extra_headers=ia64intrin.h
422 extra_options="${extra_options} g.opt fused-madd.opt"
428 extra_options="${extra_options} g.opt"
432 extra_options="${extra_options} g.opt"
435 extra_headers=math-68881.h
436 extra_options="${extra_options} m68k/m68k-tables.opt"
440 extra_options="${extra_options} g.opt"
444 extra_headers="loongson.h msa.h"
445 extra_objs="frame-header-opt.o"
446 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
450 extra_headers="nds32_intrinsic.h"
453 extra_options="${extra_options} nds32/nds32-linux.opt"
456 extra_options="${extra_options} nds32/nds32-elf.opt"
461 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"
465 extra_options="${extra_options} g.opt"
472 extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h"
474 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
478 extra_options="${extra_options} g.opt fused-madd.opt powerpcspe/powerpcspe-tables.opt"
482 extra_objs="rs6000-string.o rs6000-p8swap.o"
483 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
484 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
485 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
486 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
487 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
488 extra_headers="${extra_headers} amo.h"
490 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
494 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
498 extra_objs="riscv-builtins.o riscv-c.o"
501 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
502 extra_objs="rs6000-string.o rs6000-p8swap.o"
506 c_target_objs="sparc-c.o"
507 cxx_target_objs="sparc-c.o"
508 extra_headers="visintrin.h"
515 extra_options="${extra_options} fused-madd.opt"
516 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
518 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
519 sh[123456789lbe]*-*-* | sh-*-*)
521 extra_options="${extra_options} fused-madd.opt"
522 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
529 extra_headers="c6x_intrinsics.h"
530 extra_options="${extra_options} c6x/c6x-tables.opt"
533 extra_options="${extra_options} fused-madd.opt"
543 tm_file=${cpu_type}/${cpu_type}.h
544 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
546 tm_p_file=${cpu_type}/${cpu_type}-protos.h
549 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
551 extra_modes=${cpu_type}/${cpu_type}-modes.def
553 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
555 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
560 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
563 if test "x$with_multilib_list" = xilp32; then
564 tm_file="aarch64/biarchilp32.h ${tm_file}"
566 tm_file="aarch64/biarchlp64.h ${tm_file}"
570 tm_file="aarch64/biarchilp32.h ${tm_file}"
573 tm_file="aarch64/biarchlp64.h ${tm_file}"
576 echo "Unknown ABI used in --with-abi=$with_abi"
581 if test "x$with_abi" != x; then
582 echo "This target does not support --with-abi."
585 if test "x$enable_cld" = xyes; then
586 tm_defines="${tm_defines} USE_IX86_CLD=1"
588 if test "x$enable_frame_pointer" = xyes; then
589 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
591 tm_file="vxworks-dummy.h ${tm_file}"
596 if test "x$with_multilib_list" = xmx32; then
597 tm_file="i386/biarchx32.h ${tm_file}"
599 tm_file="i386/biarch64.h ${tm_file}"
603 tm_file="i386/biarch64.h ${tm_file}"
606 tm_file="i386/biarchx32.h ${tm_file}"
609 echo "Unknown ABI used in --with-abi=$with_abi"
612 if test "x$enable_cld" = xyes; then
613 tm_defines="${tm_defines} USE_IX86_CLD=1"
615 if test "x$enable_frame_pointer" = xyes; then
616 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
618 tm_file="vxworks-dummy.h ${tm_file}"
621 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
622 tm_file="vxworks-dummy.h ${tm_file}"
624 mips*-*-* | sh*-*-* | sparc*-*-*)
625 tm_file="vxworks-dummy.h ${tm_file}"
629 # On a.out targets, we need to use collect2.
636 # Common C libraries.
637 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
639 # 32-bit x86 processors supported by --with-arch=. Each processor
640 # MUST be separated by exactly one space.
641 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
642 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
643 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
644 pentium4 pentium4m pentiumpro prescott lakemont"
646 # 64-bit x86 processors supported by --with-arch=. Each processor
647 # MUST be separated by exactly one space.
648 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
649 bdver3 bdver4 znver1 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \
650 core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \
651 sandybridge ivybridge haswell broadwell bonnell silvermont knl knm \
652 skylake-avx512 cannonlake icelake-client icelake-server skylake goldmont \
653 goldmont-plus tremont x86-64 native"
655 # Additional x86 processors supported by --with-cpu=. Each processor
656 # MUST be separated by exactly one space.
657 x86_cpus="generic intel"
659 # Common parts for widely ported systems.
662 tmake_file="t-darwin ${cpu_type}/t-darwin"
663 tm_file="${tm_file} darwin.h"
666 tm_file="${tm_file} darwin9.h"
669 tm_file="${tm_file} darwin9.h darwin10.h"
671 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
672 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
675 tm_file="${tm_file} ${cpu_type}/darwin.h"
676 tm_p_file="${tm_p_file} darwin-protos.h"
677 target_gtfiles="\$(srcdir)/config/darwin.c"
678 extra_options="${extra_options} darwin.opt"
679 c_target_objs="${c_target_objs} darwin-c.o"
680 cxx_target_objs="${cxx_target_objs} darwin-c.o"
681 fortran_target_objs="darwin-f.o"
682 target_has_targetcm=yes
683 extra_objs="${extra_objs} darwin.o"
684 extra_gcc_objs="darwin-driver.o"
685 default_use_cxa_atexit=yes
687 case ${enable_threads} in
688 "" | yes | posix) thread_file='posix' ;;
694 tmake_file="t-slibgcc"
695 case ${enable_threads} in
700 # Let these non-posix thread selections fall through if requested
703 echo 'Unknown thread configuration for DragonFly BSD'
707 extra_options="$extra_options rpath.opt dragonfly.opt"
708 default_use_cxa_atexit=yes
712 # This is the generic ELF configuration of FreeBSD. Later
713 # machine-specific sections may refine and add to this
716 # Due to tm_file entry ordering issues that vary between cpu
717 # architectures, we only define fbsd_tm_file to allow the
718 # machine-specific section to dictate the final order of all
719 # entries of tm_file with the minor exception that components
720 # of the tm_file set here will always be of the form:
722 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
724 # The machine-specific section should not tamper with this
725 # ordering but may order all other entries of tm_file as it
726 # pleases around the provided core setting.
729 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
730 if test "$fbsd_major" = ""; then
731 echo "Specify the major version number of the targeted FreeBSD release"
732 echo "like this: --target=amd64-unknown-freebsd10.1"
735 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
736 tmake_file="t-slibgcc"
737 case ${enable_threads} in
739 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
745 echo 'Unknown thread configuration for FreeBSD'
749 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
750 extra_options="$extra_options rpath.opt freebsd.opt"
755 default_use_cxa_atexit=yes;;
760 native_system_header_dir=/include
762 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
763 extra_options="$extra_options gnu-user.opt"
766 case ${enable_threads} in
767 "" | yes | posix) thread_file='posix' ;;
769 tmake_file="t-slibgcc"
771 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
774 native_system_header_dir=/include
777 # Linux C libraries selection switch: glibc / uclibc / bionic.
778 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
781 tm_p_file="${tm_p_file} linux-protos.h"
782 tmake_file="${tmake_file} t-linux"
783 extra_objs="${extra_objs} linux.o"
784 extra_options="${extra_options} linux.opt"
789 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
792 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
795 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
798 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
801 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
803 default_use_cxa_atexit=yes
806 # Enable compilation for Android by default for *android* targets.
809 tm_defines="$tm_defines ANDROID_DEFAULT=1"
812 tm_defines="$tm_defines ANDROID_DEFAULT=0"
815 c_target_objs="${c_target_objs} glibc-c.o"
816 cxx_target_objs="${cxx_target_objs} glibc-c.o"
817 tmake_file="${tmake_file} t-glibc"
818 target_has_targetcm=yes
821 tm_p_file="${tm_p_file} netbsd-protos.h"
822 tmake_file="t-netbsd t-slibgcc"
823 extra_objs="${extra_objs} netbsd.o"
827 case ${enable_threads} in
828 "" | yes | posix) thread_file='posix' ;;
830 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
831 default_use_cxa_atexit=yes
834 tmake_file="t-openbsd"
835 case ${enable_threads} in
841 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
842 default_use_cxa_atexit=yes
849 default_use_cxa_atexit=yes
852 case ${enable_threads} in
853 "" | yes | rtems) thread_file='rtems' ;;
854 posix) thread_file='posix' ;;
857 echo 'Unknown thread configuration for RTEMS'
861 tmake_file="${tmake_file} t-rtems"
862 extra_options="${extra_options} rtems.opt"
863 default_use_cxa_atexit=yes
867 extra_options="$extra_options gnu-user.opt"
869 case ${enable_threads} in
870 "" | yes | posix) thread_file='posix' ;;
872 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
878 # i?86-*-solaris2* needs to insert headers between cpu default and
879 # Solaris 2 specific ones.
880 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
881 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
882 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
884 *-*-solaris2.1[1-9]*)
885 # __cxa_atexit was introduced in Solaris 11.4.
886 default_use_cxa_atexit=yes
890 if test x$gnu_ld = xyes; then
891 tm_file="usegld.h ${tm_file}"
893 if test x$gas = xyes; then
894 tm_file="usegas.h ${tm_file}"
896 tm_p_file="${tm_p_file} sol2-protos.h"
897 tmake_file="${tmake_file} t-sol2 t-slibgcc"
898 c_target_objs="${c_target_objs} sol2-c.o"
899 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
900 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
901 extra_options="${extra_options} sol2.opt"
902 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
903 "":yes:* | yes:yes:* )
909 extra_options="${extra_options} vms/vms.opt"
911 tmake_file="vms/t-vms t-slibgcc"
913 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
914 tm_p_file="${tm_p_file} vms/vms-protos.h"
915 xm_file="vms/xm-vms.h"
916 c_target_objs="vms-c.o"
917 cxx_target_objs="vms-c.o"
918 fortran_target_objs="vms-f.o"
919 use_gcc_stdint=provide
920 tm_file="${tm_file} vms/vms-stdint.h"
921 if test x$gnu_ld != xyes; then
922 # Build wrappers for native case.
923 extra_programs="ld\$(exeext) ar\$(exeext)"
924 tmake_file="$tmake_file vms/t-vmsnative"
930 extra_options="${extra_options} vxworks.opt"
931 extra_objs="$extra_objs vxworks.o"
932 use_gcc_stdint=provide
933 tm_file="${tm_file} vxworks-stdint.h"
934 case ${enable_threads} in
936 "" | yes | vxworks) thread_file='vxworks' ;;
937 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
941 tm_defines="$tm_defines TARGET_VXWORKS7=1"
946 # Assume that newlib is being used and so __cxa_atexit is provided.
947 default_use_cxa_atexit=yes
953 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
954 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
955 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
956 tmake_file="${tmake_file} aarch64/t-aarch64"
962 tm_file="${tm_file} fuchsia.h"
965 tm_file="${tm_file} rtems.h aarch64/rtems.h"
970 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
973 aarch64_multilibs="${with_multilib_list}"
974 if test "$aarch64_multilibs" = "default"; then
975 aarch64_multilibs="lp64,ilp32"
977 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
978 for aarch64_multilib in ${aarch64_multilibs}; do
979 case ${aarch64_multilib} in
981 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
984 echo "--with-multilib-list=${aarch64_multilib} not supported."
988 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
991 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
992 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h"
993 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
996 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
997 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
998 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
999 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1002 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1005 aarch64_multilibs="${with_multilib_list}"
1006 if test "$aarch64_multilibs" = "default"; then
1007 # TODO: turn on ILP32 multilib build after its support is mature.
1008 # aarch64_multilibs="lp64,ilp32"
1009 aarch64_multilibs="lp64"
1011 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1012 for aarch64_multilib in ${aarch64_multilibs}; do
1013 case ${aarch64_multilib} in
1015 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1018 echo "--with-multilib-list=${aarch64_multilib} not supported."
1022 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1025 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1026 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1027 extra_options="${extra_options} alpha/elf.opt"
1030 tm_file="elfos.h ${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
1031 tmake_file="${tmake_file} alpha/t-alpha"
1032 extra_options="${extra_options} alpha/elf.opt"
1035 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1036 tmake_file="${tmake_file} alpha/t-alpha"
1037 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1041 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1042 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1043 tmake_file="${tmake_file} alpha/t-alpha"
1044 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1045 # default x-alpha is only appropriate for dec-osf.
1048 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1049 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1052 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1053 tmake_file="arc/t-multilib arc/t-arc"
1054 extra_gcc_objs="driver-arc.o"
1055 if test "x$with_cpu" != x; then
1056 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1058 if test x${with_endian} = x; then
1060 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1061 *) with_endian=little ;;
1064 case ${with_endian} in
1066 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1068 case ${with_endian} in
1069 big*) tm_file="arc/big.h ${tm_file}"
1073 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}"
1074 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1075 extra_gcc_objs="driver-arc.o"
1076 if test "x$with_cpu" != x; then
1077 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1079 if test x${with_endian} = x; then
1081 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1082 *) with_endian=little ;;
1085 case ${with_endian} in
1087 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1089 case ${with_endian} in
1090 big*) tm_file="arc/big.h ${tm_file}"
1093 arm-wrs-vxworks|arm-wrs-vxworks7)
1094 extra_options="${extra_options} arm/vxworks.opt"
1095 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1098 # VxWorks7 on ARM adheres to the ARM Base Platform ABI
1099 tmake_file="${tmake_file} arm/t-bpabi"
1100 tm_file="arm/bpabi.h ${tm_file}"
1101 # The BPABI long long divmod functions return a 128-bit value in
1103 need_64bit_hwint=yes
1104 default_use_cxa_atexit=yes
1108 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1109 target_cpu_cname="arm8"
1111 arm*-*-freebsd*) # ARM FreeBSD EABI
1112 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1115 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1118 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1119 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1122 target_cpu_cname="arm1176jzf-s"
1123 if test $fbsd_major -ge 11; then
1124 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1128 target_cpu_cname="generic-armv7-a"
1129 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1132 target_cpu_cname="arm9"
1135 with_tls=${with_tls:-gnu}
1138 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1139 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1140 tmake_file="${tmake_file} arm/t-arm"
1141 target_cpu_cname="arm6"
1143 arm*-*-linux-*) # ARM GNU/Linux with ELF
1144 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"
1145 extra_options="${extra_options} linux-android.opt"
1148 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1151 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1152 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1153 # Generation of floating-point instructions requires at least ARMv5te.
1154 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1155 target_cpu_cname="arm10e"
1157 target_cpu_cname="arm10tdmi"
1159 # Define multilib configuration for arm-linux-androideabi.
1162 tmake_file="$tmake_file arm/t-linux-androideabi"
1165 # The EABI requires the use of __cxa_atexit.
1166 default_use_cxa_atexit=yes
1167 with_tls=${with_tls:-gnu}
1169 arm*-*-uclinux*eabi*) # ARM ucLinux
1170 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1171 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1172 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1173 target_cpu_cname="arm7tdmi"
1174 # The EABI requires the use of __cxa_atexit.
1175 default_use_cxa_atexit=yes
1178 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1179 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1180 tm_file="${tm_file} arm/aout.h arm/arm.h"
1181 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1182 target_cpu_cname="arm7tdmi"
1184 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1187 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1189 default_use_cxa_atexit=yes
1190 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1191 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1192 target_cpu_cname="arm7tdmi"
1195 tm_file="$tm_file newlib-stdint.h"
1196 tmake_file="${tmake_file} arm/t-bpabi"
1200 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1201 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1202 target_cpu_cname="generic-armv7-a"
1205 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1206 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1209 tm_file="${tm_file} arm/symbian.h"
1210 # We do not include t-bpabi for Symbian OS because the system
1211 # provides its own implementation of the BPABI functions.
1212 tmake_file="${tmake_file} arm/t-symbian"
1213 target_cpu_cname="arm10tdmi"
1216 tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
1219 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1220 if test x${with_avrlibc} != xno; then
1221 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1222 tm_defines="${tm_defines} WITH_AVRLIBC"
1224 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1226 extra_gcc_objs="driver-avr.o avr-devices.o"
1227 extra_objs="avr-devices.o avr-log.o"
1230 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1231 tmake_file=bfin/t-bfin-elf
1235 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1236 tmake_file=bfin/t-bfin-uclinux
1239 bfin*-linux-uclibc*)
1240 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"
1241 tmake_file="${tmake_file} bfin/t-bfin-linux"
1245 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1246 tmake_file="${tmake_file} bfin/t-rtems"
1249 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1254 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1255 tmake_file="${tmake_file} cr16/t-cr16 "
1258 crisv32-*-elf | crisv32-*-none)
1259 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1260 tmake_file="cris/t-cris"
1261 target_cpu_default=32
1263 extra_options="${extra_options} cris/elf.opt"
1266 cris-*-elf | cris-*-none)
1267 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1268 tmake_file="cris/t-cris cris/t-elfmulti"
1270 extra_options="${extra_options} cris/elf.opt"
1273 crisv32-*-linux* | cris-*-linux*)
1274 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1275 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1276 extra_options="${extra_options} cris/linux.opt"
1279 target_cpu_default=10
1282 target_cpu_default=32
1286 epiphany-*-elf | epiphany-*-rtems*)
1287 tm_file="${tm_file} dbxelf.h elfos.h"
1288 tmake_file="${tmake_file} epiphany/t-epiphany"
1291 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1294 tm_file="${tm_file} newlib-stdint.h"
1297 extra_options="${extra_options} fused-madd.opt"
1298 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1299 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1300 extra_headers="epiphany_intrinsics.h"
1303 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1306 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1307 tmake_file=frv/t-frv
1310 tm_file="dbxelf.h elfos.h ${tm_file} \
1311 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1312 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1317 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1318 tmake_file="${tmake_file} ft32/t-ft32"
1323 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1324 tmake_file="${tmake_file} moxie/t-moxie"
1329 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1330 tmake_file="${tmake_file} moxie/t-moxie"
1333 tmake_file="${tmake_file} moxie/t-moxie"
1334 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1339 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1340 tmake_file="${tmake_file} moxie/t-moxiebox"
1343 tmake_file="h8300/t-h8300"
1344 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1347 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1348 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1351 target_cpu_default="MASK_PA_11|MASK_PA_20"
1352 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1353 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1358 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1359 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1360 pa/pa32-regs.h pa/pa32-linux.h"
1361 tmake_file="${tmake_file} pa/t-linux"
1364 target_cpu_default="MASK_PA_11"
1365 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1366 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1367 extra_options="${extra_options} openbsd.opt"
1371 hppa[12]*-*-hpux10*)
1373 hppa1.1-*-* | hppa2*-*-*)
1374 target_cpu_default="MASK_PA_11"
1377 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1378 pa/pa-hpux.h pa/pa-hpux10.h"
1379 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1382 tm_file="${tm_file} pa/pa-hpux1010.h"
1383 extra_options="${extra_options} pa/pa-hpux1010.opt"
1386 use_gcc_stdint=provide
1387 tm_file="${tm_file} hpux-stdint.h"
1388 tmake_file="t-slibgcc"
1389 case ${enable_threads} in
1391 if test x$have_pthread_h = xyes ; then
1392 tmake_file="${tmake_file} pa/t-dce-thr"
1396 tmake_file="${tmake_file} pa/t-dce-thr"
1401 if test "x$with_dwarf2" != x; then
1402 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1407 target_cpu_default="MASK_PA_11|MASK_PA_20"
1408 if test x$gnu_ld = xyes
1410 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1412 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1413 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1417 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1418 extra_options="${extra_options} pa/pa-hpux1111.opt"
1421 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1422 extra_options="${extra_options} pa/pa-hpux1131.opt"
1425 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1428 extra_options="${extra_options} pa/pa-hpux.opt \
1429 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1430 tmake_file="t-slibgcc"
1431 case x${enable_threads} in
1439 use_gcc_stdint=provide
1440 tm_file="${tm_file} hpux-stdint.h"
1444 tm_file="${tm_file} hpux-stdint.h"
1448 hppa[12]*-*-hpux11*)
1450 hppa1.1-*-* | hppa2*-*-*)
1451 target_cpu_default="MASK_PA_11"
1454 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1455 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1456 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1460 tm_file="${tm_file} pa/pa-hpux1111.h"
1461 extra_options="${extra_options} pa/pa-hpux1111.opt"
1464 tm_file="${tm_file} pa/pa-hpux1131.h"
1465 extra_options="${extra_options} pa/pa-hpux1131.opt"
1468 tmake_file="t-slibgcc"
1469 case x${enable_threads} in
1478 use_gcc_stdint=provide
1479 tm_file="${tm_file} hpux-stdint.h"
1483 tm_file="${tm_file} hpux-stdint.h"
1486 if test "x$with_dwarf2" != x; then
1487 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1491 i[34567]86-*-darwin*)
1493 # Baseline choice for a machine that allows m64 support.
1494 with_cpu=${with_cpu:-core2}
1495 tmake_file="${tmake_file} t-slibgcc"
1498 with_cpu=${with_cpu:-core2}
1499 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1500 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1502 i[34567]86-*-elfiamcu)
1503 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1506 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1509 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1512 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"
1515 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1518 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"
1519 tmake_file="i386/t-i386elf t-svr4"
1521 i[34567]86-*-dragonfly*)
1522 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1523 tmake_file="${tmake_file} i386/t-crtstuff"
1525 x86_64-*-dragonfly*)
1526 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"
1527 tmake_file="${tmake_file} i386/t-crtstuff"
1529 i[34567]86-*-freebsd*)
1530 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1533 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"
1535 i[34567]86-*-netbsdelf*)
1536 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1537 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1540 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1541 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1543 i[34567]86-*-openbsd*)
1544 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1545 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1546 extra_options="${extra_options} openbsd.opt"
1551 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1552 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1553 extra_options="${extra_options} openbsd.opt"
1557 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1558 # Intel 80386's running GNU/*
1559 # with ELF format using glibc 2
1560 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1562 i[34567]86-*-linux*)
1563 tm_file="${tm_file} linux.h linux-android.h"
1564 extra_options="${extra_options} linux-android.opt"
1565 if test x$enable_targets = xall; then
1566 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1567 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1568 tmake_file="${tmake_file} i386/t-linux64"
1569 x86_multilibs="${with_multilib_list}"
1570 if test "$x86_multilibs" = "default"; then
1571 x86_multilibs="m64,m32"
1573 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1574 for x86_multilib in ${x86_multilibs}; do
1575 case ${x86_multilib} in
1577 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1580 echo "--with-multilib-list=${x86_with_multilib} not supported."
1584 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1586 if test x$with_cpu = x; then
1587 if test x$with_cpu_64 = x; then
1591 case " $x86_cpus $x86_archs $x86_64_archs " in
1595 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1596 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1602 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1605 i[34567]86-*-kfreebsd*-gnu)
1606 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1608 i[34567]86-*-kopensolaris*-gnu)
1609 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1612 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1616 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1617 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1618 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1621 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1622 extra_options="${extra_options} linux-android.opt"
1624 x86_64-*-kfreebsd*-gnu)
1625 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1628 tmake_file="${tmake_file} i386/t-linux64"
1629 x86_multilibs="${with_multilib_list}"
1630 if test "$x86_multilibs" = "default"; then
1633 x86_multilibs="mx32"
1636 x86_multilibs="m64,m32"
1640 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1641 for x86_multilib in ${x86_multilibs}; do
1642 case ${x86_multilib} in
1644 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1647 echo "--with-multilib-list=${x86_with_multilib} not supported."
1651 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1653 i[34567]86-pc-msdosdjgpp*)
1654 xm_file=i386/xm-djgpp.h
1655 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1656 native_system_header_dir=/dev/env/DJDIR/include
1657 extra_options="${extra_options} i386/djgpp.opt"
1662 i[34567]86-*-lynxos*)
1664 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1665 tmake_file="${tmake_file} t-lynx"
1666 extra_options="${extra_options} lynx.opt"
1671 i[34567]86-*-nto-qnx*)
1672 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1673 extra_options="${extra_options} i386/nto.opt"
1677 i[34567]86-*-rtems*)
1678 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"
1679 tmake_file="${tmake_file} i386/t-rtems"
1681 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1682 # Set default arch_32 to pentium4, tune_32 to generic like the other
1683 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1684 with_arch_32=${with_arch_32:-pentium4}
1685 with_tune_32=${with_tune_32:-generic}
1686 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1687 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1688 tmake_file="$tmake_file i386/t-sol2"
1690 if test x$with_cpu = x; then
1691 if test x$with_cpu_64 = x; then
1695 case " $x86_cpus $x86_archs $x86_64_archs " in
1699 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1700 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1706 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
1707 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1711 tm_file="${tm_file} i386/x86-64.h"
1714 tm_file="${tm_file} vx-common.h"
1717 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1718 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1721 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1722 tmake_file="${tmake_file} i386/t-vxworks"
1726 i[34567]86-*-cygwin*)
1727 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"
1728 xm_file=i386/xm-cygwin.h
1729 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1730 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1731 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1732 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1733 c_target_objs="${c_target_objs} msformat-c.o"
1734 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1735 if test x$enable_threads = xyes; then
1738 default_use_cxa_atexit=yes
1743 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"
1744 xm_file=i386/xm-cygwin.h
1745 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1746 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1747 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1748 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1749 c_target_objs="${c_target_objs} msformat-c.o"
1750 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1751 if test x$enable_threads = xyes; then
1754 default_use_cxa_atexit=yes
1756 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1758 i[34567]86-*-mingw* | x86_64-*-mingw*)
1759 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1760 xm_file=i386/xm-mingw32.h
1761 c_target_objs="${c_target_objs} winnt-c.o"
1762 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1763 target_has_targetcm="yes"
1765 x86_64-*-* | *-w64-*)
1771 if test x$enable_threads = xposix ; then
1772 tm_file="${tm_file} i386/mingw-pthread.h"
1774 tm_file="${tm_file} i386/mingw32.h"
1775 # This makes the logic if mingw's or the w64 feature set has to be used
1778 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1779 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1780 tm_file="${tm_file} i386/mingw-w64.h"
1781 if test x$enable_targets = xall; then
1782 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1783 if test x$with_cpu = x; then
1784 if test x$with_cpu_64 = x; then
1788 case " $x86_cpus $x86_archs $x86_64_archs " in
1792 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1793 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1803 tm_file="${tm_file} i386/mingw-stdint.h"
1804 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1807 tmake_file="${tmake_file} i386/t-mingw-w64"
1810 tmake_file="${tmake_file} i386/t-mingw-w32"
1813 native_system_header_dir=/mingw/include
1814 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1815 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1818 extra_options="${extra_options} i386/mingw-w64.opt"
1823 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1824 c_target_objs="${c_target_objs} msformat-c.o"
1825 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1828 default_use_cxa_atexit=yes
1830 case ${enable_threads} in
1840 tm_file="${tm_file} i386/crtdll.h"
1842 *mingw32msv* | *mingw*)
1847 tmake_file="${tmake_file} i386/t-x86_64-elf"
1848 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
1851 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1852 tmake_file="ia64/t-ia64"
1853 target_cpu_default="0"
1854 if test x$gas = xyes
1856 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1858 if test x$gnu_ld = xyes
1860 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1864 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1865 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1866 tmake_file="${tmake_file} ia64/t-ia64"
1869 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1870 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1871 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1874 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1875 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1876 target_cpu_default="MASK_GNU_AS"
1877 case x$enable_threads in
1883 c_target_objs="ia64-c.o"
1884 cxx_target_objs="ia64-c.o"
1885 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1887 tm_file="${tm_file} hpux-stdint.h"
1890 tm_file="${tm_file} ia64/hpux-unix2003.h"
1895 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1896 tmake_file="${tmake_file} ia64/t-ia64"
1897 target_cpu_default="0"
1898 if test x$gas = xyes
1900 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1902 extra_options="${extra_options} ia64/vms.opt"
1905 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1906 out_file=iq2000/iq2000.c
1907 md_file=iq2000/iq2000.md
1910 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
1911 tmake_file="${tmake_file} lm32/t-lm32"
1914 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1915 tmake_file="${tmake_file} lm32/t-lm32"
1916 tmake_file="${tmake_file} lm32/t-rtems"
1919 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1920 tmake_file="${tmake_file} lm32/t-lm32"
1923 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1926 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1929 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1930 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1932 if test x$enable_threads = xyes; then
1937 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1938 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1940 if test x$enable_threads = xyes; then
1944 m68k-*-elf* | fido-*-elf*)
1947 # Check that $with_cpu makes sense.
1952 echo "Cannot accept --with-cpu=$with_cpu"
1959 default_m68k_cpu=68020
1963 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"
1964 tm_defines="${tm_defines} MOTOROLA=1"
1965 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1966 # Add multilibs for targets other than fido.
1971 tmake_file="$tmake_file m68k/t-mlibs"
1976 default_m68k_cpu=68020
1978 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
1979 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1980 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
1983 default_m68k_cpu=68020
1985 # needed to unconfuse gdb
1986 tm_defines="${tm_defines} OBSD_OLD_GAS"
1987 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1988 extra_options="${extra_options} openbsd.opt"
1989 tmake_file="t-openbsd m68k/t-openbsd"
1990 # we need collect2 until our bug is fixed...
1993 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
1994 # with uClibc, using the new GNU/Linux-style
1996 default_m68k_cpu=68020
1998 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"
1999 extra_options="${extra_options} m68k/uclinux.opt"
2000 tm_defines="${tm_defines} MOTOROLA=1"
2001 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2003 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2004 # with ELF format using glibc 2
2005 # aka the GNU/Linux C library 6.
2006 default_m68k_cpu=68020
2008 with_arch=${with_arch:-m68k}
2009 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2010 extra_options="${extra_options} m68k/ieee.opt"
2011 tm_defines="${tm_defines} MOTOROLA=1"
2012 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2015 default_m68k_cpu=68020
2017 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2018 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"
2019 tm_defines="${tm_defines} MOTOROLA=1"
2022 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2023 tmake_file=mcore/t-mcore
2029 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2032 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2035 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2036 tm_file="${tm_file} glibc-stdint.h"
2037 c_target_objs="${c_target_objs} microblaze-c.o"
2038 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2039 tmake_file="${tmake_file} microblaze/t-microblaze"
2040 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2042 microblaze*-*-rtems*)
2045 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2048 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2051 tm_file="${tm_file} dbxelf.h"
2052 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2053 c_target_objs="${c_target_objs} microblaze-c.o"
2054 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2055 tmake_file="${tmake_file} microblaze/t-microblaze"
2056 tmake_file="${tmake_file} microblaze/t-rtems"
2061 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2064 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2067 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2068 c_target_objs="${c_target_objs} microblaze-c.o"
2069 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2070 tmake_file="${tmake_file} microblaze/t-microblaze"
2073 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2074 case "x${enable_multilib}" in
2076 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2077 *) echo "Unknown value for enable_multilib"; exit 1
2079 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2082 # Force .init_array support. The configure script cannot always
2083 # automatically detect that GAS supports it, yet we require it.
2084 gcc_cv_initfini_array=yes
2086 riscv*-*-elf* | riscv*-*-rtems*)
2087 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2088 case "x${enable_multilib}" in
2090 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2091 *) echo "Unknown value for enable_multilib"; exit 1
2093 tmake_file="${tmake_file} riscv/t-riscv"
2096 # Force .init_array support. The configure script cannot always
2097 # automatically detect that GAS supports it, yet we require it.
2098 gcc_cv_initfini_array=yes
2101 tm_file="${tm_file} rtems.h riscv/rtems.h"
2106 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2107 tmake_file="${tmake_file} riscv/t-riscv"
2110 # Force .init_array support. The configure script cannot always
2111 # automatically detect that GAS supports it, yet we require it.
2112 gcc_cv_initfini_array=yes
2114 mips*-*-netbsd*) # NetBSD/mips, either endian.
2115 target_cpu_default="MASK_ABICALLS"
2116 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2117 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2120 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"
2121 extra_options="${extra_options} linux-android.opt"
2122 tmake_file="${tmake_file} mips/t-img-linux"
2123 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2124 with_arch_32="mips32r6"
2125 with_arch_64="mips64r6"
2130 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"
2131 extra_options="${extra_options} linux-android.opt"
2132 tmake_file="${tmake_file} mips/t-mti-linux"
2133 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2134 with_arch_32="mips32r2"
2135 with_arch_64="mips64r2"
2139 mips*-*-linux*) # Linux MIPS, either endian.
2140 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"
2141 extra_options="${extra_options} linux-android.opt"
2144 default_mips_arch=mips32r6
2147 default_mips_arch=mips32r2
2150 default_mips_arch=mips32
2152 mips64el-st-linux-gnu)
2153 default_mips_abi=n32
2154 tm_file="${tm_file} mips/st.h"
2155 tmake_file="${tmake_file} mips/t-st"
2156 enable_mips_multilibs="yes"
2158 mips64octeon*-*-linux*)
2159 default_mips_abi=n32
2160 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2161 target_cpu_default=MASK_SOFT_FLOAT_ABI
2162 enable_mips_multilibs="yes"
2164 mipsisa64r6*-*-linux*)
2165 default_mips_abi=n32
2166 default_mips_arch=mips64r6
2167 enable_mips_multilibs="yes"
2169 mipsisa64r2*-*-linux*)
2170 default_mips_abi=n32
2171 default_mips_arch=mips64r2
2172 enable_mips_multilibs="yes"
2174 mips64*-*-linux* | mipsisa64*-*-linux*)
2175 default_mips_abi=n32
2176 enable_mips_multilibs="yes"
2179 if test x$enable_targets = xall; then
2180 enable_mips_multilibs="yes"
2182 if test x$enable_mips_multilibs = xyes; then
2183 tmake_file="${tmake_file} mips/t-linux64"
2187 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2188 tmake_file="mips/t-mti-elf"
2189 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2190 with_arch_32="mips32r2"
2191 with_arch_64="mips64r2"
2194 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2195 tmake_file="mips/t-img-elf"
2196 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2197 with_arch_32="mips32r6"
2198 with_arch_64="mips64r6"
2201 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2202 tmake_file="mips/t-sde"
2203 extra_options="${extra_options} mips/sde.opt"
2204 case "${with_newlib}" in
2206 # newlib / libgloss.
2209 # MIPS toolkit libraries.
2210 tm_file="$tm_file mips/sdemtk.h"
2211 tmake_file="$tmake_file mips/t-sdemtk"
2212 case ${enable_threads} in
2214 thread_file='mipssde'
2221 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2224 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2227 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2230 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2233 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2236 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2240 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2241 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2242 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2243 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2244 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2245 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2246 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2247 tmake_file="mips/t-isa3264"
2250 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2253 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2256 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2259 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2262 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2265 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2269 mipsisa32*-*-elfoabi*)
2270 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2271 tm_file="${tm_file} mips/elfoabi.h"
2273 mipsisa64*-*-elfoabi*)
2274 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2275 tm_file="${tm_file} mips/elfoabi.h"
2278 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2282 mipsisa64sr71k-*-elf*)
2283 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2284 tmake_file=mips/t-sr71k
2285 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2287 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2288 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2289 tmake_file="mips/t-elf mips/t-sb1"
2290 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2292 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2293 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2294 tmake_file="mips/t-elf"
2296 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2297 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2298 tmake_file="mips/t-elf"
2299 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2301 mips64-*-elf* | mips64el-*-elf*)
2302 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2303 tmake_file="mips/t-elf"
2304 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2306 mips64vr-*-elf* | mips64vrel-*-elf*)
2307 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2308 tmake_file=mips/t-vr
2309 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2311 mips64orion-*-elf* | mips64orionel-*-elf*)
2312 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2313 tmake_file="mips/t-elf"
2314 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2317 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2318 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2321 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2322 tmake_file="${tmake_file} mips/t-vxworks"
2324 mipstx39-*-elf* | mipstx39el-*-elf*)
2325 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2326 tmake_file="mips/t-r3900"
2328 mmix-knuth-mmixware)
2329 tm_file="${tm_file} newlib-stdint.h"
2333 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2334 if test x$stabs = xyes
2336 tm_file="${tm_file} dbx.h"
2342 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2343 c_target_objs="msp430-c.o"
2344 cxx_target_objs="msp430-c.o"
2345 tmake_file="${tmake_file} msp430/t-msp430"
2346 extra_gcc_objs="driver-msp430.o"
2349 target_cpu_default="0"
2350 tm_defines="${tm_defines}"
2355 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2356 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2361 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2362 tmake_file="nds32/t-nds32 nds32/t-elf"
2365 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2366 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2370 # Handle --enable-default-relax setting.
2371 if test x${enable_default_relax} = xyes; then
2372 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2374 # Handle --with-ext-dsp
2375 if test x${with_ext_dsp} = xyes; then
2376 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2380 tm_file="elfos.h ${tm_file}"
2381 tmake_file="${tmake_file} nios2/t-nios2"
2384 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2387 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2388 extra_options="${extra_options} nios2/elf.opt"
2391 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2392 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2397 tm_file="${tm_file} newlib-stdint.h"
2399 tmake_file="nvptx/t-nvptx"
2400 if test x$enable_as_accelerator = xyes; then
2401 extra_programs="${extra_programs} mkoffload\$(exeext)"
2402 tm_file="${tm_file} nvptx/offload.h"
2406 tm_file="${tm_file} newlib-stdint.h"
2409 # port not yet contributed
2410 #powerpc-*-openbsd*)
2411 # tmake_file="${tmake_file} rs6000/t-fprules"
2415 extra_options="${extra_options} rs6000/darwin.opt"
2417 *-darwin1[0-9]* | *-darwin[8-9]*)
2418 tmake_file="${tmake_file} rs6000/t-darwin8"
2419 tm_file="${tm_file} rs6000/darwin8.h"
2422 tm_file="${tm_file} rs6000/darwin7.h"
2427 tmake_file="${tmake_file} t-slibgcc"
2428 extra_headers=altivec.h
2430 powerpc64-*-darwin*)
2431 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2432 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2433 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2434 extra_headers=altivec.h
2436 powerpc*-*-freebsd*)
2437 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2438 extra_options="${extra_options} rs6000/sysv4.opt"
2439 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2442 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2443 tmake_file="${tmake_file} rs6000/t-freebsd64"
2444 extra_options="${extra_options} rs6000/linux64.opt"
2447 tm_file="${tm_file} rs6000/freebsd.h"
2452 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2453 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2454 tmake_file="${tmake_file} rs6000/t-netbsd"
2455 extra_options="${extra_options} rs6000/sysv4.opt"
2458 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h ${cpu_type}/sysv4.h ${cpu_type}/eabi.h ${cpu_type}/e500.h ${cpu_type}/eabispe.h"
2459 extra_options="${extra_options} ${cpu_type}/sysv4.opt"
2460 tmake_file="${cpu_type}/t-spe ${cpu_type}/t-ppccomm"
2463 powerpc-*-eabisimaltivec*)
2464 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h"
2465 extra_options="${extra_options} rs6000/sysv4.opt"
2466 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2470 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
2471 extra_options="${extra_options} rs6000/sysv4.opt"
2472 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2476 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2477 extra_options="${extra_options} rs6000/sysv4.opt"
2478 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2480 powerpc-*-eabialtivec*)
2481 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
2482 extra_options="${extra_options} rs6000/sysv4.opt"
2483 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2487 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h"
2488 extra_options="${extra_options} rs6000/sysv4.opt"
2489 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2492 powerpc-*-rtems*spe*)
2493 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h powerpcspe/sysv4.h powerpcspe/eabi.h powerpcspe/e500.h powerpcspe/rtems.h rtems.h"
2494 extra_options="${extra_options} powerpcspe/sysv4.opt"
2495 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-rtems powerpcspe/t-ppccomm"
2498 tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/rtems.h rtems.h"
2499 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2500 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2502 powerpc*-*-linux*spe*)
2503 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h powerpcspe/sysv4.h"
2504 extra_options="${extra_options} powerpcspe/sysv4.opt"
2505 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm"
2506 extra_objs="$extra_objs powerpcspe-linux.o"
2508 tm_file="${tm_file} powerpcspe/linux.h glibc-stdint.h"
2509 tmake_file="${tmake_file} powerpcspe/t-ppcos powerpcspe/t-linux"
2510 tm_file="${tm_file} powerpcspe/linuxspe.h powerpcspe/e500.h"
2513 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2514 extra_options="${extra_options} rs6000/sysv4.opt"
2515 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2516 extra_objs="$extra_objs rs6000-linux.o"
2519 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2521 case ${target}:${with_cpu} in
2522 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2524 maybe_biarch=${cpu_is_64bit}
2525 case ${enable_targets} in
2526 *powerpc64*) maybe_biarch=yes ;;
2527 all) maybe_biarch=yes ;;
2530 powerpc64*-*-linux*spe* | powerpc*-*-linux*paired*)
2531 echo "*** Configuration ${target} not supported" 1>&2
2534 powerpc*-*-linux*spe*)
2538 case ${target}:${enable_targets}:${maybe_biarch} in
2539 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2540 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2541 | powerpcle-*:*powerpc64le*:yes)
2542 if test x$cpu_is_64bit = xyes; then
2543 tm_file="${tm_file} rs6000/default64.h"
2545 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2546 tmake_file="$tmake_file rs6000/t-linux64"
2549 tmake_file="$tmake_file rs6000/t-linux64le"
2550 case ${enable_targets} in
2551 all | *powerpc64-* | *powerpc-*)
2552 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2555 case ${enable_targets} in
2556 all | *powerpc64le-* | *powerpcle-*)
2557 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2560 extra_options="${extra_options} rs6000/linux64.opt"
2563 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2564 extra_options="${extra_options} rs6000/linux64.opt"
2565 tmake_file="${tmake_file} rs6000/t-linux"
2568 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2569 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2573 powerpc*-*-linux*ppc476*)
2574 tm_file="${tm_file} rs6000/476.h"
2575 extra_options="${extra_options} rs6000/476.opt" ;;
2576 powerpc*-*-linux*altivec*)
2577 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2578 powerpc*-*-linux*spe*)
2579 tm_file="${tm_file} ${cpu_type}/linuxspe.h ${cpu_type}/e500.h" ;;
2583 enable_secureplt=yes ;;
2585 if test x${enable_secureplt} = xyes; then
2586 tm_file="rs6000/secureplt.h ${tm_file}"
2589 powerpc-wrs-vxworks*spe)
2590 tm_file="${tm_file} elfos.h freebsd-spec.h powerpcspe/sysv4.h"
2591 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm powerpcspe/t-vxworks"
2592 extra_options="${extra_options} powerpcspe/sysv4.opt"
2593 extra_headers=ppc-asm.h
2594 tm_file="${tm_file} vx-common.h vxworks.h powerpcspe/vxworks.h powerpcspe/e500.h"
2596 powerpc-wrs-vxworks*)
2597 tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2598 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2599 extra_options="${extra_options} rs6000/sysv4.opt"
2600 extra_headers=ppc-asm.h
2603 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2604 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2607 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
2608 tmake_file="${tmake_file} rs6000/t-vxworksae"
2611 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
2617 tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2618 tmake_file="t-lynx rs6000/t-lynx"
2619 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2625 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2626 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2627 extra_options="${extra_options} rs6000/sysv4.opt"
2629 powerpcle-*-eabisim*)
2630 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h"
2631 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2632 extra_options="${extra_options} rs6000/sysv4.opt"
2636 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h"
2637 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2638 extra_options="${extra_options} rs6000/sysv4.opt"
2641 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2642 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2643 tmake_file="rs6000/t-aix43 t-slibgcc"
2644 extra_options="${extra_options} rs6000/aix64.opt"
2647 use_gcc_stdint=provide
2650 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2651 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2652 extra_options="${extra_options} rs6000/aix64.opt"
2653 tmake_file="rs6000/t-aix43 t-slibgcc"
2659 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2660 tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2661 tmake_file="rs6000/t-aix52 t-slibgcc"
2662 extra_options="${extra_options} rs6000/aix64.opt"
2668 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2669 tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2670 tmake_file="rs6000/t-aix52 t-slibgcc"
2671 extra_options="${extra_options} rs6000/aix64.opt"
2675 extra_headers=altivec.h
2677 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
2678 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2679 tmake_file="rs6000/t-aix52 t-slibgcc"
2680 extra_options="${extra_options} rs6000/aix64.opt"
2684 extra_headers=altivec.h
2685 default_use_cxa_atexit=yes
2687 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
2688 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
2689 tmake_file="rs6000/t-aix52 t-slibgcc"
2690 extra_options="${extra_options} rs6000/aix64.opt"
2694 extra_headers="altivec.h amo.h"
2695 default_use_cxa_atexit=yes
2697 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2698 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
2699 tmake_file="rs6000/t-aix52 t-slibgcc"
2700 extra_options="${extra_options} rs6000/aix64.opt"
2704 extra_headers="altivec.h amo.h"
2705 default_use_cxa_atexit=yes
2708 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2709 target_has_targetm_common=no
2710 c_target_objs="rl78-c.o"
2711 cxx_target_objs="rl78-c.o"
2712 tmake_file="${tmake_file} rl78/t-rl78"
2715 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2716 tmake_file="${tmake_file} rx/t-rx"
2719 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2720 c_target_objs="${c_target_objs} s390-c.o"
2721 cxx_target_objs="${cxx_target_objs} s390-c.o"
2722 if test x$enable_targets = xall; then
2723 tmake_file="${tmake_file} s390/t-linux64"
2725 tmake_file="${tmake_file} s390/t-s390"
2728 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2729 tm_p_file="linux-protos.h s390/s390-protos.h"
2730 c_target_objs="${c_target_objs} s390-c.o"
2731 cxx_target_objs="${cxx_target_objs} s390-c.o"
2732 md_file=s390/s390.md
2733 extra_modes=s390/s390-modes.def
2734 out_file=s390/s390.c
2735 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
2738 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2739 tm_p_file=s390/s390-protos.h
2740 c_target_objs="${c_target_objs} s390-c.o"
2741 cxx_target_objs="${cxx_target_objs} s390-c.o"
2742 md_file=s390/s390.md
2743 extra_modes=s390/s390-modes.def
2744 out_file=s390/s390.c
2746 extra_options="${extra_options} s390/tpf.opt"
2747 tmake_file="${tmake_file} s390/t-s390"
2749 sh-*-elf* | sh[12346l]*-*-elf* | \
2750 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2751 sh-*-netbsdelf* | shl*-*-netbsdelf*)
2752 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2753 if test x${with_endian} = x; then
2755 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2756 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2757 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2758 shl* | sh*-*-linux* | \
2759 sh-superh-elf) with_endian=little,big ;;
2760 sh[1234]*-*-*) with_endian=big ;;
2761 *) with_endian=big,little ;;
2764 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2765 # First word : the default endian.
2766 # Second word: the secondary endian (optional).
2767 case ${with_endian} in
2768 big) TM_ENDIAN_CONFIG=mb ;;
2769 little) TM_ENDIAN_CONFIG=ml ;;
2770 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2771 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2772 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2774 case ${with_endian} in
2775 little*) tm_file="sh/little.h ${tm_file}" ;;
2777 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2779 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2780 if test x$enable_fdpic = xyes; then
2781 tm_defines="$tm_defines FDPIC_DEFAULT=1"
2783 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2785 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
2786 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2789 sh*-superh-elf) if test x$with_libgloss != xno; then
2791 tm_file="${tm_file} sh/newlib.h"
2793 tm_file="${tm_file} sh/embed-elf.h"
2794 tm_file="${tm_file} sh/superh.h"
2795 extra_options="${extra_options} sh/superh.opt" ;;
2796 *) if test x$with_newlib = xyes \
2797 && test x$with_libgloss = xyes; then
2798 tm_file="${tm_file} sh/newlib.h"
2800 tm_file="${tm_file} sh/embed-elf.h" ;;
2806 tm_file="${tm_file} newlib-stdint.h"
2809 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2810 case `echo ${target} | sed 's/e[lb]-/-/'` in
2811 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2812 sh4a_single*) sh_cpu_target=sh4a-single ;;
2813 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2814 sh4al) sh_cpu_target=sh4al ;;
2815 sh4a*) sh_cpu_target=sh4a ;;
2816 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2817 sh4_single*) sh_cpu_target=sh4-single ;;
2818 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2819 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2820 sh3e*) sh_cpu_target=sh3e ;;
2821 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2822 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2823 sh2a_single*) sh_cpu_target=sh2a-single ;;
2824 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2825 sh2a*) sh_cpu_target=sh2a ;;
2826 sh2e*) sh_cpu_target=sh2e ;;
2827 sh2*) sh_cpu_target=sh2 ;;
2828 *) sh_cpu_target=sh1 ;;
2830 # did the user say --without-fp ?
2831 if test x$with_fp = xno; then
2832 case ${sh_cpu_target} in
2834 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2835 sh4*) sh_cpu_target=sh4-nofpu ;;
2836 sh3*) sh_cpu_target=sh3 ;;
2837 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2838 sh2*) sh_cpu_target=sh2 ;;
2839 *) echo --without-fp not available for $target: ignored
2841 tm_defines="$tm_defines STRICT_NOFPU=1"
2843 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2844 case $sh_cpu_default in
2845 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2846 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2847 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2848 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2849 "") sh_cpu_default=${sh_cpu_target} ;;
2850 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2852 sh_multilibs=${with_multilib_list}
2853 if test "$sh_multilibs" = "default" ; then
2855 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2856 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2857 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2858 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2859 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2861 if test x$with_fp = xno; then
2862 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`"
2865 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2866 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2867 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2868 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2869 for sh_multilib in ${sh_multilibs}; do
2870 case ${sh_multilib} in
2871 m1 | m2 | m2e | m3 | m3e | \
2872 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2873 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2874 m2a | m2a-single | m2a-single-only | m2a-nofpu)
2875 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2876 # It is passed to MULTIILIB_OPTIONS verbatim.
2877 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2878 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2880 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2881 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2882 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2884 echo "with_multilib_list=${sh_multilib} not supported."
2889 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2890 if test x${enable_incomplete_targets} = xyes ; then
2891 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
2893 tm_file="$tm_file ./sysroot-suffix.h"
2894 tmake_file="$tmake_file t-sysroot-suffix"
2897 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2898 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2901 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2902 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2905 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2908 tmake_file="sparc/t-sparc sparc/t-leon"
2911 tmake_file="sparc/t-sparc sparc/t-leon3"
2914 tmake_file="sparc/t-sparc sparc/t-elf"
2919 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2920 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2923 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2924 extra_options="${extra_options} sparc/long-double-switch.opt"
2927 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2930 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2933 tmake_file="${tmake_file} sparc/t-sparc"
2936 if test x$enable_targets = xall; then
2937 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2938 tmake_file="${tmake_file} sparc/t-linux64"
2940 tm_file="${tm_file} sparc/linux.h"
2941 tmake_file="${tmake_file} sparc/t-linux"
2945 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
2946 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2947 extra_options="${extra_options} sparc/long-double-switch.opt"
2948 tmake_file="${tmake_file} sparc/t-sparc"
2951 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2953 sparc64-*-* | sparcv9-*-*)
2954 tm_file="sparc/default64.h ${tm_file}"
2957 test x$with_cpu != x || with_cpu=v9
2960 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2963 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2964 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2967 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2968 extra_options="${extra_options}"
2969 tmake_file="${tmake_file} sparc/t-sparc"
2972 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2973 extra_options="${extra_options}"
2974 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2977 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"
2978 extra_options="${extra_options} sparc/long-double-switch.opt"
2979 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2981 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2982 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2983 extra_options="${extra_options} sparc/long-double-switch.opt"
2984 case "x$with_cpu" in
2986 x) with_cpu=ultrasparc ;;
2987 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2989 tmake_file="${tmake_file} sparc/t-sparc"
2992 tm_file="sparc/biarch64.h ${tm_file}"
2993 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
2994 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2995 extra_options="${extra_options} sparc/long-double-switch.opt"
2996 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2999 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3000 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3001 extra_options="${extra_options} openbsd.opt"
3002 extra_options="${extra_options}"
3005 tmake_file="${tmake_file} sparc/t-sparc"
3008 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
3009 tmake_file="spu/t-spu-elf"
3010 native_system_header_dir=/include
3011 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
3012 extra_modes=spu/spu-modes.def
3013 c_target_objs="${c_target_objs} spu-c.o"
3014 cxx_target_objs="${cxx_target_objs} spu-c.o"
3017 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3018 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3019 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3023 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3024 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3025 tm_file="${tm_file} ./sysroot-suffix.h"
3026 tmake_file="t-sysroot-suffix t-slibgcc"
3027 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3031 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3032 tmake_file="${tmake_file} tilegx/t-tilegx"
3033 extra_objs="${extra_objs} mul-tables.o"
3034 c_target_objs="${c_target_objs} tilegx-c.o"
3035 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3036 extra_headers="feedback.h"
3039 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3044 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3045 tmake_file="${tmake_file} tilepro/t-tilepro"
3046 extra_objs="${extra_objs} mul-tables.o"
3047 c_target_objs="${c_target_objs} tilepro-c.o"
3048 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3049 extra_headers="feedback.h"
3052 target_cpu_default="TARGET_CPU_generic"
3053 tm_file="dbxelf.h elfos.h v850/v850.h"
3054 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3055 tmake_file="${tmake_file} v850/t-v850"
3056 tmake_file="${tmake_file} v850/t-rtems"
3058 c_target_objs="v850-c.o"
3059 cxx_target_objs="v850-c.o"
3064 target_cpu_default="TARGET_CPU_v850e3v5"
3067 target_cpu_default="TARGET_CPU_v850e2v3"
3070 target_cpu_default="TARGET_CPU_v850e2"
3072 v850e1-*-* | v850es-*-*)
3073 target_cpu_default="TARGET_CPU_v850e1"
3076 target_cpu_default="TARGET_CPU_v850e"
3079 target_cpu_default="TARGET_CPU_generic"
3082 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3083 if test x$stabs = xyes
3085 tm_file="${tm_file} dbx.h"
3088 c_target_objs="v850-c.o"
3089 cxx_target_objs="v850-c.o"
3093 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3094 extra_options="${extra_options} vax/elf.opt"
3097 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3098 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3099 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3102 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3103 extra_options="${extra_options} openbsd.opt"
3107 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3108 tmake_file="visium/t-visium visium/t-crtstuff"
3111 # For historical reasons, the target files omit the 'x'.
3112 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3113 tm_p_file=stormy16/stormy16-protos.h
3114 md_file=stormy16/stormy16.md
3115 out_file=stormy16/stormy16.c
3116 extra_options=stormy16/stormy16.opt
3117 tmake_file="stormy16/t-stormy16"
3120 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3121 extra_options="${extra_options} xtensa/elf.opt"
3124 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3125 tmake_file="${tmake_file} xtensa/t-xtensa"
3128 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3129 tmake_file="${tmake_file} xtensa/t-xtensa"
3130 extra_options="${extra_options} xtensa/uclinux.opt"
3133 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3138 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3139 c_target_objs="m32c-pragma.o"
3140 cxx_target_objs="m32c-pragma.o"
3143 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3144 c_target_objs="m32c-pragma.o"
3145 cxx_target_objs="m32c-pragma.o"
3148 echo "*** Configuration ${target} not supported" 1>&2
3154 i[34567]86-*-linux* | x86_64-*-linux*)
3155 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3157 i[34567]86-*-* | x86_64-*-*)
3158 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3160 powerpc*-*-* | rs6000-*-*)
3161 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3167 tmake_file="${tmake_file} t-musl"
3170 tmake_file="${tmake_file} t-uclibc"
3174 # Assume the existence of indirect function support and allow the use of the
3175 # resolver attribute.
3177 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3181 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3182 default_gnu_indirect_function=yes
3188 # Build mkoffload tool
3190 *-intelmic-* | *-intelmicemul-*)
3191 tmake_file="${tmake_file} i386/t-intelmic"
3192 tm_file="${tm_file} i386/intelmic-offload.h"
3196 if [ "$target_has_targetcm" = "no" ]; then
3197 c_target_objs="$c_target_objs default-c.o"
3198 cxx_target_objs="$cxx_target_objs default-c.o"
3201 if [ "$common_out_file" = "" ]; then
3202 if [ "$target_has_targetm_common" = "yes" ]; then
3203 common_out_file="$cpu_type/$cpu_type-common.c"
3205 common_out_file="default-common.c"
3209 # Support for --with-cpu and related options (and a few unrelated options,
3213 echo "--with-cpu must be passed a value" 1>&2
3218 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3219 # to generic if there is no processor scheduler model for the target.
3222 arch_without_sse2=no
3223 arch_without_64bit=no
3226 if test $fbsd_major -ge 6; then
3232 arch_without_sse2=yes
3233 arch_without_64bit=yes
3238 arch_without_sse2=yes
3239 arch_without_64bit=yes
3244 arch_without_sse2=yes
3245 arch_without_64bit=yes
3250 arch_without_sse2=yes
3251 arch_without_64bit=yes
3254 arch_without_sse2=yes
3255 arch_without_64bit=yes
3256 case ${target_noncanonical} in
3269 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3279 i686-*-* | i786-*-*)
3280 case ${target_noncanonical} in
3309 amdfam10-*|barcelona-*)
3313 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3317 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3321 athlon_xp-*|athlon_mp-*|athlon_4-*)
3324 arch_without_sse2=yes
3325 arch_without_64bit=yes
3327 athlon_tbird-*|athlon-*)
3330 arch_without_sse2=yes
3335 arch_without_sse2=yes
3340 arch_without_sse2=yes
3342 pentium3-*|pentium3m-*)
3345 arch_without_sse2=yes
3347 pentium4-*|pentium4m-*)
3386 arch_without_sse2=yes
3391 arch_without_sse2=yes
3392 arch_without_64bit=yes
3397 case ${target_noncanonical} in
3426 amdfam10-*|barcelona-*)
3430 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3434 k8-*|opteron-*|athlon_64-*)
3466 # If there is no $with_cpu option, try to infer one from ${target}.
3467 # This block sets nothing except for with_cpu.
3468 if test x$with_cpu = x ; then
3470 i[34567]86-*-elfiamcu)
3473 i[34567]86-*-*|x86_64-*-*)
3491 frv-*-*linux* | frv400-*-*linux*)
3498 case "$with_arch" in
3500 with_cpu=${default_cf_cpu}
3503 with_cpu=m${default_m68k_cpu}
3508 # For SPE, start with 8540, then upgrade to 8548 if
3509 # --enable-e500-double was requested explicitly or if we were
3510 # configured for e500v2.
3512 if test x$enable_e500_double = xyes; then
3515 case ${target_noncanonical} in
3533 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3542 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3544 i[34567]86-*-*|x86_64-*-*)
3545 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3546 if test x$with_cpu_32 = x; then
3547 with_cpu_32=$with_cpu
3549 if test x$with_cpu_64 = x; then
3550 with_cpu_64=$with_cpu
3558 # Support for --with-arch and related options (and a few unrelated options,
3560 case ${with_arch} in
3562 echo "--with-arch must be passed a value" 1>&2
3567 # If there is no $with_arch option, try to infer one from ${target}.
3568 # This block sets nothing except for with_arch.
3569 if test x$with_arch = x ; then
3571 i[34567]86-*-darwin*|x86_64-*-darwin*)
3572 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3573 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3575 i[34567]86-*-elfiamcu)
3579 # --with-fpmath sets the default ISA to SSE2, which is the same
3580 # ISA supported by Pentium 4.
3581 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3590 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3598 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3600 i[34567]86-*-darwin*|x86_64-*-darwin*)
3601 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3602 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3604 i[34567]86-*-*|x86_64-*-*)
3605 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3606 if test x$with_arch_32 = x; then
3607 with_arch_32=$with_arch
3609 if test x$with_arch_64 = x; then
3610 if test $arch_without_64bit = yes; then
3611 # Set the default 64bit arch to x86-64 if the default arch
3612 # doesn't support 64bit.
3615 with_arch_64=$with_arch
3619 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3620 # Set the default 64bit arch to x86-64 if the default arch
3621 # doesn't support 64bit and we need 64bit ISA.
3622 with_arch_32=$with_arch
3630 # Infer a default setting for --with-float.
3631 if test x$with_float = x; then
3633 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3634 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3635 # comply with IEEE 754.
3641 # Infer a default setting for --with-fpu.
3642 if test x$with_fpu = x; then
3644 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3645 # The R5900 FPU only supports single precision.
3651 # Support --with-fpmath.
3652 if test x$with_fpmath != x; then
3654 i[34567]86-*-* | x86_64-*-*)
3655 case ${with_fpmath} in
3657 tm_file="${tm_file} i386/avxmath.h"
3660 tm_file="${tm_file} i386/ssemath.h"
3663 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3669 echo "--with-fpmath isn't supported for $target." 1>&2
3675 # Similarly for --with-schedule.
3676 if test x$with_schedule = x; then
3679 # Override default PA8000 scheduling model.
3680 with_schedule=7100LC
3685 # Infer a default setting for --with-llsc.
3686 if test x$with_llsc = x; then
3688 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3689 # The R5900 doesn't support LL(D) and SC(D).
3693 # The kernel emulates LL and SC where necessary.
3699 # Validate and mark as valid any --with options supported
3700 # by this target. In order to use a particular --with option
3701 # you must list it in supported_defaults; validating the value
3702 # is optional. This case statement should set nothing besides
3703 # supported_defaults.
3708 supported_defaults="abi cpu arch"
3709 for which in cpu arch; do
3711 eval "val=\$with_$which"
3712 base_val=`echo $val | sed -e 's/\+.*//'`
3713 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
3715 if [ $which = arch ]; then
3716 def=aarch64-arches.def
3717 pattern=AARCH64_ARCH
3719 def=aarch64-cores.def
3720 pattern=AARCH64_CORE
3723 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3725 # Find the base CPU or ARCH id in aarch64-cores.def or
3726 # aarch64-arches.def
3727 if [ x"$base_val" = x ] \
3728 || grep "^$pattern(\"$base_val\"," \
3729 ${srcdir}/config/aarch64/$def \
3732 if [ $which = arch ]; then
3733 base_id=`grep "^$pattern(\"$base_val\"," \
3734 ${srcdir}/config/aarch64/$def | \
3735 sed -e 's/^[^,]*,[ ]*//' | \
3737 # Extract the architecture flags from aarch64-arches.def
3738 ext_mask=`grep "^$pattern(\"$base_val\"," \
3739 ${srcdir}/config/aarch64/$def | \
3743 base_id=`grep "^$pattern(\"$base_val\"," \
3744 ${srcdir}/config/aarch64/$def | \
3745 sed -e 's/^[^,]*,[ ]*//' | \
3749 while [ x"$ext_val" != x ]
3751 ext_val=`echo $ext_val | sed -e 's/\+//'`
3752 ext=`echo $ext_val | sed -e 's/\+.*//'`
3753 base_ext=`echo $ext | sed -e 's/^no//'`
3755 if [ x"$base_ext" = x ] \
3756 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3757 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3760 ext_canon=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3761 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3762 sed -e 's/^[^,]*,[ ]*//' | \
3764 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3765 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3766 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3767 sed -e 's/,.*$//' | \
3769 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3770 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3771 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*[^,]*,[ ]*//' | \
3772 sed -e 's/,.*$//' | \
3776 if [ $ext = $base_ext ]; then
3778 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
3780 # Removing extension
3781 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
3786 echo "Unknown extension used in --with-$which=$val" 1>&2
3789 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3792 ext_mask="(("$ext_mask") << 6)"
3793 if [ x"$base_id" != x ]; then
3794 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3798 echo "Unknown $which used in --with-$which=$val" 1>&2
3805 supported_defaults="cpu tune"
3806 for which in cpu tune; do
3807 eval "val=\$with_$which"
3810 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3811 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3815 echo "Unknown CPU used in --with-$which=$val" 1>&2
3823 supported_defaults="cpu"
3825 if [ x"$with_cpu" = x ] \
3826 || grep "^ARC_CPU ($with_cpu," \
3827 ${srcdir}/config/arc/arc-cpus.def \
3832 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3838 supported_defaults="arch cpu float tune fpu abi mode tls"
3839 for which in cpu tune arch; do
3840 # See if it matches a supported value
3841 eval "val=\$with_$which"
3842 if [ x"$val" != x ]; then
3843 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3844 -v cmd="chk$which $val" \
3845 ${srcdir}/config/arm/arm-cpus.in`
3846 if [ "$cpu" = "error" ]; then
3847 echo "Unknown target in --with-$which=$val" 1>&2
3851 eval "target_${which}_cname=$new_val"
3852 echo "For $val real value is $new_val"
3857 case "$with_float" in
3859 | soft | hard | softfp)
3863 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3868 # see if --with-fpu matches any of the supported FPUs
3869 if [ x"$with_fpu" != x ] ; then
3870 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3871 -v cmd="chkfpu $with_fpu" \
3872 ${srcdir}/config/arm/arm-cpus.in`
3873 if [ "$fpu" = "error"]
3875 echo "Unknown target in --with-$which=$val" 1>&2
3882 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3886 echo "Unknown ABI used in --with-abi=$with_abi"
3891 case "$with_mode" in
3897 echo "Unknown mode used in --with-mode=$with_mode"
3908 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3913 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3914 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3918 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3919 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3923 # Add extra multilibs
3924 if test "x$with_multilib_list" != x; then
3925 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3926 if test "x${arm_multilibs}" != xdefault ; then
3927 for arm_multilib in ${arm_multilibs}; do
3928 case ${arm_multilib} in
3930 tmake_profile_file="arm/t-multilib"
3933 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3940 if test "x${tmake_profile_file}" != x ; then
3941 # arm/t-aprofile and arm/t-rmprofile are only
3942 # designed to work without any with-cpu,
3943 # with-arch, with-mode, with-fpu or with-float
3945 if test "x$with_arch" != x \
3946 || test "x$with_cpu" != x \
3947 || test "x$with_float" != x \
3948 || test "x$with_fpu" != x \
3949 || test "x$with_mode" != x ; then
3950 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
3953 # But pass the default value for float-abi
3954 # through to the multilib selector
3956 tmake_file="${tmake_file} ${tmake_profile_file}"
3957 TM_MULTILIB_CONFIG="$with_multilib_list"
3960 target_cpu_cname=${target_cpu_cname:-arm6}
3961 with_cpu=${with_cpu:-$target_cpu_cname}
3965 supported_defaults=cpu
3970 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3976 fido-*-* | m68k*-*-*)
3977 supported_defaults="arch cpu"
3978 case "$with_arch" in
3980 m68k_arch_family="$with_arch"
3983 echo "Invalid --with-arch=$with_arch" 1>&2
3988 # We always have a $with_cpu setting here.
3990 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3991 m68k_cpu_ident=$with_cpu
3994 m68k_cpu_ident=m68020
3995 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3998 m68k_cpu_ident=m68020
3999 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4002 # We need the C identifier rather than the string.
4003 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4004 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4005 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4006 ${srcdir}/config/m68k/m68k-devices.def`
4007 if [ x"$m68k_cpu_ident" = x ] ; then
4008 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4011 with_cpu="mcpu=$with_cpu"
4017 supported_defaults="arch schedule"
4019 case "$with_arch" in
4020 "" | 1.0 | 1.1 | 2.0)
4024 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4029 case "$with_schedule" in
4030 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4034 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4040 i[34567]86-*-* | x86_64-*-*)
4041 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4042 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4043 eval "val=\$with_$which"
4044 case " $x86_archs " in
4052 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4061 if test x${val} != x; then
4062 case " $x86_64_archs " in
4067 # Allow $x86_cpus --with-cpu=/--with-tune=
4070 case " $x86_cpus " in
4075 echo "Unknown CPU given in --with-$which=$val." 1>&2
4081 echo "Unknown CPU given in --with-$which=$val." 1>&2
4094 supported_defaults="abi arch tune"
4097 riscv32*) xlen=32 ;;
4098 riscv64*) xlen=64 ;;
4099 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4102 # Infer arch from --with-arch, --target, and --with-abi.
4103 case "${with_arch}" in
4104 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4108 # Infer XLEN, but otherwise assume GC.
4109 case "${with_abi}" in
4110 ilp32e) with_arch="rv32e" ;;
4111 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4112 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4113 *) with_arch="rv${xlen}gc" ;;
4117 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4122 # Make sure --with-abi is valid. If it was not specified,
4123 # pick a default based on the ISA, preferring soft-float
4124 # unless the D extension is present.
4125 case "${with_abi}" in
4126 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4129 case "${with_arch}" in
4130 rv32*d* | rv32g*) with_abi=ilp32d ;;
4131 rv32e*) with_abi=ilp32e ;;
4132 rv32*) with_abi=ilp32 ;;
4133 rv64*d* | rv64g*) with_abi=lp64d ;;
4134 rv64*) with_abi=lp64 ;;
4138 echo "--with-abi=${with_abi} is not supported" 1>&2
4143 # Make sure ABI and ISA are compatible.
4144 case "${with_abi},${with_arch}" in
4145 ilp32,rv32* | ilp32e,rv32e* \
4146 | ilp32f,rv32*f* | ilp32f,rv32g* \
4147 | ilp32d,rv32*d* | ilp32d,rv32g* \
4149 | lp64f,rv64*f* | lp64f,rv64g* \
4150 | lp64d,rv64*d* | lp64d,rv64g*)
4153 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4158 # Handle --with-multilib-list.
4159 if test "x${with_multilib_list}" != xdefault; then
4160 tm_file="${tm_file} riscv/withmultilib.h"
4161 tmake_file="${tmake_file} riscv/t-withmultilib"
4163 case ${with_multilib_list} in
4164 ilp32 | ilp32f | ilp32d \
4165 | lp64 | lp64f | lp64d )
4166 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4169 echo "--with-multilib-list=${with_multilib_list} not supported."
4173 # Define macros to select the default multilib.
4174 case ${with_arch} in
4176 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4179 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4182 echo "unsupported --with-arch for --with-multilib-list"
4187 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4190 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4193 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4196 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4199 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4202 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4205 echo "unsupported --with-abi for --with-multilib"
4212 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"
4214 case ${with_float} in
4219 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4225 "" | single | double)
4229 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4239 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4244 case ${with_fp_32} in
4249 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4254 case ${with_odd_spreg_32} in
4256 with_odd_spreg_32="odd-spreg"
4259 with_odd_spreg_32="no-odd-spreg"
4265 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4271 "" | 32 | o64 | n32 | 64 | eabi)
4275 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4280 case ${with_divide} in
4281 "" | breaks | traps)
4285 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4290 case ${with_llsc} in
4301 echo "Unknown llsc type used in --with-llsc" 1>&2
4306 case ${with_mips_plt} in
4311 with_mips_plt=no-plt
4316 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4321 case ${with_synci} in
4331 echo "Unknown synci type used in --with-synci" 1>&2
4336 case ${with_lxc1_sxc1} in
4338 with_lxc1_sxc1=lxc1-sxc1
4341 with_lxc1_sxc1=no-lxc1-sxc1
4346 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4351 case ${with_madd4} in
4361 echo "Unknown madd4 type used in --with-madd4" 1>&2
4368 supported_defaults="arch cpu nds32_lib float fpu_config"
4370 # process --with-arch
4371 case "${with_arch}" in
4373 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4377 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4380 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4383 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4387 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4392 case "${with_cpu}" in
4396 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4400 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4405 # process --with-nds32-lib
4406 case "${with_nds32_lib}" in
4408 # the default library is newlib
4409 with_nds32_lib=newlib
4410 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4414 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4418 # for the arch=v3f or arch=v3s under mculib toolchain,
4419 # we would like to set -fno-math-errno as default
4420 case "${with_arch}" in
4422 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4428 tm_defines="${tm_defines} TARGET_DEFAULT_TLSDESC_TRAMPOLINE=1"
4433 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4438 # process --with-float
4439 case "${with_float}" in
4444 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4449 # process --with-config-fpu
4450 case "${with_config_fpu}" in
4455 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4463 supported_defaults="arch"
4464 case "$with_arch" in
4469 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4475 powerpc*-*-* | rs6000-*-*)
4476 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4478 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4479 eval "val=\$with_$which"
4481 default32 | default64)
4486 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4490 with_which="with_$which"
4494 tm_defines="${tm_defines} CONFIG_PPC405CR"
4495 eval "with_$which=405"
4497 "" | common | native \
4498 | power[3456789] | power5+ | power6x \
4499 | powerpc | powerpc64 | powerpc64le \
4501 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4502 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4503 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4504 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4505 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4509 echo "Unknown cpu used in --with-$which=$val." 1>&2
4516 "" | elfv1 | elfv2 )
4520 echo "Unknown ABI used in --with-abi=$with_abi"
4525 if test "x$with_advance_toolchain" != x; then
4526 if test -d "/opt/$with_advance_toolchain/." -a \
4527 -d "/opt/$with_advance_toolchain/bin/." -a \
4528 -d "/opt/$with_advance_toolchain/include/."; then
4530 tm_file="$tm_file ./advance-toolchain.h"
4531 (at="/opt/$with_advance_toolchain"
4532 echo "/* Use Advance Toolchain $at */"
4534 echo "#undef LINK_OS_EXTRA_SPEC32"
4535 echo "#define LINK_OS_EXTRA_SPEC32" \
4536 "\"%(link_os_new_dtags)" \
4537 "-rpath $prefix/lib -rpath $at/lib" \
4538 "-L $prefix/lib -L $at/lib\""
4540 echo "#undef LINK_OS_EXTRA_SPEC64"
4541 echo "#define LINK_OS_EXTRA_SPEC64" \
4542 "\"%(link_os_new_dtags)" \
4543 "-rpath $prefix/lib64 -rpath $at/lib64" \
4544 "-L $prefix/lib64 -L $at/lib64\""
4546 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4547 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4548 "\"--enable-new-dtags\""
4550 echo "#undef DYNAMIC_LINKER_PREFIX"
4551 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4553 echo "#undef MD_EXEC_PREFIX"
4554 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4556 echo "#undef MD_STARTFILE_PREFIX"
4557 echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \
4558 > advance-toolchain.h
4560 echo "Unknown advance-toolchain $with_advance_toolchain"
4565 # Set up the default long double format if the user changed it.
4566 if test x$with_long_double_format = xieee; then
4567 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
4569 elif test x$with_long_double_format = xibm; then
4570 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
4573 case "${target}:${enable_multilib}:${with_long_double_format}" in
4574 powerpc64le*:yes:ieee | powerpc64le*:yes:ibm)
4575 tm_defines="${tm_defines} TARGET_IEEEQUAD_MULTILIB=1"
4576 tmake_file="${tmake_file} rs6000/t-ldouble-linux64le-${with_long_double_format}"
4585 supported_defaults="arch mode tune"
4587 for which in arch tune; do
4588 eval "val=\$with_$which"
4590 "" | native | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | arch3 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12)
4594 echo "Unknown cpu used in --with-$which=$val." 1>&2
4600 case ${with_mode} in
4605 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4611 sh[123456ble]*-*-* | sh-*-*)
4612 supported_defaults="cpu"
4613 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4614 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4617 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4619 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4622 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4623 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4624 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4625 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4631 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4633 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4634 eval "val=\$with_$which"
4636 "" | sparc | sparcv9 | sparc64 \
4638 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4639 | sparclite | f930 | f934 | sparclite86x \
4640 | sparclet | tsc701 \
4641 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4642 | niagara3 | niagara4 | niagara7 | m8)
4646 echo "Unknown cpu used in --with-$which=$val" 1>&2
4652 case ${with_float} in
4657 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4664 supported_defaults="arch tune"
4666 for which in arch tune; do
4667 eval "val=\$with_$which"
4669 "" | cell | celledp)
4673 echo "Unknown cpu used in --with-$which=$val." 1>&2
4681 supported_defaults="arch"
4683 case ${with_arch} in
4684 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4688 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4695 supported_defaults=cpu
4697 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4701 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4707 supported_defaults="cpu"
4711 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4718 # Set some miscellaneous flags for particular targets.
4719 target_cpu_default2=
4722 if test x"$target_cpu_cname" != x
4724 target_cpu_default2=$target_cpu_cname
4729 if test x$with_cpu = x
4731 echo "Don't know the target cpu" 1>&2
4734 target_cpu_default2="\\\"$with_cpu\\\""
4739 if test x$gas = xyes
4741 target_cpu_default2="MASK_GAS"
4745 fido*-*-* | m68k*-*-*)
4746 target_cpu_default2=$m68k_cpu_ident
4747 tmake_file="m68k/t-opts $tmake_file"
4748 if [ x"$m68k_arch_family" != x ]; then
4749 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4753 i[34567]86-*-darwin* | x86_64-*-darwin*)
4755 i[34567]86-*-linux* | x86_64-*-linux*)
4756 extra_objs="${extra_objs} cet.o"
4757 tmake_file="$tmake_file i386/t-linux i386/t-cet"
4759 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4760 tmake_file="$tmake_file i386/t-kfreebsd"
4763 tmake_file="$tmake_file i386/t-gnu"
4765 i[34567]86-*-msdosdjgpp*)
4766 tmake_file="${tmake_file} i386/t-djgpp"
4768 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4770 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4772 i[34567]86-*-mingw* | x86_64-*-mingw*)
4774 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4776 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4782 if test x$gnu_ld = xyes
4784 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4788 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4791 if test x$with_arch != x; then
4792 default_mips_arch=$with_arch
4794 if test x$with_abi != x; then
4795 default_mips_abi=$with_abi
4797 case ${default_mips_arch} in
4798 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4799 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4800 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4801 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4802 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4803 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4804 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
4805 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4806 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4807 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
4809 case ${default_mips_abi} in
4810 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4811 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4812 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4813 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4814 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4816 tmake_file="mips/t-mips $tmake_file"
4819 powerpc*-*-* | rs6000-*-*)
4820 # FIXME: The PowerPC port uses the value set at compile time,
4821 # although it's only cosmetic.
4822 if test "x$with_cpu" != x
4824 target_cpu_default2="\\\"$with_cpu\\\""
4826 out_file="${cpu_type}/${cpu_type}.c"
4827 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
4828 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
4829 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
4832 sh[123456ble]*-*-* | sh-*-*)
4833 c_target_objs="${c_target_objs} sh-c.o"
4834 cxx_target_objs="${cxx_target_objs} sh-c.o"
4838 # Some standard aliases.
4843 xsparcv9 | xsparc64)
4848 if test x$with_tune = x ; then
4859 # The SPARC port checks this value at compile-time.
4860 target_cpu_default2="TARGET_CPU_$with_cpu"
4864 case "x$with_cpu" in
4867 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4868 target_cpu_default2="TARGET_CPU_$with_cpu"
4871 target_cpu_default2="TARGET_CPU_v850e1"
4876 target_cpu_default2="TARGET_CPU_$with_cpu"
4881 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"
4882 for option in $all_defaults
4884 eval "val=\$with_"`echo $option | sed s/-/_/g`
4885 if test -n "$val"; then
4886 case " $supported_defaults " in
4890 echo "This target does not support --with-$option." 2>&1
4891 echo "Valid --with options are: $supported_defaults" 2>&1
4898 t="{ \"$option\", \"$val\" }"
4900 t="${t}, { \"$option\", \"$val\" }"
4907 configure_default_options="{ { NULL, NULL} }"
4909 configure_default_options="{ ${t} }"
4912 if test "$target_cpu_default2" != ""
4914 if test "$target_cpu_default" != ""
4916 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4918 target_cpu_default=$target_cpu_default2
4923 i[34567]86-*-* | x86_64-*-*)
4924 if test x$enable_as_accelerator = xyes; then
4925 extra_programs="mkoffload\$(exeext)"