1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2018 Free Software Foundation, Inc.
4 #This file is part of GCC.
6 #GCC is free software; you can redistribute it and/or modify it under
7 #the terms of the GNU General Public License as published by the Free
8 #Software Foundation; either version 3, or (at your option) any later
11 #GCC is distributed in the hope that it will be useful, but WITHOUT
12 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 #FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 #You should have received a copy of the GNU General Public License
17 #along with GCC; see the file COPYING3. If not see
18 #<http://www.gnu.org/licenses/>.
20 # This is the GCC target-specific configuration file
21 # where a configuration type is mapped to different system-specific
22 # definitions and files. This is invoked by the autoconf-generated
23 # configure script. Putting it in a separate shell file lets us skip
24 # running autoconf when modifying target-specific information.
26 # When you change the cases in the OS or target switches, consider
27 # updating ../libgcc/config.host also.
29 # This file switches on the shell variable ${target}, and also uses the
30 # following shell variables:
32 # with_* Various variables as set by configure.
34 # enable_threads Either the name, yes or no depending on whether
35 # threads support was requested.
37 # default_use_cxa_atexit
38 # The default value for the $enable___cxa_atexit
39 # variable. enable___cxa_atexit needs to be set to
40 # "yes" for the correct operation of C++ destructors
41 # but it relies upon the presence of a non-standard C
42 # library function called __cxa_atexit.
43 # Since not all C libraries provide __cxa_atexit the
44 # default value of $default_use_cxa_atexit is set to
45 # "no" except for targets which are known to be OK.
47 # default_gnu_indirect_function
48 # The default value for the $enable_gnu_indirect_function
49 # variable. enable_gnu_indirect_function relies
50 # upon the presence of a non-standard gnu ifunc support
51 # in the assembler, linker and dynamic linker.
52 # Since not all libraries provide the dynamic linking
53 # support, the default value of
54 # $default_gnu_indirect_function is set to
55 # "no" except for targets which are known to be OK.
57 # gas_flag Either yes or no depending on whether GNU as was
60 # gnu_ld_flag Either yes or no depending on whether GNU ld was
63 # This file sets the following shell variables for use by the
64 # autoconf-generated configure script:
66 # cpu_type The name of the cpu, if different from the first
67 # chunk of the canonical target name.
69 # tm_defines List of target macros to define for all compilations.
71 # tm_file A list of target macro files, if different from
72 # "$cpu_type/$cpu_type.h". Usually it's constructed
73 # per target in a way like this:
74 # tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h"
75 # Note that the preferred order is:
76 # - specific target header "${cpu_type}/${cpu_type.h}"
77 # - generic headers like dbxelf.h elfos.h, etc.
78 # - specializing target headers like ${cpu_type.h}/elf.h
79 # This helps to keep OS specific stuff out of the CPU
80 # defining header ${cpu_type}/${cpu_type.h}.
82 # It is possible to include automatically-generated
83 # build-directory files by prefixing them with "./".
84 # All other files should relative to $srcdir/config.
86 # tm_p_file Location of file with declarations for functions
89 # out_file The name of the machine description C support
90 # file, if different from "$cpu_type/$cpu_type.c".
92 # common_out_file The name of the source file for code shared between
93 # the compiler proper and the driver.
95 # md_file The name of the machine-description file, if
96 # different from "$cpu_type/$cpu_type.md".
98 # tmake_file A list of machine-description-specific
99 # makefile-fragments, if different from
100 # "$cpu_type/t-$cpu_type".
102 # extra_modes The name of the file containing a list of extra
103 # machine modes, if necessary and different from
104 # "$cpu_type/$cpu_type-modes.def".
106 # extra_objs List of extra objects that should be linked into
107 # the compiler proper (cc1, cc1obj, cc1plus)
108 # depending on target.
110 # extra_gcc_objs List of extra objects that should be linked into
111 # the compiler driver (gcc) depending on target.
113 # extra_headers List of used header files from the directory
114 # config/${cpu_type}.
116 # user_headers_inc_next_pre
117 # List of header file names of internal gcc header
118 # files, which should be prefixed by an include_next.
119 # user_headers_inc_next_post
120 # List of header file names of internal gcc header
121 # files, which should be postfixed by an include_next.
122 # use_gcc_tgmath If set, add tgmath.h to the list of used header
125 # use_gcc_stdint If "wrap", install a version of stdint.h that
126 # wraps the system's copy for hosted compilations;
127 # if "provide", provide a version of systems without
128 # such a system header; otherwise "none", do not
129 # provide such a header at all.
131 # extra_programs List of extra executables compiled for this target
132 # machine, used when linking.
134 # extra_options List of target-dependent .opt files.
136 # c_target_objs List of extra target-dependent objects that be
137 # linked into the C compiler only.
139 # cxx_target_objs List of extra target-dependent objects that be
140 # linked into the C++ compiler only.
142 # fortran_target_objs List of extra target-dependent objects that be
143 # linked into the fortran compiler only.
145 # target_gtfiles List of extra source files with type information.
147 # xm_defines List of macros to define when compiling for the
150 # xm_file List of files to include when compiling for the
153 # use_collect2 Set to yes or no, depending on whether collect2
156 # target_cpu_default Set to override the default target model.
158 # gdb_needs_out_file_path
159 # Set to yes if gdb needs a dir command with
160 # `dirname $out_file`.
162 # thread_file Set to control which thread package to use.
164 # gas Set to yes or no depending on whether the target
165 # system normally uses GNU as.
167 # configure_default_options
168 # Set to an initializer for configure_default_options
169 # in configargs.h, based on --with-cpu et cetera.
171 # native_system_header_dir
172 # Where system header files are found for this
173 # target. This defaults to /usr/include. If
174 # the --with-sysroot configure option or the
175 # --sysroot command line option is used this
176 # will be relative to the sysroot.
177 # target_type_format_char
178 # The default character to be used for formatting
180 # .type symbol_name, ${t_t_f_c}<property>
183 # The following variables are used in each case-construct to build up the
184 # outgoing variables:
186 # gnu_ld Set to yes or no depending on whether the target
187 # system normally uses GNU ld.
189 # target_has_targetcm Set to yes or no depending on whether the target
190 # has its own definition of targetcm.
192 # target_has_targetm_common Set to yes or no depending on whether the
193 # target has its own definition of targetm_common.
199 user_headers_inc_next_pre=
200 user_headers_inc_next_post=
210 target_has_targetcm=no
211 target_has_targetm_common=yes
214 # Set this to force installation and use of collect2.
216 # Set this to override the default target model.
218 # Set this if gdb needs a dir command with `dirname $out_file`
219 gdb_needs_out_file_path=
220 # Set this to control which thread package will be used.
222 # Reinitialize these from the flag values every loop pass, since some
223 # configure entries modify them.
225 gnu_ld="$gnu_ld_flag"
226 default_use_cxa_atexit=no
227 default_gnu_indirect_function=no
230 native_system_header_dir=/usr/include
231 target_type_format_char='@'
233 # Don't carry these over build->host->target. Please.
237 # Obsolete configurations.
242 if test "x$enable_obsolete" != xyes; then
243 echo "*** Configuration ${target} is obsolete." >&2
244 echo "*** Specify --enable-obsolete to build it anyway." >&2
245 echo "*** Support will be REMOVED in the next major release of GCC," >&2
246 echo "*** unless a maintainer comes forward." >&2
251 # Unsupported targets list. Do not put an entry in this list unless
252 # it would otherwise be caught by a more permissive pattern. The list
253 # should be in alphabetical order.
255 # Avoid special cases that are not obsolete
264 | i[34567]86-go32-* \
265 | i[34567]86-*-go32* \
266 | m68k-*-uclinuxoldabi* \
267 | mips64orion*-*-rtems* \
269 | sparc-hal-solaris2* \
271 | *-*-freebsd[12] | *-*-freebsd[1234].* \
272 | *-*-freebsd*aout* \
280 | *-*-solaris2.[0-9] \
281 | *-*-solaris2.[0-9].* \
285 echo "*** Configuration ${target} not supported" 1>&2
290 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
291 # updated in each machine entry. Also set default extra_headers for some
294 cpu_type=`echo ${target} | sed 's/-.*$//'`
299 tmake_file=m32c/t-m32c
300 target_has_targetm_common=no
304 extra_headers="arm_fp16.h arm_neon.h arm_acle.h"
305 c_target_objs="aarch64-c.o"
306 cxx_target_objs="aarch64-c.o"
307 extra_objs="aarch64-builtins.o aarch-common.o cortex-a57-fma-steering.o"
308 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c"
309 target_has_targetm_common=yes
313 extra_options="${extra_options} g.opt"
320 c_target_objs="arc-c.o"
321 cxx_target_objs="arc-c.o"
322 extra_options="${extra_options} arc/arc-tables.opt g.opt"
323 extra_headers="arc-simd.h"
327 extra_objs="arm-builtins.o aarch-common.o"
328 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h"
329 target_type_format_char='%'
330 c_target_objs="arm-c.o"
331 cxx_target_objs="arm-c.o"
332 extra_options="${extra_options} arm/arm-tables.opt"
333 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
337 c_target_objs="avr-c.o"
338 cxx_target_objs="avr-c.o"
347 extra_options="${extra_options} g.opt"
350 target_has_targetm_common=no
352 moxie*) cpu_type=moxie
353 target_has_targetm_common=no
357 extra_headers=math-68881.h
358 extra_options="${extra_options} m68k/m68k-tables.opt"
362 c_target_objs="i386-c.o"
363 cxx_target_objs="i386-c.o"
364 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
365 extra_options="${extra_options} fused-madd.opt"
366 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
367 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
368 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
369 immintrin.h x86intrin.h avxintrin.h xopintrin.h
370 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
371 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
372 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
373 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
374 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
375 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
376 shaintrin.h clflushoptintrin.h xsavecintrin.h
377 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
378 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
379 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
380 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
381 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
382 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
383 gfniintrin.h cet.h avx512vbmi2intrin.h
384 avx512vbmi2vlintrin.h avx512vnniintrin.h
385 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
386 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
387 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
388 waitpkgintrin.h cldemoteintrin.h"
392 c_target_objs="i386-c.o"
393 cxx_target_objs="i386-c.o"
394 extra_options="${extra_options} fused-madd.opt"
395 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
396 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
397 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
398 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
399 immintrin.h x86intrin.h avxintrin.h xopintrin.h
400 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
401 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
402 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
403 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
404 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
405 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
406 shaintrin.h clflushoptintrin.h xsavecintrin.h
407 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
408 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
409 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
410 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
411 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
412 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
413 gfniintrin.h cet.h avx512vbmi2intrin.h
414 avx512vbmi2vlintrin.h avx512vnniintrin.h
415 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
416 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
417 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
418 waitpkgintrin.h cldemoteintrin.h"
421 extra_headers=ia64intrin.h
422 extra_options="${extra_options} g.opt fused-madd.opt"
428 extra_options="${extra_options} g.opt"
432 extra_options="${extra_options} g.opt"
435 extra_headers=math-68881.h
436 extra_options="${extra_options} m68k/m68k-tables.opt"
440 extra_options="${extra_options} g.opt"
444 extra_headers="loongson.h msa.h"
445 extra_objs="frame-header-opt.o"
446 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
450 extra_headers="nds32_intrinsic.h"
453 extra_options="${extra_options} nds32/nds32-linux.opt"
456 extra_options="${extra_options} nds32/nds32-elf.opt"
461 extra_objs="nds32-cost.o nds32-intrinsic.o nds32-isr.o nds32-md-auxiliary.o nds32-pipelines-auxiliary.o nds32-predicates.o nds32-memory-manipulation.o nds32-fp-as-gp.o nds32-relax-opt.o nds32-utils.o"
465 extra_options="${extra_options} g.opt"
472 extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h"
474 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
478 extra_options="${extra_options} g.opt fused-madd.opt powerpcspe/powerpcspe-tables.opt"
482 extra_objs="rs6000-string.o rs6000-p8swap.o"
483 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
484 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
485 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
486 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
487 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
488 extra_headers="${extra_headers} amo.h"
490 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
494 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
498 extra_objs="riscv-builtins.o riscv-c.o"
501 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
502 extra_objs="rs6000-string.o rs6000-p8swap.o"
506 c_target_objs="sparc-c.o"
507 cxx_target_objs="sparc-c.o"
508 extra_headers="visintrin.h"
515 extra_options="${extra_options} fused-madd.opt"
516 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
518 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
519 sh[123456789lbe]*-*-* | sh-*-*)
521 extra_options="${extra_options} fused-madd.opt"
522 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
529 extra_headers="c6x_intrinsics.h"
530 extra_options="${extra_options} c6x/c6x-tables.opt"
533 extra_options="${extra_options} fused-madd.opt"
543 tm_file=${cpu_type}/${cpu_type}.h
544 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
546 tm_p_file=${cpu_type}/${cpu_type}-protos.h
549 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
551 extra_modes=${cpu_type}/${cpu_type}-modes.def
553 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
555 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
560 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
563 if test "x$with_multilib_list" = xilp32; then
564 tm_file="aarch64/biarchilp32.h ${tm_file}"
566 tm_file="aarch64/biarchlp64.h ${tm_file}"
570 tm_file="aarch64/biarchilp32.h ${tm_file}"
573 tm_file="aarch64/biarchlp64.h ${tm_file}"
576 echo "Unknown ABI used in --with-abi=$with_abi"
581 if test "x$with_abi" != x; then
582 echo "This target does not support --with-abi."
585 if test "x$enable_cld" = xyes; then
586 tm_defines="${tm_defines} USE_IX86_CLD=1"
588 if test "x$enable_frame_pointer" = xyes; then
589 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
591 tm_file="vxworks-dummy.h ${tm_file}"
596 if test "x$with_multilib_list" = xmx32; then
597 tm_file="i386/biarchx32.h ${tm_file}"
599 tm_file="i386/biarch64.h ${tm_file}"
603 tm_file="i386/biarch64.h ${tm_file}"
606 tm_file="i386/biarchx32.h ${tm_file}"
609 echo "Unknown ABI used in --with-abi=$with_abi"
612 if test "x$enable_cld" = xyes; then
613 tm_defines="${tm_defines} USE_IX86_CLD=1"
615 if test "x$enable_frame_pointer" = xyes; then
616 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
618 tm_file="vxworks-dummy.h ${tm_file}"
621 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
622 tm_file="vxworks-dummy.h ${tm_file}"
624 mips*-*-* | sh*-*-* | sparc*-*-*)
625 tm_file="vxworks-dummy.h ${tm_file}"
629 # On a.out targets, we need to use collect2.
636 # Common C libraries.
637 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
639 # 32-bit x86 processors supported by --with-arch=. Each processor
640 # MUST be separated by exactly one space.
641 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
642 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
643 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
644 pentium4 pentium4m pentiumpro prescott lakemont"
646 # 64-bit x86 processors supported by --with-arch=. Each processor
647 # MUST be separated by exactly one space.
648 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
649 bdver3 bdver4 znver1 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \
650 core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \
651 sandybridge ivybridge haswell broadwell bonnell silvermont knl knm \
652 skylake-avx512 cannonlake icelake-client icelake-server skylake goldmont \
653 goldmont-plus tremont x86-64 native"
655 # Additional x86 processors supported by --with-cpu=. Each processor
656 # MUST be separated by exactly one space.
657 x86_cpus="generic intel"
659 # Common parts for widely ported systems.
662 tmake_file="t-darwin ${cpu_type}/t-darwin"
663 tm_file="${tm_file} darwin.h"
666 tm_file="${tm_file} darwin9.h"
669 tm_file="${tm_file} darwin9.h darwin10.h"
671 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
672 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
675 tm_file="${tm_file} ${cpu_type}/darwin.h"
676 tm_p_file="${tm_p_file} darwin-protos.h"
677 target_gtfiles="\$(srcdir)/config/darwin.c"
678 extra_options="${extra_options} darwin.opt"
679 c_target_objs="${c_target_objs} darwin-c.o"
680 cxx_target_objs="${cxx_target_objs} darwin-c.o"
681 fortran_target_objs="darwin-f.o"
682 target_has_targetcm=yes
683 extra_objs="${extra_objs} darwin.o"
684 extra_gcc_objs="darwin-driver.o"
685 default_use_cxa_atexit=yes
687 case ${enable_threads} in
688 "" | yes | posix) thread_file='posix' ;;
694 tmake_file="t-slibgcc"
695 case ${enable_threads} in
700 # Let these non-posix thread selections fall through if requested
703 echo 'Unknown thread configuration for DragonFly BSD'
707 extra_options="$extra_options rpath.opt dragonfly.opt"
708 default_use_cxa_atexit=yes
712 # This is the generic ELF configuration of FreeBSD. Later
713 # machine-specific sections may refine and add to this
716 # Due to tm_file entry ordering issues that vary between cpu
717 # architectures, we only define fbsd_tm_file to allow the
718 # machine-specific section to dictate the final order of all
719 # entries of tm_file with the minor exception that components
720 # of the tm_file set here will always be of the form:
722 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
724 # The machine-specific section should not tamper with this
725 # ordering but may order all other entries of tm_file as it
726 # pleases around the provided core setting.
729 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
730 if test "$fbsd_major" = ""; then
731 echo "Specify the major version number of the targeted FreeBSD release"
732 echo "like this: --target=amd64-unknown-freebsd10.1"
735 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
736 tmake_file="t-slibgcc"
737 case ${enable_threads} in
739 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
745 echo 'Unknown thread configuration for FreeBSD'
749 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
750 extra_options="$extra_options rpath.opt freebsd.opt"
755 default_use_cxa_atexit=yes;;
760 native_system_header_dir=/include
762 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
763 extra_options="$extra_options gnu-user.opt"
766 case ${enable_threads} in
767 "" | yes | posix) thread_file='posix' ;;
769 tmake_file="t-slibgcc"
771 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
774 native_system_header_dir=/include
777 # Linux C libraries selection switch: glibc / uclibc / bionic.
778 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
781 tm_p_file="${tm_p_file} linux-protos.h"
782 tmake_file="${tmake_file} t-linux"
783 extra_objs="${extra_objs} linux.o"
784 extra_options="${extra_options} linux.opt"
789 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
792 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
795 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
798 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
801 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
803 default_use_cxa_atexit=yes
806 # Enable compilation for Android by default for *android* targets.
809 tm_defines="$tm_defines ANDROID_DEFAULT=1"
812 tm_defines="$tm_defines ANDROID_DEFAULT=0"
815 c_target_objs="${c_target_objs} glibc-c.o"
816 cxx_target_objs="${cxx_target_objs} glibc-c.o"
817 tmake_file="${tmake_file} t-glibc"
818 target_has_targetcm=yes
821 tm_p_file="${tm_p_file} netbsd-protos.h"
822 tmake_file="t-netbsd t-slibgcc"
823 extra_objs="${extra_objs} netbsd.o"
827 case ${enable_threads} in
828 "" | yes | posix) thread_file='posix' ;;
830 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
831 default_use_cxa_atexit=yes
834 tmake_file="t-openbsd"
835 case ${enable_threads} in
841 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
842 default_use_cxa_atexit=yes
849 default_use_cxa_atexit=yes
852 case ${enable_threads} in
853 "" | yes | rtems) thread_file='rtems' ;;
854 posix) thread_file='posix' ;;
857 echo 'Unknown thread configuration for RTEMS'
861 tmake_file="${tmake_file} t-rtems"
862 extra_options="${extra_options} rtems.opt"
863 default_use_cxa_atexit=yes
867 extra_options="$extra_options gnu-user.opt"
869 case ${enable_threads} in
870 "" | yes | posix) thread_file='posix' ;;
872 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
878 # i?86-*-solaris2* needs to insert headers between cpu default and
879 # Solaris 2 specific ones.
880 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
881 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
882 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
884 *-*-solaris2.1[1-9]*)
885 # __cxa_atexit was introduced in Solaris 11.4.
886 default_use_cxa_atexit=yes
890 if test x$gnu_ld = xyes; then
891 tm_file="usegld.h ${tm_file}"
893 if test x$gas = xyes; then
894 tm_file="usegas.h ${tm_file}"
896 tm_p_file="${tm_p_file} sol2-protos.h"
897 tmake_file="${tmake_file} t-sol2 t-slibgcc"
898 c_target_objs="${c_target_objs} sol2-c.o"
899 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
900 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
901 extra_options="${extra_options} sol2.opt"
902 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
903 "":yes:* | yes:yes:* )
909 extra_options="${extra_options} vms/vms.opt"
911 tmake_file="vms/t-vms t-slibgcc"
913 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
914 tm_p_file="${tm_p_file} vms/vms-protos.h"
915 xm_file="vms/xm-vms.h"
916 c_target_objs="vms-c.o"
917 cxx_target_objs="vms-c.o"
918 fortran_target_objs="vms-f.o"
919 use_gcc_stdint=provide
920 tm_file="${tm_file} vms/vms-stdint.h"
921 if test x$gnu_ld != xyes; then
922 # Build wrappers for native case.
923 extra_programs="ld\$(exeext) ar\$(exeext)"
924 tmake_file="$tmake_file vms/t-vmsnative"
930 extra_options="${extra_options} vxworks.opt"
931 extra_objs="$extra_objs vxworks.o"
932 use_gcc_stdint=provide
933 tm_file="${tm_file} vxworks-stdint.h"
934 case ${enable_threads} in
936 "" | yes | vxworks) thread_file='vxworks' ;;
937 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
941 tm_defines="$tm_defines TARGET_VXWORKS7=1"
946 # Assume that newlib is being used and so __cxa_atexit is provided.
947 default_use_cxa_atexit=yes
953 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
954 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
955 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
956 tmake_file="${tmake_file} aarch64/t-aarch64"
962 tm_file="${tm_file} fuchsia.h"
965 tm_file="${tm_file} rtems.h aarch64/rtems.h"
970 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
973 aarch64_multilibs="${with_multilib_list}"
974 if test "$aarch64_multilibs" = "default"; then
975 aarch64_multilibs="lp64,ilp32"
977 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
978 for aarch64_multilib in ${aarch64_multilibs}; do
979 case ${aarch64_multilib} in
981 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
984 echo "--with-multilib-list=${aarch64_multilib} not supported."
988 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
991 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
992 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h"
993 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
996 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
997 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
998 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
999 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1002 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1005 aarch64_multilibs="${with_multilib_list}"
1006 if test "$aarch64_multilibs" = "default"; then
1007 # TODO: turn on ILP32 multilib build after its support is mature.
1008 # aarch64_multilibs="lp64,ilp32"
1009 aarch64_multilibs="lp64"
1011 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1012 for aarch64_multilib in ${aarch64_multilibs}; do
1013 case ${aarch64_multilib} in
1015 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1018 echo "--with-multilib-list=${aarch64_multilib} not supported."
1022 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1025 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1026 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1027 extra_options="${extra_options} alpha/elf.opt"
1030 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1031 tmake_file="${tmake_file} alpha/t-alpha"
1032 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1036 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1037 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1038 tmake_file="${tmake_file} alpha/t-alpha"
1039 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1040 # default x-alpha is only appropriate for dec-osf.
1043 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1044 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1047 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1048 tmake_file="arc/t-multilib arc/t-arc"
1049 extra_gcc_objs="driver-arc.o"
1050 if test "x$with_cpu" != x; then
1051 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1053 if test x${with_endian} = x; then
1055 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1056 *) with_endian=little ;;
1059 case ${with_endian} in
1061 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1063 case ${with_endian} in
1064 big*) tm_file="arc/big.h ${tm_file}"
1068 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}"
1069 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1070 extra_gcc_objs="driver-arc.o"
1071 if test "x$with_cpu" != x; then
1072 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1074 if test x${with_endian} = x; then
1076 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1077 *) with_endian=little ;;
1080 case ${with_endian} in
1082 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1084 case ${with_endian} in
1085 big*) tm_file="arc/big.h ${tm_file}"
1088 arm-wrs-vxworks|arm-wrs-vxworks7)
1089 extra_options="${extra_options} arm/vxworks.opt"
1090 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1093 # VxWorks7 on ARM adheres to the ARM Base Platform ABI
1094 tmake_file="${tmake_file} arm/t-bpabi"
1095 tm_file="arm/bpabi.h ${tm_file}"
1096 # The BPABI long long divmod functions return a 128-bit value in
1098 need_64bit_hwint=yes
1099 default_use_cxa_atexit=yes
1103 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1104 target_cpu_cname="arm8"
1106 arm*-*-freebsd*) # ARM FreeBSD EABI
1107 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1110 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1113 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1114 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1117 target_cpu_cname="arm1176jzf-s"
1118 if test $fbsd_major -ge 11; then
1119 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1123 target_cpu_cname="generic-armv7-a"
1124 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1127 target_cpu_cname="arm9"
1130 with_tls=${with_tls:-gnu}
1133 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1134 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1135 tmake_file="${tmake_file} arm/t-arm"
1136 target_cpu_cname="arm6"
1138 arm*-*-linux-*) # ARM GNU/Linux with ELF
1139 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"
1140 extra_options="${extra_options} linux-android.opt"
1143 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1146 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1147 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1148 # Generation of floating-point instructions requires at least ARMv5te.
1149 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1150 target_cpu_cname="arm10e"
1152 target_cpu_cname="arm10tdmi"
1154 # Define multilib configuration for arm-linux-androideabi.
1157 tmake_file="$tmake_file arm/t-linux-androideabi"
1160 # The EABI requires the use of __cxa_atexit.
1161 default_use_cxa_atexit=yes
1162 with_tls=${with_tls:-gnu}
1164 arm*-*-uclinux*eabi*) # ARM ucLinux
1165 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1166 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1167 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1168 target_cpu_cname="arm7tdmi"
1169 # The EABI requires the use of __cxa_atexit.
1170 default_use_cxa_atexit=yes
1173 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1174 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1175 tm_file="${tm_file} arm/aout.h arm/arm.h"
1176 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1177 target_cpu_cname="arm7tdmi"
1179 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1182 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1184 default_use_cxa_atexit=yes
1185 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1186 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1187 target_cpu_cname="arm7tdmi"
1190 tm_file="$tm_file newlib-stdint.h"
1191 tmake_file="${tmake_file} arm/t-bpabi"
1195 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1196 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1197 target_cpu_cname="generic-armv7-a"
1200 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1201 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1204 tm_file="${tm_file} arm/symbian.h"
1205 # We do not include t-bpabi for Symbian OS because the system
1206 # provides its own implementation of the BPABI functions.
1207 tmake_file="${tmake_file} arm/t-symbian"
1208 target_cpu_cname="arm10tdmi"
1211 tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
1214 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1215 if test x${with_avrlibc} != xno; then
1216 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1217 tm_defines="${tm_defines} WITH_AVRLIBC"
1219 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1221 extra_gcc_objs="driver-avr.o avr-devices.o"
1222 extra_objs="avr-devices.o avr-log.o"
1225 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1226 tmake_file=bfin/t-bfin-elf
1230 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1231 tmake_file=bfin/t-bfin-uclinux
1234 bfin*-linux-uclibc*)
1235 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"
1236 tmake_file="${tmake_file} bfin/t-bfin-linux"
1240 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1241 tmake_file="${tmake_file} bfin/t-rtems"
1244 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1249 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1250 tmake_file="${tmake_file} cr16/t-cr16 "
1253 crisv32-*-elf | crisv32-*-none)
1254 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1255 tmake_file="cris/t-cris"
1256 target_cpu_default=32
1258 extra_options="${extra_options} cris/elf.opt"
1261 cris-*-elf | cris-*-none)
1262 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1263 tmake_file="cris/t-cris cris/t-elfmulti"
1265 extra_options="${extra_options} cris/elf.opt"
1268 crisv32-*-linux* | cris-*-linux*)
1269 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1270 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1271 extra_options="${extra_options} cris/linux.opt"
1274 target_cpu_default=10
1277 target_cpu_default=32
1281 epiphany-*-elf | epiphany-*-rtems*)
1282 tm_file="${tm_file} dbxelf.h elfos.h"
1283 tmake_file="${tmake_file} epiphany/t-epiphany"
1286 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1289 tm_file="${tm_file} newlib-stdint.h"
1292 extra_options="${extra_options} fused-madd.opt"
1293 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1294 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1295 extra_headers="epiphany_intrinsics.h"
1298 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1301 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1302 tmake_file=frv/t-frv
1305 tm_file="dbxelf.h elfos.h ${tm_file} \
1306 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1307 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1312 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1313 tmake_file="${tmake_file} ft32/t-ft32"
1318 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1319 tmake_file="${tmake_file} moxie/t-moxie"
1324 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1325 tmake_file="${tmake_file} moxie/t-moxie"
1328 tmake_file="${tmake_file} moxie/t-moxie"
1329 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1334 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1335 tmake_file="${tmake_file} moxie/t-moxiebox"
1338 tmake_file="h8300/t-h8300"
1339 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1342 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1343 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1346 target_cpu_default="MASK_PA_11|MASK_PA_20"
1347 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1348 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1353 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1354 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1355 pa/pa32-regs.h pa/pa32-linux.h"
1356 tmake_file="${tmake_file} pa/t-linux"
1359 target_cpu_default="MASK_PA_11"
1360 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1361 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1362 extra_options="${extra_options} openbsd.opt"
1366 hppa[12]*-*-hpux10*)
1368 hppa1.1-*-* | hppa2*-*-*)
1369 target_cpu_default="MASK_PA_11"
1372 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1373 pa/pa-hpux.h pa/pa-hpux10.h"
1374 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1377 tm_file="${tm_file} pa/pa-hpux1010.h"
1378 extra_options="${extra_options} pa/pa-hpux1010.opt"
1381 use_gcc_stdint=provide
1382 tm_file="${tm_file} hpux-stdint.h"
1383 tmake_file="t-slibgcc"
1384 case ${enable_threads} in
1386 if test x$have_pthread_h = xyes ; then
1387 tmake_file="${tmake_file} pa/t-dce-thr"
1391 tmake_file="${tmake_file} pa/t-dce-thr"
1396 if test "x$with_dwarf2" != x; then
1397 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1402 target_cpu_default="MASK_PA_11|MASK_PA_20"
1403 if test x$gnu_ld = xyes
1405 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1407 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1408 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1412 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1413 extra_options="${extra_options} pa/pa-hpux1111.opt"
1416 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1417 extra_options="${extra_options} pa/pa-hpux1131.opt"
1420 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1423 extra_options="${extra_options} pa/pa-hpux.opt \
1424 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1425 tmake_file="t-slibgcc"
1426 case x${enable_threads} in
1434 use_gcc_stdint=provide
1435 tm_file="${tm_file} hpux-stdint.h"
1439 tm_file="${tm_file} hpux-stdint.h"
1443 hppa[12]*-*-hpux11*)
1445 hppa1.1-*-* | hppa2*-*-*)
1446 target_cpu_default="MASK_PA_11"
1449 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1450 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1451 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1455 tm_file="${tm_file} pa/pa-hpux1111.h"
1456 extra_options="${extra_options} pa/pa-hpux1111.opt"
1459 tm_file="${tm_file} pa/pa-hpux1131.h"
1460 extra_options="${extra_options} pa/pa-hpux1131.opt"
1463 tmake_file="t-slibgcc"
1464 case x${enable_threads} in
1473 use_gcc_stdint=provide
1474 tm_file="${tm_file} hpux-stdint.h"
1478 tm_file="${tm_file} hpux-stdint.h"
1481 if test "x$with_dwarf2" != x; then
1482 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1486 i[34567]86-*-darwin*)
1488 # Baseline choice for a machine that allows m64 support.
1489 with_cpu=${with_cpu:-core2}
1490 tmake_file="${tmake_file} t-slibgcc"
1493 with_cpu=${with_cpu:-core2}
1494 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1495 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1497 i[34567]86-*-elfiamcu)
1498 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1501 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1504 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1507 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rtemself.h rtems.h"
1510 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1513 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"
1514 tmake_file="i386/t-i386elf t-svr4"
1516 i[34567]86-*-dragonfly*)
1517 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1518 tmake_file="${tmake_file} i386/t-crtstuff"
1520 x86_64-*-dragonfly*)
1521 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"
1522 tmake_file="${tmake_file} i386/t-crtstuff"
1524 i[34567]86-*-freebsd*)
1525 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1528 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"
1530 i[34567]86-*-netbsdelf*)
1531 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1532 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1535 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1536 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1538 i[34567]86-*-openbsd*)
1539 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1540 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1541 extra_options="${extra_options} openbsd.opt"
1546 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1547 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1548 extra_options="${extra_options} openbsd.opt"
1552 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1553 # Intel 80386's running GNU/*
1554 # with ELF format using glibc 2
1555 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1557 i[34567]86-*-linux*)
1558 tm_file="${tm_file} linux.h linux-android.h"
1559 extra_options="${extra_options} linux-android.opt"
1560 if test x$enable_targets = xall; then
1561 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1562 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1563 tmake_file="${tmake_file} i386/t-linux64"
1564 x86_multilibs="${with_multilib_list}"
1565 if test "$x86_multilibs" = "default"; then
1566 x86_multilibs="m64,m32"
1568 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1569 for x86_multilib in ${x86_multilibs}; do
1570 case ${x86_multilib} in
1572 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1575 echo "--with-multilib-list=${x86_with_multilib} not supported."
1579 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1581 if test x$with_cpu = x; then
1582 if test x$with_cpu_64 = x; then
1586 case " $x86_cpus $x86_archs $x86_64_archs " in
1590 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1591 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1597 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1600 i[34567]86-*-kfreebsd*-gnu)
1601 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1603 i[34567]86-*-kopensolaris*-gnu)
1604 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1607 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1611 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1612 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1613 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1616 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1617 extra_options="${extra_options} linux-android.opt"
1619 x86_64-*-kfreebsd*-gnu)
1620 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1623 tmake_file="${tmake_file} i386/t-linux64"
1624 x86_multilibs="${with_multilib_list}"
1625 if test "$x86_multilibs" = "default"; then
1628 x86_multilibs="mx32"
1631 x86_multilibs="m64,m32"
1635 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1636 for x86_multilib in ${x86_multilibs}; do
1637 case ${x86_multilib} in
1639 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1642 echo "--with-multilib-list=${x86_with_multilib} not supported."
1646 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1648 i[34567]86-pc-msdosdjgpp*)
1649 xm_file=i386/xm-djgpp.h
1650 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1651 native_system_header_dir=/dev/env/DJDIR/include
1652 extra_options="${extra_options} i386/djgpp.opt"
1657 i[34567]86-*-lynxos*)
1659 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1660 tmake_file="${tmake_file} t-lynx"
1661 extra_options="${extra_options} lynx.opt"
1666 i[34567]86-*-nto-qnx*)
1667 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1668 extra_options="${extra_options} i386/nto.opt"
1672 i[34567]86-*-rtems*)
1673 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"
1674 tmake_file="${tmake_file} i386/t-rtems"
1676 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1677 # Set default arch_32 to pentium4, tune_32 to generic like the other
1678 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1679 with_arch_32=${with_arch_32:-pentium4}
1680 with_tune_32=${with_tune_32:-generic}
1681 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1682 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1683 tmake_file="$tmake_file i386/t-sol2"
1685 if test x$with_cpu = x; then
1686 if test x$with_cpu_64 = x; then
1690 case " $x86_cpus $x86_archs $x86_64_archs " in
1694 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1695 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1701 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
1702 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1706 tm_file="${tm_file} i386/x86-64.h"
1709 tm_file="${tm_file} vx-common.h"
1712 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1713 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1716 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1717 tmake_file="${tmake_file} i386/t-vxworks"
1721 i[34567]86-*-cygwin*)
1722 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"
1723 xm_file=i386/xm-cygwin.h
1724 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1725 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1726 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1727 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1728 c_target_objs="${c_target_objs} msformat-c.o"
1729 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1730 if test x$enable_threads = xyes; then
1733 default_use_cxa_atexit=yes
1738 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"
1739 xm_file=i386/xm-cygwin.h
1740 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1741 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1742 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1743 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1744 c_target_objs="${c_target_objs} msformat-c.o"
1745 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1746 if test x$enable_threads = xyes; then
1749 default_use_cxa_atexit=yes
1751 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1753 i[34567]86-*-mingw* | x86_64-*-mingw*)
1754 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1755 xm_file=i386/xm-mingw32.h
1756 c_target_objs="${c_target_objs} winnt-c.o"
1757 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1758 target_has_targetcm="yes"
1760 x86_64-*-* | *-w64-*)
1766 if test x$enable_threads = xposix ; then
1767 tm_file="${tm_file} i386/mingw-pthread.h"
1769 tm_file="${tm_file} i386/mingw32.h"
1770 # This makes the logic if mingw's or the w64 feature set has to be used
1773 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1774 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1775 tm_file="${tm_file} i386/mingw-w64.h"
1776 if test x$enable_targets = xall; then
1777 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1778 if test x$with_cpu = x; then
1779 if test x$with_cpu_64 = x; then
1783 case " $x86_cpus $x86_archs $x86_64_archs " in
1787 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1788 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1798 tm_file="${tm_file} i386/mingw-stdint.h"
1799 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1802 tmake_file="${tmake_file} i386/t-mingw-w64"
1805 tmake_file="${tmake_file} i386/t-mingw-w32"
1808 native_system_header_dir=/mingw/include
1809 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1810 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1813 extra_options="${extra_options} i386/mingw-w64.opt"
1818 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1819 c_target_objs="${c_target_objs} msformat-c.o"
1820 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1823 default_use_cxa_atexit=yes
1825 case ${enable_threads} in
1835 tm_file="${tm_file} i386/crtdll.h"
1837 *mingw32msv* | *mingw*)
1842 tmake_file="${tmake_file} i386/t-x86_64-elf"
1843 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
1846 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1847 tmake_file="ia64/t-ia64"
1848 target_cpu_default="0"
1849 if test x$gas = xyes
1851 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1853 if test x$gnu_ld = xyes
1855 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1859 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1860 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1861 tmake_file="${tmake_file} ia64/t-ia64"
1864 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1865 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1866 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1869 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1870 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1871 target_cpu_default="MASK_GNU_AS"
1872 case x$enable_threads in
1878 c_target_objs="ia64-c.o"
1879 cxx_target_objs="ia64-c.o"
1880 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1882 tm_file="${tm_file} hpux-stdint.h"
1885 tm_file="${tm_file} ia64/hpux-unix2003.h"
1890 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1891 tmake_file="${tmake_file} ia64/t-ia64"
1892 target_cpu_default="0"
1893 if test x$gas = xyes
1895 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1897 extra_options="${extra_options} ia64/vms.opt"
1900 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1901 out_file=iq2000/iq2000.c
1902 md_file=iq2000/iq2000.md
1905 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
1906 tmake_file="${tmake_file} lm32/t-lm32"
1909 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1910 tmake_file="${tmake_file} lm32/t-lm32"
1911 tmake_file="${tmake_file} lm32/t-rtems"
1914 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1915 tmake_file="${tmake_file} lm32/t-lm32"
1918 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1921 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1924 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1925 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1927 if test x$enable_threads = xyes; then
1932 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1933 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1935 if test x$enable_threads = xyes; then
1939 m68k-*-elf* | fido-*-elf*)
1942 # Check that $with_cpu makes sense.
1947 echo "Cannot accept --with-cpu=$with_cpu"
1954 default_m68k_cpu=68020
1958 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"
1959 tm_defines="${tm_defines} MOTOROLA=1"
1960 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1961 # Add multilibs for targets other than fido.
1966 tmake_file="$tmake_file m68k/t-mlibs"
1971 default_m68k_cpu=68020
1973 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
1974 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1975 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
1978 default_m68k_cpu=68020
1980 # needed to unconfuse gdb
1981 tm_defines="${tm_defines} OBSD_OLD_GAS"
1982 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1983 extra_options="${extra_options} openbsd.opt"
1984 tmake_file="t-openbsd m68k/t-openbsd"
1985 # we need collect2 until our bug is fixed...
1988 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
1989 # with uClibc, using the new GNU/Linux-style
1991 default_m68k_cpu=68020
1993 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"
1994 extra_options="${extra_options} m68k/uclinux.opt"
1995 tm_defines="${tm_defines} MOTOROLA=1"
1996 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1998 m68k-*-linux*) # Motorola m68k's running GNU/Linux
1999 # with ELF format using glibc 2
2000 # aka the GNU/Linux C library 6.
2001 default_m68k_cpu=68020
2003 with_arch=${with_arch:-m68k}
2004 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2005 extra_options="${extra_options} m68k/ieee.opt"
2006 tm_defines="${tm_defines} MOTOROLA=1"
2007 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2010 default_m68k_cpu=68020
2012 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2013 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"
2014 tm_defines="${tm_defines} MOTOROLA=1"
2017 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2018 tmake_file=mcore/t-mcore
2024 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2027 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2030 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2031 tm_file="${tm_file} glibc-stdint.h"
2032 c_target_objs="${c_target_objs} microblaze-c.o"
2033 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2034 tmake_file="${tmake_file} microblaze/t-microblaze"
2035 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2037 microblaze*-*-rtems*)
2040 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2043 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2046 tm_file="${tm_file} dbxelf.h"
2047 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2048 c_target_objs="${c_target_objs} microblaze-c.o"
2049 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2050 tmake_file="${tmake_file} microblaze/t-microblaze"
2051 tmake_file="${tmake_file} microblaze/t-rtems"
2056 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2059 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2062 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2063 c_target_objs="${c_target_objs} microblaze-c.o"
2064 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2065 tmake_file="${tmake_file} microblaze/t-microblaze"
2068 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2069 case "x${enable_multilib}" in
2071 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2072 *) echo "Unknown value for enable_multilib"; exit 1
2074 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2077 # Force .init_array support. The configure script cannot always
2078 # automatically detect that GAS supports it, yet we require it.
2079 gcc_cv_initfini_array=yes
2081 riscv*-*-elf* | riscv*-*-rtems*)
2082 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2083 case "x${enable_multilib}" in
2085 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2086 *) echo "Unknown value for enable_multilib"; exit 1
2088 tmake_file="${tmake_file} riscv/t-riscv"
2091 # Force .init_array support. The configure script cannot always
2092 # automatically detect that GAS supports it, yet we require it.
2093 gcc_cv_initfini_array=yes
2096 tm_file="${tm_file} rtems.h riscv/rtems.h"
2101 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2102 tmake_file="${tmake_file} riscv/t-riscv"
2105 # Force .init_array support. The configure script cannot always
2106 # automatically detect that GAS supports it, yet we require it.
2107 gcc_cv_initfini_array=yes
2109 mips*-*-netbsd*) # NetBSD/mips, either endian.
2110 target_cpu_default="MASK_ABICALLS"
2111 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2112 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2115 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"
2116 extra_options="${extra_options} linux-android.opt"
2117 tmake_file="${tmake_file} mips/t-img-linux"
2118 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2119 with_arch_32="mips32r6"
2120 with_arch_64="mips64r6"
2125 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"
2126 extra_options="${extra_options} linux-android.opt"
2127 tmake_file="${tmake_file} mips/t-mti-linux"
2128 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2129 with_arch_32="mips32r2"
2130 with_arch_64="mips64r2"
2134 mips*-*-linux*) # Linux MIPS, either endian.
2135 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"
2136 extra_options="${extra_options} linux-android.opt"
2139 default_mips_arch=mips32r6
2142 default_mips_arch=mips32r2
2145 default_mips_arch=mips32
2147 mips64el-st-linux-gnu)
2148 default_mips_abi=n32
2149 tm_file="${tm_file} mips/st.h"
2150 tmake_file="${tmake_file} mips/t-st"
2151 enable_mips_multilibs="yes"
2153 mips64octeon*-*-linux*)
2154 default_mips_abi=n32
2155 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2156 target_cpu_default=MASK_SOFT_FLOAT_ABI
2157 enable_mips_multilibs="yes"
2159 mipsisa64r6*-*-linux*)
2160 default_mips_abi=n32
2161 default_mips_arch=mips64r6
2162 enable_mips_multilibs="yes"
2164 mipsisa64r2*-*-linux*)
2165 default_mips_abi=n32
2166 default_mips_arch=mips64r2
2167 enable_mips_multilibs="yes"
2169 mips64*-*-linux* | mipsisa64*-*-linux*)
2170 default_mips_abi=n32
2171 enable_mips_multilibs="yes"
2174 if test x$enable_targets = xall; then
2175 enable_mips_multilibs="yes"
2177 if test x$enable_mips_multilibs = xyes; then
2178 tmake_file="${tmake_file} mips/t-linux64"
2182 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2183 tmake_file="mips/t-mti-elf"
2184 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2185 with_arch_32="mips32r2"
2186 with_arch_64="mips64r2"
2189 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2190 tmake_file="mips/t-img-elf"
2191 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2192 with_arch_32="mips32r6"
2193 with_arch_64="mips64r6"
2196 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2197 tmake_file="mips/t-sde"
2198 extra_options="${extra_options} mips/sde.opt"
2199 case "${with_newlib}" in
2201 # newlib / libgloss.
2204 # MIPS toolkit libraries.
2205 tm_file="$tm_file mips/sdemtk.h"
2206 tmake_file="$tmake_file mips/t-sdemtk"
2207 case ${enable_threads} in
2209 thread_file='mipssde'
2216 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2219 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2222 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2225 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2228 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2231 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2235 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2236 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2237 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2238 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2239 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2240 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2241 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2242 tmake_file="mips/t-isa3264"
2245 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2248 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2251 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2254 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2257 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2260 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2264 mipsisa32*-*-elfoabi*)
2265 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2266 tm_file="${tm_file} mips/elfoabi.h"
2268 mipsisa64*-*-elfoabi*)
2269 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2270 tm_file="${tm_file} mips/elfoabi.h"
2273 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2277 mipsisa64sr71k-*-elf*)
2278 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2279 tmake_file=mips/t-sr71k
2280 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2282 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2283 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2284 tmake_file="mips/t-elf mips/t-sb1"
2285 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2287 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2288 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2289 tmake_file="mips/t-elf"
2291 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2292 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2293 tmake_file="mips/t-elf"
2294 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2296 mips64-*-elf* | mips64el-*-elf*)
2297 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2298 tmake_file="mips/t-elf"
2299 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2301 mips64vr-*-elf* | mips64vrel-*-elf*)
2302 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2303 tmake_file=mips/t-vr
2304 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2306 mips64orion-*-elf* | mips64orionel-*-elf*)
2307 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2308 tmake_file="mips/t-elf"
2309 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2312 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2313 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2316 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2317 tmake_file="${tmake_file} mips/t-vxworks"
2319 mipstx39-*-elf* | mipstx39el-*-elf*)
2320 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2321 tmake_file="mips/t-r3900"
2323 mmix-knuth-mmixware)
2324 tm_file="${tm_file} newlib-stdint.h"
2328 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2329 if test x$stabs = xyes
2331 tm_file="${tm_file} dbx.h"
2337 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2338 c_target_objs="msp430-c.o"
2339 cxx_target_objs="msp430-c.o"
2340 tmake_file="${tmake_file} msp430/t-msp430"
2341 extra_gcc_objs="driver-msp430.o"
2344 target_cpu_default="0"
2345 tm_defines="${tm_defines}"
2350 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2351 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2356 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2357 tmake_file="nds32/t-nds32 nds32/t-elf"
2360 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2361 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2365 # Handle --enable-default-relax setting.
2366 if test x${enable_default_relax} = xyes; then
2367 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2369 # Handle --with-ext-dsp
2370 if test x${with_ext_dsp} = xyes; then
2371 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2375 tm_file="elfos.h ${tm_file}"
2376 tmake_file="${tmake_file} nios2/t-nios2"
2379 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2382 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2383 extra_options="${extra_options} nios2/elf.opt"
2386 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2387 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2392 tm_file="${tm_file} newlib-stdint.h"
2394 tmake_file="nvptx/t-nvptx"
2395 if test x$enable_as_accelerator = xyes; then
2396 extra_programs="${extra_programs} mkoffload\$(exeext)"
2397 tm_file="${tm_file} nvptx/offload.h"
2401 tm_file="${tm_file} newlib-stdint.h"
2404 # port not yet contributed
2405 #powerpc-*-openbsd*)
2406 # tmake_file="${tmake_file} rs6000/t-fprules"
2410 extra_options="${extra_options} rs6000/darwin.opt"
2412 *-darwin1[0-9]* | *-darwin[8-9]*)
2413 tmake_file="${tmake_file} rs6000/t-darwin8"
2414 tm_file="${tm_file} rs6000/darwin8.h"
2417 tm_file="${tm_file} rs6000/darwin7.h"
2422 tmake_file="${tmake_file} t-slibgcc"
2423 extra_headers=altivec.h
2425 powerpc64-*-darwin*)
2426 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2427 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2428 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2429 extra_headers=altivec.h
2431 powerpc*-*-freebsd*)
2432 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2433 extra_options="${extra_options} rs6000/sysv4.opt"
2434 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2437 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2438 tmake_file="${tmake_file} rs6000/t-freebsd64"
2439 extra_options="${extra_options} rs6000/linux64.opt"
2442 tm_file="${tm_file} rs6000/freebsd.h"
2447 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2448 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2449 tmake_file="${tmake_file} rs6000/t-netbsd"
2450 extra_options="${extra_options} rs6000/sysv4.opt"
2453 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"
2454 extra_options="${extra_options} ${cpu_type}/sysv4.opt"
2455 tmake_file="${cpu_type}/t-spe ${cpu_type}/t-ppccomm"
2458 powerpc-*-eabisimaltivec*)
2459 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"
2460 extra_options="${extra_options} rs6000/sysv4.opt"
2461 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2465 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"
2466 extra_options="${extra_options} rs6000/sysv4.opt"
2467 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2471 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2472 extra_options="${extra_options} rs6000/sysv4.opt"
2473 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2475 powerpc-*-eabialtivec*)
2476 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
2477 extra_options="${extra_options} rs6000/sysv4.opt"
2478 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2482 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h"
2483 extra_options="${extra_options} rs6000/sysv4.opt"
2484 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2487 powerpc-*-rtems*spe*)
2488 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"
2489 extra_options="${extra_options} powerpcspe/sysv4.opt"
2490 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-rtems powerpcspe/t-ppccomm"
2493 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"
2494 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2495 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2497 powerpc*-*-linux*spe*)
2498 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h powerpcspe/sysv4.h"
2499 extra_options="${extra_options} powerpcspe/sysv4.opt"
2500 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm"
2501 extra_objs="$extra_objs powerpcspe-linux.o"
2503 tm_file="${tm_file} powerpcspe/linux.h glibc-stdint.h"
2504 tmake_file="${tmake_file} powerpcspe/t-ppcos powerpcspe/t-linux"
2505 tm_file="${tm_file} powerpcspe/linuxspe.h powerpcspe/e500.h"
2508 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2509 extra_options="${extra_options} rs6000/sysv4.opt"
2510 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2511 extra_objs="$extra_objs rs6000-linux.o"
2514 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2516 case ${target}:${with_cpu} in
2517 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2519 maybe_biarch=${cpu_is_64bit}
2520 case ${enable_targets} in
2521 *powerpc64*) maybe_biarch=yes ;;
2522 all) maybe_biarch=yes ;;
2525 powerpc64*-*-linux*spe* | powerpc*-*-linux*paired*)
2526 echo "*** Configuration ${target} not supported" 1>&2
2529 powerpc*-*-linux*spe*)
2533 case ${target}:${enable_targets}:${maybe_biarch} in
2534 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2535 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2536 | powerpcle-*:*powerpc64le*:yes)
2537 if test x$cpu_is_64bit = xyes; then
2538 tm_file="${tm_file} rs6000/default64.h"
2540 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2541 tmake_file="$tmake_file rs6000/t-linux64"
2544 tmake_file="$tmake_file rs6000/t-linux64le"
2545 case ${enable_targets} in
2546 all | *powerpc64-* | *powerpc-*)
2547 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2550 case ${enable_targets} in
2551 all | *powerpc64le-* | *powerpcle-*)
2552 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2555 extra_options="${extra_options} rs6000/linux64.opt"
2558 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2559 extra_options="${extra_options} rs6000/linux64.opt"
2560 tmake_file="${tmake_file} rs6000/t-linux"
2563 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2564 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2568 powerpc*-*-linux*ppc476*)
2569 tm_file="${tm_file} rs6000/476.h"
2570 extra_options="${extra_options} rs6000/476.opt" ;;
2571 powerpc*-*-linux*altivec*)
2572 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2573 powerpc*-*-linux*spe*)
2574 tm_file="${tm_file} ${cpu_type}/linuxspe.h ${cpu_type}/e500.h" ;;
2578 enable_secureplt=yes ;;
2580 if test x${enable_secureplt} = xyes; then
2581 tm_file="rs6000/secureplt.h ${tm_file}"
2584 powerpc-wrs-vxworks*spe)
2585 tm_file="${tm_file} elfos.h freebsd-spec.h powerpcspe/sysv4.h"
2586 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm powerpcspe/t-vxworks"
2587 extra_options="${extra_options} powerpcspe/sysv4.opt"
2588 extra_headers=ppc-asm.h
2589 tm_file="${tm_file} vx-common.h vxworks.h powerpcspe/vxworks.h powerpcspe/e500.h"
2591 powerpc-wrs-vxworks*)
2592 tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2593 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2594 extra_options="${extra_options} rs6000/sysv4.opt"
2595 extra_headers=ppc-asm.h
2598 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2599 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2602 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
2603 tmake_file="${tmake_file} rs6000/t-vxworksae"
2606 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
2612 tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2613 tmake_file="t-lynx rs6000/t-lynx"
2614 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2620 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2621 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2622 extra_options="${extra_options} rs6000/sysv4.opt"
2624 powerpcle-*-eabisim*)
2625 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"
2626 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2627 extra_options="${extra_options} rs6000/sysv4.opt"
2631 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"
2632 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2633 extra_options="${extra_options} rs6000/sysv4.opt"
2636 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2637 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2638 tmake_file="rs6000/t-aix43 t-slibgcc"
2639 extra_options="${extra_options} rs6000/aix64.opt"
2642 use_gcc_stdint=provide
2645 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2646 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2647 extra_options="${extra_options} rs6000/aix64.opt"
2648 tmake_file="rs6000/t-aix43 t-slibgcc"
2654 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2655 tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2656 tmake_file="rs6000/t-aix52 t-slibgcc"
2657 extra_options="${extra_options} rs6000/aix64.opt"
2663 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2664 tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2665 tmake_file="rs6000/t-aix52 t-slibgcc"
2666 extra_options="${extra_options} rs6000/aix64.opt"
2670 extra_headers=altivec.h
2672 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
2673 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2674 tmake_file="rs6000/t-aix52 t-slibgcc"
2675 extra_options="${extra_options} rs6000/aix64.opt"
2679 extra_headers=altivec.h
2680 default_use_cxa_atexit=yes
2682 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
2683 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
2684 tmake_file="rs6000/t-aix52 t-slibgcc"
2685 extra_options="${extra_options} rs6000/aix64.opt"
2689 extra_headers="altivec.h amo.h"
2690 default_use_cxa_atexit=yes
2692 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2693 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
2694 tmake_file="rs6000/t-aix52 t-slibgcc"
2695 extra_options="${extra_options} rs6000/aix64.opt"
2699 extra_headers="altivec.h amo.h"
2700 default_use_cxa_atexit=yes
2703 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2704 target_has_targetm_common=no
2705 c_target_objs="rl78-c.o"
2706 cxx_target_objs="rl78-c.o"
2707 tmake_file="${tmake_file} rl78/t-rl78"
2710 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2711 tmake_file="${tmake_file} rx/t-rx"
2714 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2715 c_target_objs="${c_target_objs} s390-c.o"
2716 cxx_target_objs="${cxx_target_objs} s390-c.o"
2717 if test x$enable_targets = xall; then
2718 tmake_file="${tmake_file} s390/t-linux64"
2720 tmake_file="${tmake_file} s390/t-s390"
2723 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2724 tm_p_file="linux-protos.h s390/s390-protos.h"
2725 c_target_objs="${c_target_objs} s390-c.o"
2726 cxx_target_objs="${cxx_target_objs} s390-c.o"
2727 md_file=s390/s390.md
2728 extra_modes=s390/s390-modes.def
2729 out_file=s390/s390.c
2730 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
2733 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2734 tm_p_file=s390/s390-protos.h
2735 c_target_objs="${c_target_objs} s390-c.o"
2736 cxx_target_objs="${cxx_target_objs} s390-c.o"
2737 md_file=s390/s390.md
2738 extra_modes=s390/s390-modes.def
2739 out_file=s390/s390.c
2741 extra_options="${extra_options} s390/tpf.opt"
2742 tmake_file="${tmake_file} s390/t-s390"
2744 sh-*-elf* | sh[12346l]*-*-elf* | \
2745 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2746 sh-*-netbsdelf* | shl*-*-netbsdelf*)
2747 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2748 if test x${with_endian} = x; then
2750 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2751 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2752 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2753 shl* | sh*-*-linux* | \
2754 sh-superh-elf) with_endian=little,big ;;
2755 sh[1234]*-*-*) with_endian=big ;;
2756 *) with_endian=big,little ;;
2759 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2760 # First word : the default endian.
2761 # Second word: the secondary endian (optional).
2762 case ${with_endian} in
2763 big) TM_ENDIAN_CONFIG=mb ;;
2764 little) TM_ENDIAN_CONFIG=ml ;;
2765 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2766 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2767 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2769 case ${with_endian} in
2770 little*) tm_file="sh/little.h ${tm_file}" ;;
2772 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2774 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2775 if test x$enable_fdpic = xyes; then
2776 tm_defines="$tm_defines FDPIC_DEFAULT=1"
2778 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2780 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
2781 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2784 sh*-superh-elf) if test x$with_libgloss != xno; then
2786 tm_file="${tm_file} sh/newlib.h"
2788 tm_file="${tm_file} sh/embed-elf.h"
2789 tm_file="${tm_file} sh/superh.h"
2790 extra_options="${extra_options} sh/superh.opt" ;;
2791 *) if test x$with_newlib = xyes \
2792 && test x$with_libgloss = xyes; then
2793 tm_file="${tm_file} sh/newlib.h"
2795 tm_file="${tm_file} sh/embed-elf.h" ;;
2801 tm_file="${tm_file} newlib-stdint.h"
2804 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2805 case `echo ${target} | sed 's/e[lb]-/-/'` in
2806 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2807 sh4a_single*) sh_cpu_target=sh4a-single ;;
2808 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2809 sh4al) sh_cpu_target=sh4al ;;
2810 sh4a*) sh_cpu_target=sh4a ;;
2811 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2812 sh4_single*) sh_cpu_target=sh4-single ;;
2813 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2814 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2815 sh3e*) sh_cpu_target=sh3e ;;
2816 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2817 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2818 sh2a_single*) sh_cpu_target=sh2a-single ;;
2819 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2820 sh2a*) sh_cpu_target=sh2a ;;
2821 sh2e*) sh_cpu_target=sh2e ;;
2822 sh2*) sh_cpu_target=sh2 ;;
2823 *) sh_cpu_target=sh1 ;;
2825 # did the user say --without-fp ?
2826 if test x$with_fp = xno; then
2827 case ${sh_cpu_target} in
2829 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2830 sh4*) sh_cpu_target=sh4-nofpu ;;
2831 sh3*) sh_cpu_target=sh3 ;;
2832 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2833 sh2*) sh_cpu_target=sh2 ;;
2834 *) echo --without-fp not available for $target: ignored
2836 tm_defines="$tm_defines STRICT_NOFPU=1"
2838 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2839 case $sh_cpu_default in
2840 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2841 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2842 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2843 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2844 "") sh_cpu_default=${sh_cpu_target} ;;
2845 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2847 sh_multilibs=${with_multilib_list}
2848 if test "$sh_multilibs" = "default" ; then
2850 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2851 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2852 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2853 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2854 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2856 if test x$with_fp = xno; then
2857 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`"
2860 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2861 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2862 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2863 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2864 for sh_multilib in ${sh_multilibs}; do
2865 case ${sh_multilib} in
2866 m1 | m2 | m2e | m3 | m3e | \
2867 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2868 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2869 m2a | m2a-single | m2a-single-only | m2a-nofpu)
2870 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2871 # It is passed to MULTIILIB_OPTIONS verbatim.
2872 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2873 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2875 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2876 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2877 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2879 echo "with_multilib_list=${sh_multilib} not supported."
2884 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2885 if test x${enable_incomplete_targets} = xyes ; then
2886 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
2888 tm_file="$tm_file ./sysroot-suffix.h"
2889 tmake_file="$tmake_file t-sysroot-suffix"
2892 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2893 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2896 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2897 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2900 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2903 tmake_file="sparc/t-sparc sparc/t-leon"
2906 tmake_file="sparc/t-sparc sparc/t-leon3"
2909 tmake_file="sparc/t-sparc sparc/t-elf"
2914 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2915 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2918 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2919 extra_options="${extra_options} sparc/long-double-switch.opt"
2922 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2925 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2928 tmake_file="${tmake_file} sparc/t-sparc"
2931 if test x$enable_targets = xall; then
2932 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2933 tmake_file="${tmake_file} sparc/t-linux64"
2935 tm_file="${tm_file} sparc/linux.h"
2936 tmake_file="${tmake_file} sparc/t-linux"
2940 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
2941 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2942 extra_options="${extra_options} sparc/long-double-switch.opt"
2943 tmake_file="${tmake_file} sparc/t-sparc"
2946 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2948 sparc64-*-* | sparcv9-*-*)
2949 tm_file="sparc/default64.h ${tm_file}"
2952 test x$with_cpu != x || with_cpu=v9
2955 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2958 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2959 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2962 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2963 extra_options="${extra_options}"
2964 tmake_file="${tmake_file} sparc/t-sparc"
2967 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2968 extra_options="${extra_options}"
2969 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2972 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"
2973 extra_options="${extra_options} sparc/long-double-switch.opt"
2974 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2976 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2977 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2978 extra_options="${extra_options} sparc/long-double-switch.opt"
2979 case "x$with_cpu" in
2981 x) with_cpu=ultrasparc ;;
2982 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2984 tmake_file="${tmake_file} sparc/t-sparc"
2987 tm_file="sparc/biarch64.h ${tm_file}"
2988 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
2989 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2990 extra_options="${extra_options} sparc/long-double-switch.opt"
2991 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2994 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2995 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2996 extra_options="${extra_options} openbsd.opt"
2997 extra_options="${extra_options}"
3000 tmake_file="${tmake_file} sparc/t-sparc"
3003 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
3004 tmake_file="spu/t-spu-elf"
3005 native_system_header_dir=/include
3006 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
3007 extra_modes=spu/spu-modes.def
3008 c_target_objs="${c_target_objs} spu-c.o"
3009 cxx_target_objs="${cxx_target_objs} spu-c.o"
3012 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3013 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3014 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3018 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3019 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3020 tm_file="${tm_file} ./sysroot-suffix.h"
3021 tmake_file="t-sysroot-suffix t-slibgcc"
3022 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3026 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3027 tmake_file="${tmake_file} tilegx/t-tilegx"
3028 extra_objs="${extra_objs} mul-tables.o"
3029 c_target_objs="${c_target_objs} tilegx-c.o"
3030 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3031 extra_headers="feedback.h"
3034 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3039 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3040 tmake_file="${tmake_file} tilepro/t-tilepro"
3041 extra_objs="${extra_objs} mul-tables.o"
3042 c_target_objs="${c_target_objs} tilepro-c.o"
3043 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3044 extra_headers="feedback.h"
3047 target_cpu_default="TARGET_CPU_generic"
3048 tm_file="dbxelf.h elfos.h v850/v850.h"
3049 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3050 tmake_file="${tmake_file} v850/t-v850"
3051 tmake_file="${tmake_file} v850/t-rtems"
3053 c_target_objs="v850-c.o"
3054 cxx_target_objs="v850-c.o"
3059 target_cpu_default="TARGET_CPU_v850e3v5"
3062 target_cpu_default="TARGET_CPU_v850e2v3"
3065 target_cpu_default="TARGET_CPU_v850e2"
3067 v850e1-*-* | v850es-*-*)
3068 target_cpu_default="TARGET_CPU_v850e1"
3071 target_cpu_default="TARGET_CPU_v850e"
3074 target_cpu_default="TARGET_CPU_generic"
3077 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3078 if test x$stabs = xyes
3080 tm_file="${tm_file} dbx.h"
3083 c_target_objs="v850-c.o"
3084 cxx_target_objs="v850-c.o"
3088 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3089 extra_options="${extra_options} vax/elf.opt"
3092 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3093 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3094 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3097 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3098 extra_options="${extra_options} openbsd.opt"
3102 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3103 tmake_file="visium/t-visium visium/t-crtstuff"
3106 # For historical reasons, the target files omit the 'x'.
3107 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3108 tm_p_file=stormy16/stormy16-protos.h
3109 md_file=stormy16/stormy16.md
3110 out_file=stormy16/stormy16.c
3111 extra_options=stormy16/stormy16.opt
3112 tmake_file="stormy16/t-stormy16"
3115 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3116 extra_options="${extra_options} xtensa/elf.opt"
3119 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3120 tmake_file="${tmake_file} xtensa/t-xtensa"
3123 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3124 tmake_file="${tmake_file} xtensa/t-xtensa"
3125 extra_options="${extra_options} xtensa/uclinux.opt"
3128 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3133 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3134 c_target_objs="m32c-pragma.o"
3135 cxx_target_objs="m32c-pragma.o"
3138 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3139 c_target_objs="m32c-pragma.o"
3140 cxx_target_objs="m32c-pragma.o"
3143 echo "*** Configuration ${target} not supported" 1>&2
3149 i[34567]86-*-linux* | x86_64-*-linux*)
3150 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3152 i[34567]86-*-* | x86_64-*-*)
3153 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3155 powerpc*-*-* | rs6000-*-*)
3156 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3162 tmake_file="${tmake_file} t-musl"
3165 tmake_file="${tmake_file} t-uclibc"
3169 # Assume the existence of indirect function support and allow the use of the
3170 # resolver attribute.
3172 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3176 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3177 default_gnu_indirect_function=yes
3183 # Build mkoffload tool
3185 *-intelmic-* | *-intelmicemul-*)
3186 tmake_file="${tmake_file} i386/t-intelmic"
3187 tm_file="${tm_file} i386/intelmic-offload.h"
3191 if [ "$target_has_targetcm" = "no" ]; then
3192 c_target_objs="$c_target_objs default-c.o"
3193 cxx_target_objs="$cxx_target_objs default-c.o"
3196 if [ "$common_out_file" = "" ]; then
3197 if [ "$target_has_targetm_common" = "yes" ]; then
3198 common_out_file="$cpu_type/$cpu_type-common.c"
3200 common_out_file="default-common.c"
3204 # Support for --with-cpu and related options (and a few unrelated options,
3208 echo "--with-cpu must be passed a value" 1>&2
3213 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3214 # to generic if there is no processor scheduler model for the target.
3217 arch_without_sse2=no
3218 arch_without_64bit=no
3221 if test $fbsd_major -ge 6; then
3227 arch_without_sse2=yes
3228 arch_without_64bit=yes
3233 arch_without_sse2=yes
3234 arch_without_64bit=yes
3239 arch_without_sse2=yes
3240 arch_without_64bit=yes
3245 arch_without_sse2=yes
3246 arch_without_64bit=yes
3249 arch_without_sse2=yes
3250 arch_without_64bit=yes
3251 case ${target_noncanonical} in
3264 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3274 i686-*-* | i786-*-*)
3275 case ${target_noncanonical} in
3304 amdfam10-*|barcelona-*)
3308 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3312 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3316 athlon_xp-*|athlon_mp-*|athlon_4-*)
3319 arch_without_sse2=yes
3320 arch_without_64bit=yes
3322 athlon_tbird-*|athlon-*)
3325 arch_without_sse2=yes
3330 arch_without_sse2=yes
3335 arch_without_sse2=yes
3337 pentium3-*|pentium3m-*)
3340 arch_without_sse2=yes
3342 pentium4-*|pentium4m-*)
3381 arch_without_sse2=yes
3386 arch_without_sse2=yes
3387 arch_without_64bit=yes
3392 case ${target_noncanonical} in
3421 amdfam10-*|barcelona-*)
3425 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3429 k8-*|opteron-*|athlon_64-*)
3461 # If there is no $with_cpu option, try to infer one from ${target}.
3462 # This block sets nothing except for with_cpu.
3463 if test x$with_cpu = x ; then
3465 i[34567]86-*-elfiamcu)
3468 i[34567]86-*-*|x86_64-*-*)
3486 frv-*-*linux* | frv400-*-*linux*)
3493 case "$with_arch" in
3495 with_cpu=${default_cf_cpu}
3498 with_cpu=m${default_m68k_cpu}
3503 # For SPE, start with 8540, then upgrade to 8548 if
3504 # --enable-e500-double was requested explicitly or if we were
3505 # configured for e500v2.
3507 if test x$enable_e500_double = xyes; then
3510 case ${target_noncanonical} in
3528 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3537 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3539 i[34567]86-*-*|x86_64-*-*)
3540 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3541 if test x$with_cpu_32 = x; then
3542 with_cpu_32=$with_cpu
3544 if test x$with_cpu_64 = x; then
3545 with_cpu_64=$with_cpu
3553 # Support for --with-arch and related options (and a few unrelated options,
3555 case ${with_arch} in
3557 echo "--with-arch must be passed a value" 1>&2
3562 # If there is no $with_arch option, try to infer one from ${target}.
3563 # This block sets nothing except for with_arch.
3564 if test x$with_arch = x ; then
3566 i[34567]86-*-darwin*|x86_64-*-darwin*)
3567 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3568 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3570 i[34567]86-*-elfiamcu)
3574 # --with-fpmath sets the default ISA to SSE2, which is the same
3575 # ISA supported by Pentium 4.
3576 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3585 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3593 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3595 i[34567]86-*-darwin*|x86_64-*-darwin*)
3596 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3597 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3599 i[34567]86-*-*|x86_64-*-*)
3600 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3601 if test x$with_arch_32 = x; then
3602 with_arch_32=$with_arch
3604 if test x$with_arch_64 = x; then
3605 if test $arch_without_64bit = yes; then
3606 # Set the default 64bit arch to x86-64 if the default arch
3607 # doesn't support 64bit.
3610 with_arch_64=$with_arch
3614 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3615 # Set the default 64bit arch to x86-64 if the default arch
3616 # doesn't support 64bit and we need 64bit ISA.
3617 with_arch_32=$with_arch
3625 # Infer a default setting for --with-float.
3626 if test x$with_float = x; then
3628 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3629 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3630 # comply with IEEE 754.
3636 # Infer a default setting for --with-fpu.
3637 if test x$with_fpu = x; then
3639 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3640 # The R5900 FPU only supports single precision.
3646 # Support --with-fpmath.
3647 if test x$with_fpmath != x; then
3649 i[34567]86-*-* | x86_64-*-*)
3650 case ${with_fpmath} in
3652 tm_file="${tm_file} i386/avxmath.h"
3655 tm_file="${tm_file} i386/ssemath.h"
3658 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3664 echo "--with-fpmath isn't supported for $target." 1>&2
3670 # Similarly for --with-schedule.
3671 if test x$with_schedule = x; then
3674 # Override default PA8000 scheduling model.
3675 with_schedule=7100LC
3680 # Infer a default setting for --with-llsc.
3681 if test x$with_llsc = x; then
3683 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3684 # The R5900 doesn't support LL(D) and SC(D).
3688 # The kernel emulates LL and SC where necessary.
3694 # Validate and mark as valid any --with options supported
3695 # by this target. In order to use a particular --with option
3696 # you must list it in supported_defaults; validating the value
3697 # is optional. This case statement should set nothing besides
3698 # supported_defaults.
3703 supported_defaults="abi cpu arch"
3704 for which in cpu arch; do
3706 eval "val=\$with_$which"
3707 base_val=`echo $val | sed -e 's/\+.*//'`
3708 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
3710 if [ $which = arch ]; then
3711 def=aarch64-arches.def
3712 pattern=AARCH64_ARCH
3714 def=aarch64-cores.def
3715 pattern=AARCH64_CORE
3718 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3720 # Find the base CPU or ARCH id in aarch64-cores.def or
3721 # aarch64-arches.def
3722 if [ x"$base_val" = x ] \
3723 || grep "^$pattern(\"$base_val\"," \
3724 ${srcdir}/config/aarch64/$def \
3727 if [ $which = arch ]; then
3728 base_id=`grep "^$pattern(\"$base_val\"," \
3729 ${srcdir}/config/aarch64/$def | \
3730 sed -e 's/^[^,]*,[ ]*//' | \
3732 # Extract the architecture flags from aarch64-arches.def
3733 ext_mask=`grep "^$pattern(\"$base_val\"," \
3734 ${srcdir}/config/aarch64/$def | \
3738 base_id=`grep "^$pattern(\"$base_val\"," \
3739 ${srcdir}/config/aarch64/$def | \
3740 sed -e 's/^[^,]*,[ ]*//' | \
3744 while [ x"$ext_val" != x ]
3746 ext_val=`echo $ext_val | sed -e 's/\+//'`
3747 ext=`echo $ext_val | sed -e 's/\+.*//'`
3748 base_ext=`echo $ext | sed -e 's/^no//'`
3750 if [ x"$base_ext" = x ] \
3751 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3752 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3755 ext_canon=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3756 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3757 sed -e 's/^[^,]*,[ ]*//' | \
3759 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3760 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3761 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3762 sed -e 's/,.*$//' | \
3764 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3765 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3766 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*[^,]*,[ ]*//' | \
3767 sed -e 's/,.*$//' | \
3771 if [ $ext = $base_ext ]; then
3773 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
3775 # Removing extension
3776 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
3781 echo "Unknown extension used in --with-$which=$val" 1>&2
3784 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3787 ext_mask="(("$ext_mask") << 6)"
3788 if [ x"$base_id" != x ]; then
3789 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3793 echo "Unknown $which used in --with-$which=$val" 1>&2
3800 supported_defaults="cpu tune"
3801 for which in cpu tune; do
3802 eval "val=\$with_$which"
3805 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3806 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3810 echo "Unknown CPU used in --with-$which=$val" 1>&2
3818 supported_defaults="cpu"
3820 if [ x"$with_cpu" = x ] \
3821 || grep "^ARC_CPU ($with_cpu," \
3822 ${srcdir}/config/arc/arc-cpus.def \
3827 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3833 supported_defaults="arch cpu float tune fpu abi mode tls"
3834 for which in cpu tune arch; do
3835 # See if it matches a supported value
3836 eval "val=\$with_$which"
3837 if [ x"$val" != x ]; then
3838 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3839 -v cmd="chk$which $val" \
3840 ${srcdir}/config/arm/arm-cpus.in`
3841 if [ "$cpu" = "error" ]; then
3842 echo "Unknown target in --with-$which=$val" 1>&2
3846 eval "target_${which}_cname=$new_val"
3847 echo "For $val real value is $new_val"
3852 case "$with_float" in
3854 | soft | hard | softfp)
3858 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3863 # see if --with-fpu matches any of the supported FPUs
3864 if [ x"$with_fpu" != x ] ; then
3865 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3866 -v cmd="chkfpu $with_fpu" \
3867 ${srcdir}/config/arm/arm-cpus.in`
3868 if [ "$fpu" = "error"]
3870 echo "Unknown target in --with-$which=$val" 1>&2
3877 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3881 echo "Unknown ABI used in --with-abi=$with_abi"
3886 case "$with_mode" in
3892 echo "Unknown mode used in --with-mode=$with_mode"
3903 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3908 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3909 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3913 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3914 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3918 # Add extra multilibs
3919 if test "x$with_multilib_list" != x; then
3920 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3921 if test "x${arm_multilibs}" != xdefault ; then
3922 for arm_multilib in ${arm_multilibs}; do
3923 case ${arm_multilib} in
3925 tmake_profile_file="arm/t-multilib"
3928 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3935 if test "x${tmake_profile_file}" != x ; then
3936 # arm/t-aprofile and arm/t-rmprofile are only
3937 # designed to work without any with-cpu,
3938 # with-arch, with-mode, with-fpu or with-float
3940 if test "x$with_arch" != x \
3941 || test "x$with_cpu" != x \
3942 || test "x$with_float" != x \
3943 || test "x$with_fpu" != x \
3944 || test "x$with_mode" != x ; then
3945 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
3948 # But pass the default value for float-abi
3949 # through to the multilib selector
3951 tmake_file="${tmake_file} ${tmake_profile_file}"
3952 TM_MULTILIB_CONFIG="$with_multilib_list"
3955 target_cpu_cname=${target_cpu_cname:-arm6}
3956 with_cpu=${with_cpu:-$target_cpu_cname}
3960 supported_defaults=cpu
3965 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3971 fido-*-* | m68k*-*-*)
3972 supported_defaults="arch cpu"
3973 case "$with_arch" in
3975 m68k_arch_family="$with_arch"
3978 echo "Invalid --with-arch=$with_arch" 1>&2
3983 # We always have a $with_cpu setting here.
3985 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3986 m68k_cpu_ident=$with_cpu
3989 m68k_cpu_ident=m68020
3990 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3993 m68k_cpu_ident=m68020
3994 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3997 # We need the C identifier rather than the string.
3998 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
3999 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4000 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4001 ${srcdir}/config/m68k/m68k-devices.def`
4002 if [ x"$m68k_cpu_ident" = x ] ; then
4003 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4006 with_cpu="mcpu=$with_cpu"
4012 supported_defaults="arch schedule"
4014 case "$with_arch" in
4015 "" | 1.0 | 1.1 | 2.0)
4019 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4024 case "$with_schedule" in
4025 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4029 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4035 i[34567]86-*-* | x86_64-*-*)
4036 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4037 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4038 eval "val=\$with_$which"
4039 case " $x86_archs " in
4047 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4056 if test x${val} != x; then
4057 case " $x86_64_archs " in
4062 # Allow $x86_cpus --with-cpu=/--with-tune=
4065 case " $x86_cpus " in
4070 echo "Unknown CPU given in --with-$which=$val." 1>&2
4076 echo "Unknown CPU given in --with-$which=$val." 1>&2
4089 supported_defaults="abi arch tune"
4092 riscv32*) xlen=32 ;;
4093 riscv64*) xlen=64 ;;
4094 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4097 # Infer arch from --with-arch, --target, and --with-abi.
4098 case "${with_arch}" in
4099 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4103 # Infer XLEN, but otherwise assume GC.
4104 case "${with_abi}" in
4105 ilp32e) with_arch="rv32e" ;;
4106 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4107 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4108 *) with_arch="rv${xlen}gc" ;;
4112 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4117 # Make sure --with-abi is valid. If it was not specified,
4118 # pick a default based on the ISA, preferring soft-float
4119 # unless the D extension is present.
4120 case "${with_abi}" in
4121 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4124 case "${with_arch}" in
4125 rv32*d* | rv32g*) with_abi=ilp32d ;;
4126 rv32e*) with_abi=ilp32e ;;
4127 rv32*) with_abi=ilp32 ;;
4128 rv64*d* | rv64g*) with_abi=lp64d ;;
4129 rv64*) with_abi=lp64 ;;
4133 echo "--with-abi=${with_abi} is not supported" 1>&2
4138 # Make sure ABI and ISA are compatible.
4139 case "${with_abi},${with_arch}" in
4140 ilp32,rv32* | ilp32e,rv32e* \
4141 | ilp32f,rv32*f* | ilp32f,rv32g* \
4142 | ilp32d,rv32*d* | ilp32d,rv32g* \
4144 | lp64f,rv64*f* | lp64f,rv64g* \
4145 | lp64d,rv64*d* | lp64d,rv64g*)
4148 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4153 # Handle --with-multilib-list.
4154 if test "x${with_multilib_list}" != xdefault; then
4155 tm_file="${tm_file} riscv/withmultilib.h"
4156 tmake_file="${tmake_file} riscv/t-withmultilib"
4158 case ${with_multilib_list} in
4159 ilp32 | ilp32f | ilp32d \
4160 | lp64 | lp64f | lp64d )
4161 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4164 echo "--with-multilib-list=${with_multilib_list} not supported."
4168 # Define macros to select the default multilib.
4169 case ${with_arch} in
4171 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4174 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4177 echo "unsupported --with-arch for --with-multilib-list"
4182 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4185 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4188 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4191 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4194 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4197 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4200 echo "unsupported --with-abi for --with-multilib"
4207 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"
4209 case ${with_float} in
4214 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4220 "" | single | double)
4224 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4234 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4239 case ${with_fp_32} in
4244 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4249 case ${with_odd_spreg_32} in
4251 with_odd_spreg_32="odd-spreg"
4254 with_odd_spreg_32="no-odd-spreg"
4260 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4266 "" | 32 | o64 | n32 | 64 | eabi)
4270 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4275 case ${with_divide} in
4276 "" | breaks | traps)
4280 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4285 case ${with_llsc} in
4296 echo "Unknown llsc type used in --with-llsc" 1>&2
4301 case ${with_mips_plt} in
4306 with_mips_plt=no-plt
4311 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4316 case ${with_synci} in
4326 echo "Unknown synci type used in --with-synci" 1>&2
4331 case ${with_lxc1_sxc1} in
4333 with_lxc1_sxc1=lxc1-sxc1
4336 with_lxc1_sxc1=no-lxc1-sxc1
4341 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4346 case ${with_madd4} in
4356 echo "Unknown madd4 type used in --with-madd4" 1>&2
4363 supported_defaults="arch cpu nds32_lib float fpu_config"
4365 # process --with-arch
4366 case "${with_arch}" in
4368 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4372 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4375 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4378 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4382 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4387 case "${with_cpu}" in
4391 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4395 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4400 # process --with-nds32-lib
4401 case "${with_nds32_lib}" in
4403 # the default library is newlib
4404 with_nds32_lib=newlib
4405 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4409 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4413 # for the arch=v3f or arch=v3s under mculib toolchain,
4414 # we would like to set -fno-math-errno as default
4415 case "${with_arch}" in
4417 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4423 tm_defines="${tm_defines} TARGET_DEFAULT_TLSDESC_TRAMPOLINE=1"
4428 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4433 # process --with-float
4434 case "${with_float}" in
4439 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4444 # process --with-config-fpu
4445 case "${with_config_fpu}" in
4450 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4458 supported_defaults="arch"
4459 case "$with_arch" in
4464 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4470 powerpc*-*-* | rs6000-*-*)
4471 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4473 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4474 eval "val=\$with_$which"
4476 default32 | default64)
4481 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4485 with_which="with_$which"
4489 tm_defines="${tm_defines} CONFIG_PPC405CR"
4490 eval "with_$which=405"
4492 "" | common | native \
4493 | power[3456789] | power5+ | power6x \
4494 | powerpc | powerpc64 | powerpc64le \
4496 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4497 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4498 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4499 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4500 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4504 echo "Unknown cpu used in --with-$which=$val." 1>&2
4511 "" | elfv1 | elfv2 )
4515 echo "Unknown ABI used in --with-abi=$with_abi"
4520 if test "x$with_advance_toolchain" != x; then
4521 if test -d "/opt/$with_advance_toolchain/." -a \
4522 -d "/opt/$with_advance_toolchain/bin/." -a \
4523 -d "/opt/$with_advance_toolchain/include/."; then
4525 tm_file="$tm_file ./advance-toolchain.h"
4526 (at="/opt/$with_advance_toolchain"
4527 echo "/* Use Advance Toolchain $at */"
4529 echo "#undef LINK_OS_EXTRA_SPEC32"
4530 echo "#define LINK_OS_EXTRA_SPEC32" \
4531 "\"%(link_os_new_dtags)" \
4532 "-rpath $prefix/lib -rpath $at/lib" \
4533 "-L $prefix/lib -L $at/lib\""
4535 echo "#undef LINK_OS_EXTRA_SPEC64"
4536 echo "#define LINK_OS_EXTRA_SPEC64" \
4537 "\"%(link_os_new_dtags)" \
4538 "-rpath $prefix/lib64 -rpath $at/lib64" \
4539 "-L $prefix/lib64 -L $at/lib64\""
4541 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4542 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4543 "\"--enable-new-dtags\""
4545 echo "#undef DYNAMIC_LINKER_PREFIX"
4546 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4548 echo "#undef MD_EXEC_PREFIX"
4549 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4551 echo "#undef MD_STARTFILE_PREFIX"
4552 echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \
4553 > advance-toolchain.h
4555 echo "Unknown advance-toolchain $with_advance_toolchain"
4560 # Set up the default long double format if the user changed it.
4561 if test x$with_long_double_format = xieee; then
4562 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
4564 elif test x$with_long_double_format = xibm; then
4565 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
4568 case "${target}:${enable_multilib}:${with_long_double_format}" in
4569 powerpc64le*:yes:ieee | powerpc64le*:yes:ibm)
4570 tm_defines="${tm_defines} TARGET_IEEEQUAD_MULTILIB=1"
4571 tmake_file="${tmake_file} rs6000/t-ldouble-linux64le-${with_long_double_format}"
4580 supported_defaults="arch mode tune"
4582 for which in arch tune; do
4583 eval "val=\$with_$which"
4585 "" | native | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | arch3 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12)
4589 echo "Unknown cpu used in --with-$which=$val." 1>&2
4595 case ${with_mode} in
4600 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4606 sh[123456ble]*-*-* | sh-*-*)
4607 supported_defaults="cpu"
4608 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4609 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4612 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4614 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4617 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4618 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4619 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4620 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4626 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4628 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4629 eval "val=\$with_$which"
4631 "" | sparc | sparcv9 | sparc64 \
4633 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4634 | sparclite | f930 | f934 | sparclite86x \
4635 | sparclet | tsc701 \
4636 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4637 | niagara3 | niagara4 | niagara7 | m8)
4641 echo "Unknown cpu used in --with-$which=$val" 1>&2
4647 case ${with_float} in
4652 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4659 supported_defaults="arch tune"
4661 for which in arch tune; do
4662 eval "val=\$with_$which"
4664 "" | cell | celledp)
4668 echo "Unknown cpu used in --with-$which=$val." 1>&2
4676 supported_defaults="arch"
4678 case ${with_arch} in
4679 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4683 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4690 supported_defaults=cpu
4692 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4696 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4702 supported_defaults="cpu"
4706 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4713 # Set some miscellaneous flags for particular targets.
4714 target_cpu_default2=
4717 if test x"$target_cpu_cname" != x
4719 target_cpu_default2=$target_cpu_cname
4724 if test x$with_cpu = x
4726 echo "Don't know the target cpu" 1>&2
4729 target_cpu_default2="\\\"$with_cpu\\\""
4734 if test x$gas = xyes
4736 target_cpu_default2="MASK_GAS"
4740 fido*-*-* | m68k*-*-*)
4741 target_cpu_default2=$m68k_cpu_ident
4742 tmake_file="m68k/t-opts $tmake_file"
4743 if [ x"$m68k_arch_family" != x ]; then
4744 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4748 i[34567]86-*-darwin* | x86_64-*-darwin*)
4750 i[34567]86-*-linux* | x86_64-*-linux*)
4751 extra_objs="${extra_objs} cet.o"
4752 tmake_file="$tmake_file i386/t-linux i386/t-cet"
4754 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4755 tmake_file="$tmake_file i386/t-kfreebsd"
4758 tmake_file="$tmake_file i386/t-gnu"
4760 i[34567]86-*-msdosdjgpp*)
4761 tmake_file="${tmake_file} i386/t-djgpp"
4763 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4765 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4767 i[34567]86-*-mingw* | x86_64-*-mingw*)
4769 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4771 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4777 if test x$gnu_ld = xyes
4779 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4783 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4786 if test x$with_arch != x; then
4787 default_mips_arch=$with_arch
4789 if test x$with_abi != x; then
4790 default_mips_abi=$with_abi
4792 case ${default_mips_arch} in
4793 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4794 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4795 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4796 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4797 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4798 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4799 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
4800 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4801 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4802 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
4804 case ${default_mips_abi} in
4805 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4806 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4807 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4808 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4809 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4811 tmake_file="mips/t-mips $tmake_file"
4814 powerpc*-*-* | rs6000-*-*)
4815 # FIXME: The PowerPC port uses the value set at compile time,
4816 # although it's only cosmetic.
4817 if test "x$with_cpu" != x
4819 target_cpu_default2="\\\"$with_cpu\\\""
4821 out_file="${cpu_type}/${cpu_type}.c"
4822 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
4823 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
4824 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
4827 sh[123456ble]*-*-* | sh-*-*)
4828 c_target_objs="${c_target_objs} sh-c.o"
4829 cxx_target_objs="${cxx_target_objs} sh-c.o"
4833 # Some standard aliases.
4838 xsparcv9 | xsparc64)
4843 if test x$with_tune = x ; then
4854 # The SPARC port checks this value at compile-time.
4855 target_cpu_default2="TARGET_CPU_$with_cpu"
4859 case "x$with_cpu" in
4862 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4863 target_cpu_default2="TARGET_CPU_$with_cpu"
4866 target_cpu_default2="TARGET_CPU_v850e1"
4871 target_cpu_default2="TARGET_CPU_$with_cpu"
4876 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"
4877 for option in $all_defaults
4879 eval "val=\$with_"`echo $option | sed s/-/_/g`
4880 if test -n "$val"; then
4881 case " $supported_defaults " in
4885 echo "This target does not support --with-$option." 2>&1
4886 echo "Valid --with options are: $supported_defaults" 2>&1
4893 t="{ \"$option\", \"$val\" }"
4895 t="${t}, { \"$option\", \"$val\" }"
4902 configure_default_options="{ { NULL, NULL} }"
4904 configure_default_options="{ ${t} }"
4907 if test "$target_cpu_default2" != ""
4909 if test "$target_cpu_default" != ""
4911 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4913 target_cpu_default=$target_cpu_default2
4918 i[34567]86-*-* | x86_64-*-*)
4919 if test x$enable_as_accelerator = xyes; then
4920 extra_programs="mkoffload\$(exeext)"