1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2019 Free Software Foundation, Inc.
4 #This file is part of GCC.
6 #GCC is free software; you can redistribute it and/or modify it under
7 #the terms of the GNU General Public License as published by the Free
8 #Software Foundation; either version 3, or (at your option) any later
11 #GCC is distributed in the hope that it will be useful, but WITHOUT
12 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 #FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 #You should have received a copy of the GNU General Public License
17 #along with GCC; see the file COPYING3. If not see
18 #<http://www.gnu.org/licenses/>.
20 # This is the GCC target-specific configuration file
21 # where a configuration type is mapped to different system-specific
22 # definitions and files. This is invoked by the autoconf-generated
23 # configure script. Putting it in a separate shell file lets us skip
24 # running autoconf when modifying target-specific information.
26 # When you change the cases in the OS or target switches, consider
27 # updating ../libgcc/config.host also.
29 # This file switches on the shell variable ${target}, and also uses the
30 # following shell variables:
32 # with_* Various variables as set by configure.
34 # enable_threads Either the name, yes or no depending on whether
35 # threads support was requested.
37 # default_use_cxa_atexit
38 # The default value for the $enable___cxa_atexit
39 # variable. enable___cxa_atexit needs to be set to
40 # "yes" for the correct operation of C++ destructors
41 # but it relies upon the presence of a non-standard C
42 # library function called __cxa_atexit.
43 # Since not all C libraries provide __cxa_atexit the
44 # default value of $default_use_cxa_atexit is set to
45 # "no" except for targets which are known to be OK.
47 # default_gnu_indirect_function
48 # The default value for the $enable_gnu_indirect_function
49 # variable. enable_gnu_indirect_function relies
50 # upon the presence of a non-standard gnu ifunc support
51 # in the assembler, linker and dynamic linker.
52 # Since not all libraries provide the dynamic linking
53 # support, the default value of
54 # $default_gnu_indirect_function is set to
55 # "no" except for targets which are known to be OK.
57 # gas_flag Either yes or no depending on whether GNU as was
60 # gnu_ld_flag Either yes or no depending on whether GNU ld was
63 # This file sets the following shell variables for use by the
64 # autoconf-generated configure script:
66 # cpu_type The name of the cpu, if different from the first
67 # chunk of the canonical target name.
69 # tm_defines List of target macros to define for all compilations.
71 # tm_file A list of target macro files, if different from
72 # "$cpu_type/$cpu_type.h". Usually it's constructed
73 # per target in a way like this:
74 # tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h"
75 # Note that the preferred order is:
76 # - specific target header "${cpu_type}/${cpu_type.h}"
77 # - generic headers like dbxelf.h elfos.h, etc.
78 # - specializing target headers like ${cpu_type.h}/elf.h
79 # This helps to keep OS specific stuff out of the CPU
80 # defining header ${cpu_type}/${cpu_type.h}.
82 # It is possible to include automatically-generated
83 # build-directory files by prefixing them with "./".
84 # All other files should relative to $srcdir/config.
86 # tm_p_file Location of file with declarations for functions
89 # tm_d_file A list of headers with definitions of target hook
90 # macros for the D compiler.
92 # out_file The name of the machine description C support
93 # file, if different from "$cpu_type/$cpu_type.c".
95 # common_out_file The name of the source file for code shared between
96 # the compiler proper and the driver.
98 # md_file The name of the machine-description file, if
99 # different from "$cpu_type/$cpu_type.md".
101 # tmake_file A list of machine-description-specific
102 # makefile-fragments, if different from
103 # "$cpu_type/t-$cpu_type".
105 # extra_modes The name of the file containing a list of extra
106 # machine modes, if necessary and different from
107 # "$cpu_type/$cpu_type-modes.def".
109 # extra_objs List of extra objects that should be linked into
110 # the compiler proper (cc1, cc1obj, cc1plus)
111 # depending on target.
113 # extra_gcc_objs List of extra objects that should be linked into
114 # the compiler driver (gcc) depending on target.
116 # extra_headers List of used header files from the directory
117 # config/${cpu_type}.
119 # user_headers_inc_next_pre
120 # List of header file names of internal gcc header
121 # files, which should be prefixed by an include_next.
122 # user_headers_inc_next_post
123 # List of header file names of internal gcc header
124 # files, which should be postfixed by an include_next.
125 # use_gcc_tgmath If set, add tgmath.h to the list of used header
128 # use_gcc_stdint If "wrap", install a version of stdint.h that
129 # wraps the system's copy for hosted compilations;
130 # if "provide", provide a version of systems without
131 # such a system header; otherwise "none", do not
132 # provide such a header at all.
134 # extra_programs List of extra executables compiled for this target
135 # machine, used when linking.
137 # extra_options List of target-dependent .opt files.
139 # c_target_objs List of extra target-dependent objects that be
140 # linked into the C compiler only.
142 # cxx_target_objs List of extra target-dependent objects that be
143 # linked into the C++ compiler only.
145 # d_target_objs List of extra target-dependent objects that be
146 # linked into the D compiler only.
148 # fortran_target_objs List of extra target-dependent objects that be
149 # linked into the fortran compiler only.
151 # target_gtfiles List of extra source files with type information.
153 # xm_defines List of macros to define when compiling for the
156 # xm_file List of files to include when compiling for the
159 # use_collect2 Set to yes or no, depending on whether collect2
162 # target_cpu_default Set to override the default target model.
164 # gdb_needs_out_file_path
165 # Set to yes if gdb needs a dir command with
166 # `dirname $out_file`.
168 # thread_file Set to control which thread package to use.
170 # gas Set to yes or no depending on whether the target
171 # system normally uses GNU as.
173 # configure_default_options
174 # Set to an initializer for configure_default_options
175 # in configargs.h, based on --with-cpu et cetera.
177 # native_system_header_dir
178 # Where system header files are found for this
179 # target. This defaults to /usr/include. If
180 # the --with-sysroot configure option or the
181 # --sysroot command line option is used this
182 # will be relative to the sysroot.
183 # target_type_format_char
184 # The default character to be used for formatting
186 # .type symbol_name, ${t_t_f_c}<property>
189 # The following variables are used in each case-construct to build up the
190 # outgoing variables:
192 # gnu_ld Set to yes or no depending on whether the target
193 # system normally uses GNU ld.
195 # target_has_targetcm Set to yes or no depending on whether the target
196 # has its own definition of targetcm.
198 # target_has_targetm_common Set to yes or no depending on whether the
199 # target has its own definition of targetm_common.
201 # target_has_targetdm Set to yes or no depending on whether the target
202 # has its own definition of targetdm.
208 user_headers_inc_next_pre=
209 user_headers_inc_next_post=
220 target_has_targetcm=no
221 target_has_targetm_common=yes
222 target_has_targetdm=no
225 # Set this to force installation and use of collect2.
227 # Set this to override the default target model.
229 # Set this if gdb needs a dir command with `dirname $out_file`
230 gdb_needs_out_file_path=
231 # Set this to control which thread package will be used.
233 # Reinitialize these from the flag values every loop pass, since some
234 # configure entries modify them.
236 gnu_ld="$gnu_ld_flag"
237 default_use_cxa_atexit=no
238 default_gnu_indirect_function=no
241 native_system_header_dir=/usr/include
242 target_type_format_char='@'
244 # Don't carry these over build->host->target. Please.
248 # Obsolete configurations.
253 if test "x$enable_obsolete" != xyes; then
254 echo "*** Configuration ${target} is obsolete." >&2
255 echo "*** Specify --enable-obsolete to build it anyway." >&2
256 echo "*** Support will be REMOVED in the next major release of GCC," >&2
257 echo "*** unless a maintainer comes forward." >&2
262 # Unsupported targets list. Do not put an entry in this list unless
263 # it would otherwise be caught by a more permissive pattern. The list
264 # should be in alphabetical order.
266 # Avoid special cases that are not obsolete
275 | i[34567]86-go32-* \
276 | i[34567]86-*-go32* \
277 | m68k-*-uclinuxoldabi* \
278 | mips64orion*-*-rtems* \
280 | powerpc*-*-linux*paired* \
282 | sparc-hal-solaris2* \
284 | *-*-freebsd[12] | *-*-freebsd[1234].* \
285 | *-*-freebsd*aout* \
293 | *-*-solaris2.[0-9] \
294 | *-*-solaris2.[0-9].* \
298 echo "*** Configuration ${target} not supported" 1>&2
303 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
304 # updated in each machine entry. Also set default extra_headers for some
307 cpu_type=`echo ${target} | sed 's/-.*$//'`
312 tmake_file=m32c/t-m32c
313 target_has_targetm_common=no
317 extra_headers="arm_fp16.h arm_neon.h arm_acle.h"
318 c_target_objs="aarch64-c.o"
319 cxx_target_objs="aarch64-c.o"
320 d_target_objs="aarch64-d.o"
321 extra_objs="aarch64-builtins.o aarch-common.o cortex-a57-fma-steering.o aarch64-speculation.o falkor-tag-collision-avoidance.o aarch64-bti-insert.o"
322 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c"
323 target_has_targetm_common=yes
327 extra_options="${extra_options} g.opt"
338 c_target_objs="arc-c.o"
339 cxx_target_objs="arc-c.o"
340 extra_options="${extra_options} arc/arc-tables.opt g.opt"
341 extra_headers="arc-simd.h"
345 extra_objs="arm-builtins.o aarch-common.o"
346 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h"
347 target_type_format_char='%'
348 c_target_objs="arm-c.o"
349 cxx_target_objs="arm-c.o"
350 d_target_objs="arm-d.o"
351 extra_options="${extra_options} arm/arm-tables.opt"
352 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
356 c_target_objs="avr-c.o"
357 cxx_target_objs="avr-c.o"
366 extra_options="${extra_options} g.opt"
369 target_has_targetm_common=no
371 moxie*) cpu_type=moxie
372 target_has_targetm_common=no
376 extra_headers=math-68881.h
377 extra_options="${extra_options} m68k/m68k-tables.opt"
381 c_target_objs="i386-c.o"
382 cxx_target_objs="i386-c.o"
383 d_target_objs="i386-d.o"
384 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
385 extra_options="${extra_options} fused-madd.opt"
386 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
387 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
388 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
389 immintrin.h x86intrin.h avxintrin.h xopintrin.h
390 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
391 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
392 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
393 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
394 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
395 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
396 shaintrin.h clflushoptintrin.h xsavecintrin.h
397 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
398 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
399 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
400 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
401 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
402 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
403 gfniintrin.h cet.h avx512vbmi2intrin.h
404 avx512vbmi2vlintrin.h avx512vnniintrin.h
405 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
406 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
407 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
408 waitpkgintrin.h cldemoteintrin.h"
412 c_target_objs="i386-c.o"
413 cxx_target_objs="i386-c.o"
414 d_target_objs="i386-d.o"
415 extra_options="${extra_options} fused-madd.opt"
416 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
417 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
418 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
419 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
420 immintrin.h x86intrin.h avxintrin.h xopintrin.h
421 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
422 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
423 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
424 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
425 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
426 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
427 shaintrin.h clflushoptintrin.h xsavecintrin.h
428 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
429 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
430 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
431 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
432 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
433 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
434 gfniintrin.h cet.h avx512vbmi2intrin.h
435 avx512vbmi2vlintrin.h avx512vnniintrin.h
436 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
437 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
438 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
439 waitpkgintrin.h cldemoteintrin.h"
442 extra_headers=ia64intrin.h
443 extra_options="${extra_options} g.opt fused-madd.opt"
449 extra_options="${extra_options} g.opt"
453 extra_options="${extra_options} g.opt"
456 extra_headers=math-68881.h
457 extra_options="${extra_options} m68k/m68k-tables.opt"
461 extra_options="${extra_options} g.opt"
465 d_target_objs="mips-d.o"
466 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
467 extra_objs="frame-header-opt.o"
468 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
472 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
475 extra_options="${extra_options} nds32/nds32-linux.opt"
478 extra_options="${extra_options} nds32/nds32-elf.opt"
483 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"
487 extra_options="${extra_options} g.opt"
497 extra_objs="rs6000-string.o rs6000-p8swap.o"
498 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
499 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
500 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
501 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
502 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
503 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
504 extra_headers="${extra_headers} amo.h"
506 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
510 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
514 extra_objs="riscv-builtins.o riscv-c.o"
515 d_target_objs="riscv-d.o"
518 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
519 extra_objs="rs6000-string.o rs6000-p8swap.o"
523 c_target_objs="sparc-c.o"
524 cxx_target_objs="sparc-c.o"
525 d_target_objs="sparc-d.o"
526 extra_headers="visintrin.h"
533 d_target_objs="s390-d.o"
534 extra_options="${extra_options} fused-madd.opt"
535 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
537 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
538 sh[123456789lbe]*-*-* | sh-*-*)
540 extra_options="${extra_options} fused-madd.opt"
541 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
548 extra_headers="c6x_intrinsics.h"
549 extra_options="${extra_options} c6x/c6x-tables.opt"
552 extra_options="${extra_options} fused-madd.opt"
562 tm_file=${cpu_type}/${cpu_type}.h
563 tm_d_file=${cpu_type}/${cpu_type}.h
564 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
566 tm_p_file=${cpu_type}/${cpu_type}-protos.h
567 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
571 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
573 extra_modes=${cpu_type}/${cpu_type}-modes.def
575 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
577 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
582 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
585 if test "x$with_multilib_list" = xilp32; then
586 tm_file="aarch64/biarchilp32.h ${tm_file}"
588 tm_file="aarch64/biarchlp64.h ${tm_file}"
592 tm_file="aarch64/biarchilp32.h ${tm_file}"
595 tm_file="aarch64/biarchlp64.h ${tm_file}"
598 echo "Unknown ABI used in --with-abi=$with_abi"
603 if test "x$with_abi" != x; then
604 echo "This target does not support --with-abi."
607 if test "x$enable_cld" = xyes; then
608 tm_defines="${tm_defines} USE_IX86_CLD=1"
610 if test "x$enable_frame_pointer" = xyes; then
611 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
617 if test "x$with_multilib_list" = xmx32; then
618 tm_file="i386/biarchx32.h ${tm_file}"
620 tm_file="i386/biarch64.h ${tm_file}"
624 tm_file="i386/biarch64.h ${tm_file}"
627 tm_file="i386/biarchx32.h ${tm_file}"
630 echo "Unknown ABI used in --with-abi=$with_abi"
633 if test "x$enable_cld" = xyes; then
634 tm_defines="${tm_defines} USE_IX86_CLD=1"
636 if test "x$enable_frame_pointer" = xyes; then
637 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
641 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
645 # On a.out targets, we need to use collect2.
652 # Common C libraries.
653 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
655 # 32-bit x86 processors supported by --with-arch=. Each processor
656 # MUST be separated by exactly one space.
657 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
658 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
659 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
660 pentium4 pentium4m pentiumpro prescott lakemont"
662 # 64-bit x86 processors supported by --with-arch=. Each processor
663 # MUST be separated by exactly one space.
664 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
665 bdver3 bdver4 znver1 znver2 btver1 btver2 k8 k8-sse3 opteron \
666 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
667 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
668 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
669 skylake goldmont goldmont-plus tremont cascadelake x86-64 native"
671 # Additional x86 processors supported by --with-cpu=. Each processor
672 # MUST be separated by exactly one space.
673 x86_cpus="generic intel"
675 # Common parts for widely ported systems.
678 tmake_file="t-darwin ${cpu_type}/t-darwin"
679 tm_file="${tm_file} darwin.h"
682 tm_file="${tm_file} darwin9.h"
685 tm_file="${tm_file} darwin9.h darwin10.h"
687 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
688 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
691 tm_file="${tm_file} ${cpu_type}/darwin.h"
692 tm_p_file="${tm_p_file} darwin-protos.h"
693 target_gtfiles="\$(srcdir)/config/darwin.c"
694 extra_options="${extra_options} darwin.opt"
695 c_target_objs="${c_target_objs} darwin-c.o"
696 cxx_target_objs="${cxx_target_objs} darwin-c.o"
697 fortran_target_objs="darwin-f.o"
698 target_has_targetcm=yes
699 extra_objs="${extra_objs} darwin.o"
700 extra_gcc_objs="darwin-driver.o"
701 default_use_cxa_atexit=yes
703 case ${enable_threads} in
704 "" | yes | posix) thread_file='posix' ;;
710 tmake_file="t-slibgcc"
711 case ${enable_threads} in
716 # Let these non-posix thread selections fall through if requested
719 echo 'Unknown thread configuration for DragonFly BSD'
723 extra_options="$extra_options rpath.opt dragonfly.opt"
724 default_use_cxa_atexit=yes
728 # This is the generic ELF configuration of FreeBSD. Later
729 # machine-specific sections may refine and add to this
732 # Due to tm_file entry ordering issues that vary between cpu
733 # architectures, we only define fbsd_tm_file to allow the
734 # machine-specific section to dictate the final order of all
735 # entries of tm_file with the minor exception that components
736 # of the tm_file set here will always be of the form:
738 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
740 # The machine-specific section should not tamper with this
741 # ordering but may order all other entries of tm_file as it
742 # pleases around the provided core setting.
745 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
746 if test "$fbsd_major" = ""; then
747 echo "Specify the major version number of the targeted FreeBSD release"
748 echo "like this: --target=amd64-unknown-freebsd10.1"
751 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
752 tmake_file="t-slibgcc"
753 case ${enable_threads} in
755 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
761 echo 'Unknown thread configuration for FreeBSD'
765 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
766 extra_options="$extra_options rpath.opt freebsd.opt"
771 default_use_cxa_atexit=yes;;
776 native_system_header_dir=/include
778 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
779 extra_options="$extra_options gnu-user.opt"
782 case ${enable_threads} in
783 "" | yes | posix) thread_file='posix' ;;
785 tmake_file="t-slibgcc"
787 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
790 native_system_header_dir=/include
793 # Linux C libraries selection switch: glibc / uclibc / bionic.
794 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
797 tm_p_file="${tm_p_file} linux-protos.h"
798 tmake_file="${tmake_file} t-linux"
799 extra_objs="${extra_objs} linux.o"
800 extra_options="${extra_options} linux.opt"
805 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
808 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
811 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
814 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
817 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
819 default_use_cxa_atexit=yes
822 # Enable compilation for Android by default for *android* targets.
825 tm_defines="$tm_defines ANDROID_DEFAULT=1"
828 tm_defines="$tm_defines ANDROID_DEFAULT=0"
831 c_target_objs="${c_target_objs} glibc-c.o"
832 cxx_target_objs="${cxx_target_objs} glibc-c.o"
833 d_target_objs="${d_target_objs} glibc-d.o"
834 tmake_file="${tmake_file} t-glibc"
835 target_has_targetcm=yes
836 target_has_targetdm=yes
839 tm_p_file="${tm_p_file} netbsd-protos.h"
840 tmake_file="t-netbsd t-slibgcc"
841 extra_objs="${extra_objs} netbsd.o"
842 d_target_objs="${d_target_objs} netbsd-d.o"
846 case ${enable_threads} in
847 "" | yes | posix) thread_file='posix' ;;
849 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
850 default_use_cxa_atexit=yes
851 target_has_targetdm=yes
854 tmake_file="t-openbsd"
855 case ${enable_threads} in
861 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
862 default_use_cxa_atexit=yes
869 default_use_cxa_atexit=yes
872 case ${enable_threads} in
873 "" | yes | rtems) thread_file='rtems' ;;
874 posix) thread_file='posix' ;;
877 echo 'Unknown thread configuration for RTEMS'
881 tmake_file="${tmake_file} t-rtems"
882 extra_options="${extra_options} rtems.opt"
883 default_use_cxa_atexit=yes
887 extra_options="$extra_options gnu-user.opt"
889 case ${enable_threads} in
890 "" | yes | posix) thread_file='posix' ;;
892 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
898 # i?86-*-solaris2* needs to insert headers between cpu default and
899 # Solaris 2 specific ones.
900 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
901 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
902 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
904 *-*-solaris2.1[1-9]*)
905 # __cxa_atexit was introduced in Solaris 11.4.
906 default_use_cxa_atexit=yes
910 if test x$gnu_ld = xyes; then
911 tm_file="usegld.h ${tm_file}"
913 if test x$gas = xyes; then
914 tm_file="usegas.h ${tm_file}"
916 tm_p_file="${tm_p_file} sol2-protos.h"
917 tmake_file="${tmake_file} t-sol2 t-slibgcc"
918 c_target_objs="${c_target_objs} sol2-c.o"
919 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
920 d_target_objs="${d_target_objs} sol2-d.o"
921 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
922 extra_options="${extra_options} sol2.opt"
923 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
924 "":yes:* | yes:yes:* )
928 target_has_targetdm=yes
931 extra_options="${extra_options} vms/vms.opt"
933 tmake_file="vms/t-vms t-slibgcc"
935 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
936 tm_p_file="${tm_p_file} vms/vms-protos.h"
937 xm_file="vms/xm-vms.h"
938 c_target_objs="vms-c.o"
939 cxx_target_objs="vms-c.o"
940 fortran_target_objs="vms-f.o"
941 use_gcc_stdint=provide
942 tm_file="${tm_file} vms/vms-stdint.h"
943 if test x$gnu_ld != xyes; then
944 # Build wrappers for native case.
945 extra_programs="ld\$(exeext) ar\$(exeext)"
946 tmake_file="$tmake_file vms/t-vmsnative"
952 extra_options="${extra_options} vxworks.opt"
953 extra_objs="$extra_objs vxworks.o"
954 use_gcc_stdint=provide
955 tm_file="${tm_file} vxworks-stdint.h"
956 case ${enable_threads} in
958 "" | yes | vxworks) thread_file='vxworks' ;;
959 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
963 tm_defines="$tm_defines TARGET_VXWORKS7=1"
968 tm_defines="$tm_defines TARGET_VXWORKS64=1"
973 # Assume that newlib is being used and so __cxa_atexit is provided.
974 default_use_cxa_atexit=yes
980 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
981 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
982 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
983 tmake_file="${tmake_file} aarch64/t-aarch64"
989 tm_file="${tm_file} fuchsia.h"
992 tm_file="${tm_file} rtems.h aarch64/rtems.h"
997 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1000 aarch64_multilibs="${with_multilib_list}"
1001 if test "$aarch64_multilibs" = "default"; then
1002 aarch64_multilibs="lp64,ilp32"
1004 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1005 for aarch64_multilib in ${aarch64_multilibs}; do
1006 case ${aarch64_multilib} in
1008 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1011 echo "--with-multilib-list=${aarch64_multilib} not supported."
1015 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1017 aarch64*-*-freebsd*)
1018 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1019 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h"
1020 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1021 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1024 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1025 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
1026 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1027 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1030 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1033 aarch64_multilibs="${with_multilib_list}"
1034 if test "$aarch64_multilibs" = "default"; then
1035 # TODO: turn on ILP32 multilib build after its support is mature.
1036 # aarch64_multilibs="lp64,ilp32"
1037 aarch64_multilibs="lp64"
1039 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1040 for aarch64_multilib in ${aarch64_multilibs}; do
1041 case ${aarch64_multilib} in
1043 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1046 echo "--with-multilib-list=${aarch64_multilib} not supported."
1050 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1053 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1054 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1055 extra_options="${extra_options} alpha/elf.opt"
1058 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1059 tmake_file="${tmake_file} alpha/t-alpha"
1060 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1064 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1065 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1066 tmake_file="${tmake_file} alpha/t-alpha"
1067 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1068 # default x-alpha is only appropriate for dec-osf.
1071 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1072 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1075 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1076 tmake_file="arc/t-multilib arc/t-arc"
1077 extra_gcc_objs="driver-arc.o"
1078 if test "x$with_cpu" != x; then
1079 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1081 if test x${with_endian} = x; then
1083 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1084 *) with_endian=little ;;
1087 case ${with_endian} in
1089 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1091 case ${with_endian} in
1092 big*) tm_file="arc/big.h ${tm_file}"
1096 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}"
1097 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1098 extra_gcc_objs="driver-arc.o"
1099 if test "x$with_cpu" != x; then
1100 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1102 if test x${with_endian} = x; then
1104 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1105 *) with_endian=little ;;
1108 case ${with_endian} in
1110 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1112 case ${with_endian} in
1113 big*) tm_file="arc/big.h ${tm_file}"
1115 # Force .init_array support. The configure script cannot always
1116 # automatically detect that GAS supports it, yet we require it.
1117 gcc_cv_initfini_array=yes
1119 arm-wrs-vxworks|arm-wrs-vxworks7)
1120 extra_options="${extra_options} arm/vxworks.opt"
1121 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1124 # VxWorks7 on ARM adheres to the ARM Base Platform ABI
1125 tmake_file="${tmake_file} arm/t-bpabi"
1126 tm_file="arm/bpabi.h ${tm_file}"
1127 # The BPABI long long divmod functions return a 128-bit value in
1129 need_64bit_hwint=yes
1130 default_use_cxa_atexit=yes
1134 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1135 target_cpu_cname="arm8"
1137 arm*-*-freebsd*) # ARM FreeBSD EABI
1138 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1141 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1144 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1145 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1148 target_cpu_cname="arm1176jzf-s"
1149 if test $fbsd_major -ge 11; then
1150 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1154 target_cpu_cname="generic-armv7-a"
1155 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1158 target_cpu_cname="arm9"
1161 with_tls=${with_tls:-gnu}
1164 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1165 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1166 tmake_file="${tmake_file} arm/t-arm"
1167 target_cpu_cname="strongarm"
1169 arm*-*-linux-*) # ARM GNU/Linux with ELF
1170 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"
1171 extra_options="${extra_options} linux-android.opt"
1174 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1177 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1178 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1179 # Generation of floating-point instructions requires at least ARMv5te.
1180 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1181 target_cpu_cname="arm10e"
1183 target_cpu_cname="arm10tdmi"
1185 # Define multilib configuration for arm-linux-androideabi.
1188 tmake_file="$tmake_file arm/t-linux-androideabi"
1191 # The EABI requires the use of __cxa_atexit.
1192 default_use_cxa_atexit=yes
1193 with_tls=${with_tls:-gnu}
1195 arm*-*-uclinux*eabi*) # ARM ucLinux
1196 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1197 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1198 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1199 target_cpu_cname="arm7tdmi"
1200 # The EABI requires the use of __cxa_atexit.
1201 default_use_cxa_atexit=yes
1204 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1205 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1206 tm_file="${tm_file} arm/aout.h arm/arm.h"
1207 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1208 target_cpu_cname="arm7tdmi"
1210 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1213 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1215 default_use_cxa_atexit=yes
1216 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1217 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1218 target_cpu_cname="arm7tdmi"
1221 tm_file="$tm_file newlib-stdint.h"
1222 tmake_file="${tmake_file} arm/t-bpabi"
1226 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1227 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1228 target_cpu_cname="generic-armv7-a"
1231 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1232 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1235 tm_file="${tm_file} arm/symbian.h"
1236 # We do not include t-bpabi for Symbian OS because the system
1237 # provides its own implementation of the BPABI functions.
1238 tmake_file="${tmake_file} arm/t-symbian"
1239 target_cpu_cname="arm10tdmi"
1242 tm_file="${tm_file} arm/aout.h arm/arm.h"
1245 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1246 if test x${with_avrlibc} != xno; then
1247 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1248 tm_defines="${tm_defines} WITH_AVRLIBC"
1250 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1252 extra_gcc_objs="driver-avr.o avr-devices.o"
1253 extra_objs="avr-devices.o avr-log.o"
1256 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1257 tmake_file=bfin/t-bfin-elf
1261 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1262 tmake_file=bfin/t-bfin-uclinux
1265 bfin*-linux-uclibc*)
1266 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"
1267 tmake_file="${tmake_file} bfin/t-bfin-linux"
1271 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1272 tmake_file="${tmake_file} bfin/t-rtems"
1275 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1280 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1281 tmake_file="${tmake_file} cr16/t-cr16 "
1284 crisv32-*-elf | crisv32-*-none)
1285 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1286 tmake_file="cris/t-cris"
1287 target_cpu_default=32
1289 extra_options="${extra_options} cris/elf.opt"
1292 cris-*-elf | cris-*-none)
1293 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1294 tmake_file="cris/t-cris cris/t-elfmulti"
1296 extra_options="${extra_options} cris/elf.opt"
1299 crisv32-*-linux* | cris-*-linux*)
1300 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1301 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1302 extra_options="${extra_options} cris/linux.opt"
1305 target_cpu_default=10
1308 target_cpu_default=32
1313 if test x${with_endian} != x; then
1314 case ${with_endian} in
1317 echo "with_endian=${with_endian} not supported."
1322 if test x${with_float} != x; then
1323 case ${with_float} in
1326 "Unknown floating point type used in --with-float=$with_float"
1331 tm_file="csky/csky.h"
1332 md_file="csky/csky.md"
1333 out_file="csky/csky.c"
1334 tm_p_file="${tm_p_file} csky/csky-protos.h"
1335 extra_options="${extra_options} csky/csky_tables.opt"
1337 if test x${enable_tpf_debug} = xyes; then
1338 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1343 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1344 tmake_file="csky/t-csky csky/t-csky-elf"
1345 default_use_cxa_atexit=no
1348 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1349 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1351 if test "x${enable_multilib}" = xyes ; then
1352 tm_file="$tm_file ./sysroot-suffix.h"
1353 tmake_file="${tmake_file} csky/t-sysroot-suffix"
1358 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1359 # Force .init_array support. The configure script cannot always
1360 # automatically detect that GAS supports it, yet we require it.
1361 gcc_cv_initfini_array=yes
1363 csky-*-linux-uclibc*)
1364 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1365 default_use_cxa_atexit=no
1368 echo "Unknown target $target"
1374 echo "Unknown target $target"
1379 epiphany-*-elf | epiphany-*-rtems*)
1380 tm_file="${tm_file} dbxelf.h elfos.h"
1381 tmake_file="${tmake_file} epiphany/t-epiphany"
1384 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1387 tm_file="${tm_file} newlib-stdint.h"
1390 extra_options="${extra_options} fused-madd.opt"
1391 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1392 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1393 extra_headers="epiphany_intrinsics.h"
1396 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1399 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1400 tmake_file=frv/t-frv
1403 tm_file="dbxelf.h elfos.h ${tm_file} \
1404 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1405 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1410 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1411 tmake_file="${tmake_file} ft32/t-ft32"
1414 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1415 tmake_file="gcn/t-gcn-hsa"
1416 native_system_header_dir=/include
1417 extra_modes=gcn/gcn-modes.def
1418 extra_objs="${extra_objs} gcn-tree.o"
1419 extra_gcc_objs="driver-gcn.o"
1421 x86_64*-*-linux-gnu )
1422 if test "$ac_cv_search_dlopen" != no; then
1423 extra_programs="${extra_programs} gcn-run\$(exeext)"
1427 if test x$enable_as_accelerator = xyes; then
1428 extra_programs="${extra_programs} mkoffload\$(exeext)"
1429 tm_file="${tm_file} gcn/offload.h"
1435 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1436 tmake_file="${tmake_file} moxie/t-moxie"
1441 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1442 tmake_file="${tmake_file} moxie/t-moxie"
1445 tmake_file="${tmake_file} moxie/t-moxie"
1446 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1451 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1452 tmake_file="${tmake_file} moxie/t-moxiebox"
1455 tmake_file="h8300/t-h8300"
1456 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1459 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1460 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1463 target_cpu_default="MASK_PA_11|MASK_PA_20"
1464 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1465 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1467 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1468 d_target_objs="${d_target_objs} pa-d.o"
1472 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1473 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1474 pa/pa32-regs.h pa/pa32-linux.h"
1475 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1476 d_target_objs="${d_target_objs} pa-d.o"
1479 target_cpu_default="MASK_PA_11"
1480 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1481 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1482 extra_options="${extra_options} openbsd.opt"
1483 tmake_file="pa/t-pa"
1484 d_target_objs="${d_target_objs} pa-d.o"
1488 hppa[12]*-*-hpux10*)
1490 hppa1.1-*-* | hppa2*-*-*)
1491 target_cpu_default="MASK_PA_11"
1494 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1495 pa/pa-hpux.h pa/pa-hpux10.h"
1496 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1499 tm_file="${tm_file} pa/pa-hpux1010.h"
1500 extra_options="${extra_options} pa/pa-hpux1010.opt"
1503 use_gcc_stdint=provide
1504 tm_file="${tm_file} hpux-stdint.h"
1505 tmake_file="pa/t-pa t-slibgcc"
1506 d_target_objs="${d_target_objs} pa-d.o"
1507 case ${enable_threads} in
1509 if test x$have_pthread_h = xyes ; then
1510 tmake_file="${tmake_file} pa/t-dce-thr"
1514 tmake_file="${tmake_file} pa/t-dce-thr"
1519 if test "x$with_dwarf2" != x; then
1520 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1525 target_cpu_default="MASK_PA_11|MASK_PA_20"
1526 if test x$gnu_ld = xyes
1528 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1530 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1531 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1535 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1536 extra_options="${extra_options} pa/pa-hpux1111.opt"
1539 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1540 extra_options="${extra_options} pa/pa-hpux1131.opt"
1543 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1546 extra_options="${extra_options} pa/pa-hpux.opt \
1547 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1548 tmake_file="pa/t-pa t-slibgcc"
1549 d_target_objs="${d_target_objs} pa-d.o"
1550 case x${enable_threads} in
1558 use_gcc_stdint=provide
1559 tm_file="${tm_file} hpux-stdint.h"
1563 tm_file="${tm_file} hpux-stdint.h"
1567 hppa[12]*-*-hpux11*)
1569 hppa1.1-*-* | hppa2*-*-*)
1570 target_cpu_default="MASK_PA_11"
1573 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1574 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1575 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1579 tm_file="${tm_file} pa/pa-hpux1111.h"
1580 extra_options="${extra_options} pa/pa-hpux1111.opt"
1583 tm_file="${tm_file} pa/pa-hpux1131.h"
1584 extra_options="${extra_options} pa/pa-hpux1131.opt"
1587 tmake_file="pa/t-pa t-slibgcc"
1588 d_target_objs="${d_target_objs} pa-d.o"
1589 case x${enable_threads} in
1598 use_gcc_stdint=provide
1599 tm_file="${tm_file} hpux-stdint.h"
1603 tm_file="${tm_file} hpux-stdint.h"
1606 if test "x$with_dwarf2" != x; then
1607 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1611 i[34567]86-*-darwin*)
1613 # Baseline choice for a machine that allows m64 support.
1614 with_cpu=${with_cpu:-core2}
1615 tmake_file="${tmake_file} t-slibgcc"
1618 with_cpu=${with_cpu:-core2}
1619 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1620 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1622 i[34567]86-*-elfiamcu)
1623 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1626 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1629 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1632 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"
1635 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1638 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"
1639 tmake_file="i386/t-i386elf t-svr4"
1641 i[34567]86-*-dragonfly*)
1642 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1643 tmake_file="${tmake_file} i386/t-crtstuff"
1645 x86_64-*-dragonfly*)
1646 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"
1647 tmake_file="${tmake_file} i386/t-crtstuff"
1649 i[34567]86-*-freebsd*)
1650 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1653 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"
1655 i[34567]86-*-netbsdelf*)
1656 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1657 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1660 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1661 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1663 i[34567]86-*-openbsd*)
1664 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1665 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1666 extra_options="${extra_options} openbsd.opt"
1671 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1672 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1673 extra_options="${extra_options} openbsd.opt"
1677 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1678 # Intel 80386's running GNU/*
1679 # with ELF format using glibc 2
1680 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1682 i[34567]86-*-linux*)
1683 tm_file="${tm_file} linux.h linux-android.h"
1684 extra_options="${extra_options} linux-android.opt"
1685 if test x$enable_targets = xall; then
1686 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1687 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1688 tmake_file="${tmake_file} i386/t-linux64"
1689 x86_multilibs="${with_multilib_list}"
1690 if test "$x86_multilibs" = "default"; then
1691 x86_multilibs="m64,m32"
1693 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1694 for x86_multilib in ${x86_multilibs}; do
1695 case ${x86_multilib} in
1697 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1700 echo "--with-multilib-list=${x86_with_multilib} not supported."
1704 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1706 if test x$with_cpu = x; then
1707 if test x$with_cpu_64 = x; then
1711 case " $x86_cpus $x86_archs $x86_64_archs " in
1715 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1716 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1722 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1725 i[34567]86-*-kfreebsd*-gnu)
1726 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1728 i[34567]86-*-kopensolaris*-gnu)
1729 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1732 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1736 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1737 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1738 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1741 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1742 extra_options="${extra_options} linux-android.opt"
1744 x86_64-*-kfreebsd*-gnu)
1745 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1748 tmake_file="${tmake_file} i386/t-linux64"
1749 x86_multilibs="${with_multilib_list}"
1750 if test "$x86_multilibs" = "default"; then
1753 x86_multilibs="mx32"
1756 x86_multilibs="m64,m32"
1760 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1761 for x86_multilib in ${x86_multilibs}; do
1762 case ${x86_multilib} in
1764 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1767 echo "--with-multilib-list=${x86_with_multilib} not supported."
1771 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1773 i[34567]86-pc-msdosdjgpp*)
1774 xm_file=i386/xm-djgpp.h
1775 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1776 native_system_header_dir=/dev/env/DJDIR/include
1777 extra_options="${extra_options} i386/djgpp.opt"
1782 i[34567]86-*-lynxos*)
1784 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1785 tmake_file="${tmake_file} t-lynx"
1786 extra_options="${extra_options} lynx.opt"
1791 i[34567]86-*-nto-qnx*)
1792 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1793 extra_options="${extra_options} i386/nto.opt"
1797 i[34567]86-*-rtems*)
1798 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"
1799 tmake_file="${tmake_file} i386/t-rtems"
1801 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1802 # Set default arch_32 to pentium4, tune_32 to generic like the other
1803 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1804 with_arch_32=${with_arch_32:-pentium4}
1805 with_tune_32=${with_tune_32:-generic}
1806 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1807 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1808 tmake_file="$tmake_file i386/t-sol2"
1810 if test x$with_cpu = x; then
1811 if test x$with_cpu_64 = x; then
1815 case " $x86_cpus $x86_archs $x86_64_archs " in
1819 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1820 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1826 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
1827 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1831 tm_file="${tm_file} i386/x86-64.h"
1834 tm_file="${tm_file} vx-common.h"
1837 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1838 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1841 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1842 tmake_file="${tmake_file} i386/t-vxworks"
1846 i[34567]86-*-cygwin*)
1847 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"
1848 xm_file=i386/xm-cygwin.h
1849 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1850 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1851 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1852 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1853 c_target_objs="${c_target_objs} msformat-c.o"
1854 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1855 if test x$enable_threads = xyes; then
1858 default_use_cxa_atexit=yes
1863 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"
1864 xm_file=i386/xm-cygwin.h
1865 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1866 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1867 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1868 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1869 c_target_objs="${c_target_objs} msformat-c.o"
1870 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1871 if test x$enable_threads = xyes; then
1874 default_use_cxa_atexit=yes
1876 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1878 i[34567]86-*-mingw* | x86_64-*-mingw*)
1879 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1880 xm_file=i386/xm-mingw32.h
1881 c_target_objs="${c_target_objs} winnt-c.o"
1882 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1883 target_has_targetcm="yes"
1885 x86_64-*-* | *-w64-*)
1891 if test x$enable_threads = xposix ; then
1892 tm_file="${tm_file} i386/mingw-pthread.h"
1894 tm_file="${tm_file} i386/mingw32.h"
1895 # This makes the logic if mingw's or the w64 feature set has to be used
1898 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1899 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1900 tm_file="${tm_file} i386/mingw-w64.h"
1901 if test x$enable_targets = xall; then
1902 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1903 if test x$with_cpu = x; then
1904 if test x$with_cpu_64 = x; then
1908 case " $x86_cpus $x86_archs $x86_64_archs " in
1912 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1913 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1923 tm_file="${tm_file} i386/mingw-stdint.h"
1924 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1927 tmake_file="${tmake_file} i386/t-mingw-w64"
1930 tmake_file="${tmake_file} i386/t-mingw-w32"
1933 native_system_header_dir=/mingw/include
1934 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1935 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1938 extra_options="${extra_options} i386/mingw-w64.opt"
1943 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1944 c_target_objs="${c_target_objs} msformat-c.o"
1945 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1948 default_use_cxa_atexit=yes
1950 case ${enable_threads} in
1960 tm_file="${tm_file} i386/crtdll.h"
1962 *mingw32msv* | *mingw*)
1967 tmake_file="${tmake_file} i386/t-x86_64-elf"
1968 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
1971 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1972 tmake_file="ia64/t-ia64"
1973 target_cpu_default="0"
1974 if test x$gas = xyes
1976 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1978 if test x$gnu_ld = xyes
1980 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1984 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1985 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1986 tmake_file="${tmake_file} ia64/t-ia64"
1989 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1990 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1991 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1994 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1995 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1996 target_cpu_default="MASK_GNU_AS"
1997 case x$enable_threads in
2003 c_target_objs="ia64-c.o"
2004 cxx_target_objs="ia64-c.o"
2005 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2007 tm_file="${tm_file} hpux-stdint.h"
2010 tm_file="${tm_file} ia64/hpux-unix2003.h"
2015 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2016 tmake_file="${tmake_file} ia64/t-ia64"
2017 target_cpu_default="0"
2018 if test x$gas = xyes
2020 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2022 extra_options="${extra_options} ia64/vms.opt"
2025 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2026 out_file=iq2000/iq2000.c
2027 md_file=iq2000/iq2000.md
2030 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2031 tmake_file="${tmake_file} lm32/t-lm32"
2034 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2035 tmake_file="${tmake_file} lm32/t-lm32"
2036 tmake_file="${tmake_file} lm32/t-rtems"
2039 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2040 tmake_file="${tmake_file} lm32/t-lm32"
2043 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2046 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2049 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
2050 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2052 if test x$enable_threads = xyes; then
2057 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
2058 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2060 if test x$enable_threads = xyes; then
2064 m68k-*-elf* | fido-*-elf*)
2067 # Check that $with_cpu makes sense.
2072 echo "Cannot accept --with-cpu=$with_cpu"
2079 default_m68k_cpu=68020
2083 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"
2084 tm_defines="${tm_defines} MOTOROLA=1"
2085 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2086 # Add multilibs for targets other than fido.
2091 tmake_file="$tmake_file m68k/t-mlibs"
2096 default_m68k_cpu=68020
2098 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2099 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2100 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2103 default_m68k_cpu=68020
2105 # needed to unconfuse gdb
2106 tm_defines="${tm_defines} OBSD_OLD_GAS"
2107 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
2108 extra_options="${extra_options} openbsd.opt"
2109 tmake_file="t-openbsd m68k/t-openbsd"
2110 # we need collect2 until our bug is fixed...
2113 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2114 # with uClibc, using the new GNU/Linux-style
2116 default_m68k_cpu=68020
2118 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"
2119 extra_options="${extra_options} m68k/uclinux.opt"
2120 tm_defines="${tm_defines} MOTOROLA=1"
2121 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2123 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2124 # with ELF format using glibc 2
2125 # aka the GNU/Linux C library 6.
2126 default_m68k_cpu=68020
2128 with_arch=${with_arch:-m68k}
2129 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2130 extra_options="${extra_options} m68k/ieee.opt"
2131 tm_defines="${tm_defines} MOTOROLA=1"
2132 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2135 default_m68k_cpu=68020
2137 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2138 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"
2139 tm_defines="${tm_defines} MOTOROLA=1"
2142 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2143 tmake_file=mcore/t-mcore
2149 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2152 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2155 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2156 tm_file="${tm_file} glibc-stdint.h"
2157 c_target_objs="${c_target_objs} microblaze-c.o"
2158 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2159 tmake_file="${tmake_file} microblaze/t-microblaze"
2160 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2162 microblaze*-*-rtems*)
2165 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2168 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2171 tm_file="${tm_file} dbxelf.h"
2172 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2173 c_target_objs="${c_target_objs} microblaze-c.o"
2174 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2175 tmake_file="${tmake_file} microblaze/t-microblaze"
2176 tmake_file="${tmake_file} microblaze/t-rtems"
2181 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2184 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2187 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2188 c_target_objs="${c_target_objs} microblaze-c.o"
2189 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2190 tmake_file="${tmake_file} microblaze/t-microblaze"
2193 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2194 case "x${enable_multilib}" in
2196 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2197 *) echo "Unknown value for enable_multilib"; exit 1
2199 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2202 # Force .init_array support. The configure script cannot always
2203 # automatically detect that GAS supports it, yet we require it.
2204 gcc_cv_initfini_array=yes
2206 riscv*-*-elf* | riscv*-*-rtems*)
2207 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2210 tm_file="${tm_file} rtems.h riscv/rtems.h"
2211 tmake_file="${tmake_file} riscv/t-rtems"
2214 case "x${enable_multilib}" in
2216 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2217 *) echo "Unknown value for enable_multilib"; exit 1
2220 tmake_file="${tmake_file} riscv/t-riscv"
2223 # Force .init_array support. The configure script cannot always
2224 # automatically detect that GAS supports it, yet we require it.
2225 gcc_cv_initfini_array=yes
2228 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2229 tmake_file="${tmake_file} riscv/t-riscv"
2232 # Force .init_array support. The configure script cannot always
2233 # automatically detect that GAS supports it, yet we require it.
2234 gcc_cv_initfini_array=yes
2236 mips*-*-netbsd*) # NetBSD/mips, either endian.
2237 target_cpu_default="MASK_ABICALLS"
2238 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2239 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2242 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"
2243 extra_options="${extra_options} linux-android.opt"
2244 tmake_file="${tmake_file} mips/t-img-linux"
2245 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2246 with_arch_32="mips32r6"
2247 with_arch_64="mips64r6"
2252 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"
2253 extra_options="${extra_options} linux-android.opt"
2254 tmake_file="${tmake_file} mips/t-mti-linux"
2255 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2256 with_arch_32="mips32r2"
2257 with_arch_64="mips64r2"
2261 mips*-*-linux*) # Linux MIPS, either endian.
2262 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"
2263 extra_options="${extra_options} linux-android.opt"
2266 default_mips_arch=mips32r6
2269 default_mips_arch=mips32r2
2272 default_mips_arch=mips32
2274 mips64el-st-linux-gnu)
2275 default_mips_abi=n32
2276 tm_file="${tm_file} mips/st.h"
2277 tmake_file="${tmake_file} mips/t-st"
2278 enable_mips_multilibs="yes"
2280 mips64octeon*-*-linux*)
2281 default_mips_abi=n32
2282 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2283 target_cpu_default=MASK_SOFT_FLOAT_ABI
2284 enable_mips_multilibs="yes"
2286 mipsisa64r6*-*-linux*)
2287 default_mips_abi=n32
2288 default_mips_arch=mips64r6
2289 enable_mips_multilibs="yes"
2291 mipsisa64r2*-*-linux*)
2292 default_mips_abi=n32
2293 default_mips_arch=mips64r2
2294 enable_mips_multilibs="yes"
2296 mips64*-*-linux* | mipsisa64*-*-linux*)
2297 default_mips_abi=n32
2298 enable_mips_multilibs="yes"
2301 if test x$enable_targets = xall; then
2302 enable_mips_multilibs="yes"
2304 if test x$enable_mips_multilibs = xyes; then
2305 tmake_file="${tmake_file} mips/t-linux64"
2309 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2310 tmake_file="mips/t-mti-elf"
2311 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2312 with_arch_32="mips32r2"
2313 with_arch_64="mips64r2"
2316 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2317 tmake_file="mips/t-img-elf"
2318 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2319 with_arch_32="mips32r6"
2320 with_arch_64="mips64r6"
2323 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2324 tmake_file="mips/t-sde"
2325 extra_options="${extra_options} mips/sde.opt"
2326 case "${with_newlib}" in
2328 # newlib / libgloss.
2331 # MIPS toolkit libraries.
2332 tm_file="$tm_file mips/sdemtk.h"
2333 tmake_file="$tmake_file mips/t-sdemtk"
2334 case ${enable_threads} in
2336 thread_file='mipssde'
2343 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2346 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2349 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2352 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2355 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2358 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2362 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2363 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2364 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2365 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2366 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2367 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2368 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2369 tmake_file="mips/t-isa3264"
2372 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2375 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2378 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2381 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2384 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2387 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2391 mipsisa32*-*-elfoabi*)
2392 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2393 tm_file="${tm_file} mips/elfoabi.h"
2395 mipsisa64*-*-elfoabi*)
2396 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2397 tm_file="${tm_file} mips/elfoabi.h"
2400 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2404 mipsisa64sr71k-*-elf*)
2405 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2406 tmake_file=mips/t-sr71k
2407 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2409 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2410 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2411 tmake_file="mips/t-elf mips/t-sb1"
2412 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2414 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2415 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2416 tmake_file="mips/t-elf"
2418 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2419 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2420 tmake_file="mips/t-elf"
2421 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2423 mips64-*-elf* | mips64el-*-elf*)
2424 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2425 tmake_file="mips/t-elf"
2426 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2428 mips64vr-*-elf* | mips64vrel-*-elf*)
2429 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2430 tmake_file=mips/t-vr
2431 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2433 mips64orion-*-elf* | mips64orionel-*-elf*)
2434 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2435 tmake_file="mips/t-elf"
2436 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2439 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2440 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2443 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2444 tmake_file="${tmake_file} mips/t-vxworks"
2446 mipstx39-*-elf* | mipstx39el-*-elf*)
2447 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2448 tmake_file="mips/t-r3900"
2450 mmix-knuth-mmixware)
2451 tm_file="${tm_file} newlib-stdint.h"
2455 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2456 if test x$stabs = xyes
2458 tm_file="${tm_file} dbx.h"
2464 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2465 c_target_objs="msp430-c.o"
2466 cxx_target_objs="msp430-c.o"
2467 tmake_file="${tmake_file} msp430/t-msp430"
2468 extra_gcc_objs="driver-msp430.o"
2471 target_cpu_default="0"
2472 tm_defines="${tm_defines}"
2477 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2478 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2483 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2484 tmake_file="nds32/t-nds32 nds32/t-elf"
2487 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2488 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2492 # Handle --enable-default-relax setting.
2493 if test x${enable_default_relax} = xyes; then
2494 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2496 # Handle --with-ext-dsp
2497 if test x${with_ext_dsp} = xyes; then
2498 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2502 tm_file="elfos.h ${tm_file}"
2503 tmake_file="${tmake_file} nios2/t-nios2"
2506 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2509 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2510 extra_options="${extra_options} nios2/elf.opt"
2513 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2514 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2519 tm_file="${tm_file} newlib-stdint.h"
2521 tmake_file="nvptx/t-nvptx"
2522 if test x$enable_as_accelerator = xyes; then
2523 extra_programs="${extra_programs} mkoffload\$(exeext)"
2524 tm_file="${tm_file} nvptx/offload.h"
2528 tm_file="elfos.h ${tm_file}"
2529 tmake_file="${tmake_file} or1k/t-or1k"
2530 # Force .init_array support. The configure script cannot always
2531 # automatically detect that GAS supports it, yet we require it.
2532 gcc_cv_initfini_array=yes
2534 # Handle --with-multilib-list=...
2535 or1k_multilibs="${with_multilib_list}"
2536 if test "$or1k_multilibs" = "default"; then
2537 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2539 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2540 for or1k_multilib in ${or1k_multilibs}; do
2541 case ${or1k_multilib} in
2542 mcmov | msext | msfimm | \
2543 mhard-div | mhard-mul | \
2544 msoft-div | msoft-mul )
2545 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2548 echo "--with-multilib-list=${with_multilib_list} not supported."
2552 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2556 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2557 tm_file="${tm_file} or1k/linux.h"
2560 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2561 extra_options="${extra_options} or1k/elf.opt"
2564 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2565 tmake_file="${tmake_file} or1k/t-rtems"
2570 tm_file="${tm_file} newlib-stdint.h"
2573 # port not yet contributed
2574 #powerpc-*-openbsd*)
2575 # tmake_file="${tmake_file} rs6000/t-fprules"
2579 extra_options="${extra_options} rs6000/darwin.opt"
2581 *-darwin1[0-9]* | *-darwin[8-9]*)
2582 tmake_file="${tmake_file} rs6000/t-darwin8"
2583 tm_file="${tm_file} rs6000/darwin8.h"
2586 tm_file="${tm_file} rs6000/darwin7.h"
2591 tmake_file="${tmake_file} t-slibgcc"
2592 extra_headers=altivec.h
2594 powerpc64-*-darwin*)
2595 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2596 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2597 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2598 extra_headers=altivec.h
2600 powerpc*-*-freebsd*)
2601 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2602 extra_options="${extra_options} rs6000/sysv4.opt"
2603 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2606 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2607 tmake_file="${tmake_file} rs6000/t-freebsd64"
2608 extra_options="${extra_options} rs6000/linux64.opt"
2611 tm_file="${tm_file} rs6000/freebsd.h"
2616 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2617 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2618 tmake_file="${tmake_file} rs6000/t-netbsd"
2619 extra_options="${extra_options} rs6000/sysv4.opt"
2621 powerpc-*-eabisimaltivec*)
2622 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h"
2623 extra_options="${extra_options} rs6000/sysv4.opt"
2624 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2628 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
2629 extra_options="${extra_options} rs6000/sysv4.opt"
2630 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2634 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2635 extra_options="${extra_options} rs6000/sysv4.opt"
2636 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2638 powerpc-*-eabialtivec*)
2639 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
2640 extra_options="${extra_options} rs6000/sysv4.opt"
2641 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2645 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h"
2646 extra_options="${extra_options} rs6000/sysv4.opt"
2647 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2651 tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/rtems.h rtems.h"
2652 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2653 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2656 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2657 extra_options="${extra_options} rs6000/sysv4.opt"
2658 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2659 extra_objs="$extra_objs rs6000-linux.o"
2662 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2664 case ${target}:${with_cpu} in
2665 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2667 maybe_biarch=${cpu_is_64bit}
2668 case ${enable_targets} in
2669 *powerpc64*) maybe_biarch=yes ;;
2670 all) maybe_biarch=yes ;;
2672 case ${target}:${enable_targets}:${maybe_biarch} in
2673 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2674 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2675 | powerpcle-*:*powerpc64le*:yes)
2676 if test x$cpu_is_64bit = xyes; then
2677 tm_file="${tm_file} rs6000/default64.h"
2679 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2680 tmake_file="$tmake_file rs6000/t-linux64"
2683 tmake_file="$tmake_file rs6000/t-linux64le"
2684 case ${enable_targets} in
2685 all | *powerpc64-* | *powerpc-*)
2686 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2689 case ${enable_targets} in
2690 all | *powerpc64le-* | *powerpcle-*)
2691 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2694 extra_options="${extra_options} rs6000/linux64.opt"
2697 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2698 extra_options="${extra_options} rs6000/linux64.opt"
2699 tmake_file="${tmake_file} rs6000/t-linux"
2702 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2703 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2707 powerpc*-*-linux*ppc476*)
2708 tm_file="${tm_file} rs6000/476.h"
2709 extra_options="${extra_options} rs6000/476.opt" ;;
2710 powerpc*-*-linux*altivec*)
2711 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2715 enable_secureplt=yes ;;
2717 if test x${enable_secureplt} = xyes; then
2718 tm_file="rs6000/secureplt.h ${tm_file}"
2721 powerpc-wrs-vxworks*)
2722 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2723 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2724 extra_options="${extra_options} rs6000/sysv4.opt"
2725 extra_headers=ppc-asm.h
2728 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2729 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2732 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
2733 tmake_file="${tmake_file} rs6000/t-vxworksae"
2736 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
2742 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2743 tmake_file="t-lynx rs6000/t-lynx"
2744 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2750 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2751 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2752 extra_options="${extra_options} rs6000/sysv4.opt"
2754 powerpcle-*-eabisim*)
2755 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h"
2756 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2757 extra_options="${extra_options} rs6000/sysv4.opt"
2761 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h"
2762 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2763 extra_options="${extra_options} rs6000/sysv4.opt"
2766 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
2767 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2768 tmake_file="rs6000/t-aix52 t-slibgcc"
2769 extra_options="${extra_options} rs6000/aix64.opt"
2773 default_use_cxa_atexit=yes
2775 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
2776 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
2777 tmake_file="rs6000/t-aix52 t-slibgcc"
2778 extra_options="${extra_options} rs6000/aix64.opt"
2782 default_use_cxa_atexit=yes
2784 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2785 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
2786 tmake_file="rs6000/t-aix52 t-slibgcc"
2787 extra_options="${extra_options} rs6000/aix64.opt"
2791 default_use_cxa_atexit=yes
2794 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2795 target_has_targetm_common=no
2796 c_target_objs="rl78-c.o"
2797 cxx_target_objs="rl78-c.o"
2798 tmake_file="${tmake_file} rl78/t-rl78"
2801 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2802 tmake_file="${tmake_file} rx/t-rx"
2805 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2806 c_target_objs="${c_target_objs} s390-c.o"
2807 cxx_target_objs="${cxx_target_objs} s390-c.o"
2808 if test x$enable_targets = xall; then
2809 tmake_file="${tmake_file} s390/t-linux64"
2811 tmake_file="${tmake_file} s390/t-s390"
2814 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2815 tm_p_file="linux-protos.h s390/s390-protos.h"
2816 c_target_objs="${c_target_objs} s390-c.o"
2817 cxx_target_objs="${cxx_target_objs} s390-c.o"
2818 md_file=s390/s390.md
2819 extra_modes=s390/s390-modes.def
2820 out_file=s390/s390.c
2821 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
2824 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2825 tm_p_file=s390/s390-protos.h
2826 c_target_objs="${c_target_objs} s390-c.o"
2827 cxx_target_objs="${cxx_target_objs} s390-c.o"
2828 md_file=s390/s390.md
2829 extra_modes=s390/s390-modes.def
2830 out_file=s390/s390.c
2832 extra_options="${extra_options} s390/tpf.opt"
2833 tmake_file="${tmake_file} s390/t-s390"
2835 sh-*-elf* | sh[12346l]*-*-elf* | \
2836 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2837 sh-*-netbsdelf* | shl*-*-netbsdelf*)
2838 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2839 if test x${with_endian} = x; then
2841 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2842 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2843 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2844 shl* | sh*-*-linux* | \
2845 sh-superh-elf) with_endian=little,big ;;
2846 sh[1234]*-*-*) with_endian=big ;;
2847 *) with_endian=big,little ;;
2850 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2851 # First word : the default endian.
2852 # Second word: the secondary endian (optional).
2853 case ${with_endian} in
2854 big) TM_ENDIAN_CONFIG=mb ;;
2855 little) TM_ENDIAN_CONFIG=ml ;;
2856 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2857 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2858 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2860 case ${with_endian} in
2861 little*) tm_file="sh/little.h ${tm_file}" ;;
2863 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2865 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2866 if test x$enable_fdpic = xyes; then
2867 tm_defines="$tm_defines FDPIC_DEFAULT=1"
2869 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2871 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
2872 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2875 sh*-superh-elf) if test x$with_libgloss != xno; then
2877 tm_file="${tm_file} sh/newlib.h"
2879 tm_file="${tm_file} sh/embed-elf.h"
2880 tm_file="${tm_file} sh/superh.h"
2881 extra_options="${extra_options} sh/superh.opt" ;;
2882 *) if test x$with_newlib = xyes \
2883 && test x$with_libgloss = xyes; then
2884 tm_file="${tm_file} sh/newlib.h"
2886 tm_file="${tm_file} sh/embed-elf.h" ;;
2892 tm_file="${tm_file} newlib-stdint.h"
2895 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2896 case `echo ${target} | sed 's/e[lb]-/-/'` in
2897 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2898 sh4a_single*) sh_cpu_target=sh4a-single ;;
2899 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2900 sh4al) sh_cpu_target=sh4al ;;
2901 sh4a*) sh_cpu_target=sh4a ;;
2902 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2903 sh4_single*) sh_cpu_target=sh4-single ;;
2904 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2905 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2906 sh3e*) sh_cpu_target=sh3e ;;
2907 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2908 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2909 sh2a_single*) sh_cpu_target=sh2a-single ;;
2910 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2911 sh2a*) sh_cpu_target=sh2a ;;
2912 sh2e*) sh_cpu_target=sh2e ;;
2913 sh2*) sh_cpu_target=sh2 ;;
2914 *) sh_cpu_target=sh1 ;;
2916 # did the user say --without-fp ?
2917 if test x$with_fp = xno; then
2918 case ${sh_cpu_target} in
2920 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2921 sh4*) sh_cpu_target=sh4-nofpu ;;
2922 sh3*) sh_cpu_target=sh3 ;;
2923 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2924 sh2*) sh_cpu_target=sh2 ;;
2925 *) echo --without-fp not available for $target: ignored
2927 tm_defines="$tm_defines STRICT_NOFPU=1"
2929 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2930 case $sh_cpu_default in
2931 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2932 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2933 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2934 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2935 "") sh_cpu_default=${sh_cpu_target} ;;
2936 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2938 sh_multilibs=${with_multilib_list}
2939 if test "$sh_multilibs" = "default" ; then
2941 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2942 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2943 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2944 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2945 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2947 if test x$with_fp = xno; then
2948 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`"
2951 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2952 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2953 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2954 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2955 for sh_multilib in ${sh_multilibs}; do
2956 case ${sh_multilib} in
2957 m1 | m2 | m2e | m3 | m3e | \
2958 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2959 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2960 m2a | m2a-single | m2a-single-only | m2a-nofpu)
2961 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2962 # It is passed to MULTIILIB_OPTIONS verbatim.
2963 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2964 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2966 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2967 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2968 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2970 echo "with_multilib_list=${sh_multilib} not supported."
2975 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2976 if test x${enable_incomplete_targets} = xyes ; then
2977 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
2979 tm_file="$tm_file ./sysroot-suffix.h"
2980 tmake_file="$tmake_file t-sysroot-suffix"
2983 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2984 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2987 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2988 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2991 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2994 tmake_file="sparc/t-sparc sparc/t-leon"
2997 tmake_file="sparc/t-sparc sparc/t-leon3"
3000 tmake_file="sparc/t-sparc sparc/t-elf"
3005 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3006 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3009 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3010 extra_options="${extra_options} sparc/long-double-switch.opt"
3013 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3016 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3019 tmake_file="${tmake_file} sparc/t-sparc"
3022 if test x$enable_targets = xall; then
3023 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3024 tmake_file="${tmake_file} sparc/t-linux64"
3026 tm_file="${tm_file} sparc/linux.h"
3027 tmake_file="${tmake_file} sparc/t-linux"
3031 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3032 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3033 extra_options="${extra_options} sparc/long-double-switch.opt"
3034 tmake_file="${tmake_file} sparc/t-sparc"
3037 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3039 sparc64-*-* | sparcv9-*-*)
3040 tm_file="sparc/default64.h ${tm_file}"
3043 test x$with_cpu != x || with_cpu=v9
3046 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3049 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3050 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3053 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3054 extra_options="${extra_options}"
3055 tmake_file="${tmake_file} sparc/t-sparc"
3058 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3059 extra_options="${extra_options}"
3060 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3063 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"
3064 extra_options="${extra_options} sparc/long-double-switch.opt"
3065 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3067 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3068 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3069 extra_options="${extra_options} sparc/long-double-switch.opt"
3070 case "x$with_cpu" in
3072 x) with_cpu=ultrasparc ;;
3073 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3075 tmake_file="${tmake_file} sparc/t-sparc"
3078 tm_file="sparc/biarch64.h ${tm_file}"
3079 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3080 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3081 extra_options="${extra_options} sparc/long-double-switch.opt"
3082 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3085 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3086 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3087 extra_options="${extra_options} openbsd.opt"
3088 extra_options="${extra_options}"
3091 tmake_file="${tmake_file} sparc/t-sparc"
3094 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
3095 tmake_file="spu/t-spu-elf"
3096 native_system_header_dir=/include
3097 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
3098 extra_modes=spu/spu-modes.def
3099 c_target_objs="${c_target_objs} spu-c.o"
3100 cxx_target_objs="${cxx_target_objs} spu-c.o"
3103 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3104 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3105 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3109 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3110 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3111 tm_file="${tm_file} ./sysroot-suffix.h"
3112 tmake_file="t-sysroot-suffix t-slibgcc"
3113 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3117 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3118 tmake_file="${tmake_file} tilegx/t-tilegx"
3119 extra_objs="${extra_objs} mul-tables.o"
3120 c_target_objs="${c_target_objs} tilegx-c.o"
3121 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3122 extra_headers="feedback.h"
3125 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3130 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3131 tmake_file="${tmake_file} tilepro/t-tilepro"
3132 extra_objs="${extra_objs} mul-tables.o"
3133 c_target_objs="${c_target_objs} tilepro-c.o"
3134 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3135 extra_headers="feedback.h"
3138 target_cpu_default="TARGET_CPU_generic"
3139 tm_file="dbxelf.h elfos.h v850/v850.h"
3140 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3141 tmake_file="${tmake_file} v850/t-v850"
3142 tmake_file="${tmake_file} v850/t-rtems"
3144 c_target_objs="v850-c.o"
3145 cxx_target_objs="v850-c.o"
3150 target_cpu_default="TARGET_CPU_v850e3v5"
3153 target_cpu_default="TARGET_CPU_v850e2v3"
3156 target_cpu_default="TARGET_CPU_v850e2"
3158 v850e1-*-* | v850es-*-*)
3159 target_cpu_default="TARGET_CPU_v850e1"
3162 target_cpu_default="TARGET_CPU_v850e"
3165 target_cpu_default="TARGET_CPU_generic"
3168 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3169 if test x$stabs = xyes
3171 tm_file="${tm_file} dbx.h"
3174 c_target_objs="v850-c.o"
3175 cxx_target_objs="v850-c.o"
3179 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3180 extra_options="${extra_options} vax/elf.opt"
3183 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3184 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3185 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3188 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3189 extra_options="${extra_options} openbsd.opt"
3193 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3194 tmake_file="visium/t-visium visium/t-crtstuff"
3197 # For historical reasons, the target files omit the 'x'.
3198 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3199 tm_p_file=stormy16/stormy16-protos.h
3200 tm_d_file="elfos.h stormy16/stormy16.h"
3201 md_file=stormy16/stormy16.md
3202 out_file=stormy16/stormy16.c
3203 extra_options=stormy16/stormy16.opt
3204 tmake_file="stormy16/t-stormy16"
3207 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3208 extra_options="${extra_options} xtensa/elf.opt"
3211 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3212 tmake_file="${tmake_file} xtensa/t-xtensa"
3215 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3216 tmake_file="${tmake_file} xtensa/t-xtensa"
3217 extra_options="${extra_options} xtensa/uclinux.opt"
3220 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3225 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3226 c_target_objs="m32c-pragma.o"
3227 cxx_target_objs="m32c-pragma.o"
3230 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3231 c_target_objs="m32c-pragma.o"
3232 cxx_target_objs="m32c-pragma.o"
3235 echo "*** Configuration ${target} not supported" 1>&2
3241 i[34567]86-*-linux* | x86_64-*-linux*)
3242 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3244 i[34567]86-*-* | x86_64-*-*)
3245 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3247 powerpc*-*-* | rs6000-*-*)
3248 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3254 tmake_file="${tmake_file} t-musl"
3257 tmake_file="${tmake_file} t-uclibc"
3261 # Assume the existence of indirect function support and allow the use of the
3262 # resolver attribute.
3264 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3268 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3269 default_gnu_indirect_function=yes
3275 # Build mkoffload tool
3277 *-intelmic-* | *-intelmicemul-*)
3278 tmake_file="${tmake_file} i386/t-intelmic"
3279 tm_file="${tm_file} i386/intelmic-offload.h"
3283 if [ "$target_has_targetcm" = "no" ]; then
3284 c_target_objs="$c_target_objs default-c.o"
3285 cxx_target_objs="$cxx_target_objs default-c.o"
3288 if [ "$common_out_file" = "" ]; then
3289 if [ "$target_has_targetm_common" = "yes" ]; then
3290 common_out_file="$cpu_type/$cpu_type-common.c"
3292 common_out_file="default-common.c"
3296 if [ "$target_has_targetdm" = "no" ]; then
3297 d_target_objs="$d_target_objs default-d.o"
3300 # Support for --with-cpu and related options (and a few unrelated options,
3304 echo "--with-cpu must be passed a value" 1>&2
3309 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3310 # to generic if there is no processor scheduler model for the target.
3313 arch_without_sse2=no
3314 arch_without_64bit=no
3317 if test $fbsd_major -ge 6; then
3323 arch_without_sse2=yes
3324 arch_without_64bit=yes
3329 arch_without_sse2=yes
3330 arch_without_64bit=yes
3335 arch_without_sse2=yes
3336 arch_without_64bit=yes
3341 arch_without_sse2=yes
3342 arch_without_64bit=yes
3345 arch_without_sse2=yes
3346 arch_without_64bit=yes
3347 case ${target_noncanonical} in
3360 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3370 i686-*-* | i786-*-*)
3371 case ${target_noncanonical} in
3404 amdfam10-*|barcelona-*)
3408 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3412 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3416 athlon_xp-*|athlon_mp-*|athlon_4-*)
3419 arch_without_sse2=yes
3420 arch_without_64bit=yes
3422 athlon_tbird-*|athlon-*)
3425 arch_without_sse2=yes
3430 arch_without_sse2=yes
3435 arch_without_sse2=yes
3437 pentium3-*|pentium3m-*)
3440 arch_without_sse2=yes
3442 pentium4-*|pentium4m-*)
3481 arch_without_sse2=yes
3486 arch_without_sse2=yes
3487 arch_without_64bit=yes
3492 case ${target_noncanonical} in
3525 amdfam10-*|barcelona-*)
3529 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3533 k8-*|opteron-*|athlon_64-*)
3565 # If there is no $with_cpu option, try to infer one from ${target}.
3566 # This block sets nothing except for with_cpu.
3567 if test x$with_cpu = x ; then
3569 i[34567]86-*-elfiamcu)
3572 i[34567]86-*-*|x86_64-*-*)
3590 frv-*-*linux* | frv400-*-*linux*)
3597 case "$with_arch" in
3599 with_cpu=${default_cf_cpu}
3602 with_cpu=m${default_m68k_cpu}
3618 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3627 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3629 i[34567]86-*-*|x86_64-*-*)
3630 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3631 if test x$with_cpu_32 = x; then
3632 with_cpu_32=$with_cpu
3634 if test x$with_cpu_64 = x; then
3635 with_cpu_64=$with_cpu
3643 # Support for --with-arch and related options (and a few unrelated options,
3645 case ${with_arch} in
3647 echo "--with-arch must be passed a value" 1>&2
3652 # If there is no $with_arch option, try to infer one from ${target}.
3653 # This block sets nothing except for with_arch.
3654 if test x$with_arch = x ; then
3656 i[34567]86-*-darwin*|x86_64-*-darwin*)
3657 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3658 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3660 i[34567]86-*-elfiamcu)
3664 # --with-fpmath sets the default ISA to SSE2, which is the same
3665 # ISA supported by Pentium 4.
3666 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3675 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3683 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3685 i[34567]86-*-darwin*|x86_64-*-darwin*)
3686 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3687 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3689 i[34567]86-*-*|x86_64-*-*)
3690 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3691 if test x$with_arch_32 = x; then
3692 with_arch_32=$with_arch
3694 if test x$with_arch_64 = x; then
3695 if test $arch_without_64bit = yes; then
3696 # Set the default 64bit arch to x86-64 if the default arch
3697 # doesn't support 64bit.
3700 with_arch_64=$with_arch
3704 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3705 # Set the default 64bit arch to x86-64 if the default arch
3706 # doesn't support 64bit and we need 64bit ISA.
3707 with_arch_32=$with_arch
3715 # Infer a default setting for --with-float.
3716 if test x$with_float = x; then
3718 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3719 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3720 # comply with IEEE 754.
3726 # Infer a default setting for --with-fpu.
3727 if test x$with_fpu = x; then
3729 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3730 # The R5900 FPU only supports single precision.
3736 # Support --with-fpmath.
3737 if test x$with_fpmath != x; then
3739 i[34567]86-*-* | x86_64-*-*)
3740 case ${with_fpmath} in
3742 tm_file="${tm_file} i386/avxmath.h"
3745 tm_file="${tm_file} i386/ssemath.h"
3748 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3754 echo "--with-fpmath isn't supported for $target." 1>&2
3760 # Similarly for --with-schedule.
3761 if test x$with_schedule = x; then
3764 # Override default PA8000 scheduling model.
3765 with_schedule=7100LC
3770 # Infer a default setting for --with-llsc.
3771 if test x$with_llsc = x; then
3774 # The kernel emulates LL and SC where necessary.
3777 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3778 # The R5900 doesn't support LL(D) and SC(D).
3784 # Validate and mark as valid any --with options supported
3785 # by this target. In order to use a particular --with option
3786 # you must list it in supported_defaults; validating the value
3787 # is optional. This case statement should set nothing besides
3788 # supported_defaults.
3793 supported_defaults="abi cpu arch"
3794 for which in cpu arch; do
3796 eval "val=\$with_$which"
3797 base_val=`echo $val | sed -e 's/\+.*//'`
3798 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
3800 if [ $which = arch ]; then
3801 def=aarch64-arches.def
3802 pattern=AARCH64_ARCH
3804 def=aarch64-cores.def
3805 pattern=AARCH64_CORE
3808 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3810 # Find the base CPU or ARCH id in aarch64-cores.def or
3811 # aarch64-arches.def
3812 if [ x"$base_val" = x ] \
3813 || grep "^$pattern(\"$base_val\"," \
3814 ${srcdir}/config/aarch64/$def \
3817 if [ $which = arch ]; then
3818 base_id=`grep "^$pattern(\"$base_val\"," \
3819 ${srcdir}/config/aarch64/$def | \
3820 sed -e 's/^[^,]*,[ ]*//' | \
3822 # Extract the architecture flags from aarch64-arches.def
3823 ext_mask=`grep "^$pattern(\"$base_val\"," \
3824 ${srcdir}/config/aarch64/$def | \
3828 base_id=`grep "^$pattern(\"$base_val\"," \
3829 ${srcdir}/config/aarch64/$def | \
3830 sed -e 's/^[^,]*,[ ]*//' | \
3834 while [ x"$ext_val" != x ]
3836 ext_val=`echo $ext_val | sed -e 's/\+//'`
3837 ext=`echo $ext_val | sed -e 's/\+.*//'`
3838 base_ext=`echo $ext | sed -e 's/^no//'`
3840 if [ x"$base_ext" = x ] \
3841 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3842 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3845 ext_canon=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3846 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3847 sed -e 's/^[^,]*,[ ]*//' | \
3849 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3850 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3851 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3852 sed -e 's/,.*$//' | \
3854 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3855 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3856 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*[^,]*,[ ]*//' | \
3857 sed -e 's/,.*$//' | \
3861 if [ $ext = $base_ext ]; then
3863 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
3865 # Removing extension
3866 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
3871 echo "Unknown extension used in --with-$which=$val" 1>&2
3874 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3877 ext_mask="(("$ext_mask") << 6)"
3878 if [ x"$base_id" != x ]; then
3879 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3883 echo "Unknown $which used in --with-$which=$val" 1>&2
3890 supported_defaults="cpu tune"
3891 for which in cpu tune; do
3892 eval "val=\$with_$which"
3895 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3896 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3900 echo "Unknown CPU used in --with-$which=$val" 1>&2
3908 supported_defaults="cpu"
3910 if [ x"$with_cpu" = x ] \
3911 || grep "^ARC_CPU ($with_cpu," \
3912 ${srcdir}/config/arc/arc-cpus.def \
3917 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3923 supported_defaults="cpu endian float"
3927 supported_defaults="arch cpu float tune fpu abi mode tls"
3928 for which in cpu tune arch; do
3929 # See if it matches a supported value
3930 eval "val=\$with_$which"
3931 if [ x"$val" != x ]; then
3932 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3933 -v cmd="chk$which $val" \
3934 ${srcdir}/config/arm/arm-cpus.in`
3935 if [ "$cpu" = "error" ]; then
3936 echo "Unknown target in --with-$which=$val" 1>&2
3940 eval "target_${which}_cname=$new_val"
3941 echo "For $val real value is $new_val"
3946 case "$with_float" in
3948 | soft | hard | softfp)
3952 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3957 # see if --with-fpu matches any of the supported FPUs
3958 if [ x"$with_fpu" != x ] ; then
3959 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3960 -v cmd="chkfpu $with_fpu" \
3961 ${srcdir}/config/arm/arm-cpus.in`
3962 if [ "$fpu" = "error"]
3964 echo "Unknown target in --with-$which=$val" 1>&2
3971 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3975 echo "Unknown ABI used in --with-abi=$with_abi"
3980 case "$with_mode" in
3986 echo "Unknown mode used in --with-mode=$with_mode"
3997 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4002 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4003 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4007 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4008 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4012 # Add extra multilibs
4013 if test "x$with_multilib_list" != x; then
4015 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4016 if test "x${arm_multilibs}" != xdefault ; then
4017 for arm_multilib in ${arm_multilibs}; do
4018 case ${arm_multilib} in
4020 tmake_profile_file="arm/t-multilib"
4023 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4024 if test -f "${srcdir}/config/arm/${ml}"; then
4025 tmake_file="${tmake_file} arm/${ml}"
4027 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4032 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4039 if test "x${tmake_profile_file}" != x ; then
4040 # arm/t-aprofile and arm/t-rmprofile are only
4041 # designed to work without any with-cpu,
4042 # with-arch, with-mode, with-fpu or with-float
4044 if test "x$with_arch" != x \
4045 || test "x$with_cpu" != x \
4046 || test "x$with_float" != x \
4047 || test "x$with_fpu" != x \
4048 || test "x$with_mode" != x ; then
4049 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4051 elif test "x$ml" != x ; then
4052 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4055 # But pass the default value for float-abi
4056 # through to the multilib selector
4058 tmake_file="${tmake_file} ${tmake_profile_file}"
4059 TM_MULTILIB_CONFIG="$with_multilib_list"
4062 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4063 with_cpu=${with_cpu:-$target_cpu_cname}
4067 supported_defaults=cpu
4072 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4078 fido-*-* | m68k*-*-*)
4079 supported_defaults="arch cpu"
4080 case "$with_arch" in
4082 m68k_arch_family="$with_arch"
4085 echo "Invalid --with-arch=$with_arch" 1>&2
4090 # We always have a $with_cpu setting here.
4092 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4093 m68k_cpu_ident=$with_cpu
4096 m68k_cpu_ident=m68020
4097 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4100 m68k_cpu_ident=m68020
4101 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4104 # We need the C identifier rather than the string.
4105 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4106 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4107 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4108 ${srcdir}/config/m68k/m68k-devices.def`
4109 if [ x"$m68k_cpu_ident" = x ] ; then
4110 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4113 with_cpu="mcpu=$with_cpu"
4119 supported_defaults="arch tune"
4121 for which in arch tune; do
4122 eval "val=\$with_$which"
4124 "" | carrizo | fiji | gfx900 )
4128 echo "Unknown cpu used in --with-$which=$val." 1>&2
4133 [ "x$with_arch" = x ] && with_arch=fiji
4137 supported_defaults="arch schedule"
4139 case "$with_arch" in
4140 "" | 1.0 | 1.1 | 2.0)
4144 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4149 case "$with_schedule" in
4150 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4154 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4160 i[34567]86-*-* | x86_64-*-*)
4161 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4162 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4163 eval "val=\$with_$which"
4164 case " $x86_archs " in
4172 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4181 if test x${val} != x; then
4182 case " $x86_64_archs " in
4187 # Allow $x86_cpus --with-cpu=/--with-tune=
4190 case " $x86_cpus " in
4195 echo "Unknown CPU given in --with-$which=$val." 1>&2
4201 echo "Unknown CPU given in --with-$which=$val." 1>&2
4214 supported_defaults="abi arch tune riscv_attribute"
4217 riscv-* | riscv32*) xlen=32 ;;
4218 riscv64*) xlen=64 ;;
4219 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4222 case "${with_riscv_attribute}" in
4224 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4227 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4232 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4235 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4240 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4246 # Infer arch from --with-arch, --target, and --with-abi.
4247 case "${with_arch}" in
4248 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4252 # Infer XLEN, but otherwise assume GC.
4253 case "${with_abi}" in
4254 ilp32e) with_arch="rv32e" ;;
4255 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4256 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4257 *) with_arch="rv${xlen}gc" ;;
4261 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4266 # Make sure --with-abi is valid. If it was not specified,
4267 # pick a default based on the ISA, preferring soft-float
4268 # unless the D extension is present.
4269 case "${with_abi}" in
4270 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4273 case "${with_arch}" in
4274 rv32*d* | rv32g*) with_abi=ilp32d ;;
4275 rv32e*) with_abi=ilp32e ;;
4276 rv32*) with_abi=ilp32 ;;
4277 rv64*d* | rv64g*) with_abi=lp64d ;;
4278 rv64*) with_abi=lp64 ;;
4282 echo "--with-abi=${with_abi} is not supported" 1>&2
4287 # Make sure ABI and ISA are compatible.
4288 case "${with_abi},${with_arch}" in
4289 ilp32,rv32* | ilp32e,rv32e* \
4290 | ilp32f,rv32*f* | ilp32f,rv32g* \
4291 | ilp32d,rv32*d* | ilp32d,rv32g* \
4293 | lp64f,rv64*f* | lp64f,rv64g* \
4294 | lp64d,rv64*d* | lp64d,rv64g*)
4297 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4302 # Handle --with-multilib-list.
4303 if test "x${with_multilib_list}" != xdefault; then
4304 tm_file="${tm_file} riscv/withmultilib.h"
4305 tmake_file="${tmake_file} riscv/t-withmultilib"
4307 case ${with_multilib_list} in
4308 ilp32 | ilp32f | ilp32d \
4309 | lp64 | lp64f | lp64d )
4310 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4313 echo "--with-multilib-list=${with_multilib_list} not supported."
4317 # Define macros to select the default multilib.
4318 case ${with_arch} in
4320 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4323 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4326 echo "unsupported --with-arch for --with-multilib-list"
4331 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4334 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4337 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4340 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4343 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4346 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4349 echo "unsupported --with-abi for --with-multilib"
4356 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"
4358 case ${with_float} in
4363 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4369 "" | single | double)
4373 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4383 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4388 case ${with_fp_32} in
4393 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4398 case ${with_odd_spreg_32} in
4400 with_odd_spreg_32="odd-spreg"
4403 with_odd_spreg_32="no-odd-spreg"
4409 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4415 "" | 32 | o64 | n32 | 64 | eabi)
4419 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4424 case ${with_divide} in
4425 "" | breaks | traps)
4429 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4434 case ${with_llsc} in
4445 echo "Unknown llsc type used in --with-llsc" 1>&2
4450 case ${with_mips_plt} in
4455 with_mips_plt=no-plt
4460 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4465 case ${with_synci} in
4475 echo "Unknown synci type used in --with-synci" 1>&2
4480 case ${with_lxc1_sxc1} in
4482 with_lxc1_sxc1=lxc1-sxc1
4485 with_lxc1_sxc1=no-lxc1-sxc1
4490 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4495 case ${with_madd4} in
4505 echo "Unknown madd4 type used in --with-madd4" 1>&2
4512 supported_defaults="arch cpu nds32_lib float fpu_config"
4514 # process --with-arch
4515 case "${with_arch}" in
4517 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4521 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4524 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4527 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4531 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4536 case "${with_cpu}" in
4540 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4544 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4549 # process --with-nds32-lib
4550 case "${with_nds32_lib}" in
4554 with_nds32_lib=ulibc
4557 with_nds32_lib=glibc
4560 with_nds32_lib=newlib
4561 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4567 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4571 # for the arch=v3f or arch=v3s under mculib toolchain,
4572 # we would like to set -fno-math-errno as default
4573 case "${with_arch}" in
4575 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4583 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4588 # process --with-float
4589 case "${with_float}" in
4594 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4599 # process --with-config-fpu
4600 case "${with_config_fpu}" in
4605 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4613 supported_defaults="arch"
4614 case "$with_arch" in
4619 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4625 powerpc*-*-* | rs6000-*-*)
4626 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4628 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4629 eval "val=\$with_$which"
4631 default32 | default64)
4636 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4640 with_which="with_$which"
4644 tm_defines="${tm_defines} CONFIG_PPC405CR"
4645 eval "with_$which=405"
4647 "" | common | native \
4648 | power[3456789] | power5+ | power6x \
4649 | powerpc | powerpc64 | powerpc64le \
4651 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4652 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4653 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4654 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4655 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4659 echo "Unknown cpu used in --with-$which=$val." 1>&2
4666 "" | elfv1 | elfv2 )
4670 echo "Unknown ABI used in --with-abi=$with_abi"
4675 if test "x$with_advance_toolchain" != x; then
4676 if test -d "/opt/$with_advance_toolchain/." -a \
4677 -d "/opt/$with_advance_toolchain/bin/." -a \
4678 -d "/opt/$with_advance_toolchain/include/."; then
4680 tm_file="$tm_file ./advance-toolchain.h"
4681 (at="/opt/$with_advance_toolchain"
4682 echo "/* Use Advance Toolchain $at */"
4684 echo "#undef LINK_OS_EXTRA_SPEC32"
4685 echo "#define LINK_OS_EXTRA_SPEC32" \
4686 "\"%(link_os_new_dtags)" \
4687 "-rpath $prefix/lib -rpath $at/lib" \
4688 "-L $prefix/lib -L $at/lib\""
4690 echo "#undef LINK_OS_EXTRA_SPEC64"
4691 echo "#define LINK_OS_EXTRA_SPEC64" \
4692 "\"%(link_os_new_dtags)" \
4693 "-rpath $prefix/lib64 -rpath $at/lib64" \
4694 "-L $prefix/lib64 -L $at/lib64\""
4696 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4697 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4698 "\"--enable-new-dtags\""
4700 echo "#undef DYNAMIC_LINKER_PREFIX"
4701 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4703 echo "#undef MD_EXEC_PREFIX"
4704 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4706 echo "#undef MD_STARTFILE_PREFIX"
4707 echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \
4708 > advance-toolchain.h
4710 echo "Unknown advance-toolchain $with_advance_toolchain"
4715 # Set up the default long double format if the user changed it.
4716 if test x$with_long_double_format = xieee; then
4717 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
4719 elif test x$with_long_double_format = xibm; then
4720 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
4725 supported_defaults="arch mode tune"
4727 for which in arch tune; do
4728 eval "val=\$with_$which"
4730 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12)
4734 echo "Unknown cpu used in --with-$which=$val." 1>&2
4740 case ${with_mode} in
4745 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4751 sh[123456ble]*-*-* | sh-*-*)
4752 supported_defaults="cpu"
4753 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4754 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4757 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4759 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4762 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4763 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4764 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4765 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4771 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4773 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4774 eval "val=\$with_$which"
4776 "" | sparc | sparcv9 | sparc64 \
4778 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4779 | sparclite | f930 | f934 | sparclite86x \
4780 | sparclet | tsc701 \
4781 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4782 | niagara3 | niagara4 | niagara7 | m8)
4786 echo "Unknown cpu used in --with-$which=$val" 1>&2
4792 case ${with_float} in
4797 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4804 supported_defaults="arch tune"
4806 for which in arch tune; do
4807 eval "val=\$with_$which"
4809 "" | cell | celledp)
4813 echo "Unknown cpu used in --with-$which=$val." 1>&2
4821 supported_defaults="arch"
4823 case ${with_arch} in
4824 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4828 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4835 supported_defaults=cpu
4837 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4841 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4847 supported_defaults="cpu"
4851 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4858 # Targets for which there is at least one VxWorks port should include
4859 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
4860 # of markers from other files in the port, including the vxworks*.h files to
4861 # distinguish VxWorks variants such as VxWorks 7 or 64).
4864 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
4865 | sparc*-*-* | x86_64-*-*)
4866 tm_file="vxworks-dummy.h ${tm_file}"
4870 # Set some miscellaneous flags for particular targets.
4871 target_cpu_default2=
4874 if test x"$target_cpu_cname" != x
4876 target_cpu_default2=$target_cpu_cname
4881 if test x$with_cpu = x
4883 echo "Don't know the target cpu" 1>&2
4886 target_cpu_default2="\\\"$with_cpu\\\""
4891 if test x$gas = xyes
4893 target_cpu_default2="MASK_GAS"
4897 fido*-*-* | m68k*-*-*)
4898 target_cpu_default2=$m68k_cpu_ident
4899 tmake_file="m68k/t-opts $tmake_file"
4900 if [ x"$m68k_arch_family" != x ]; then
4901 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4905 i[34567]86-*-darwin* | x86_64-*-darwin*)
4907 i[34567]86-*-linux* | x86_64-*-linux*)
4908 extra_objs="${extra_objs} cet.o"
4909 tmake_file="$tmake_file i386/t-linux i386/t-cet"
4911 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4912 tmake_file="$tmake_file i386/t-kfreebsd"
4915 tmake_file="$tmake_file i386/t-gnu"
4917 i[34567]86-*-msdosdjgpp*)
4918 tmake_file="${tmake_file} i386/t-djgpp"
4920 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4922 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4924 i[34567]86-*-mingw* | x86_64-*-mingw*)
4926 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4928 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4934 if test x$gnu_ld = xyes
4936 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4940 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4943 if test x$with_arch != x; then
4944 default_mips_arch=$with_arch
4946 if test x$with_abi != x; then
4947 default_mips_abi=$with_abi
4949 case ${default_mips_arch} in
4950 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4951 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4952 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4953 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4954 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4955 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4956 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
4957 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4958 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4959 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
4961 case ${default_mips_abi} in
4962 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4963 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4964 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4965 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4966 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4968 tmake_file="mips/t-mips $tmake_file"
4971 powerpc*-*-* | rs6000-*-*)
4972 # FIXME: The PowerPC port uses the value set at compile time,
4973 # although it's only cosmetic.
4974 if test "x$with_cpu" != x
4976 target_cpu_default2="\\\"$with_cpu\\\""
4978 out_file="${cpu_type}/${cpu_type}.c"
4979 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
4980 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
4981 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
4982 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
4985 sh[123456ble]*-*-* | sh-*-*)
4986 c_target_objs="${c_target_objs} sh-c.o"
4987 cxx_target_objs="${cxx_target_objs} sh-c.o"
4991 # Some standard aliases.
4996 xsparcv9 | xsparc64)
5001 if test x$with_tune = x ; then
5012 # The SPARC port checks this value at compile-time.
5013 target_cpu_default2="TARGET_CPU_$with_cpu"
5017 case "x$with_cpu" in
5020 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5021 target_cpu_default2="TARGET_CPU_$with_cpu"
5024 target_cpu_default2="TARGET_CPU_v850e1"
5029 target_cpu_default2="TARGET_CPU_$with_cpu"
5034 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"
5035 for option in $all_defaults
5037 eval "val=\$with_"`echo $option | sed s/-/_/g`
5038 if test -n "$val"; then
5039 case " $supported_defaults " in
5043 echo "This target does not support --with-$option." 2>&1
5044 echo "Valid --with options are: $supported_defaults" 2>&1
5051 t="{ \"$option\", \"$val\" }"
5053 t="${t}, { \"$option\", \"$val\" }"
5060 configure_default_options="{ { NULL, NULL} }"
5062 configure_default_options="{ ${t} }"
5065 if test "$target_cpu_default2" != ""
5067 if test "$target_cpu_default" != ""
5069 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5071 target_cpu_default=$target_cpu_default2
5076 i[34567]86-*-* | x86_64-*-*)
5077 if test x$enable_as_accelerator = xyes; then
5078 extra_programs="mkoffload\$(exeext)"