1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2017 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.
241 if test "x$enable_obsolete" != xyes; then
242 echo "*** Configuration ${target} is obsolete." >&2
243 echo "*** Specify --enable-obsolete to build it anyway." >&2
244 echo "*** Support will be REMOVED in the next major release of GCC," >&2
245 echo "*** unless a maintainer comes forward." >&2
250 # Unsupported targets list. Do not put an entry in this list unless
251 # it would otherwise be caught by a more permissive pattern. The list
252 # should be in alphabetical order.
254 # Avoid special cases that are not obsolete
263 | i[34567]86-go32-* \
264 | i[34567]86-*-go32* \
265 | m68k-*-uclinuxoldabi* \
266 | mips64orion*-*-rtems* \
268 | sparc-hal-solaris2* \
270 | *-*-freebsd[12] | *-*-freebsd[12].* \
271 | *-*-freebsd*aout* \
279 | *-*-solaris2.[0-9] \
280 | *-*-solaris2.[0-9].* \
284 echo "*** Configuration ${target} not supported" 1>&2
289 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
290 # updated in each machine entry. Also set default extra_headers for some
293 cpu_type=`echo ${target} | sed 's/-.*$//'`
298 tmake_file=m32c/t-m32c
299 target_has_targetm_common=no
303 extra_headers="arm_fp16.h arm_neon.h arm_acle.h"
304 c_target_objs="aarch64-c.o"
305 cxx_target_objs="aarch64-c.o"
306 extra_objs="aarch64-builtins.o aarch-common.o cortex-a57-fma-steering.o"
307 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c"
308 target_has_targetm_common=yes
312 extra_options="${extra_options} g.opt"
319 c_target_objs="arc-c.o"
320 cxx_target_objs="arc-c.o"
321 extra_options="${extra_options} arc/arc-tables.opt g.opt"
322 extra_headers="arc-simd.h"
326 extra_objs="arm-builtins.o aarch-common.o"
327 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h"
328 target_type_format_char='%'
329 c_target_objs="arm-c.o"
330 cxx_target_objs="arm-c.o"
331 extra_options="${extra_options} arm/arm-tables.opt"
332 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
336 c_target_objs="avr-c.o"
337 cxx_target_objs="avr-c.o"
346 extra_options="${extra_options} g.opt"
349 target_has_targetm_common=no
351 moxie*) cpu_type=moxie
352 target_has_targetm_common=no
356 extra_headers=math-68881.h
357 extra_options="${extra_options} m68k/m68k-tables.opt"
361 c_target_objs="i386-c.o"
362 cxx_target_objs="i386-c.o"
363 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
364 extra_options="${extra_options} fused-madd.opt"
365 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
366 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
367 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
368 immintrin.h x86intrin.h avxintrin.h xopintrin.h
369 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
370 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
371 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
372 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
373 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
374 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
375 shaintrin.h clflushoptintrin.h xsavecintrin.h
376 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
377 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
378 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
379 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
380 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
381 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
382 gfniintrin.h cet.h avx512vbmi2intrin.h
383 avx512vbmi2vlintrin.h"
387 c_target_objs="i386-c.o"
388 cxx_target_objs="i386-c.o"
389 extra_options="${extra_options} fused-madd.opt"
390 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
391 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
392 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
393 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
394 immintrin.h x86intrin.h avxintrin.h xopintrin.h
395 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
396 lzcntintrin.h bmiintrin.h tbmintrin.h bmi2intrin.h
397 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
398 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
399 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
400 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
401 shaintrin.h clflushoptintrin.h xsavecintrin.h
402 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
403 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
404 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
405 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
406 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
407 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
408 gfniintrin.h cet.h avx512vbmi2intrin.h
409 avx512vbmi2vlintrin.h"
412 extra_headers=ia64intrin.h
413 extra_options="${extra_options} g.opt fused-madd.opt"
419 extra_options="${extra_options} g.opt"
423 extra_options="${extra_options} g.opt"
426 extra_headers=math-68881.h
427 extra_options="${extra_options} m68k/m68k-tables.opt"
431 extra_options="${extra_options} g.opt"
435 extra_headers="loongson.h msa.h"
436 extra_objs="frame-header-opt.o"
437 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
441 extra_headers="nds32_intrinsic.h"
442 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"
446 extra_options="${extra_options} g.opt"
453 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"
455 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
459 extra_options="${extra_options} g.opt fused-madd.opt powerpcspe/powerpcspe-tables.opt"
463 extra_objs="rs6000-string.o rs6000-p8swap.o"
464 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
465 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
466 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
467 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
468 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
469 extra_headers="${extra_headers} paired.h"
470 extra_headers="${extra_headers} amo.h"
472 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
476 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
480 extra_objs="riscv-builtins.o riscv-c.o"
483 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
484 extra_objs="rs6000-string.o rs6000-p8swap.o"
488 c_target_objs="sparc-c.o"
489 cxx_target_objs="sparc-c.o"
490 extra_headers="visintrin.h"
497 extra_options="${extra_options} fused-madd.opt"
498 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
500 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
501 sh[123456789lbe]*-*-* | sh-*-*)
503 extra_options="${extra_options} fused-madd.opt"
504 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
511 extra_headers="c6x_intrinsics.h"
512 extra_options="${extra_options} c6x/c6x-tables.opt"
515 extra_options="${extra_options} fused-madd.opt"
525 tm_file=${cpu_type}/${cpu_type}.h
526 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
528 tm_p_file=${cpu_type}/${cpu_type}-protos.h
531 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
533 extra_modes=${cpu_type}/${cpu_type}-modes.def
535 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
537 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
542 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
545 if test "x$with_multilib_list" = xilp32; then
546 tm_file="aarch64/biarchilp32.h ${tm_file}"
548 tm_file="aarch64/biarchlp64.h ${tm_file}"
552 tm_file="aarch64/biarchilp32.h ${tm_file}"
555 tm_file="aarch64/biarchlp64.h ${tm_file}"
558 echo "Unknown ABI used in --with-abi=$with_abi"
563 if test "x$with_abi" != x; then
564 echo "This target does not support --with-abi."
567 if test "x$enable_cld" = xyes; then
568 tm_defines="${tm_defines} USE_IX86_CLD=1"
570 if test "x$enable_frame_pointer" = xyes; then
571 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
573 tm_file="vxworks-dummy.h ${tm_file}"
578 if test "x$with_multilib_list" = xmx32; then
579 tm_file="i386/biarchx32.h ${tm_file}"
581 tm_file="i386/biarch64.h ${tm_file}"
585 tm_file="i386/biarch64.h ${tm_file}"
588 tm_file="i386/biarchx32.h ${tm_file}"
591 echo "Unknown ABI used in --with-abi=$with_abi"
594 if test "x$enable_cld" = xyes; then
595 tm_defines="${tm_defines} USE_IX86_CLD=1"
597 if test "x$enable_frame_pointer" = xyes; then
598 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
600 tm_file="vxworks-dummy.h ${tm_file}"
603 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
604 tm_file="vxworks-dummy.h ${tm_file}"
606 mips*-*-* | sh*-*-* | sparc*-*-*)
607 tm_file="vxworks-dummy.h ${tm_file}"
611 # On a.out targets, we need to use collect2.
618 # Common C libraries.
619 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
621 # 32-bit x86 processors supported by --with-arch=. Each processor
622 # MUST be separated by exactly one space.
623 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
624 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
625 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
626 pentium4 pentium4m pentiumpro prescott lakemont"
628 # 64-bit x86 processors supported by --with-arch=. Each processor
629 # MUST be separated by exactly one space.
630 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
631 bdver3 bdver4 znver1 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \
632 core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \
633 sandybridge ivybridge haswell broadwell bonnell silvermont knl knm \
634 skylake-avx512 cannonlake x86-64 native"
636 # Additional x86 processors supported by --with-cpu=. Each processor
637 # MUST be separated by exactly one space.
638 x86_cpus="generic intel"
640 # Common parts for widely ported systems.
643 tmake_file="t-darwin ${cpu_type}/t-darwin"
644 tm_file="${tm_file} darwin.h"
647 tm_file="${tm_file} darwin9.h"
650 tm_file="${tm_file} darwin9.h darwin10.h"
652 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
653 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
656 tm_file="${tm_file} ${cpu_type}/darwin.h"
657 tm_p_file="${tm_p_file} darwin-protos.h"
658 target_gtfiles="\$(srcdir)/config/darwin.c"
659 extra_options="${extra_options} darwin.opt"
660 c_target_objs="${c_target_objs} darwin-c.o"
661 cxx_target_objs="${cxx_target_objs} darwin-c.o"
662 fortran_target_objs="darwin-f.o"
663 target_has_targetcm=yes
664 extra_objs="${extra_objs} darwin.o"
665 extra_gcc_objs="darwin-driver.o"
666 default_use_cxa_atexit=yes
668 case ${enable_threads} in
669 "" | yes | posix) thread_file='posix' ;;
675 tmake_file="t-slibgcc"
676 case ${enable_threads} in
681 # Let these non-posix thread selections fall through if requested
684 echo 'Unknown thread configuration for DragonFly BSD'
688 extra_options="$extra_options rpath.opt dragonfly.opt"
689 default_use_cxa_atexit=yes
693 # This is the generic ELF configuration of FreeBSD. Later
694 # machine-specific sections may refine and add to this
697 # Due to tm_file entry ordering issues that vary between cpu
698 # architectures, we only define fbsd_tm_file to allow the
699 # machine-specific section to dictate the final order of all
700 # entries of tm_file with the minor exception that components
701 # of the tm_file set here will always be of the form:
703 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
705 # The machine-specific section should not tamper with this
706 # ordering but may order all other entries of tm_file as it
707 # pleases around the provided core setting.
710 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
711 if test "$fbsd_major" = ""; then
712 echo "Specify the major version number of the targeted FreeBSD release"
713 echo "like this: --target=amd64-unknown-freebsd10.1"
716 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
717 tmake_file="t-slibgcc"
718 case ${enable_threads} in
720 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
726 echo 'Unknown thread configuration for FreeBSD'
730 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
731 extra_options="$extra_options rpath.opt freebsd.opt"
736 default_use_cxa_atexit=yes;;
741 native_system_header_dir=/include
743 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
744 extra_options="$extra_options gnu-user.opt"
747 case ${enable_threads} in
748 "" | yes | posix) thread_file='posix' ;;
750 tmake_file="t-slibgcc"
752 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
755 native_system_header_dir=/include
758 # Linux C libraries selection switch: glibc / uclibc / bionic.
759 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
762 tm_p_file="${tm_p_file} linux-protos.h"
763 tmake_file="${tmake_file} t-linux"
764 extra_objs="${extra_objs} linux.o"
765 extra_options="${extra_options} linux.opt"
770 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
773 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
776 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
779 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
782 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
784 default_use_cxa_atexit=yes
787 # Enable compilation for Android by default for *android* targets.
790 tm_defines="$tm_defines ANDROID_DEFAULT=1"
793 tm_defines="$tm_defines ANDROID_DEFAULT=0"
796 c_target_objs="${c_target_objs} glibc-c.o"
797 cxx_target_objs="${cxx_target_objs} glibc-c.o"
798 tmake_file="${tmake_file} t-glibc"
799 target_has_targetcm=yes
802 tm_p_file="${tm_p_file} netbsd-protos.h"
803 tmake_file="t-netbsd t-slibgcc"
804 extra_objs="${extra_objs} netbsd.o"
808 case ${enable_threads} in
809 "" | yes | posix) thread_file='posix' ;;
811 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
812 default_use_cxa_atexit=yes
815 tmake_file="t-openbsd"
816 case ${enable_threads} in
822 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
823 default_use_cxa_atexit=yes
830 default_use_cxa_atexit=yes
833 case ${enable_threads} in
834 "" | yes | rtems) thread_file='rtems' ;;
835 posix) thread_file='posix' ;;
838 echo 'Unknown thread configuration for RTEMS'
842 tmake_file="${tmake_file} t-rtems"
843 extra_options="${extra_options} rtems.opt"
844 default_use_cxa_atexit=yes
848 extra_options="$extra_options gnu-user.opt"
850 case ${enable_threads} in
851 "" | yes | posix) thread_file='posix' ;;
853 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
859 # i?86-*-solaris2* needs to insert headers between cpu default and
860 # Solaris 2 specific ones.
861 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
862 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
863 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
865 *-*-solaris2.1[1-9]*)
866 # __cxa_atexit was introduced in Solaris 11.4.
867 default_use_cxa_atexit=yes
871 if test x$gnu_ld = xyes; then
872 tm_file="usegld.h ${tm_file}"
874 if test x$gas = xyes; then
875 tm_file="usegas.h ${tm_file}"
877 tm_p_file="${tm_p_file} sol2-protos.h"
878 tmake_file="${tmake_file} t-sol2 t-slibgcc"
879 c_target_objs="${c_target_objs} sol2-c.o"
880 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
881 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
882 extra_options="${extra_options} sol2.opt"
883 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
884 "":yes:* | yes:yes:* )
890 extra_options="${extra_options} vms/vms.opt"
892 tmake_file="vms/t-vms t-slibgcc"
894 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
895 tm_p_file="${tm_p_file} vms/vms-protos.h"
896 xm_file="vms/xm-vms.h"
897 c_target_objs="vms-c.o"
898 cxx_target_objs="vms-c.o"
899 fortran_target_objs="vms-f.o"
900 use_gcc_stdint=provide
901 tm_file="${tm_file} vms/vms-stdint.h"
902 if test x$gnu_ld != xyes; then
903 # Build wrappers for native case.
904 extra_programs="ld\$(exeext) ar\$(exeext)"
905 tmake_file="$tmake_file vms/t-vmsnative"
911 extra_options="${extra_options} vxworks.opt"
912 extra_objs="$extra_objs vxworks.o"
913 use_gcc_stdint=provide
914 tm_file="${tm_file} vxworks-stdint.h"
915 case ${enable_threads} in
917 "" | yes | vxworks) thread_file='vxworks' ;;
918 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
922 tm_defines="$tm_defines TARGET_VXWORKS7=1"
927 # Assume that newlib is being used and so __cxa_atexit is provided.
928 default_use_cxa_atexit=yes
934 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
935 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
936 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
937 tmake_file="${tmake_file} aarch64/t-aarch64"
943 tm_file="${tm_file} fuchsia.h"
946 tm_file="${tm_file} rtems.h aarch64/rtems.h"
951 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
954 aarch64_multilibs="${with_multilib_list}"
955 if test "$aarch64_multilibs" = "default"; then
956 aarch64_multilibs="lp64,ilp32"
958 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
959 for aarch64_multilib in ${aarch64_multilibs}; do
960 case ${aarch64_multilib} in
962 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
965 echo "--with-multilib-list=${aarch64_multilib} not supported."
969 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
972 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
973 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h"
974 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
977 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
978 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
979 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
982 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
985 aarch64_multilibs="${with_multilib_list}"
986 if test "$aarch64_multilibs" = "default"; then
987 # TODO: turn on ILP32 multilib build after its support is mature.
988 # aarch64_multilibs="lp64,ilp32"
989 aarch64_multilibs="lp64"
991 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
992 for aarch64_multilib in ${aarch64_multilibs}; do
993 case ${aarch64_multilib} in
995 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
998 echo "--with-multilib-list=${aarch64_multilib} not supported."
1002 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1005 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1006 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1007 extra_options="${extra_options} alpha/elf.opt"
1010 tm_file="elfos.h ${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
1011 tmake_file="${tmake_file} alpha/t-alpha"
1012 extra_options="${extra_options} alpha/elf.opt"
1015 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1016 tmake_file="${tmake_file} alpha/t-alpha"
1017 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1021 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1022 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1023 tmake_file="${tmake_file} alpha/t-alpha"
1024 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1025 # default x-alpha is only appropriate for dec-osf.
1028 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1029 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1032 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1033 tmake_file="arc/t-multilib arc/t-arc"
1034 extra_gcc_objs="driver-arc.o"
1035 if test "x$with_cpu" != x; then
1036 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1038 if test x${with_endian} = x; then
1040 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1041 *) with_endian=little ;;
1044 case ${with_endian} in
1046 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1048 case ${with_endian} in
1049 big*) tm_file="arc/big.h ${tm_file}"
1053 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}"
1054 tmake_file="${tmake_file} arc/t-arc"
1055 extra_gcc_objs="driver-arc.o"
1056 if test "x$with_cpu" != x; then
1057 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1059 if test x${with_endian} = x; then
1061 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1062 *) with_endian=little ;;
1065 case ${with_endian} in
1067 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1069 case ${with_endian} in
1070 big*) tm_file="arc/big.h ${tm_file}"
1073 arm-wrs-vxworks|arm-wrs-vxworks7)
1074 extra_options="${extra_options} arm/vxworks.opt"
1075 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1078 # VxWorks7 on ARM adheres to the ARM Base Platform ABI
1079 tmake_file="${tmake_file} arm/t-bpabi"
1080 tm_file="arm/bpabi.h ${tm_file}"
1081 # The BPABI long long divmod functions return a 128-bit value in
1083 need_64bit_hwint=yes
1084 default_use_cxa_atexit=yes
1088 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1089 target_cpu_cname="arm8"
1091 arm*-*-freebsd*) # ARM FreeBSD EABI
1092 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1095 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1098 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1099 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1102 target_cpu_cname="arm1176jzf-s"
1103 if test $fbsd_major -ge 11; then
1104 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1108 target_cpu_cname="generic-armv7-a"
1109 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1112 target_cpu_cname="arm9"
1115 with_tls=${with_tls:-gnu}
1118 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1119 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1120 tmake_file="${tmake_file} arm/t-arm"
1121 target_cpu_cname="arm6"
1123 arm*-*-linux-*) # ARM GNU/Linux with ELF
1124 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"
1125 extra_options="${extra_options} linux-android.opt"
1128 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1131 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1132 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1133 target_cpu_cname="arm10tdmi"
1134 # Define multilib configuration for arm-linux-androideabi.
1137 tmake_file="$tmake_file arm/t-linux-androideabi"
1140 # The EABI requires the use of __cxa_atexit.
1141 default_use_cxa_atexit=yes
1142 with_tls=${with_tls:-gnu}
1144 arm*-*-uclinux*eabi*) # ARM ucLinux
1145 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1146 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1147 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1148 target_cpu_cname="arm7tdmi"
1149 # The EABI requires the use of __cxa_atexit.
1150 default_use_cxa_atexit=yes
1153 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1154 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1155 tm_file="${tm_file} arm/aout.h arm/arm.h"
1156 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1157 target_cpu_cname="arm7tdmi"
1159 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1162 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1164 default_use_cxa_atexit=yes
1165 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1166 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1167 target_cpu_cname="arm7tdmi"
1170 tm_file="$tm_file newlib-stdint.h"
1171 tmake_file="${tmake_file} arm/t-bpabi"
1175 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1176 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1177 target_cpu_cname="generic-armv7-a"
1180 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1181 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1184 tm_file="${tm_file} arm/symbian.h"
1185 # We do not include t-bpabi for Symbian OS because the system
1186 # provides its own implementation of the BPABI functions.
1187 tmake_file="${tmake_file} arm/t-symbian"
1188 target_cpu_cname="arm10tdmi"
1191 tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
1194 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1195 if test x${with_avrlibc} != xno; then
1196 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1197 tm_defines="${tm_defines} WITH_AVRLIBC"
1199 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1201 extra_gcc_objs="driver-avr.o avr-devices.o"
1202 extra_objs="avr-devices.o avr-log.o"
1205 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1206 tmake_file=bfin/t-bfin-elf
1210 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1211 tmake_file=bfin/t-bfin-uclinux
1214 bfin*-linux-uclibc*)
1215 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"
1216 tmake_file="${tmake_file} bfin/t-bfin-linux"
1220 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1221 tmake_file="${tmake_file} bfin/t-rtems"
1224 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1229 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1230 tmake_file="${tmake_file} cr16/t-cr16 "
1233 crisv32-*-elf | crisv32-*-none)
1234 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1235 tmake_file="cris/t-cris"
1236 target_cpu_default=32
1238 extra_options="${extra_options} cris/elf.opt"
1241 cris-*-elf | cris-*-none)
1242 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1243 tmake_file="cris/t-cris cris/t-elfmulti"
1245 extra_options="${extra_options} cris/elf.opt"
1248 crisv32-*-linux* | cris-*-linux*)
1249 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1250 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1251 extra_options="${extra_options} cris/linux.opt"
1254 target_cpu_default=10
1257 target_cpu_default=32
1262 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1263 tmake_file="epiphany/t-epiphany"
1264 extra_options="${extra_options} fused-madd.opt"
1265 extra_objs="$extra_objs mode-switch-use.o resolve-sw-modes.o"
1266 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1267 extra_headers="epiphany_intrinsics.h"
1270 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1273 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1274 tmake_file=frv/t-frv
1277 tm_file="dbxelf.h elfos.h ${tm_file} \
1278 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1279 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1284 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1285 tmake_file="${tmake_file} ft32/t-ft32"
1290 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1291 tmake_file="${tmake_file} moxie/t-moxie"
1296 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1297 tmake_file="${tmake_file} moxie/t-moxie"
1300 tmake_file="${tmake_file} moxie/t-moxie"
1301 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1306 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1307 tmake_file="${tmake_file} moxie/t-moxiebox"
1310 tmake_file="h8300/t-h8300"
1311 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1314 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1315 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1318 target_cpu_default="MASK_PA_11|MASK_PA_20"
1319 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1320 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1325 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1326 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1327 pa/pa32-regs.h pa/pa32-linux.h"
1328 tmake_file="${tmake_file} pa/t-linux"
1331 target_cpu_default="MASK_PA_11"
1332 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1333 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1334 extra_options="${extra_options} openbsd.opt"
1338 hppa[12]*-*-hpux10*)
1340 hppa1.1-*-* | hppa2*-*-*)
1341 target_cpu_default="MASK_PA_11"
1344 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1345 pa/pa-hpux.h pa/pa-hpux10.h"
1346 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1349 tm_file="${tm_file} pa/pa-hpux1010.h"
1350 extra_options="${extra_options} pa/pa-hpux1010.opt"
1353 use_gcc_stdint=provide
1354 tm_file="${tm_file} hpux-stdint.h"
1355 tmake_file="t-slibgcc"
1356 case ${enable_threads} in
1358 if test x$have_pthread_h = xyes ; then
1359 tmake_file="${tmake_file} pa/t-dce-thr"
1363 tmake_file="${tmake_file} pa/t-dce-thr"
1368 if test "x$with_dwarf2" != x; then
1369 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1374 target_cpu_default="MASK_PA_11|MASK_PA_20"
1375 if test x$gnu_ld = xyes
1377 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1379 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1380 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1384 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1385 extra_options="${extra_options} pa/pa-hpux1111.opt"
1388 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1389 extra_options="${extra_options} pa/pa-hpux1131.opt"
1392 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1395 extra_options="${extra_options} pa/pa-hpux.opt \
1396 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1397 tmake_file="t-slibgcc"
1398 case x${enable_threads} in
1406 use_gcc_stdint=provide
1407 tm_file="${tm_file} hpux-stdint.h"
1411 tm_file="${tm_file} hpux-stdint.h"
1415 hppa[12]*-*-hpux11*)
1417 hppa1.1-*-* | hppa2*-*-*)
1418 target_cpu_default="MASK_PA_11"
1421 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1422 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1423 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1427 tm_file="${tm_file} pa/pa-hpux1111.h"
1428 extra_options="${extra_options} pa/pa-hpux1111.opt"
1431 tm_file="${tm_file} pa/pa-hpux1131.h"
1432 extra_options="${extra_options} pa/pa-hpux1131.opt"
1435 tmake_file="t-slibgcc"
1436 case x${enable_threads} in
1445 use_gcc_stdint=provide
1446 tm_file="${tm_file} hpux-stdint.h"
1450 tm_file="${tm_file} hpux-stdint.h"
1453 if test "x$with_dwarf2" != x; then
1454 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1458 i[34567]86-*-darwin*)
1460 # Baseline choice for a machine that allows m64 support.
1461 with_cpu=${with_cpu:-core2}
1462 tmake_file="${tmake_file} t-slibgcc"
1465 with_cpu=${with_cpu:-core2}
1466 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1467 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1469 i[34567]86-*-elfiamcu)
1470 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1473 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1476 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1479 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"
1482 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1485 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"
1486 tmake_file="i386/t-i386elf t-svr4"
1488 i[34567]86-*-dragonfly*)
1489 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1490 tmake_file="${tmake_file} i386/t-crtstuff"
1492 x86_64-*-dragonfly*)
1493 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"
1494 tmake_file="${tmake_file} i386/t-crtstuff"
1496 i[34567]86-*-freebsd*)
1497 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1500 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"
1502 i[34567]86-*-netbsdelf*)
1503 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1504 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1507 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1508 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1510 i[34567]86-*-openbsd*)
1511 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1512 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1513 extra_options="${extra_options} openbsd.opt"
1518 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1519 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1520 extra_options="${extra_options} openbsd.opt"
1524 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1525 # Intel 80386's running GNU/*
1526 # with ELF format using glibc 2
1527 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1529 i[34567]86-*-linux*)
1530 tm_file="${tm_file} linux.h linux-android.h"
1531 extra_options="${extra_options} linux-android.opt"
1532 if test x$enable_targets = xall; then
1533 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1534 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1535 tmake_file="${tmake_file} i386/t-linux64"
1536 x86_multilibs="${with_multilib_list}"
1537 if test "$x86_multilibs" = "default"; then
1538 x86_multilibs="m64,m32"
1540 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1541 for x86_multilib in ${x86_multilibs}; do
1542 case ${x86_multilib} in
1544 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1547 echo "--with-multilib-list=${x86_with_multilib} not supported."
1551 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1553 if test x$with_cpu = x; then
1554 if test x$with_cpu_64 = x; then
1558 case " $x86_cpus $x86_archs $x86_64_archs " in
1562 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1563 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1569 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1572 i[34567]86-*-kfreebsd*-gnu)
1573 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1575 i[34567]86-*-kopensolaris*-gnu)
1576 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1579 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1583 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1584 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1585 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1588 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1589 extra_options="${extra_options} linux-android.opt"
1591 x86_64-*-kfreebsd*-gnu)
1592 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1595 tmake_file="${tmake_file} i386/t-linux64"
1596 x86_multilibs="${with_multilib_list}"
1597 if test "$x86_multilibs" = "default"; then
1600 x86_multilibs="mx32"
1603 x86_multilibs="m64,m32"
1607 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1608 for x86_multilib in ${x86_multilibs}; do
1609 case ${x86_multilib} in
1611 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1614 echo "--with-multilib-list=${x86_with_multilib} not supported."
1618 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1620 i[34567]86-pc-msdosdjgpp*)
1621 xm_file=i386/xm-djgpp.h
1622 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1623 native_system_header_dir=/dev/env/DJDIR/include
1624 extra_options="${extra_options} i386/djgpp.opt"
1629 i[34567]86-*-lynxos*)
1631 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1632 tmake_file="${tmake_file} t-lynx"
1633 extra_options="${extra_options} lynx.opt"
1638 i[34567]86-*-nto-qnx*)
1639 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1640 extra_options="${extra_options} i386/nto.opt"
1644 i[34567]86-*-rtems*)
1645 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"
1646 tmake_file="${tmake_file} i386/t-rtems"
1648 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1649 # Set default arch_32 to pentium4, tune_32 to generic like the other
1650 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1651 with_arch_32=${with_arch_32:-pentium4}
1652 with_tune_32=${with_tune_32:-generic}
1653 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1654 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1655 tmake_file="$tmake_file i386/t-sol2"
1657 if test x$with_cpu = x; then
1658 if test x$with_cpu_64 = x; then
1662 case " $x86_cpus $x86_archs $x86_64_archs " in
1666 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1667 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1673 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
1674 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1678 tm_file="${tm_file} i386/x86-64.h"
1681 tm_file="${tm_file} vx-common.h"
1684 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1685 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1688 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1689 tmake_file="${tmake_file} i386/t-vxworks"
1693 i[34567]86-*-cygwin*)
1694 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"
1695 xm_file=i386/xm-cygwin.h
1696 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1697 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1698 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1699 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1700 c_target_objs="${c_target_objs} msformat-c.o"
1701 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1702 if test x$enable_threads = xyes; then
1705 default_use_cxa_atexit=yes
1710 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"
1711 xm_file=i386/xm-cygwin.h
1712 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1713 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1714 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1715 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1716 c_target_objs="${c_target_objs} msformat-c.o"
1717 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1718 if test x$enable_threads = xyes; then
1721 default_use_cxa_atexit=yes
1723 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1725 i[34567]86-*-mingw* | x86_64-*-mingw*)
1726 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1727 xm_file=i386/xm-mingw32.h
1728 c_target_objs="${c_target_objs} winnt-c.o"
1729 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1730 target_has_targetcm="yes"
1732 x86_64-*-* | *-w64-*)
1738 if test x$enable_threads = xposix ; then
1739 tm_file="${tm_file} i386/mingw-pthread.h"
1741 tm_file="${tm_file} i386/mingw32.h"
1742 # This makes the logic if mingw's or the w64 feature set has to be used
1745 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1746 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1747 tm_file="${tm_file} i386/mingw-w64.h"
1748 if test x$enable_targets = xall; then
1749 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1750 if test x$with_cpu = x; then
1751 if test x$with_cpu_64 = x; then
1755 case " $x86_cpus $x86_archs $x86_64_archs " in
1759 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1760 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1770 tm_file="${tm_file} i386/mingw-stdint.h"
1771 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1774 tmake_file="${tmake_file} i386/t-mingw-w64"
1777 tmake_file="${tmake_file} i386/t-mingw-w32"
1780 native_system_header_dir=/mingw/include
1781 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1782 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1785 extra_options="${extra_options} i386/mingw-w64.opt"
1790 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1791 c_target_objs="${c_target_objs} msformat-c.o"
1792 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1795 default_use_cxa_atexit=yes
1797 case ${enable_threads} in
1807 tm_file="${tm_file} i386/crtdll.h"
1809 *mingw32msv* | *mingw*)
1814 tmake_file="${tmake_file} i386/t-x86_64-elf"
1815 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
1818 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1819 tmake_file="ia64/t-ia64"
1820 target_cpu_default="0"
1821 if test x$gas = xyes
1823 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1825 if test x$gnu_ld = xyes
1827 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1831 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1832 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1833 tmake_file="${tmake_file} ia64/t-ia64"
1836 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1837 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1838 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1841 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1842 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1843 target_cpu_default="MASK_GNU_AS"
1844 case x$enable_threads in
1850 c_target_objs="ia64-c.o"
1851 cxx_target_objs="ia64-c.o"
1852 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1854 tm_file="${tm_file} hpux-stdint.h"
1857 tm_file="${tm_file} ia64/hpux-unix2003.h"
1862 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1863 tmake_file="${tmake_file} ia64/t-ia64"
1864 target_cpu_default="0"
1865 if test x$gas = xyes
1867 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1869 extra_options="${extra_options} ia64/vms.opt"
1872 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1873 out_file=iq2000/iq2000.c
1874 md_file=iq2000/iq2000.md
1877 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
1878 tmake_file="${tmake_file} lm32/t-lm32"
1881 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1882 tmake_file="${tmake_file} lm32/t-lm32"
1883 tmake_file="${tmake_file} lm32/t-rtems"
1886 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1887 tmake_file="${tmake_file} lm32/t-lm32"
1890 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1893 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1896 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1897 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1899 if test x$enable_threads = xyes; then
1904 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1905 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1907 if test x$enable_threads = xyes; then
1911 m68k-*-elf* | fido-*-elf*)
1914 # Check that $with_cpu makes sense.
1919 echo "Cannot accept --with-cpu=$with_cpu"
1926 default_m68k_cpu=68020
1930 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"
1931 tm_defines="${tm_defines} MOTOROLA=1"
1932 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1933 # Add multilibs for targets other than fido.
1938 tmake_file="$tmake_file m68k/t-mlibs"
1943 default_m68k_cpu=68020
1945 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
1946 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1947 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
1950 default_m68k_cpu=68020
1952 # needed to unconfuse gdb
1953 tm_defines="${tm_defines} OBSD_OLD_GAS"
1954 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1955 extra_options="${extra_options} openbsd.opt"
1956 tmake_file="t-openbsd m68k/t-openbsd"
1957 # we need collect2 until our bug is fixed...
1960 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
1961 # with uClibc, using the new GNU/Linux-style
1963 default_m68k_cpu=68020
1965 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"
1966 extra_options="${extra_options} m68k/uclinux.opt"
1967 tm_defines="${tm_defines} MOTOROLA=1"
1968 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1970 m68k-*-linux*) # Motorola m68k's running GNU/Linux
1971 # with ELF format using glibc 2
1972 # aka the GNU/Linux C library 6.
1973 default_m68k_cpu=68020
1975 with_arch=${with_arch:-m68k}
1976 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
1977 extra_options="${extra_options} m68k/ieee.opt"
1978 tm_defines="${tm_defines} MOTOROLA=1"
1979 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
1982 default_m68k_cpu=68020
1984 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
1985 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"
1986 tm_defines="${tm_defines} MOTOROLA=1"
1989 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
1990 tmake_file=mcore/t-mcore
1996 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1999 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2002 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2003 tm_file="${tm_file} glibc-stdint.h"
2004 c_target_objs="${c_target_objs} microblaze-c.o"
2005 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2006 tmake_file="${tmake_file} microblaze/t-microblaze"
2007 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2009 microblaze*-*-rtems*)
2012 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2015 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2018 tm_file="${tm_file} dbxelf.h"
2019 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2020 c_target_objs="${c_target_objs} microblaze-c.o"
2021 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2022 tmake_file="${tmake_file} microblaze/t-microblaze"
2023 tmake_file="${tmake_file} microblaze/t-rtems"
2028 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2031 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2034 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2035 c_target_objs="${c_target_objs} microblaze-c.o"
2036 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2037 tmake_file="${tmake_file} microblaze/t-microblaze"
2040 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2041 case "x${enable_multilib}" in
2043 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2044 *) echo "Unknown value for enable_multilib"; exit 1
2046 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2049 # Force .init_array support. The configure script cannot always
2050 # automatically detect that GAS supports it, yet we require it.
2051 gcc_cv_initfini_array=yes
2053 riscv*-*-elf* | riscv*-*-rtems*)
2054 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2055 case "x${enable_multilib}" in
2057 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2058 *) echo "Unknown value for enable_multilib"; exit 1
2060 tmake_file="${tmake_file} riscv/t-riscv"
2063 # Force .init_array support. The configure script cannot always
2064 # automatically detect that GAS supports it, yet we require it.
2065 gcc_cv_initfini_array=yes
2068 tm_file="${tm_file} rtems.h riscv/rtems.h"
2072 mips*-*-netbsd*) # NetBSD/mips, either endian.
2073 target_cpu_default="MASK_ABICALLS"
2074 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2075 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2078 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"
2079 extra_options="${extra_options} linux-android.opt"
2080 tmake_file="${tmake_file} mips/t-img-linux"
2081 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2082 with_arch_32="mips32r6"
2083 with_arch_64="mips64r6"
2088 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"
2089 extra_options="${extra_options} linux-android.opt"
2090 tmake_file="${tmake_file} mips/t-mti-linux"
2091 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2092 with_arch_32="mips32r2"
2093 with_arch_64="mips64r2"
2097 mips*-*-linux*) # Linux MIPS, either endian.
2098 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"
2099 extra_options="${extra_options} linux-android.opt"
2102 default_mips_arch=mips32r6
2105 default_mips_arch=mips32r2
2108 default_mips_arch=mips32
2110 mips64el-st-linux-gnu)
2111 default_mips_abi=n32
2112 tm_file="${tm_file} mips/st.h"
2113 tmake_file="${tmake_file} mips/t-st"
2114 enable_mips_multilibs="yes"
2116 mips64octeon*-*-linux*)
2117 default_mips_abi=n32
2118 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2119 target_cpu_default=MASK_SOFT_FLOAT_ABI
2120 enable_mips_multilibs="yes"
2122 mipsisa64r6*-*-linux*)
2123 default_mips_abi=n32
2124 default_mips_arch=mips64r6
2125 enable_mips_multilibs="yes"
2127 mipsisa64r2*-*-linux*)
2128 default_mips_abi=n32
2129 default_mips_arch=mips64r2
2130 enable_mips_multilibs="yes"
2132 mips64*-*-linux* | mipsisa64*-*-linux*)
2133 default_mips_abi=n32
2134 enable_mips_multilibs="yes"
2137 if test x$enable_targets = xall; then
2138 enable_mips_multilibs="yes"
2140 if test x$enable_mips_multilibs = xyes; then
2141 tmake_file="${tmake_file} mips/t-linux64"
2145 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2146 tmake_file="mips/t-mti-elf"
2147 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2148 with_arch_32="mips32r2"
2149 with_arch_64="mips64r2"
2152 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2153 tmake_file="mips/t-img-elf"
2154 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2155 with_arch_32="mips32r6"
2156 with_arch_64="mips64r6"
2159 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2160 tmake_file="mips/t-sde"
2161 extra_options="${extra_options} mips/sde.opt"
2162 case "${with_newlib}" in
2164 # newlib / libgloss.
2167 # MIPS toolkit libraries.
2168 tm_file="$tm_file mips/sdemtk.h"
2169 tmake_file="$tmake_file mips/t-sdemtk"
2170 case ${enable_threads} in
2172 thread_file='mipssde'
2179 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2182 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2185 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2188 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2191 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2194 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2198 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2199 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2200 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2201 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2202 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2203 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2204 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2205 tmake_file="mips/t-isa3264"
2208 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2211 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2214 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2217 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2220 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2223 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2227 mipsisa32*-*-elfoabi*)
2228 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2229 tm_file="${tm_file} mips/elfoabi.h"
2231 mipsisa64*-*-elfoabi*)
2232 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2233 tm_file="${tm_file} mips/elfoabi.h"
2236 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2240 mipsisa64sr71k-*-elf*)
2241 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2242 tmake_file=mips/t-sr71k
2243 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2245 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2246 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2247 tmake_file="mips/t-elf mips/t-sb1"
2248 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2250 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2251 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2252 tmake_file="mips/t-elf"
2254 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2255 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2256 tmake_file="mips/t-elf"
2257 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2259 mips64-*-elf* | mips64el-*-elf*)
2260 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2261 tmake_file="mips/t-elf"
2262 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2264 mips64vr-*-elf* | mips64vrel-*-elf*)
2265 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2266 tmake_file=mips/t-vr
2267 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2269 mips64orion-*-elf* | mips64orionel-*-elf*)
2270 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2271 tmake_file="mips/t-elf"
2272 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2275 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2276 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2279 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2280 tmake_file="${tmake_file} mips/t-vxworks"
2282 mipstx39-*-elf* | mipstx39el-*-elf*)
2283 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2284 tmake_file="mips/t-r3900"
2286 mmix-knuth-mmixware)
2287 tm_file="${tm_file} newlib-stdint.h"
2291 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2292 if test x$stabs = xyes
2294 tm_file="${tm_file} dbx.h"
2300 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2301 c_target_objs="msp430-c.o"
2302 cxx_target_objs="msp430-c.o"
2303 tmake_file="${tmake_file} msp430/t-msp430"
2304 extra_gcc_objs="driver-msp430.o"
2307 target_cpu_default="0"
2308 tm_defines="${tm_defines}"
2309 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2310 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2313 target_cpu_default="0|MASK_BIG_ENDIAN"
2314 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2315 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2316 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2319 tm_file="elfos.h ${tm_file}"
2320 tmake_file="${tmake_file} nios2/t-nios2"
2323 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2326 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2327 extra_options="${extra_options} nios2/elf.opt"
2330 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2331 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2336 tm_file="${tm_file} newlib-stdint.h"
2337 tmake_file="nvptx/t-nvptx"
2338 if test x$enable_as_accelerator = xyes; then
2339 extra_programs="${extra_programs} mkoffload\$(exeext)"
2340 tm_file="${tm_file} nvptx/offload.h"
2344 tm_file="${tm_file} newlib-stdint.h"
2347 # port not yet contributed
2348 #powerpc-*-openbsd*)
2349 # tmake_file="${tmake_file} rs6000/t-fprules"
2353 extra_options="${extra_options} rs6000/darwin.opt"
2355 *-darwin1[0-9]* | *-darwin[8-9]*)
2356 tmake_file="${tmake_file} rs6000/t-darwin8"
2357 tm_file="${tm_file} rs6000/darwin8.h"
2360 tm_file="${tm_file} rs6000/darwin7.h"
2365 tmake_file="${tmake_file} t-slibgcc"
2366 extra_headers=altivec.h
2368 powerpc64-*-darwin*)
2369 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2370 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2371 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2372 extra_headers=altivec.h
2374 powerpc*-*-freebsd*)
2375 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2376 extra_options="${extra_options} rs6000/sysv4.opt"
2377 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2380 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2381 tmake_file="${tmake_file} rs6000/t-freebsd64"
2382 extra_options="${extra_options} rs6000/linux64.opt"
2385 tm_file="${tm_file} rs6000/freebsd.h"
2390 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2391 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2392 tmake_file="${tmake_file} rs6000/t-netbsd"
2393 extra_options="${extra_options} rs6000/sysv4.opt"
2396 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"
2397 extra_options="${extra_options} ${cpu_type}/sysv4.opt"
2398 tmake_file="${cpu_type}/t-spe ${cpu_type}/t-ppccomm"
2401 powerpc-*-eabisimaltivec*)
2402 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"
2403 extra_options="${extra_options} rs6000/sysv4.opt"
2404 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2408 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"
2409 extra_options="${extra_options} rs6000/sysv4.opt"
2410 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2414 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2415 extra_options="${extra_options} rs6000/sysv4.opt"
2416 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2418 powerpc-*-eabialtivec*)
2419 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
2420 extra_options="${extra_options} rs6000/sysv4.opt"
2421 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2424 powerpc-xilinx-eabi*)
2425 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/singlefp.h rs6000/xfpu.h rs6000/xilinx.h"
2426 extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
2427 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2431 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h"
2432 extra_options="${extra_options} rs6000/sysv4.opt"
2433 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2436 powerpc-*-rtems*spe*)
2437 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"
2438 extra_options="${extra_options} powerpcspe/sysv4.opt"
2439 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-rtems powerpcspe/t-ppccomm"
2442 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"
2443 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2444 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2446 powerpc*-*-linux*spe*)
2447 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h powerpcspe/sysv4.h"
2448 extra_options="${extra_options} powerpcspe/sysv4.opt"
2449 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm"
2450 extra_objs="$extra_objs powerpcspe-linux.o"
2452 tm_file="${tm_file} powerpcspe/linux.h glibc-stdint.h"
2453 tmake_file="${tmake_file} powerpcspe/t-ppcos powerpcspe/t-linux"
2454 tm_file="${tm_file} powerpcspe/linuxspe.h powerpcspe/e500.h"
2457 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2458 extra_options="${extra_options} rs6000/sysv4.opt"
2459 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2460 extra_objs="$extra_objs rs6000-linux.o"
2463 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2465 case ${target}:${with_cpu} in
2466 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2468 maybe_biarch=${cpu_is_64bit}
2469 case ${enable_targets} in
2470 *powerpc64*) maybe_biarch=yes ;;
2471 all) maybe_biarch=yes ;;
2474 powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
2475 echo "*** Configuration ${target} not supported" 1>&2
2478 powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
2482 case ${target}:${enable_targets}:${maybe_biarch} in
2483 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2484 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2485 | powerpcle-*:*powerpc64le*:yes)
2486 if test x$cpu_is_64bit = xyes; then
2487 tm_file="${tm_file} rs6000/default64.h"
2489 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2490 tmake_file="$tmake_file rs6000/t-linux64"
2493 tmake_file="$tmake_file rs6000/t-linux64le"
2494 case ${enable_targets} in
2495 all | *powerpc64-* | *powerpc-*)
2496 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2499 case ${enable_targets} in
2500 all | *powerpc64le-* | *powerpcle-*)
2501 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2504 extra_options="${extra_options} rs6000/linux64.opt"
2507 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2508 extra_options="${extra_options} rs6000/linux64.opt"
2509 tmake_file="${tmake_file} rs6000/t-linux"
2512 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2513 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2517 powerpc*-*-linux*ppc476*)
2518 tm_file="${tm_file} rs6000/476.h"
2519 extra_options="${extra_options} rs6000/476.opt" ;;
2520 powerpc*-*-linux*altivec*)
2521 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2522 powerpc*-*-linux*spe*)
2523 tm_file="${tm_file} ${cpu_type}/linuxspe.h ${cpu_type}/e500.h" ;;
2524 powerpc*-*-linux*paired*)
2525 tm_file="${tm_file} rs6000/750cl.h" ;;
2529 enable_secureplt=yes ;;
2531 if test x${enable_secureplt} = xyes; then
2532 tm_file="rs6000/secureplt.h ${tm_file}"
2535 powerpc-wrs-vxworks*spe)
2536 tm_file="${tm_file} elfos.h freebsd-spec.h powerpcspe/sysv4.h"
2537 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm powerpcspe/t-vxworks"
2538 extra_options="${extra_options} powerpcspe/sysv4.opt"
2539 extra_headers=ppc-asm.h
2540 tm_file="${tm_file} vx-common.h vxworks.h powerpcspe/vxworks.h powerpcspe/e500.h"
2542 powerpc-wrs-vxworks*)
2543 tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2544 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2545 extra_options="${extra_options} rs6000/sysv4.opt"
2546 extra_headers=ppc-asm.h
2549 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2550 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2553 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
2554 tmake_file="${tmake_file} rs6000/t-vxworksae"
2557 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
2563 tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2564 tmake_file="t-lynx rs6000/t-lynx"
2565 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2571 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2572 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2573 extra_options="${extra_options} rs6000/sysv4.opt"
2575 powerpcle-*-eabisim*)
2576 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"
2577 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2578 extra_options="${extra_options} rs6000/sysv4.opt"
2582 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"
2583 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2584 extra_options="${extra_options} rs6000/sysv4.opt"
2587 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2588 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2589 tmake_file="rs6000/t-aix43 t-slibgcc"
2590 extra_options="${extra_options} rs6000/aix64.opt"
2593 use_gcc_stdint=provide
2596 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2597 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2598 extra_options="${extra_options} rs6000/aix64.opt"
2599 tmake_file="rs6000/t-aix43 t-slibgcc"
2605 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2606 tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2607 tmake_file="rs6000/t-aix52 t-slibgcc"
2608 extra_options="${extra_options} rs6000/aix64.opt"
2614 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2615 tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2616 tmake_file="rs6000/t-aix52 t-slibgcc"
2617 extra_options="${extra_options} rs6000/aix64.opt"
2621 extra_headers=altivec.h
2623 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
2624 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2625 tmake_file="rs6000/t-aix52 t-slibgcc"
2626 extra_options="${extra_options} rs6000/aix64.opt"
2630 extra_headers=altivec.h
2631 default_use_cxa_atexit=yes
2633 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2634 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
2635 tmake_file="rs6000/t-aix52 t-slibgcc"
2636 extra_options="${extra_options} rs6000/aix64.opt"
2640 extra_headers="altivec.h amo.h"
2641 default_use_cxa_atexit=yes
2644 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2645 target_has_targetm_common=no
2646 c_target_objs="rl78-c.o"
2647 cxx_target_objs="rl78-c.o"
2648 tmake_file="${tmake_file} rl78/t-rl78"
2651 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2652 tmake_file="${tmake_file} rx/t-rx"
2655 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2656 c_target_objs="${c_target_objs} s390-c.o"
2657 cxx_target_objs="${cxx_target_objs} s390-c.o"
2658 if test x$enable_targets = xall; then
2659 tmake_file="${tmake_file} s390/t-linux64"
2661 tmake_file="${tmake_file} s390/t-s390"
2664 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2665 tm_p_file="linux-protos.h s390/s390-protos.h"
2666 c_target_objs="${c_target_objs} s390-c.o"
2667 cxx_target_objs="${cxx_target_objs} s390-c.o"
2668 md_file=s390/s390.md
2669 extra_modes=s390/s390-modes.def
2670 out_file=s390/s390.c
2671 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
2674 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2675 tm_p_file=s390/s390-protos.h
2676 c_target_objs="${c_target_objs} s390-c.o"
2677 cxx_target_objs="${cxx_target_objs} s390-c.o"
2678 md_file=s390/s390.md
2679 extra_modes=s390/s390-modes.def
2680 out_file=s390/s390.c
2682 extra_options="${extra_options} s390/tpf.opt"
2683 tmake_file="${tmake_file} s390/t-s390"
2685 sh-*-elf* | sh[12346l]*-*-elf* | \
2686 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2687 sh-*-netbsdelf* | shl*-*-netbsdelf*)
2688 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2689 if test x${with_endian} = x; then
2691 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2692 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2693 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2694 shl* | sh*-*-linux* | \
2695 sh-superh-elf) with_endian=little,big ;;
2696 sh[1234]*-*-*) with_endian=big ;;
2697 *) with_endian=big,little ;;
2700 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2701 # First word : the default endian.
2702 # Second word: the secondary endian (optional).
2703 case ${with_endian} in
2704 big) TM_ENDIAN_CONFIG=mb ;;
2705 little) TM_ENDIAN_CONFIG=ml ;;
2706 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2707 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2708 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2710 case ${with_endian} in
2711 little*) tm_file="sh/little.h ${tm_file}" ;;
2713 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2715 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2716 if test x$enable_fdpic = xyes; then
2717 tm_defines="$tm_defines FDPIC_DEFAULT=1"
2719 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2721 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
2722 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2725 sh*-superh-elf) if test x$with_libgloss != xno; then
2727 tm_file="${tm_file} sh/newlib.h"
2729 tm_file="${tm_file} sh/embed-elf.h"
2730 tm_file="${tm_file} sh/superh.h"
2731 extra_options="${extra_options} sh/superh.opt" ;;
2732 *) if test x$with_newlib = xyes \
2733 && test x$with_libgloss = xyes; then
2734 tm_file="${tm_file} sh/newlib.h"
2736 tm_file="${tm_file} sh/embed-elf.h" ;;
2742 tm_file="${tm_file} newlib-stdint.h"
2745 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2746 case `echo ${target} | sed 's/e[lb]-/-/'` in
2747 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2748 sh4a_single*) sh_cpu_target=sh4a-single ;;
2749 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2750 sh4al) sh_cpu_target=sh4al ;;
2751 sh4a*) sh_cpu_target=sh4a ;;
2752 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2753 sh4_single*) sh_cpu_target=sh4-single ;;
2754 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2755 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2756 sh3e*) sh_cpu_target=sh3e ;;
2757 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2758 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2759 sh2a_single*) sh_cpu_target=sh2a-single ;;
2760 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2761 sh2a*) sh_cpu_target=sh2a ;;
2762 sh2e*) sh_cpu_target=sh2e ;;
2763 sh2*) sh_cpu_target=sh2 ;;
2764 *) sh_cpu_target=sh1 ;;
2766 # did the user say --without-fp ?
2767 if test x$with_fp = xno; then
2768 case ${sh_cpu_target} in
2770 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2771 sh4*) sh_cpu_target=sh4-nofpu ;;
2772 sh3*) sh_cpu_target=sh3 ;;
2773 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2774 sh2*) sh_cpu_target=sh2 ;;
2775 *) echo --without-fp not available for $target: ignored
2777 tm_defines="$tm_defines STRICT_NOFPU=1"
2779 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2780 case $sh_cpu_default in
2781 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2782 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2783 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2784 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2785 "") sh_cpu_default=${sh_cpu_target} ;;
2786 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2788 sh_multilibs=${with_multilib_list}
2789 if test "$sh_multilibs" = "default" ; then
2791 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2792 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2793 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2794 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2795 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2797 if test x$with_fp = xno; then
2798 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`"
2801 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2802 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2803 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2804 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2805 for sh_multilib in ${sh_multilibs}; do
2806 case ${sh_multilib} in
2807 m1 | m2 | m2e | m3 | m3e | \
2808 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2809 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2810 m2a | m2a-single | m2a-single-only | m2a-nofpu)
2811 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2812 # It is passed to MULTIILIB_OPTIONS verbatim.
2813 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2814 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2816 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2817 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2818 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2820 echo "with_multilib_list=${sh_multilib} not supported."
2825 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2826 if test x${enable_incomplete_targets} = xyes ; then
2827 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
2829 tm_file="$tm_file ./sysroot-suffix.h"
2830 tmake_file="$tmake_file t-sysroot-suffix"
2833 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2834 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2837 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2838 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2841 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2844 tmake_file="sparc/t-sparc sparc/t-leon"
2847 tmake_file="sparc/t-sparc sparc/t-leon3"
2850 tmake_file="sparc/t-sparc sparc/t-elf"
2855 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2856 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2859 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2860 extra_options="${extra_options} sparc/long-double-switch.opt"
2863 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2866 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2869 tmake_file="${tmake_file} sparc/t-sparc"
2872 if test x$enable_targets = xall; then
2873 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2874 tmake_file="${tmake_file} sparc/t-linux64"
2876 tm_file="${tm_file} sparc/linux.h"
2877 tmake_file="${tmake_file} sparc/t-linux"
2881 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
2882 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2883 extra_options="${extra_options} sparc/long-double-switch.opt"
2884 tmake_file="${tmake_file} sparc/t-sparc"
2887 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2889 sparc64-*-* | sparcv9-*-*)
2890 tm_file="sparc/default64.h ${tm_file}"
2893 test x$with_cpu != x || with_cpu=v9
2896 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2899 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2900 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2903 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2904 extra_options="${extra_options}"
2905 tmake_file="${tmake_file} sparc/t-sparc"
2908 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2909 extra_options="${extra_options}"
2910 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2913 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"
2914 extra_options="${extra_options} sparc/long-double-switch.opt"
2915 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2917 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2918 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2919 extra_options="${extra_options} sparc/long-double-switch.opt"
2920 case "x$with_cpu" in
2922 x) with_cpu=ultrasparc ;;
2923 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2925 tmake_file="${tmake_file} sparc/t-sparc"
2928 tm_file="sparc/biarch64.h ${tm_file}"
2929 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
2930 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2931 extra_options="${extra_options} sparc/long-double-switch.opt"
2932 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2935 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2936 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2937 extra_options="${extra_options} openbsd.opt"
2938 extra_options="${extra_options}"
2941 tmake_file="${tmake_file} sparc/t-sparc"
2944 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2945 tmake_file="spu/t-spu-elf"
2946 native_system_header_dir=/include
2947 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2948 extra_modes=spu/spu-modes.def
2949 c_target_objs="${c_target_objs} spu-c.o"
2950 cxx_target_objs="${cxx_target_objs} spu-c.o"
2953 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
2954 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
2955 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
2959 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
2960 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
2961 tm_file="${tm_file} ./sysroot-suffix.h"
2962 tmake_file="t-sysroot-suffix t-slibgcc"
2963 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
2967 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
2968 tmake_file="${tmake_file} tilegx/t-tilegx"
2969 extra_objs="${extra_objs} mul-tables.o"
2970 c_target_objs="${c_target_objs} tilegx-c.o"
2971 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
2972 extra_headers="feedback.h"
2975 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2980 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
2981 tmake_file="${tmake_file} tilepro/t-tilepro"
2982 extra_objs="${extra_objs} mul-tables.o"
2983 c_target_objs="${c_target_objs} tilepro-c.o"
2984 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
2985 extra_headers="feedback.h"
2988 target_cpu_default="TARGET_CPU_generic"
2989 tm_file="dbxelf.h elfos.h v850/v850.h"
2990 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
2991 tmake_file="${tmake_file} v850/t-v850"
2992 tmake_file="${tmake_file} v850/t-rtems"
2994 c_target_objs="v850-c.o"
2995 cxx_target_objs="v850-c.o"
3000 target_cpu_default="TARGET_CPU_v850e3v5"
3003 target_cpu_default="TARGET_CPU_v850e2v3"
3006 target_cpu_default="TARGET_CPU_v850e2"
3008 v850e1-*-* | v850es-*-*)
3009 target_cpu_default="TARGET_CPU_v850e1"
3012 target_cpu_default="TARGET_CPU_v850e"
3015 target_cpu_default="TARGET_CPU_generic"
3018 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3019 if test x$stabs = xyes
3021 tm_file="${tm_file} dbx.h"
3024 c_target_objs="v850-c.o"
3025 cxx_target_objs="v850-c.o"
3029 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3030 extra_options="${extra_options} vax/elf.opt"
3033 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3034 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3035 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3038 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3039 extra_options="${extra_options} openbsd.opt"
3043 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3044 tmake_file="visium/t-visium visium/t-crtstuff"
3047 # For historical reasons, the target files omit the 'x'.
3048 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3049 tm_p_file=stormy16/stormy16-protos.h
3050 md_file=stormy16/stormy16.md
3051 out_file=stormy16/stormy16.c
3052 extra_options=stormy16/stormy16.opt
3053 tmake_file="stormy16/t-stormy16"
3056 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3057 extra_options="${extra_options} xtensa/elf.opt"
3060 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3061 tmake_file="${tmake_file} xtensa/t-xtensa"
3064 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3065 tmake_file="${tmake_file} xtensa/t-xtensa"
3066 extra_options="${extra_options} xtensa/uclinux.opt"
3069 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3074 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3075 c_target_objs="m32c-pragma.o"
3076 cxx_target_objs="m32c-pragma.o"
3079 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3080 c_target_objs="m32c-pragma.o"
3081 cxx_target_objs="m32c-pragma.o"
3084 echo "*** Configuration ${target} not supported" 1>&2
3090 i[34567]86-*-linux* | x86_64-*-linux*)
3091 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3093 i[34567]86-*-* | x86_64-*-*)
3094 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3096 powerpc*-*-* | rs6000-*-*)
3097 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3103 tmake_file="${tmake_file} t-musl"
3106 tmake_file="${tmake_file} t-uclibc"
3110 # Assume the existence of indirect function support and allow the use of the
3111 # resolver attribute.
3113 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3117 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3118 default_gnu_indirect_function=yes
3124 # Build mkoffload tool
3126 *-intelmic-* | *-intelmicemul-*)
3127 tmake_file="${tmake_file} i386/t-intelmic"
3128 tm_file="${tm_file} i386/intelmic-offload.h"
3132 if [ "$target_has_targetcm" = "no" ]; then
3133 c_target_objs="$c_target_objs default-c.o"
3134 cxx_target_objs="$cxx_target_objs default-c.o"
3137 if [ "$common_out_file" = "" ]; then
3138 if [ "$target_has_targetm_common" = "yes" ]; then
3139 common_out_file="$cpu_type/$cpu_type-common.c"
3141 common_out_file="default-common.c"
3145 # Support for --with-cpu and related options (and a few unrelated options,
3149 echo "--with-cpu must be passed a value" 1>&2
3154 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3155 # to generic if there is no processor scheduler model for the target.
3158 arch_without_sse2=no
3159 arch_without_64bit=no
3162 if test $fbsd_major -ge 6; then
3168 arch_without_sse2=yes
3169 arch_without_64bit=yes
3174 arch_without_sse2=yes
3175 arch_without_64bit=yes
3180 arch_without_sse2=yes
3181 arch_without_64bit=yes
3186 arch_without_sse2=yes
3187 arch_without_64bit=yes
3190 arch_without_sse2=yes
3191 arch_without_64bit=yes
3192 case ${target_noncanonical} in
3205 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3215 i686-*-* | i786-*-*)
3216 case ${target_noncanonical} in
3245 amdfam10-*|barcelona-*)
3249 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3253 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3257 athlon_xp-*|athlon_mp-*|athlon_4-*)
3260 arch_without_sse2=yes
3261 arch_without_64bit=yes
3263 athlon_tbird-*|athlon-*)
3266 arch_without_sse2=yes
3271 arch_without_sse2=yes
3276 arch_without_sse2=yes
3278 pentium3-*|pentium3m-*)
3281 arch_without_sse2=yes
3283 pentium4-*|pentium4m-*)
3322 arch_without_sse2=yes
3327 arch_without_sse2=yes
3328 arch_without_64bit=yes
3333 case ${target_noncanonical} in
3362 amdfam10-*|barcelona-*)
3366 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3370 k8-*|opteron-*|athlon_64-*)
3402 # If there is no $with_cpu option, try to infer one from ${target}.
3403 # This block sets nothing except for with_cpu.
3404 if test x$with_cpu = x ; then
3406 i[34567]86-*-elfiamcu)
3409 i[34567]86-*-*|x86_64-*-*)
3427 frv-*-*linux* | frv400-*-*linux*)
3434 case "$with_arch" in
3436 with_cpu=${default_cf_cpu}
3439 with_cpu=m${default_m68k_cpu}
3444 # For SPE, start with 8540, then upgrade to 8548 if
3445 # --enable-e500-double was requested explicitly or if we were
3446 # configured for e500v2.
3448 if test x$enable_e500_double = xyes; then
3451 case ${target_noncanonical} in
3469 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3478 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3480 i[34567]86-*-*|x86_64-*-*)
3481 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3482 if test x$with_cpu_32 = x; then
3483 with_cpu_32=$with_cpu
3485 if test x$with_cpu_64 = x; then
3486 with_cpu_64=$with_cpu
3494 # Support for --with-arch and related options (and a few unrelated options,
3496 case ${with_arch} in
3498 echo "--with-arch must be passed a value" 1>&2
3503 # If there is no $with_arch option, try to infer one from ${target}.
3504 # This block sets nothing except for with_arch.
3505 if test x$with_arch = x ; then
3507 i[34567]86-*-darwin*|x86_64-*-darwin*)
3508 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3509 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3511 i[34567]86-*-elfiamcu)
3515 # --with-fpmath sets the default ISA to SSE2, which is the same
3516 # ISA supported by Pentium 4.
3517 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3526 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3534 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3536 i[34567]86-*-darwin*|x86_64-*-darwin*)
3537 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3538 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3540 i[34567]86-*-*|x86_64-*-*)
3541 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3542 if test x$with_arch_32 = x; then
3543 with_arch_32=$with_arch
3545 if test x$with_arch_64 = x; then
3546 if test $arch_without_64bit = yes; then
3547 # Set the default 64bit arch to x86-64 if the default arch
3548 # doesn't support 64bit.
3551 with_arch_64=$with_arch
3555 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3556 # Set the default 64bit arch to x86-64 if the default arch
3557 # doesn't support 64bit and we need 64bit ISA.
3558 with_arch_32=$with_arch
3566 # Infer a default setting for --with-float.
3567 if test x$with_float = x; then
3569 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3570 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3571 # comply with IEEE 754.
3577 # Infer a default setting for --with-fpu.
3578 if test x$with_fpu = x; then
3580 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3581 # The R5900 FPU only supports single precision.
3587 # Support --with-fpmath.
3588 if test x$with_fpmath != x; then
3590 i[34567]86-*-* | x86_64-*-*)
3591 case ${with_fpmath} in
3593 tm_file="${tm_file} i386/avxmath.h"
3596 tm_file="${tm_file} i386/ssemath.h"
3599 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3605 echo "--with-fpmath isn't supported for $target." 1>&2
3611 # Similarly for --with-schedule.
3612 if test x$with_schedule = x; then
3615 # Override default PA8000 scheduling model.
3616 with_schedule=7100LC
3621 # Infer a default setting for --with-llsc.
3622 if test x$with_llsc = x; then
3624 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3625 # The R5900 doesn't support LL(D) and SC(D).
3629 # The kernel emulates LL and SC where necessary.
3635 # Validate and mark as valid any --with options supported
3636 # by this target. In order to use a particular --with option
3637 # you must list it in supported_defaults; validating the value
3638 # is optional. This case statement should set nothing besides
3639 # supported_defaults.
3644 supported_defaults="abi cpu arch"
3645 for which in cpu arch; do
3647 eval "val=\$with_$which"
3648 base_val=`echo $val | sed -e 's/\+.*//'`
3649 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
3651 if [ $which = arch ]; then
3652 def=aarch64-arches.def
3653 pattern=AARCH64_ARCH
3655 def=aarch64-cores.def
3656 pattern=AARCH64_CORE
3659 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3661 # Find the base CPU or ARCH id in aarch64-cores.def or
3662 # aarch64-arches.def
3663 if [ x"$base_val" = x ] \
3664 || grep "^$pattern(\"$base_val\"," \
3665 ${srcdir}/config/aarch64/$def \
3668 if [ $which = arch ]; then
3669 base_id=`grep "^$pattern(\"$base_val\"," \
3670 ${srcdir}/config/aarch64/$def | \
3671 sed -e 's/^[^,]*,[ ]*//' | \
3673 # Extract the architecture flags from aarch64-arches.def
3674 ext_mask=`grep "^$pattern(\"$base_val\"," \
3675 ${srcdir}/config/aarch64/$def | \
3679 base_id=`grep "^$pattern(\"$base_val\"," \
3680 ${srcdir}/config/aarch64/$def | \
3681 sed -e 's/^[^,]*,[ ]*//' | \
3685 while [ x"$ext_val" != x ]
3687 ext_val=`echo $ext_val | sed -e 's/\+//'`
3688 ext=`echo $ext_val | sed -e 's/\+.*//'`
3689 base_ext=`echo $ext | sed -e 's/^no//'`
3691 if [ x"$base_ext" = x ] \
3692 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3693 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3696 ext_canon=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3697 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3698 sed -e 's/^[^,]*,[ ]*//' | \
3700 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3701 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3702 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3703 sed -e 's/,.*$//' | \
3705 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3706 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3707 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*[^,]*,[ ]*//' | \
3708 sed -e 's/,.*$//' | \
3712 if [ $ext = $base_ext ]; then
3714 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
3716 # Removing extension
3717 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
3722 echo "Unknown extension used in --with-$which=$val" 1>&2
3725 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3728 ext_mask="(("$ext_mask") << 6)"
3729 if [ x"$base_id" != x ]; then
3730 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3734 echo "Unknown $which used in --with-$which=$val" 1>&2
3741 supported_defaults="cpu tune"
3742 for which in cpu tune; do
3743 eval "val=\$with_$which"
3746 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3747 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3751 echo "Unknown CPU used in --with-$which=$val" 1>&2
3759 supported_defaults="cpu"
3761 if [ x"$with_cpu" = x ] \
3762 || grep "^ARC_CPU ($with_cpu," \
3763 ${srcdir}/config/arc/arc-cpus.def \
3768 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3774 supported_defaults="arch cpu float tune fpu abi mode tls"
3775 for which in cpu tune arch; do
3776 # See if it matches a supported value
3777 eval "val=\$with_$which"
3778 if [ x"$val" != x ]; then
3779 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3780 -v cmd="chk$which $val" \
3781 ${srcdir}/config/arm/arm-cpus.in`
3782 if [ "$cpu" = "error" ]; then
3783 echo "Unknown target in --with-$which=$val" 1>&2
3787 eval "target_${which}_cname=$new_val"
3788 echo "For $val real value is $new_val"
3793 case "$with_float" in
3795 | soft | hard | softfp)
3799 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3804 # see if --with-fpu matches any of the supported FPUs
3805 if [ x"$with_fpu" != x ] ; then
3806 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3807 -v cmd="chkfpu $with_fpu" \
3808 ${srcdir}/config/arm/arm-cpus.in`
3809 if [ "$fpu" = "error"]
3811 echo "Unknown target in --with-$which=$val" 1>&2
3818 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3822 echo "Unknown ABI used in --with-abi=$with_abi"
3827 case "$with_mode" in
3833 echo "Unknown mode used in --with-mode=$with_mode"
3844 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3849 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3850 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3854 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3855 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3859 # Add extra multilibs
3860 if test "x$with_multilib_list" != x; then
3861 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3862 if test "x${arm_multilibs}" != xdefault ; then
3863 for arm_multilib in ${arm_multilibs}; do
3864 case ${arm_multilib} in
3866 tmake_profile_file="arm/t-multilib"
3869 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3876 if test "x${tmake_profile_file}" != x ; then
3877 # arm/t-aprofile and arm/t-rmprofile are only
3878 # designed to work without any with-cpu,
3879 # with-arch, with-mode, with-fpu or with-float
3881 if test "x$with_arch" != x \
3882 || test "x$with_cpu" != x \
3883 || test "x$with_float" != x \
3884 || test "x$with_fpu" != x \
3885 || test "x$with_mode" != x ; then
3886 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
3889 # But pass the default value for float-abi
3890 # through to the multilib selector
3892 tmake_file="${tmake_file} ${tmake_profile_file}"
3893 TM_MULTILIB_CONFIG="$with_multilib_list"
3896 target_cpu_cname=${target_cpu_cname:-arm6}
3897 with_cpu=${with_cpu:-$target_cpu_cname}
3901 supported_defaults=cpu
3906 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3912 fido-*-* | m68k*-*-*)
3913 supported_defaults="arch cpu"
3914 case "$with_arch" in
3916 m68k_arch_family="$with_arch"
3919 echo "Invalid --with-arch=$with_arch" 1>&2
3924 # We always have a $with_cpu setting here.
3926 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3927 m68k_cpu_ident=$with_cpu
3930 m68k_cpu_ident=m68020
3931 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3934 m68k_cpu_ident=m68020
3935 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3938 # We need the C identifier rather than the string.
3939 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
3940 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
3941 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
3942 ${srcdir}/config/m68k/m68k-devices.def`
3943 if [ x"$m68k_cpu_ident" = x ] ; then
3944 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
3947 with_cpu="mcpu=$with_cpu"
3953 supported_defaults="arch schedule"
3955 case "$with_arch" in
3956 "" | 1.0 | 1.1 | 2.0)
3960 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
3965 case "$with_schedule" in
3966 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
3970 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
3976 i[34567]86-*-* | x86_64-*-*)
3977 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
3978 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3979 eval "val=\$with_$which"
3980 case " $x86_archs " in
3988 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
3997 if test x${val} != x; then
3998 case " $x86_64_archs " in
4003 # Allow $x86_cpus --with-cpu=/--with-tune=
4006 case " $x86_cpus " in
4011 echo "Unknown CPU given in --with-$which=$val." 1>&2
4017 echo "Unknown CPU given in --with-$which=$val." 1>&2
4030 supported_defaults="abi arch tune"
4033 riscv32*) xlen=32 ;;
4034 riscv64*) xlen=64 ;;
4035 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4038 # Infer arch from --with-arch, --target, and --with-abi.
4039 case "${with_arch}" in
4040 rv32i* | rv32g* | rv64i* | rv64g*)
4044 # Infer XLEN, but otherwise assume GC.
4045 case "${with_abi}" in
4046 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4047 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4048 *) with_arch="rv${xlen}gc" ;;
4052 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32i, rv32g, rv64i, or rv64g." 1>&2
4057 # Make sure --with-abi is valid. If it was not specified,
4058 # pick a default based on the ISA, preferring soft-float
4059 # unless the D extension is present.
4060 case "${with_abi}" in
4061 ilp32 | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4064 case "${with_arch}" in
4065 rv32*d* | rv32g*) with_abi=ilp32d ;;
4066 rv32*) with_abi=ilp32 ;;
4067 rv64*d* | rv64g*) with_abi=lp64d ;;
4068 rv64*) with_abi=lp64 ;;
4072 echo "--with-abi=${with_abi} is not supported" 1>&2
4077 # Make sure ABI and ISA are compatible.
4078 case "${with_abi},${with_arch}" in
4080 | ilp32f,rv32*f* | ilp32f,rv32g* \
4081 | ilp32d,rv32*d* | ilp32d,rv32g* \
4083 | lp64f,rv64*f* | lp64f,rv64g* \
4084 | lp64d,rv64*d* | lp64d,rv64g*)
4087 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4094 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"
4096 case ${with_float} in
4101 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4107 "" | single | double)
4111 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4121 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4126 case ${with_fp_32} in
4131 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4136 case ${with_odd_spreg_32} in
4138 with_odd_spreg_32="odd-spreg"
4141 with_odd_spreg_32="no-odd-spreg"
4147 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4153 "" | 32 | o64 | n32 | 64 | eabi)
4157 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4162 case ${with_divide} in
4163 "" | breaks | traps)
4167 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4172 case ${with_llsc} in
4183 echo "Unknown llsc type used in --with-llsc" 1>&2
4188 case ${with_mips_plt} in
4193 with_mips_plt=no-plt
4198 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4203 case ${with_synci} in
4213 echo "Unknown synci type used in --with-synci" 1>&2
4218 case ${with_lxc1_sxc1} in
4220 with_lxc1_sxc1=lxc1-sxc1
4223 with_lxc1_sxc1=no-lxc1-sxc1
4228 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4233 case ${with_madd4} in
4243 echo "Unknown madd4 type used in --with-madd4" 1>&2
4250 supported_defaults="arch nds32_lib"
4252 # process --with-arch
4253 case "${with_arch}" in
4258 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v3 v3m" 1>&2
4263 # process --with-nds32-lib
4264 case "${with_nds32_lib}" in
4266 # the default library is newlib
4267 with_nds32_lib=newlib
4276 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
4283 supported_defaults="arch"
4284 case "$with_arch" in
4289 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4295 powerpc*-*-* | rs6000-*-*)
4296 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4298 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4299 eval "val=\$with_$which"
4301 default32 | default64)
4306 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4310 with_which="with_$which"
4314 tm_defines="${tm_defines} CONFIG_PPC405CR"
4315 eval "with_$which=405"
4317 "" | common | native \
4318 | power[3456789] | power5+ | power6x \
4319 | powerpc | powerpc64 | powerpc64le \
4321 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4322 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4323 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4324 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4325 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4329 echo "Unknown cpu used in --with-$which=$val." 1>&2
4336 "" | elfv1 | elfv2 )
4340 echo "Unknown ABI used in --with-abi=$with_abi"
4345 if test "x$with_advance_toolchain" != x; then
4346 if test -d "/opt/$with_advance_toolchain/." -a \
4347 -d "/opt/$with_advance_toolchain/bin/." -a \
4348 -d "/opt/$with_advance_toolchain/include/."; then
4350 tm_file="$tm_file ./advance-toolchain.h"
4351 (at="/opt/$with_advance_toolchain"
4352 echo "/* Use Advance Toolchain $at */"
4354 echo "#undef LINK_OS_EXTRA_SPEC32"
4355 echo "#define LINK_OS_EXTRA_SPEC32" \
4356 "\"%(link_os_new_dtags)" \
4357 "-rpath $prefix/lib -rpath $at/lib" \
4358 "-L $prefix/lib -L $at/lib\""
4360 echo "#undef LINK_OS_EXTRA_SPEC64"
4361 echo "#define LINK_OS_EXTRA_SPEC64" \
4362 "\"%(link_os_new_dtags)" \
4363 "-rpath $prefix/lib64 -rpath $at/lib64" \
4364 "-L $prefix/lib64 -L $at/lib64\""
4366 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4367 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4368 "\"--enable-new-dtags\""
4370 echo "#undef DYNAMIC_LINKER_PREFIX"
4371 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4373 echo "#undef MD_EXEC_PREFIX"
4374 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4376 echo "#undef MD_STARTFILE_PREFIX"
4377 echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \
4378 > advance-toolchain.h
4380 echo "Unknown advance-toolchain $with_advance_toolchain"
4387 supported_defaults="arch mode tune"
4389 for which in arch tune; do
4390 eval "val=\$with_$which"
4392 "" | native | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | arch3 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12)
4396 echo "Unknown cpu used in --with-$which=$val." 1>&2
4402 case ${with_mode} in
4407 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4413 sh[123456ble]*-*-* | sh-*-*)
4414 supported_defaults="cpu"
4415 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4416 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4419 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4421 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4424 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4425 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4426 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4427 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4433 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4435 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4436 eval "val=\$with_$which"
4438 "" | sparc | sparcv9 | sparc64 \
4440 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4441 | sparclite | f930 | f934 | sparclite86x \
4442 | sparclet | tsc701 \
4443 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4444 | niagara3 | niagara4 | niagara7 | m8)
4448 echo "Unknown cpu used in --with-$which=$val" 1>&2
4454 case ${with_float} in
4459 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4466 supported_defaults="arch tune"
4468 for which in arch tune; do
4469 eval "val=\$with_$which"
4471 "" | cell | celledp)
4475 echo "Unknown cpu used in --with-$which=$val." 1>&2
4483 supported_defaults="arch"
4485 case ${with_arch} in
4486 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4490 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4497 supported_defaults=cpu
4499 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4503 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4509 supported_defaults="cpu"
4513 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4520 # Set some miscellaneous flags for particular targets.
4521 target_cpu_default2=
4524 if test x"$target_cpu_cname" != x
4526 target_cpu_default2=$target_cpu_cname
4531 if test x$with_cpu = x
4533 echo "Don't know the target cpu" 1>&2
4536 target_cpu_default2="\\\"$with_cpu\\\""
4541 if test x$gas = xyes
4543 target_cpu_default2="MASK_GAS"
4547 fido*-*-* | m68k*-*-*)
4548 target_cpu_default2=$m68k_cpu_ident
4549 tmake_file="m68k/t-opts $tmake_file"
4550 if [ x"$m68k_arch_family" != x ]; then
4551 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4555 i[34567]86-*-darwin* | x86_64-*-darwin*)
4557 i[34567]86-*-linux* | x86_64-*-linux*)
4558 extra_objs="${extra_objs} cet.o"
4559 tmake_file="$tmake_file i386/t-linux i386/t-cet"
4561 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4562 tmake_file="$tmake_file i386/t-kfreebsd"
4565 tmake_file="$tmake_file i386/t-gnu"
4567 i[34567]86-*-msdosdjgpp*)
4568 tmake_file="${tmake_file} i386/t-djgpp"
4570 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4572 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4574 i[34567]86-*-mingw* | x86_64-*-mingw*)
4576 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4578 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4584 if test x$gnu_ld = xyes
4586 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4590 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4593 if test x$with_arch != x; then
4594 default_mips_arch=$with_arch
4596 if test x$with_abi != x; then
4597 default_mips_abi=$with_abi
4599 case ${default_mips_arch} in
4600 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4601 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4602 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4603 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4604 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4605 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4606 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
4607 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4608 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4609 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
4611 case ${default_mips_abi} in
4612 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4613 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4614 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4615 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4616 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4618 tmake_file="mips/t-mips $tmake_file"
4621 powerpc*-*-* | rs6000-*-*)
4622 # FIXME: The PowerPC port uses the value set at compile time,
4623 # although it's only cosmetic.
4624 if test "x$with_cpu" != x
4626 target_cpu_default2="\\\"$with_cpu\\\""
4628 out_file="${cpu_type}/${cpu_type}.c"
4629 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
4630 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
4631 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
4634 sh[123456ble]*-*-* | sh-*-*)
4635 c_target_objs="${c_target_objs} sh-c.o"
4636 cxx_target_objs="${cxx_target_objs} sh-c.o"
4640 # Some standard aliases.
4645 xsparcv9 | xsparc64)
4650 if test x$with_tune = x ; then
4661 # The SPARC port checks this value at compile-time.
4662 target_cpu_default2="TARGET_CPU_$with_cpu"
4666 case "x$with_cpu" in
4669 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4670 target_cpu_default2="TARGET_CPU_$with_cpu"
4673 target_cpu_default2="TARGET_CPU_v850e1"
4678 target_cpu_default2="TARGET_CPU_$with_cpu"
4683 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"
4684 for option in $all_defaults
4686 eval "val=\$with_"`echo $option | sed s/-/_/g`
4687 if test -n "$val"; then
4688 case " $supported_defaults " in
4692 echo "This target does not support --with-$option." 2>&1
4693 echo "Valid --with options are: $supported_defaults" 2>&1
4700 t="{ \"$option\", \"$val\" }"
4702 t="${t}, { \"$option\", \"$val\" }"
4709 configure_default_options="{ { NULL, NULL} }"
4711 configure_default_options="{ ${t} }"
4714 if test "$target_cpu_default2" != ""
4716 if test "$target_cpu_default" != ""
4718 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4720 target_cpu_default=$target_cpu_default2
4725 i[34567]86-*-* | x86_64-*-*)
4726 if test x$enable_as_accelerator = xyes; then
4727 extra_programs="mkoffload\$(exeext)"