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"
334 c_target_objs="arc-c.o"
335 cxx_target_objs="arc-c.o"
336 extra_options="${extra_options} arc/arc-tables.opt g.opt"
337 extra_headers="arc-simd.h"
341 extra_objs="arm-builtins.o aarch-common.o"
342 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h"
343 target_type_format_char='%'
344 c_target_objs="arm-c.o"
345 cxx_target_objs="arm-c.o"
346 d_target_objs="arm-d.o"
347 extra_options="${extra_options} arm/arm-tables.opt"
348 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
352 c_target_objs="avr-c.o"
353 cxx_target_objs="avr-c.o"
362 extra_options="${extra_options} g.opt"
365 target_has_targetm_common=no
367 moxie*) cpu_type=moxie
368 target_has_targetm_common=no
372 extra_headers=math-68881.h
373 extra_options="${extra_options} m68k/m68k-tables.opt"
377 c_target_objs="i386-c.o"
378 cxx_target_objs="i386-c.o"
379 d_target_objs="i386-d.o"
380 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
381 extra_options="${extra_options} fused-madd.opt"
382 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
383 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
384 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
385 immintrin.h x86intrin.h avxintrin.h xopintrin.h
386 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
387 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
388 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
389 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
390 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
391 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
392 shaintrin.h clflushoptintrin.h xsavecintrin.h
393 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
394 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
395 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
396 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
397 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
398 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
399 gfniintrin.h cet.h avx512vbmi2intrin.h
400 avx512vbmi2vlintrin.h avx512vnniintrin.h
401 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
402 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
403 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
404 waitpkgintrin.h cldemoteintrin.h"
408 c_target_objs="i386-c.o"
409 cxx_target_objs="i386-c.o"
410 d_target_objs="i386-d.o"
411 extra_options="${extra_options} fused-madd.opt"
412 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o"
413 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
414 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
415 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
416 immintrin.h x86intrin.h avxintrin.h xopintrin.h
417 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
418 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
419 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
420 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
421 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
422 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
423 shaintrin.h clflushoptintrin.h xsavecintrin.h
424 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
425 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
426 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
427 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
428 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
429 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
430 gfniintrin.h cet.h avx512vbmi2intrin.h
431 avx512vbmi2vlintrin.h avx512vnniintrin.h
432 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
433 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
434 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
435 waitpkgintrin.h cldemoteintrin.h"
438 extra_headers=ia64intrin.h
439 extra_options="${extra_options} g.opt fused-madd.opt"
445 extra_options="${extra_options} g.opt"
449 extra_options="${extra_options} g.opt"
452 extra_headers=math-68881.h
453 extra_options="${extra_options} m68k/m68k-tables.opt"
457 extra_options="${extra_options} g.opt"
461 d_target_objs="mips-d.o"
462 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
463 extra_objs="frame-header-opt.o"
464 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
468 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
471 extra_options="${extra_options} nds32/nds32-linux.opt"
474 extra_options="${extra_options} nds32/nds32-elf.opt"
479 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"
483 extra_options="${extra_options} g.opt"
493 extra_objs="rs6000-string.o rs6000-p8swap.o"
494 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
495 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
496 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
497 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
498 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
499 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
500 extra_headers="${extra_headers} amo.h"
502 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
506 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
510 extra_objs="riscv-builtins.o riscv-c.o"
511 d_target_objs="riscv-d.o"
514 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
515 extra_objs="rs6000-string.o rs6000-p8swap.o"
519 c_target_objs="sparc-c.o"
520 cxx_target_objs="sparc-c.o"
521 d_target_objs="sparc-d.o"
522 extra_headers="visintrin.h"
529 d_target_objs="s390-d.o"
530 extra_options="${extra_options} fused-madd.opt"
531 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
533 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
534 sh[123456789lbe]*-*-* | sh-*-*)
536 extra_options="${extra_options} fused-madd.opt"
537 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
544 extra_headers="c6x_intrinsics.h"
545 extra_options="${extra_options} c6x/c6x-tables.opt"
548 extra_options="${extra_options} fused-madd.opt"
558 tm_file=${cpu_type}/${cpu_type}.h
559 tm_d_file=${cpu_type}/${cpu_type}.h
560 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
562 tm_p_file=${cpu_type}/${cpu_type}-protos.h
563 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
567 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
569 extra_modes=${cpu_type}/${cpu_type}-modes.def
571 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
573 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
578 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
581 if test "x$with_multilib_list" = xilp32; then
582 tm_file="aarch64/biarchilp32.h ${tm_file}"
584 tm_file="aarch64/biarchlp64.h ${tm_file}"
588 tm_file="aarch64/biarchilp32.h ${tm_file}"
591 tm_file="aarch64/biarchlp64.h ${tm_file}"
594 echo "Unknown ABI used in --with-abi=$with_abi"
599 if test "x$with_abi" != x; then
600 echo "This target does not support --with-abi."
603 if test "x$enable_cld" = xyes; then
604 tm_defines="${tm_defines} USE_IX86_CLD=1"
606 if test "x$enable_frame_pointer" = xyes; then
607 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
613 if test "x$with_multilib_list" = xmx32; then
614 tm_file="i386/biarchx32.h ${tm_file}"
616 tm_file="i386/biarch64.h ${tm_file}"
620 tm_file="i386/biarch64.h ${tm_file}"
623 tm_file="i386/biarchx32.h ${tm_file}"
626 echo "Unknown ABI used in --with-abi=$with_abi"
629 if test "x$enable_cld" = xyes; then
630 tm_defines="${tm_defines} USE_IX86_CLD=1"
632 if test "x$enable_frame_pointer" = xyes; then
633 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
637 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
641 # On a.out targets, we need to use collect2.
648 # Common C libraries.
649 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
651 # 32-bit x86 processors supported by --with-arch=. Each processor
652 # MUST be separated by exactly one space.
653 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
654 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
655 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
656 pentium4 pentium4m pentiumpro prescott lakemont"
658 # 64-bit x86 processors supported by --with-arch=. Each processor
659 # MUST be separated by exactly one space.
660 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
661 bdver3 bdver4 znver1 znver2 btver1 btver2 k8 k8-sse3 opteron \
662 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
663 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
664 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
665 skylake goldmont goldmont-plus tremont cascadelake x86-64 native"
667 # Additional x86 processors supported by --with-cpu=. Each processor
668 # MUST be separated by exactly one space.
669 x86_cpus="generic intel"
671 # Common parts for widely ported systems.
674 tmake_file="t-darwin ${cpu_type}/t-darwin"
675 tm_file="${tm_file} darwin.h"
678 tm_file="${tm_file} darwin9.h"
681 tm_file="${tm_file} darwin9.h darwin10.h"
683 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
684 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
687 tm_file="${tm_file} ${cpu_type}/darwin.h"
688 tm_p_file="${tm_p_file} darwin-protos.h"
689 target_gtfiles="\$(srcdir)/config/darwin.c"
690 extra_options="${extra_options} darwin.opt"
691 c_target_objs="${c_target_objs} darwin-c.o"
692 cxx_target_objs="${cxx_target_objs} darwin-c.o"
693 fortran_target_objs="darwin-f.o"
694 target_has_targetcm=yes
695 extra_objs="${extra_objs} darwin.o"
696 extra_gcc_objs="darwin-driver.o"
697 default_use_cxa_atexit=yes
699 case ${enable_threads} in
700 "" | yes | posix) thread_file='posix' ;;
706 tmake_file="t-slibgcc"
707 case ${enable_threads} in
712 # Let these non-posix thread selections fall through if requested
715 echo 'Unknown thread configuration for DragonFly BSD'
719 extra_options="$extra_options rpath.opt dragonfly.opt"
720 default_use_cxa_atexit=yes
724 # This is the generic ELF configuration of FreeBSD. Later
725 # machine-specific sections may refine and add to this
728 # Due to tm_file entry ordering issues that vary between cpu
729 # architectures, we only define fbsd_tm_file to allow the
730 # machine-specific section to dictate the final order of all
731 # entries of tm_file with the minor exception that components
732 # of the tm_file set here will always be of the form:
734 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
736 # The machine-specific section should not tamper with this
737 # ordering but may order all other entries of tm_file as it
738 # pleases around the provided core setting.
741 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
742 if test "$fbsd_major" = ""; then
743 echo "Specify the major version number of the targeted FreeBSD release"
744 echo "like this: --target=amd64-unknown-freebsd10.1"
747 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
748 tmake_file="t-slibgcc"
749 case ${enable_threads} in
751 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
757 echo 'Unknown thread configuration for FreeBSD'
761 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
762 extra_options="$extra_options rpath.opt freebsd.opt"
767 default_use_cxa_atexit=yes;;
772 native_system_header_dir=/include
774 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
775 extra_options="$extra_options gnu-user.opt"
778 case ${enable_threads} in
779 "" | yes | posix) thread_file='posix' ;;
781 tmake_file="t-slibgcc"
783 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
786 native_system_header_dir=/include
789 # Linux C libraries selection switch: glibc / uclibc / bionic.
790 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
793 tm_p_file="${tm_p_file} linux-protos.h"
794 tmake_file="${tmake_file} t-linux"
795 extra_objs="${extra_objs} linux.o"
796 extra_options="${extra_options} linux.opt"
801 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
804 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
807 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
810 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
813 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
815 default_use_cxa_atexit=yes
818 # Enable compilation for Android by default for *android* targets.
821 tm_defines="$tm_defines ANDROID_DEFAULT=1"
824 tm_defines="$tm_defines ANDROID_DEFAULT=0"
827 c_target_objs="${c_target_objs} glibc-c.o"
828 cxx_target_objs="${cxx_target_objs} glibc-c.o"
829 d_target_objs="${d_target_objs} glibc-d.o"
830 tmake_file="${tmake_file} t-glibc"
831 target_has_targetcm=yes
832 target_has_targetdm=yes
835 tm_p_file="${tm_p_file} netbsd-protos.h"
836 tmake_file="t-netbsd t-slibgcc"
837 extra_objs="${extra_objs} netbsd.o"
841 case ${enable_threads} in
842 "" | yes | posix) thread_file='posix' ;;
844 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
845 default_use_cxa_atexit=yes
848 tmake_file="t-openbsd"
849 case ${enable_threads} in
855 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
856 default_use_cxa_atexit=yes
863 default_use_cxa_atexit=yes
866 case ${enable_threads} in
867 "" | yes | rtems) thread_file='rtems' ;;
868 posix) thread_file='posix' ;;
871 echo 'Unknown thread configuration for RTEMS'
875 tmake_file="${tmake_file} t-rtems"
876 extra_options="${extra_options} rtems.opt"
877 default_use_cxa_atexit=yes
881 extra_options="$extra_options gnu-user.opt"
883 case ${enable_threads} in
884 "" | yes | posix) thread_file='posix' ;;
886 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
892 # i?86-*-solaris2* needs to insert headers between cpu default and
893 # Solaris 2 specific ones.
894 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
895 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
896 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
898 *-*-solaris2.1[1-9]*)
899 # __cxa_atexit was introduced in Solaris 11.4.
900 default_use_cxa_atexit=yes
904 if test x$gnu_ld = xyes; then
905 tm_file="usegld.h ${tm_file}"
907 if test x$gas = xyes; then
908 tm_file="usegas.h ${tm_file}"
910 tm_p_file="${tm_p_file} sol2-protos.h"
911 tmake_file="${tmake_file} t-sol2 t-slibgcc"
912 c_target_objs="${c_target_objs} sol2-c.o"
913 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
914 d_target_objs="${d_target_objs} sol2-d.o"
915 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
916 extra_options="${extra_options} sol2.opt"
917 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
918 "":yes:* | yes:yes:* )
922 target_has_targetdm=yes
925 extra_options="${extra_options} vms/vms.opt"
927 tmake_file="vms/t-vms t-slibgcc"
929 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
930 tm_p_file="${tm_p_file} vms/vms-protos.h"
931 xm_file="vms/xm-vms.h"
932 c_target_objs="vms-c.o"
933 cxx_target_objs="vms-c.o"
934 fortran_target_objs="vms-f.o"
935 use_gcc_stdint=provide
936 tm_file="${tm_file} vms/vms-stdint.h"
937 if test x$gnu_ld != xyes; then
938 # Build wrappers for native case.
939 extra_programs="ld\$(exeext) ar\$(exeext)"
940 tmake_file="$tmake_file vms/t-vmsnative"
946 extra_options="${extra_options} vxworks.opt"
947 extra_objs="$extra_objs vxworks.o"
948 use_gcc_stdint=provide
949 tm_file="${tm_file} vxworks-stdint.h"
950 case ${enable_threads} in
952 "" | yes | vxworks) thread_file='vxworks' ;;
953 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
957 tm_defines="$tm_defines TARGET_VXWORKS7=1"
962 tm_defines="$tm_defines TARGET_VXWORKS64=1"
967 # Assume that newlib is being used and so __cxa_atexit is provided.
968 default_use_cxa_atexit=yes
974 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
975 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
976 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
977 tmake_file="${tmake_file} aarch64/t-aarch64"
983 tm_file="${tm_file} fuchsia.h"
986 tm_file="${tm_file} rtems.h aarch64/rtems.h"
991 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
994 aarch64_multilibs="${with_multilib_list}"
995 if test "$aarch64_multilibs" = "default"; then
996 aarch64_multilibs="lp64,ilp32"
998 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
999 for aarch64_multilib in ${aarch64_multilibs}; do
1000 case ${aarch64_multilib} in
1002 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1005 echo "--with-multilib-list=${aarch64_multilib} not supported."
1009 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1011 aarch64*-*-freebsd*)
1012 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1013 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h"
1014 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1015 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1018 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1019 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
1020 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1021 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1024 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1027 aarch64_multilibs="${with_multilib_list}"
1028 if test "$aarch64_multilibs" = "default"; then
1029 # TODO: turn on ILP32 multilib build after its support is mature.
1030 # aarch64_multilibs="lp64,ilp32"
1031 aarch64_multilibs="lp64"
1033 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1034 for aarch64_multilib in ${aarch64_multilibs}; do
1035 case ${aarch64_multilib} in
1037 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1040 echo "--with-multilib-list=${aarch64_multilib} not supported."
1044 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1047 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1048 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1049 extra_options="${extra_options} alpha/elf.opt"
1052 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1053 tmake_file="${tmake_file} alpha/t-alpha"
1054 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1058 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1059 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1060 tmake_file="${tmake_file} alpha/t-alpha"
1061 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1062 # default x-alpha is only appropriate for dec-osf.
1065 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1066 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1069 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1070 tmake_file="arc/t-multilib arc/t-arc"
1071 extra_gcc_objs="driver-arc.o"
1072 if test "x$with_cpu" != x; then
1073 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1075 if test x${with_endian} = x; then
1077 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1078 *) with_endian=little ;;
1081 case ${with_endian} in
1083 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1085 case ${with_endian} in
1086 big*) tm_file="arc/big.h ${tm_file}"
1090 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}"
1091 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1092 extra_gcc_objs="driver-arc.o"
1093 if test "x$with_cpu" != x; then
1094 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1096 if test x${with_endian} = x; then
1098 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1099 *) with_endian=little ;;
1102 case ${with_endian} in
1104 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1106 case ${with_endian} in
1107 big*) tm_file="arc/big.h ${tm_file}"
1110 arm-wrs-vxworks|arm-wrs-vxworks7)
1111 extra_options="${extra_options} arm/vxworks.opt"
1112 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1115 # VxWorks7 on ARM adheres to the ARM Base Platform ABI
1116 tmake_file="${tmake_file} arm/t-bpabi"
1117 tm_file="arm/bpabi.h ${tm_file}"
1118 # The BPABI long long divmod functions return a 128-bit value in
1120 need_64bit_hwint=yes
1121 default_use_cxa_atexit=yes
1125 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1126 target_cpu_cname="arm8"
1128 arm*-*-freebsd*) # ARM FreeBSD EABI
1129 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1132 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1135 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1136 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1139 target_cpu_cname="arm1176jzf-s"
1140 if test $fbsd_major -ge 11; then
1141 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1145 target_cpu_cname="generic-armv7-a"
1146 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1149 target_cpu_cname="arm9"
1152 with_tls=${with_tls:-gnu}
1155 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1156 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1157 tmake_file="${tmake_file} arm/t-arm"
1158 target_cpu_cname="strongarm"
1160 arm*-*-linux-*) # ARM GNU/Linux with ELF
1161 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"
1162 extra_options="${extra_options} linux-android.opt"
1165 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1168 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1169 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1170 # Generation of floating-point instructions requires at least ARMv5te.
1171 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1172 target_cpu_cname="arm10e"
1174 target_cpu_cname="arm10tdmi"
1176 # Define multilib configuration for arm-linux-androideabi.
1179 tmake_file="$tmake_file arm/t-linux-androideabi"
1182 # The EABI requires the use of __cxa_atexit.
1183 default_use_cxa_atexit=yes
1184 with_tls=${with_tls:-gnu}
1186 arm*-*-uclinux*eabi*) # ARM ucLinux
1187 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1188 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1189 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1190 target_cpu_cname="arm7tdmi"
1191 # The EABI requires the use of __cxa_atexit.
1192 default_use_cxa_atexit=yes
1195 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1196 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1197 tm_file="${tm_file} arm/aout.h arm/arm.h"
1198 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1199 target_cpu_cname="arm7tdmi"
1201 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1204 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1206 default_use_cxa_atexit=yes
1207 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1208 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1209 target_cpu_cname="arm7tdmi"
1212 tm_file="$tm_file newlib-stdint.h"
1213 tmake_file="${tmake_file} arm/t-bpabi"
1217 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1218 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1219 target_cpu_cname="generic-armv7-a"
1222 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1223 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1226 tm_file="${tm_file} arm/symbian.h"
1227 # We do not include t-bpabi for Symbian OS because the system
1228 # provides its own implementation of the BPABI functions.
1229 tmake_file="${tmake_file} arm/t-symbian"
1230 target_cpu_cname="arm10tdmi"
1233 tm_file="${tm_file} arm/aout.h arm/arm.h"
1236 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1237 if test x${with_avrlibc} != xno; then
1238 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1239 tm_defines="${tm_defines} WITH_AVRLIBC"
1241 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1243 extra_gcc_objs="driver-avr.o avr-devices.o"
1244 extra_objs="avr-devices.o avr-log.o"
1247 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1248 tmake_file=bfin/t-bfin-elf
1252 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1253 tmake_file=bfin/t-bfin-uclinux
1256 bfin*-linux-uclibc*)
1257 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"
1258 tmake_file="${tmake_file} bfin/t-bfin-linux"
1262 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1263 tmake_file="${tmake_file} bfin/t-rtems"
1266 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1271 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1272 tmake_file="${tmake_file} cr16/t-cr16 "
1275 crisv32-*-elf | crisv32-*-none)
1276 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1277 tmake_file="cris/t-cris"
1278 target_cpu_default=32
1280 extra_options="${extra_options} cris/elf.opt"
1283 cris-*-elf | cris-*-none)
1284 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1285 tmake_file="cris/t-cris cris/t-elfmulti"
1287 extra_options="${extra_options} cris/elf.opt"
1290 crisv32-*-linux* | cris-*-linux*)
1291 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1292 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1293 extra_options="${extra_options} cris/linux.opt"
1296 target_cpu_default=10
1299 target_cpu_default=32
1304 if test x${with_endian} != x; then
1305 case ${with_endian} in
1308 echo "with_endian=${with_endian} not supported."
1313 if test x${with_float} != x; then
1314 case ${with_float} in
1317 "Unknown floating point type used in --with-float=$with_float"
1322 tm_file="csky/csky.h"
1323 md_file="csky/csky.md"
1324 out_file="csky/csky.c"
1325 tm_p_file="${tm_p_file} csky/csky-protos.h"
1326 extra_options="${extra_options} csky/csky_tables.opt"
1328 if test x${enable_tpf_debug} = xyes; then
1329 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1334 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1335 tmake_file="csky/t-csky csky/t-csky-elf"
1336 default_use_cxa_atexit=no
1339 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1340 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1342 if test "x${enable_multilib}" = xyes ; then
1343 tm_file="$tm_file ./sysroot-suffix.h"
1344 tmake_file="${tmake_file} csky/t-sysroot-suffix"
1349 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1350 # Force .init_array support. The configure script cannot always
1351 # automatically detect that GAS supports it, yet we require it.
1352 gcc_cv_initfini_array=yes
1354 csky-*-linux-uclibc*)
1355 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1356 default_use_cxa_atexit=no
1359 echo "Unknown target $target"
1365 echo "Unknown target $target"
1370 epiphany-*-elf | epiphany-*-rtems*)
1371 tm_file="${tm_file} dbxelf.h elfos.h"
1372 tmake_file="${tmake_file} epiphany/t-epiphany"
1375 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1378 tm_file="${tm_file} newlib-stdint.h"
1381 extra_options="${extra_options} fused-madd.opt"
1382 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1383 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1384 extra_headers="epiphany_intrinsics.h"
1387 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1390 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1391 tmake_file=frv/t-frv
1394 tm_file="dbxelf.h elfos.h ${tm_file} \
1395 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1396 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1401 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1402 tmake_file="${tmake_file} ft32/t-ft32"
1407 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1408 tmake_file="${tmake_file} moxie/t-moxie"
1413 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1414 tmake_file="${tmake_file} moxie/t-moxie"
1417 tmake_file="${tmake_file} moxie/t-moxie"
1418 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1423 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1424 tmake_file="${tmake_file} moxie/t-moxiebox"
1427 tmake_file="h8300/t-h8300"
1428 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1431 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1432 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1435 target_cpu_default="MASK_PA_11|MASK_PA_20"
1436 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1437 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1439 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1440 d_target_objs="${d_target_objs} pa-d.o"
1444 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1445 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1446 pa/pa32-regs.h pa/pa32-linux.h"
1447 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1448 d_target_objs="${d_target_objs} pa-d.o"
1451 target_cpu_default="MASK_PA_11"
1452 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1453 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1454 extra_options="${extra_options} openbsd.opt"
1455 tmake_file="pa/t-pa"
1456 d_target_objs="${d_target_objs} pa-d.o"
1460 hppa[12]*-*-hpux10*)
1462 hppa1.1-*-* | hppa2*-*-*)
1463 target_cpu_default="MASK_PA_11"
1466 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1467 pa/pa-hpux.h pa/pa-hpux10.h"
1468 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1471 tm_file="${tm_file} pa/pa-hpux1010.h"
1472 extra_options="${extra_options} pa/pa-hpux1010.opt"
1475 use_gcc_stdint=provide
1476 tm_file="${tm_file} hpux-stdint.h"
1477 tmake_file="pa/t-pa t-slibgcc"
1478 d_target_objs="${d_target_objs} pa-d.o"
1479 case ${enable_threads} in
1481 if test x$have_pthread_h = xyes ; then
1482 tmake_file="${tmake_file} pa/t-dce-thr"
1486 tmake_file="${tmake_file} pa/t-dce-thr"
1491 if test "x$with_dwarf2" != x; then
1492 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1497 target_cpu_default="MASK_PA_11|MASK_PA_20"
1498 if test x$gnu_ld = xyes
1500 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1502 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1503 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1507 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1508 extra_options="${extra_options} pa/pa-hpux1111.opt"
1511 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1512 extra_options="${extra_options} pa/pa-hpux1131.opt"
1515 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1518 extra_options="${extra_options} pa/pa-hpux.opt \
1519 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1520 tmake_file="pa/t-pa t-slibgcc"
1521 d_target_objs="${d_target_objs} pa-d.o"
1522 case x${enable_threads} in
1530 use_gcc_stdint=provide
1531 tm_file="${tm_file} hpux-stdint.h"
1535 tm_file="${tm_file} hpux-stdint.h"
1539 hppa[12]*-*-hpux11*)
1541 hppa1.1-*-* | hppa2*-*-*)
1542 target_cpu_default="MASK_PA_11"
1545 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1546 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1547 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1551 tm_file="${tm_file} pa/pa-hpux1111.h"
1552 extra_options="${extra_options} pa/pa-hpux1111.opt"
1555 tm_file="${tm_file} pa/pa-hpux1131.h"
1556 extra_options="${extra_options} pa/pa-hpux1131.opt"
1559 tmake_file="pa/t-pa t-slibgcc"
1560 d_target_objs="${d_target_objs} pa-d.o"
1561 case x${enable_threads} in
1570 use_gcc_stdint=provide
1571 tm_file="${tm_file} hpux-stdint.h"
1575 tm_file="${tm_file} hpux-stdint.h"
1578 if test "x$with_dwarf2" != x; then
1579 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1583 i[34567]86-*-darwin*)
1585 # Baseline choice for a machine that allows m64 support.
1586 with_cpu=${with_cpu:-core2}
1587 tmake_file="${tmake_file} t-slibgcc"
1590 with_cpu=${with_cpu:-core2}
1591 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1592 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1594 i[34567]86-*-elfiamcu)
1595 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1598 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1601 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1604 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"
1607 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1610 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"
1611 tmake_file="i386/t-i386elf t-svr4"
1613 i[34567]86-*-dragonfly*)
1614 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1615 tmake_file="${tmake_file} i386/t-crtstuff"
1617 x86_64-*-dragonfly*)
1618 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"
1619 tmake_file="${tmake_file} i386/t-crtstuff"
1621 i[34567]86-*-freebsd*)
1622 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1625 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"
1627 i[34567]86-*-netbsdelf*)
1628 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1629 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1632 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1633 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1635 i[34567]86-*-openbsd*)
1636 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1637 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1638 extra_options="${extra_options} openbsd.opt"
1643 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1644 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1645 extra_options="${extra_options} openbsd.opt"
1649 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1650 # Intel 80386's running GNU/*
1651 # with ELF format using glibc 2
1652 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1654 i[34567]86-*-linux*)
1655 tm_file="${tm_file} linux.h linux-android.h"
1656 extra_options="${extra_options} linux-android.opt"
1657 if test x$enable_targets = xall; then
1658 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1659 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1660 tmake_file="${tmake_file} i386/t-linux64"
1661 x86_multilibs="${with_multilib_list}"
1662 if test "$x86_multilibs" = "default"; then
1663 x86_multilibs="m64,m32"
1665 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1666 for x86_multilib in ${x86_multilibs}; do
1667 case ${x86_multilib} in
1669 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1672 echo "--with-multilib-list=${x86_with_multilib} not supported."
1676 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1678 if test x$with_cpu = x; then
1679 if test x$with_cpu_64 = x; then
1683 case " $x86_cpus $x86_archs $x86_64_archs " in
1687 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1688 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1694 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1697 i[34567]86-*-kfreebsd*-gnu)
1698 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1700 i[34567]86-*-kopensolaris*-gnu)
1701 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1704 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1708 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1709 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1710 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1713 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1714 extra_options="${extra_options} linux-android.opt"
1716 x86_64-*-kfreebsd*-gnu)
1717 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1720 tmake_file="${tmake_file} i386/t-linux64"
1721 x86_multilibs="${with_multilib_list}"
1722 if test "$x86_multilibs" = "default"; then
1725 x86_multilibs="mx32"
1728 x86_multilibs="m64,m32"
1732 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1733 for x86_multilib in ${x86_multilibs}; do
1734 case ${x86_multilib} in
1736 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1739 echo "--with-multilib-list=${x86_with_multilib} not supported."
1743 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1745 i[34567]86-pc-msdosdjgpp*)
1746 xm_file=i386/xm-djgpp.h
1747 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1748 native_system_header_dir=/dev/env/DJDIR/include
1749 extra_options="${extra_options} i386/djgpp.opt"
1754 i[34567]86-*-lynxos*)
1756 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1757 tmake_file="${tmake_file} t-lynx"
1758 extra_options="${extra_options} lynx.opt"
1763 i[34567]86-*-nto-qnx*)
1764 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1765 extra_options="${extra_options} i386/nto.opt"
1769 i[34567]86-*-rtems*)
1770 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"
1771 tmake_file="${tmake_file} i386/t-rtems"
1773 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1774 # Set default arch_32 to pentium4, tune_32 to generic like the other
1775 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1776 with_arch_32=${with_arch_32:-pentium4}
1777 with_tune_32=${with_tune_32:-generic}
1778 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1779 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1780 tmake_file="$tmake_file i386/t-sol2"
1782 if test x$with_cpu = x; then
1783 if test x$with_cpu_64 = x; then
1787 case " $x86_cpus $x86_archs $x86_64_archs " in
1791 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1792 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1798 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
1799 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1803 tm_file="${tm_file} i386/x86-64.h"
1806 tm_file="${tm_file} vx-common.h"
1809 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1810 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1813 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1814 tmake_file="${tmake_file} i386/t-vxworks"
1818 i[34567]86-*-cygwin*)
1819 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"
1820 xm_file=i386/xm-cygwin.h
1821 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1822 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1823 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1824 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1825 c_target_objs="${c_target_objs} msformat-c.o"
1826 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1827 if test x$enable_threads = xyes; then
1830 default_use_cxa_atexit=yes
1835 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"
1836 xm_file=i386/xm-cygwin.h
1837 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1838 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1839 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1840 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1841 c_target_objs="${c_target_objs} msformat-c.o"
1842 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1843 if test x$enable_threads = xyes; then
1846 default_use_cxa_atexit=yes
1848 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1850 i[34567]86-*-mingw* | x86_64-*-mingw*)
1851 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1852 xm_file=i386/xm-mingw32.h
1853 c_target_objs="${c_target_objs} winnt-c.o"
1854 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1855 target_has_targetcm="yes"
1857 x86_64-*-* | *-w64-*)
1863 if test x$enable_threads = xposix ; then
1864 tm_file="${tm_file} i386/mingw-pthread.h"
1866 tm_file="${tm_file} i386/mingw32.h"
1867 # This makes the logic if mingw's or the w64 feature set has to be used
1870 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1871 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1872 tm_file="${tm_file} i386/mingw-w64.h"
1873 if test x$enable_targets = xall; then
1874 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1875 if test x$with_cpu = x; then
1876 if test x$with_cpu_64 = x; then
1880 case " $x86_cpus $x86_archs $x86_64_archs " in
1884 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1885 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1895 tm_file="${tm_file} i386/mingw-stdint.h"
1896 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1899 tmake_file="${tmake_file} i386/t-mingw-w64"
1902 tmake_file="${tmake_file} i386/t-mingw-w32"
1905 native_system_header_dir=/mingw/include
1906 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1907 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1910 extra_options="${extra_options} i386/mingw-w64.opt"
1915 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1916 c_target_objs="${c_target_objs} msformat-c.o"
1917 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1920 default_use_cxa_atexit=yes
1922 case ${enable_threads} in
1932 tm_file="${tm_file} i386/crtdll.h"
1934 *mingw32msv* | *mingw*)
1939 tmake_file="${tmake_file} i386/t-x86_64-elf"
1940 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
1943 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1944 tmake_file="ia64/t-ia64"
1945 target_cpu_default="0"
1946 if test x$gas = xyes
1948 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1950 if test x$gnu_ld = xyes
1952 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1956 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1957 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1958 tmake_file="${tmake_file} ia64/t-ia64"
1961 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1962 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1963 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1966 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1967 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1968 target_cpu_default="MASK_GNU_AS"
1969 case x$enable_threads in
1975 c_target_objs="ia64-c.o"
1976 cxx_target_objs="ia64-c.o"
1977 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1979 tm_file="${tm_file} hpux-stdint.h"
1982 tm_file="${tm_file} ia64/hpux-unix2003.h"
1987 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1988 tmake_file="${tmake_file} ia64/t-ia64"
1989 target_cpu_default="0"
1990 if test x$gas = xyes
1992 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1994 extra_options="${extra_options} ia64/vms.opt"
1997 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1998 out_file=iq2000/iq2000.c
1999 md_file=iq2000/iq2000.md
2002 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2003 tmake_file="${tmake_file} lm32/t-lm32"
2006 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2007 tmake_file="${tmake_file} lm32/t-lm32"
2008 tmake_file="${tmake_file} lm32/t-rtems"
2011 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2012 tmake_file="${tmake_file} lm32/t-lm32"
2015 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2018 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2021 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
2022 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2024 if test x$enable_threads = xyes; then
2029 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
2030 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2032 if test x$enable_threads = xyes; then
2036 m68k-*-elf* | fido-*-elf*)
2039 # Check that $with_cpu makes sense.
2044 echo "Cannot accept --with-cpu=$with_cpu"
2051 default_m68k_cpu=68020
2055 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"
2056 tm_defines="${tm_defines} MOTOROLA=1"
2057 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2058 # Add multilibs for targets other than fido.
2063 tmake_file="$tmake_file m68k/t-mlibs"
2068 default_m68k_cpu=68020
2070 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2071 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2072 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2075 default_m68k_cpu=68020
2077 # needed to unconfuse gdb
2078 tm_defines="${tm_defines} OBSD_OLD_GAS"
2079 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
2080 extra_options="${extra_options} openbsd.opt"
2081 tmake_file="t-openbsd m68k/t-openbsd"
2082 # we need collect2 until our bug is fixed...
2085 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2086 # with uClibc, using the new GNU/Linux-style
2088 default_m68k_cpu=68020
2090 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"
2091 extra_options="${extra_options} m68k/uclinux.opt"
2092 tm_defines="${tm_defines} MOTOROLA=1"
2093 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2095 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2096 # with ELF format using glibc 2
2097 # aka the GNU/Linux C library 6.
2098 default_m68k_cpu=68020
2100 with_arch=${with_arch:-m68k}
2101 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2102 extra_options="${extra_options} m68k/ieee.opt"
2103 tm_defines="${tm_defines} MOTOROLA=1"
2104 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2107 default_m68k_cpu=68020
2109 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2110 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"
2111 tm_defines="${tm_defines} MOTOROLA=1"
2114 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2115 tmake_file=mcore/t-mcore
2121 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2124 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2127 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2128 tm_file="${tm_file} glibc-stdint.h"
2129 c_target_objs="${c_target_objs} microblaze-c.o"
2130 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2131 tmake_file="${tmake_file} microblaze/t-microblaze"
2132 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2134 microblaze*-*-rtems*)
2137 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2140 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2143 tm_file="${tm_file} dbxelf.h"
2144 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2145 c_target_objs="${c_target_objs} microblaze-c.o"
2146 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2147 tmake_file="${tmake_file} microblaze/t-microblaze"
2148 tmake_file="${tmake_file} microblaze/t-rtems"
2153 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2156 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2159 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2160 c_target_objs="${c_target_objs} microblaze-c.o"
2161 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2162 tmake_file="${tmake_file} microblaze/t-microblaze"
2165 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2166 case "x${enable_multilib}" in
2168 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2169 *) echo "Unknown value for enable_multilib"; exit 1
2171 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2174 # Force .init_array support. The configure script cannot always
2175 # automatically detect that GAS supports it, yet we require it.
2176 gcc_cv_initfini_array=yes
2178 riscv*-*-elf* | riscv*-*-rtems*)
2179 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2182 tm_file="${tm_file} rtems.h riscv/rtems.h"
2183 tmake_file="${tmake_file} riscv/t-rtems"
2186 case "x${enable_multilib}" in
2188 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2189 *) echo "Unknown value for enable_multilib"; exit 1
2192 tmake_file="${tmake_file} riscv/t-riscv"
2195 # Force .init_array support. The configure script cannot always
2196 # automatically detect that GAS supports it, yet we require it.
2197 gcc_cv_initfini_array=yes
2200 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2201 tmake_file="${tmake_file} riscv/t-riscv"
2204 # Force .init_array support. The configure script cannot always
2205 # automatically detect that GAS supports it, yet we require it.
2206 gcc_cv_initfini_array=yes
2208 mips*-*-netbsd*) # NetBSD/mips, either endian.
2209 target_cpu_default="MASK_ABICALLS"
2210 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2211 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2214 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"
2215 extra_options="${extra_options} linux-android.opt"
2216 tmake_file="${tmake_file} mips/t-img-linux"
2217 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2218 with_arch_32="mips32r6"
2219 with_arch_64="mips64r6"
2224 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"
2225 extra_options="${extra_options} linux-android.opt"
2226 tmake_file="${tmake_file} mips/t-mti-linux"
2227 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2228 with_arch_32="mips32r2"
2229 with_arch_64="mips64r2"
2233 mips*-*-linux*) # Linux MIPS, either endian.
2234 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"
2235 extra_options="${extra_options} linux-android.opt"
2238 default_mips_arch=mips32r6
2241 default_mips_arch=mips32r2
2244 default_mips_arch=mips32
2246 mips64el-st-linux-gnu)
2247 default_mips_abi=n32
2248 tm_file="${tm_file} mips/st.h"
2249 tmake_file="${tmake_file} mips/t-st"
2250 enable_mips_multilibs="yes"
2252 mips64octeon*-*-linux*)
2253 default_mips_abi=n32
2254 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2255 target_cpu_default=MASK_SOFT_FLOAT_ABI
2256 enable_mips_multilibs="yes"
2258 mipsisa64r6*-*-linux*)
2259 default_mips_abi=n32
2260 default_mips_arch=mips64r6
2261 enable_mips_multilibs="yes"
2263 mipsisa64r2*-*-linux*)
2264 default_mips_abi=n32
2265 default_mips_arch=mips64r2
2266 enable_mips_multilibs="yes"
2268 mips64*-*-linux* | mipsisa64*-*-linux*)
2269 default_mips_abi=n32
2270 enable_mips_multilibs="yes"
2273 if test x$enable_targets = xall; then
2274 enable_mips_multilibs="yes"
2276 if test x$enable_mips_multilibs = xyes; then
2277 tmake_file="${tmake_file} mips/t-linux64"
2281 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2282 tmake_file="mips/t-mti-elf"
2283 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2284 with_arch_32="mips32r2"
2285 with_arch_64="mips64r2"
2288 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2289 tmake_file="mips/t-img-elf"
2290 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2291 with_arch_32="mips32r6"
2292 with_arch_64="mips64r6"
2295 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2296 tmake_file="mips/t-sde"
2297 extra_options="${extra_options} mips/sde.opt"
2298 case "${with_newlib}" in
2300 # newlib / libgloss.
2303 # MIPS toolkit libraries.
2304 tm_file="$tm_file mips/sdemtk.h"
2305 tmake_file="$tmake_file mips/t-sdemtk"
2306 case ${enable_threads} in
2308 thread_file='mipssde'
2315 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2318 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2321 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2324 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2327 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2330 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2334 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2335 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2336 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2337 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2338 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2339 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2340 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2341 tmake_file="mips/t-isa3264"
2344 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2347 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2350 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2353 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2356 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2359 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2363 mipsisa32*-*-elfoabi*)
2364 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2365 tm_file="${tm_file} mips/elfoabi.h"
2367 mipsisa64*-*-elfoabi*)
2368 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2369 tm_file="${tm_file} mips/elfoabi.h"
2372 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2376 mipsisa64sr71k-*-elf*)
2377 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2378 tmake_file=mips/t-sr71k
2379 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2381 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2382 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2383 tmake_file="mips/t-elf mips/t-sb1"
2384 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2386 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2387 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2388 tmake_file="mips/t-elf"
2390 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2391 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2392 tmake_file="mips/t-elf"
2393 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2395 mips64-*-elf* | mips64el-*-elf*)
2396 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2397 tmake_file="mips/t-elf"
2398 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2400 mips64vr-*-elf* | mips64vrel-*-elf*)
2401 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2402 tmake_file=mips/t-vr
2403 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2405 mips64orion-*-elf* | mips64orionel-*-elf*)
2406 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2407 tmake_file="mips/t-elf"
2408 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2411 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2412 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2415 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2416 tmake_file="${tmake_file} mips/t-vxworks"
2418 mipstx39-*-elf* | mipstx39el-*-elf*)
2419 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2420 tmake_file="mips/t-r3900"
2422 mmix-knuth-mmixware)
2423 tm_file="${tm_file} newlib-stdint.h"
2427 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2428 if test x$stabs = xyes
2430 tm_file="${tm_file} dbx.h"
2436 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2437 c_target_objs="msp430-c.o"
2438 cxx_target_objs="msp430-c.o"
2439 tmake_file="${tmake_file} msp430/t-msp430"
2440 extra_gcc_objs="driver-msp430.o"
2443 target_cpu_default="0"
2444 tm_defines="${tm_defines}"
2449 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2450 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2455 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2456 tmake_file="nds32/t-nds32 nds32/t-elf"
2459 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2460 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2464 # Handle --enable-default-relax setting.
2465 if test x${enable_default_relax} = xyes; then
2466 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2468 # Handle --with-ext-dsp
2469 if test x${with_ext_dsp} = xyes; then
2470 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2474 tm_file="elfos.h ${tm_file}"
2475 tmake_file="${tmake_file} nios2/t-nios2"
2478 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2481 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2482 extra_options="${extra_options} nios2/elf.opt"
2485 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2486 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2491 tm_file="${tm_file} newlib-stdint.h"
2493 tmake_file="nvptx/t-nvptx"
2494 if test x$enable_as_accelerator = xyes; then
2495 extra_programs="${extra_programs} mkoffload\$(exeext)"
2496 tm_file="${tm_file} nvptx/offload.h"
2500 tm_file="elfos.h ${tm_file}"
2501 tmake_file="${tmake_file} or1k/t-or1k"
2502 # Force .init_array support. The configure script cannot always
2503 # automatically detect that GAS supports it, yet we require it.
2504 gcc_cv_initfini_array=yes
2506 # Handle --with-multilib-list=...
2507 or1k_multilibs="${with_multilib_list}"
2508 if test "$or1k_multilibs" = "default"; then
2509 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2511 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2512 for or1k_multilib in ${or1k_multilibs}; do
2513 case ${or1k_multilib} in
2514 mcmov | msext | msfimm | \
2515 mhard-div | mhard-mul | \
2516 msoft-div | msoft-mul )
2517 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2520 echo "--with-multilib-list=${with_multilib_list} not supported."
2524 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2528 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2529 tm_file="${tm_file} or1k/linux.h"
2532 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2533 extra_options="${extra_options} or1k/elf.opt"
2536 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2537 tmake_file="${tmake_file} or1k/t-rtems"
2542 tm_file="${tm_file} newlib-stdint.h"
2545 # port not yet contributed
2546 #powerpc-*-openbsd*)
2547 # tmake_file="${tmake_file} rs6000/t-fprules"
2551 extra_options="${extra_options} rs6000/darwin.opt"
2553 *-darwin1[0-9]* | *-darwin[8-9]*)
2554 tmake_file="${tmake_file} rs6000/t-darwin8"
2555 tm_file="${tm_file} rs6000/darwin8.h"
2558 tm_file="${tm_file} rs6000/darwin7.h"
2563 tmake_file="${tmake_file} t-slibgcc"
2564 extra_headers=altivec.h
2566 powerpc64-*-darwin*)
2567 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2568 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2569 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2570 extra_headers=altivec.h
2572 powerpc*-*-freebsd*)
2573 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2574 extra_options="${extra_options} rs6000/sysv4.opt"
2575 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2578 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2579 tmake_file="${tmake_file} rs6000/t-freebsd64"
2580 extra_options="${extra_options} rs6000/linux64.opt"
2583 tm_file="${tm_file} rs6000/freebsd.h"
2588 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2589 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2590 tmake_file="${tmake_file} rs6000/t-netbsd"
2591 extra_options="${extra_options} rs6000/sysv4.opt"
2593 powerpc-*-eabisimaltivec*)
2594 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"
2595 extra_options="${extra_options} rs6000/sysv4.opt"
2596 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2600 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"
2601 extra_options="${extra_options} rs6000/sysv4.opt"
2602 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2606 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2607 extra_options="${extra_options} rs6000/sysv4.opt"
2608 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2610 powerpc-*-eabialtivec*)
2611 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"
2612 extra_options="${extra_options} rs6000/sysv4.opt"
2613 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2617 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"
2618 extra_options="${extra_options} rs6000/sysv4.opt"
2619 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2623 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"
2624 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2625 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2628 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2629 extra_options="${extra_options} rs6000/sysv4.opt"
2630 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2631 extra_objs="$extra_objs rs6000-linux.o"
2634 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2636 case ${target}:${with_cpu} in
2637 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2639 maybe_biarch=${cpu_is_64bit}
2640 case ${enable_targets} in
2641 *powerpc64*) maybe_biarch=yes ;;
2642 all) maybe_biarch=yes ;;
2644 case ${target}:${enable_targets}:${maybe_biarch} in
2645 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2646 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2647 | powerpcle-*:*powerpc64le*:yes)
2648 if test x$cpu_is_64bit = xyes; then
2649 tm_file="${tm_file} rs6000/default64.h"
2651 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2652 tmake_file="$tmake_file rs6000/t-linux64"
2655 tmake_file="$tmake_file rs6000/t-linux64le"
2656 case ${enable_targets} in
2657 all | *powerpc64-* | *powerpc-*)
2658 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2661 case ${enable_targets} in
2662 all | *powerpc64le-* | *powerpcle-*)
2663 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2666 extra_options="${extra_options} rs6000/linux64.opt"
2669 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2670 extra_options="${extra_options} rs6000/linux64.opt"
2671 tmake_file="${tmake_file} rs6000/t-linux"
2674 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2675 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2679 powerpc*-*-linux*ppc476*)
2680 tm_file="${tm_file} rs6000/476.h"
2681 extra_options="${extra_options} rs6000/476.opt" ;;
2682 powerpc*-*-linux*altivec*)
2683 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2687 enable_secureplt=yes ;;
2689 if test x${enable_secureplt} = xyes; then
2690 tm_file="rs6000/secureplt.h ${tm_file}"
2693 powerpc-wrs-vxworks*)
2694 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2695 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2696 extra_options="${extra_options} rs6000/sysv4.opt"
2697 extra_headers=ppc-asm.h
2700 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2701 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2704 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
2705 tmake_file="${tmake_file} rs6000/t-vxworksae"
2708 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
2714 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2715 tmake_file="t-lynx rs6000/t-lynx"
2716 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2722 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"
2723 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2724 extra_options="${extra_options} rs6000/sysv4.opt"
2726 powerpcle-*-eabisim*)
2727 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"
2728 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2729 extra_options="${extra_options} rs6000/sysv4.opt"
2733 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"
2734 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2735 extra_options="${extra_options} rs6000/sysv4.opt"
2738 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
2739 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2740 tmake_file="rs6000/t-aix52 t-slibgcc"
2741 extra_options="${extra_options} rs6000/aix64.opt"
2745 default_use_cxa_atexit=yes
2747 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
2748 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
2749 tmake_file="rs6000/t-aix52 t-slibgcc"
2750 extra_options="${extra_options} rs6000/aix64.opt"
2754 default_use_cxa_atexit=yes
2756 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2757 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
2758 tmake_file="rs6000/t-aix52 t-slibgcc"
2759 extra_options="${extra_options} rs6000/aix64.opt"
2763 default_use_cxa_atexit=yes
2766 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2767 target_has_targetm_common=no
2768 c_target_objs="rl78-c.o"
2769 cxx_target_objs="rl78-c.o"
2770 tmake_file="${tmake_file} rl78/t-rl78"
2773 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2774 tmake_file="${tmake_file} rx/t-rx"
2777 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2778 c_target_objs="${c_target_objs} s390-c.o"
2779 cxx_target_objs="${cxx_target_objs} s390-c.o"
2780 if test x$enable_targets = xall; then
2781 tmake_file="${tmake_file} s390/t-linux64"
2783 tmake_file="${tmake_file} s390/t-s390"
2786 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2787 tm_p_file="linux-protos.h s390/s390-protos.h"
2788 c_target_objs="${c_target_objs} s390-c.o"
2789 cxx_target_objs="${cxx_target_objs} s390-c.o"
2790 md_file=s390/s390.md
2791 extra_modes=s390/s390-modes.def
2792 out_file=s390/s390.c
2793 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
2796 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2797 tm_p_file=s390/s390-protos.h
2798 c_target_objs="${c_target_objs} s390-c.o"
2799 cxx_target_objs="${cxx_target_objs} s390-c.o"
2800 md_file=s390/s390.md
2801 extra_modes=s390/s390-modes.def
2802 out_file=s390/s390.c
2804 extra_options="${extra_options} s390/tpf.opt"
2805 tmake_file="${tmake_file} s390/t-s390"
2807 sh-*-elf* | sh[12346l]*-*-elf* | \
2808 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2809 sh-*-netbsdelf* | shl*-*-netbsdelf*)
2810 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2811 if test x${with_endian} = x; then
2813 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2814 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2815 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2816 shl* | sh*-*-linux* | \
2817 sh-superh-elf) with_endian=little,big ;;
2818 sh[1234]*-*-*) with_endian=big ;;
2819 *) with_endian=big,little ;;
2822 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2823 # First word : the default endian.
2824 # Second word: the secondary endian (optional).
2825 case ${with_endian} in
2826 big) TM_ENDIAN_CONFIG=mb ;;
2827 little) TM_ENDIAN_CONFIG=ml ;;
2828 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2829 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2830 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2832 case ${with_endian} in
2833 little*) tm_file="sh/little.h ${tm_file}" ;;
2835 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2837 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2838 if test x$enable_fdpic = xyes; then
2839 tm_defines="$tm_defines FDPIC_DEFAULT=1"
2841 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2843 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
2844 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2847 sh*-superh-elf) if test x$with_libgloss != xno; then
2849 tm_file="${tm_file} sh/newlib.h"
2851 tm_file="${tm_file} sh/embed-elf.h"
2852 tm_file="${tm_file} sh/superh.h"
2853 extra_options="${extra_options} sh/superh.opt" ;;
2854 *) if test x$with_newlib = xyes \
2855 && test x$with_libgloss = xyes; then
2856 tm_file="${tm_file} sh/newlib.h"
2858 tm_file="${tm_file} sh/embed-elf.h" ;;
2864 tm_file="${tm_file} newlib-stdint.h"
2867 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2868 case `echo ${target} | sed 's/e[lb]-/-/'` in
2869 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2870 sh4a_single*) sh_cpu_target=sh4a-single ;;
2871 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2872 sh4al) sh_cpu_target=sh4al ;;
2873 sh4a*) sh_cpu_target=sh4a ;;
2874 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2875 sh4_single*) sh_cpu_target=sh4-single ;;
2876 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2877 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2878 sh3e*) sh_cpu_target=sh3e ;;
2879 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2880 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2881 sh2a_single*) sh_cpu_target=sh2a-single ;;
2882 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2883 sh2a*) sh_cpu_target=sh2a ;;
2884 sh2e*) sh_cpu_target=sh2e ;;
2885 sh2*) sh_cpu_target=sh2 ;;
2886 *) sh_cpu_target=sh1 ;;
2888 # did the user say --without-fp ?
2889 if test x$with_fp = xno; then
2890 case ${sh_cpu_target} in
2892 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2893 sh4*) sh_cpu_target=sh4-nofpu ;;
2894 sh3*) sh_cpu_target=sh3 ;;
2895 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2896 sh2*) sh_cpu_target=sh2 ;;
2897 *) echo --without-fp not available for $target: ignored
2899 tm_defines="$tm_defines STRICT_NOFPU=1"
2901 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2902 case $sh_cpu_default in
2903 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2904 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2905 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2906 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2907 "") sh_cpu_default=${sh_cpu_target} ;;
2908 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2910 sh_multilibs=${with_multilib_list}
2911 if test "$sh_multilibs" = "default" ; then
2913 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2914 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2915 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2916 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2917 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2919 if test x$with_fp = xno; then
2920 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`"
2923 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2924 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2925 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2926 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2927 for sh_multilib in ${sh_multilibs}; do
2928 case ${sh_multilib} in
2929 m1 | m2 | m2e | m3 | m3e | \
2930 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2931 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2932 m2a | m2a-single | m2a-single-only | m2a-nofpu)
2933 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2934 # It is passed to MULTIILIB_OPTIONS verbatim.
2935 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2936 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2938 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2939 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2940 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2942 echo "with_multilib_list=${sh_multilib} not supported."
2947 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2948 if test x${enable_incomplete_targets} = xyes ; then
2949 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
2951 tm_file="$tm_file ./sysroot-suffix.h"
2952 tmake_file="$tmake_file t-sysroot-suffix"
2955 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2956 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2959 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2960 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2963 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2966 tmake_file="sparc/t-sparc sparc/t-leon"
2969 tmake_file="sparc/t-sparc sparc/t-leon3"
2972 tmake_file="sparc/t-sparc sparc/t-elf"
2977 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2978 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2981 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2982 extra_options="${extra_options} sparc/long-double-switch.opt"
2985 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2988 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2991 tmake_file="${tmake_file} sparc/t-sparc"
2994 if test x$enable_targets = xall; then
2995 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2996 tmake_file="${tmake_file} sparc/t-linux64"
2998 tm_file="${tm_file} sparc/linux.h"
2999 tmake_file="${tmake_file} sparc/t-linux"
3003 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3004 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3005 extra_options="${extra_options} sparc/long-double-switch.opt"
3006 tmake_file="${tmake_file} sparc/t-sparc"
3009 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3011 sparc64-*-* | sparcv9-*-*)
3012 tm_file="sparc/default64.h ${tm_file}"
3015 test x$with_cpu != x || with_cpu=v9
3018 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3021 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3022 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3025 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3026 extra_options="${extra_options}"
3027 tmake_file="${tmake_file} sparc/t-sparc"
3030 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3031 extra_options="${extra_options}"
3032 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3035 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"
3036 extra_options="${extra_options} sparc/long-double-switch.opt"
3037 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3039 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3040 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3041 extra_options="${extra_options} sparc/long-double-switch.opt"
3042 case "x$with_cpu" in
3044 x) with_cpu=ultrasparc ;;
3045 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3047 tmake_file="${tmake_file} sparc/t-sparc"
3050 tm_file="sparc/biarch64.h ${tm_file}"
3051 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3052 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3053 extra_options="${extra_options} sparc/long-double-switch.opt"
3054 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3057 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3058 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3059 extra_options="${extra_options} openbsd.opt"
3060 extra_options="${extra_options}"
3063 tmake_file="${tmake_file} sparc/t-sparc"
3066 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
3067 tmake_file="spu/t-spu-elf"
3068 native_system_header_dir=/include
3069 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
3070 extra_modes=spu/spu-modes.def
3071 c_target_objs="${c_target_objs} spu-c.o"
3072 cxx_target_objs="${cxx_target_objs} spu-c.o"
3075 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3076 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3077 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3081 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3082 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3083 tm_file="${tm_file} ./sysroot-suffix.h"
3084 tmake_file="t-sysroot-suffix t-slibgcc"
3085 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3089 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3090 tmake_file="${tmake_file} tilegx/t-tilegx"
3091 extra_objs="${extra_objs} mul-tables.o"
3092 c_target_objs="${c_target_objs} tilegx-c.o"
3093 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3094 extra_headers="feedback.h"
3097 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3102 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3103 tmake_file="${tmake_file} tilepro/t-tilepro"
3104 extra_objs="${extra_objs} mul-tables.o"
3105 c_target_objs="${c_target_objs} tilepro-c.o"
3106 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3107 extra_headers="feedback.h"
3110 target_cpu_default="TARGET_CPU_generic"
3111 tm_file="dbxelf.h elfos.h v850/v850.h"
3112 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3113 tmake_file="${tmake_file} v850/t-v850"
3114 tmake_file="${tmake_file} v850/t-rtems"
3116 c_target_objs="v850-c.o"
3117 cxx_target_objs="v850-c.o"
3122 target_cpu_default="TARGET_CPU_v850e3v5"
3125 target_cpu_default="TARGET_CPU_v850e2v3"
3128 target_cpu_default="TARGET_CPU_v850e2"
3130 v850e1-*-* | v850es-*-*)
3131 target_cpu_default="TARGET_CPU_v850e1"
3134 target_cpu_default="TARGET_CPU_v850e"
3137 target_cpu_default="TARGET_CPU_generic"
3140 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3141 if test x$stabs = xyes
3143 tm_file="${tm_file} dbx.h"
3146 c_target_objs="v850-c.o"
3147 cxx_target_objs="v850-c.o"
3151 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3152 extra_options="${extra_options} vax/elf.opt"
3155 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3156 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3157 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3160 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3161 extra_options="${extra_options} openbsd.opt"
3165 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3166 tmake_file="visium/t-visium visium/t-crtstuff"
3169 # For historical reasons, the target files omit the 'x'.
3170 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3171 tm_p_file=stormy16/stormy16-protos.h
3172 tm_d_file="elfos.h stormy16/stormy16.h"
3173 md_file=stormy16/stormy16.md
3174 out_file=stormy16/stormy16.c
3175 extra_options=stormy16/stormy16.opt
3176 tmake_file="stormy16/t-stormy16"
3179 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3180 extra_options="${extra_options} xtensa/elf.opt"
3183 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3184 tmake_file="${tmake_file} xtensa/t-xtensa"
3187 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3188 tmake_file="${tmake_file} xtensa/t-xtensa"
3189 extra_options="${extra_options} xtensa/uclinux.opt"
3192 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3197 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3198 c_target_objs="m32c-pragma.o"
3199 cxx_target_objs="m32c-pragma.o"
3202 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3203 c_target_objs="m32c-pragma.o"
3204 cxx_target_objs="m32c-pragma.o"
3207 echo "*** Configuration ${target} not supported" 1>&2
3213 i[34567]86-*-linux* | x86_64-*-linux*)
3214 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3216 i[34567]86-*-* | x86_64-*-*)
3217 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3219 powerpc*-*-* | rs6000-*-*)
3220 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3226 tmake_file="${tmake_file} t-musl"
3229 tmake_file="${tmake_file} t-uclibc"
3233 # Assume the existence of indirect function support and allow the use of the
3234 # resolver attribute.
3236 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3240 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3241 default_gnu_indirect_function=yes
3247 # Build mkoffload tool
3249 *-intelmic-* | *-intelmicemul-*)
3250 tmake_file="${tmake_file} i386/t-intelmic"
3251 tm_file="${tm_file} i386/intelmic-offload.h"
3255 if [ "$target_has_targetcm" = "no" ]; then
3256 c_target_objs="$c_target_objs default-c.o"
3257 cxx_target_objs="$cxx_target_objs default-c.o"
3260 if [ "$common_out_file" = "" ]; then
3261 if [ "$target_has_targetm_common" = "yes" ]; then
3262 common_out_file="$cpu_type/$cpu_type-common.c"
3264 common_out_file="default-common.c"
3268 if [ "$target_has_targetdm" = "no" ]; then
3269 d_target_objs="$d_target_objs default-d.o"
3272 # Support for --with-cpu and related options (and a few unrelated options,
3276 echo "--with-cpu must be passed a value" 1>&2
3281 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3282 # to generic if there is no processor scheduler model for the target.
3285 arch_without_sse2=no
3286 arch_without_64bit=no
3289 if test $fbsd_major -ge 6; then
3295 arch_without_sse2=yes
3296 arch_without_64bit=yes
3301 arch_without_sse2=yes
3302 arch_without_64bit=yes
3307 arch_without_sse2=yes
3308 arch_without_64bit=yes
3313 arch_without_sse2=yes
3314 arch_without_64bit=yes
3317 arch_without_sse2=yes
3318 arch_without_64bit=yes
3319 case ${target_noncanonical} in
3332 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3342 i686-*-* | i786-*-*)
3343 case ${target_noncanonical} in
3376 amdfam10-*|barcelona-*)
3380 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3384 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3388 athlon_xp-*|athlon_mp-*|athlon_4-*)
3391 arch_without_sse2=yes
3392 arch_without_64bit=yes
3394 athlon_tbird-*|athlon-*)
3397 arch_without_sse2=yes
3402 arch_without_sse2=yes
3407 arch_without_sse2=yes
3409 pentium3-*|pentium3m-*)
3412 arch_without_sse2=yes
3414 pentium4-*|pentium4m-*)
3453 arch_without_sse2=yes
3458 arch_without_sse2=yes
3459 arch_without_64bit=yes
3464 case ${target_noncanonical} in
3497 amdfam10-*|barcelona-*)
3501 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3505 k8-*|opteron-*|athlon_64-*)
3537 # If there is no $with_cpu option, try to infer one from ${target}.
3538 # This block sets nothing except for with_cpu.
3539 if test x$with_cpu = x ; then
3541 i[34567]86-*-elfiamcu)
3544 i[34567]86-*-*|x86_64-*-*)
3562 frv-*-*linux* | frv400-*-*linux*)
3569 case "$with_arch" in
3571 with_cpu=${default_cf_cpu}
3574 with_cpu=m${default_m68k_cpu}
3590 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3599 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3601 i[34567]86-*-*|x86_64-*-*)
3602 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3603 if test x$with_cpu_32 = x; then
3604 with_cpu_32=$with_cpu
3606 if test x$with_cpu_64 = x; then
3607 with_cpu_64=$with_cpu
3615 # Support for --with-arch and related options (and a few unrelated options,
3617 case ${with_arch} in
3619 echo "--with-arch must be passed a value" 1>&2
3624 # If there is no $with_arch option, try to infer one from ${target}.
3625 # This block sets nothing except for with_arch.
3626 if test x$with_arch = x ; then
3628 i[34567]86-*-darwin*|x86_64-*-darwin*)
3629 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3630 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3632 i[34567]86-*-elfiamcu)
3636 # --with-fpmath sets the default ISA to SSE2, which is the same
3637 # ISA supported by Pentium 4.
3638 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3647 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3655 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3657 i[34567]86-*-darwin*|x86_64-*-darwin*)
3658 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3659 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3661 i[34567]86-*-*|x86_64-*-*)
3662 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3663 if test x$with_arch_32 = x; then
3664 with_arch_32=$with_arch
3666 if test x$with_arch_64 = x; then
3667 if test $arch_without_64bit = yes; then
3668 # Set the default 64bit arch to x86-64 if the default arch
3669 # doesn't support 64bit.
3672 with_arch_64=$with_arch
3676 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3677 # Set the default 64bit arch to x86-64 if the default arch
3678 # doesn't support 64bit and we need 64bit ISA.
3679 with_arch_32=$with_arch
3687 # Infer a default setting for --with-float.
3688 if test x$with_float = x; then
3690 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3691 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3692 # comply with IEEE 754.
3698 # Infer a default setting for --with-fpu.
3699 if test x$with_fpu = x; then
3701 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3702 # The R5900 FPU only supports single precision.
3708 # Support --with-fpmath.
3709 if test x$with_fpmath != x; then
3711 i[34567]86-*-* | x86_64-*-*)
3712 case ${with_fpmath} in
3714 tm_file="${tm_file} i386/avxmath.h"
3717 tm_file="${tm_file} i386/ssemath.h"
3720 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3726 echo "--with-fpmath isn't supported for $target." 1>&2
3732 # Similarly for --with-schedule.
3733 if test x$with_schedule = x; then
3736 # Override default PA8000 scheduling model.
3737 with_schedule=7100LC
3742 # Infer a default setting for --with-llsc.
3743 if test x$with_llsc = x; then
3746 # The kernel emulates LL and SC where necessary.
3749 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3750 # The R5900 doesn't support LL(D) and SC(D).
3756 # Validate and mark as valid any --with options supported
3757 # by this target. In order to use a particular --with option
3758 # you must list it in supported_defaults; validating the value
3759 # is optional. This case statement should set nothing besides
3760 # supported_defaults.
3765 supported_defaults="abi cpu arch"
3766 for which in cpu arch; do
3768 eval "val=\$with_$which"
3769 base_val=`echo $val | sed -e 's/\+.*//'`
3770 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
3772 if [ $which = arch ]; then
3773 def=aarch64-arches.def
3774 pattern=AARCH64_ARCH
3776 def=aarch64-cores.def
3777 pattern=AARCH64_CORE
3780 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3782 # Find the base CPU or ARCH id in aarch64-cores.def or
3783 # aarch64-arches.def
3784 if [ x"$base_val" = x ] \
3785 || grep "^$pattern(\"$base_val\"," \
3786 ${srcdir}/config/aarch64/$def \
3789 if [ $which = arch ]; then
3790 base_id=`grep "^$pattern(\"$base_val\"," \
3791 ${srcdir}/config/aarch64/$def | \
3792 sed -e 's/^[^,]*,[ ]*//' | \
3794 # Extract the architecture flags from aarch64-arches.def
3795 ext_mask=`grep "^$pattern(\"$base_val\"," \
3796 ${srcdir}/config/aarch64/$def | \
3800 base_id=`grep "^$pattern(\"$base_val\"," \
3801 ${srcdir}/config/aarch64/$def | \
3802 sed -e 's/^[^,]*,[ ]*//' | \
3806 while [ x"$ext_val" != x ]
3808 ext_val=`echo $ext_val | sed -e 's/\+//'`
3809 ext=`echo $ext_val | sed -e 's/\+.*//'`
3810 base_ext=`echo $ext | sed -e 's/^no//'`
3812 if [ x"$base_ext" = x ] \
3813 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3814 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3817 ext_canon=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3818 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3819 sed -e 's/^[^,]*,[ ]*//' | \
3821 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3822 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3823 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3824 sed -e 's/,.*$//' | \
3826 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3827 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3828 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*[^,]*,[ ]*//' | \
3829 sed -e 's/,.*$//' | \
3833 if [ $ext = $base_ext ]; then
3835 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
3837 # Removing extension
3838 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
3843 echo "Unknown extension used in --with-$which=$val" 1>&2
3846 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3849 ext_mask="(("$ext_mask") << 6)"
3850 if [ x"$base_id" != x ]; then
3851 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3855 echo "Unknown $which used in --with-$which=$val" 1>&2
3862 supported_defaults="cpu tune"
3863 for which in cpu tune; do
3864 eval "val=\$with_$which"
3867 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3868 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3872 echo "Unknown CPU used in --with-$which=$val" 1>&2
3880 supported_defaults="cpu"
3882 if [ x"$with_cpu" = x ] \
3883 || grep "^ARC_CPU ($with_cpu," \
3884 ${srcdir}/config/arc/arc-cpus.def \
3889 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3895 supported_defaults="cpu endian float"
3899 supported_defaults="arch cpu float tune fpu abi mode tls"
3900 for which in cpu tune arch; do
3901 # See if it matches a supported value
3902 eval "val=\$with_$which"
3903 if [ x"$val" != x ]; then
3904 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3905 -v cmd="chk$which $val" \
3906 ${srcdir}/config/arm/arm-cpus.in`
3907 if [ "$cpu" = "error" ]; then
3908 echo "Unknown target in --with-$which=$val" 1>&2
3912 eval "target_${which}_cname=$new_val"
3913 echo "For $val real value is $new_val"
3918 case "$with_float" in
3920 | soft | hard | softfp)
3924 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3929 # see if --with-fpu matches any of the supported FPUs
3930 if [ x"$with_fpu" != x ] ; then
3931 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3932 -v cmd="chkfpu $with_fpu" \
3933 ${srcdir}/config/arm/arm-cpus.in`
3934 if [ "$fpu" = "error"]
3936 echo "Unknown target in --with-$which=$val" 1>&2
3943 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3947 echo "Unknown ABI used in --with-abi=$with_abi"
3952 case "$with_mode" in
3958 echo "Unknown mode used in --with-mode=$with_mode"
3969 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3974 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3975 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3979 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3980 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3984 # Add extra multilibs
3985 if test "x$with_multilib_list" != x; then
3987 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3988 if test "x${arm_multilibs}" != xdefault ; then
3989 for arm_multilib in ${arm_multilibs}; do
3990 case ${arm_multilib} in
3992 tmake_profile_file="arm/t-multilib"
3995 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
3996 if test -f "${srcdir}/config/arm/${ml}"; then
3997 tmake_file="${tmake_file} arm/${ml}"
3999 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4004 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4011 if test "x${tmake_profile_file}" != x ; then
4012 # arm/t-aprofile and arm/t-rmprofile are only
4013 # designed to work without any with-cpu,
4014 # with-arch, with-mode, with-fpu or with-float
4016 if test "x$with_arch" != x \
4017 || test "x$with_cpu" != x \
4018 || test "x$with_float" != x \
4019 || test "x$with_fpu" != x \
4020 || test "x$with_mode" != x ; then
4021 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4023 elif test "x$ml" != x ; then
4024 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4027 # But pass the default value for float-abi
4028 # through to the multilib selector
4030 tmake_file="${tmake_file} ${tmake_profile_file}"
4031 TM_MULTILIB_CONFIG="$with_multilib_list"
4034 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4035 with_cpu=${with_cpu:-$target_cpu_cname}
4039 supported_defaults=cpu
4044 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4050 fido-*-* | m68k*-*-*)
4051 supported_defaults="arch cpu"
4052 case "$with_arch" in
4054 m68k_arch_family="$with_arch"
4057 echo "Invalid --with-arch=$with_arch" 1>&2
4062 # We always have a $with_cpu setting here.
4064 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4065 m68k_cpu_ident=$with_cpu
4068 m68k_cpu_ident=m68020
4069 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4072 m68k_cpu_ident=m68020
4073 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4076 # We need the C identifier rather than the string.
4077 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4078 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4079 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4080 ${srcdir}/config/m68k/m68k-devices.def`
4081 if [ x"$m68k_cpu_ident" = x ] ; then
4082 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4085 with_cpu="mcpu=$with_cpu"
4091 supported_defaults="arch schedule"
4093 case "$with_arch" in
4094 "" | 1.0 | 1.1 | 2.0)
4098 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4103 case "$with_schedule" in
4104 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4108 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4114 i[34567]86-*-* | x86_64-*-*)
4115 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4116 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4117 eval "val=\$with_$which"
4118 case " $x86_archs " in
4126 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4135 if test x${val} != x; then
4136 case " $x86_64_archs " in
4141 # Allow $x86_cpus --with-cpu=/--with-tune=
4144 case " $x86_cpus " in
4149 echo "Unknown CPU given in --with-$which=$val." 1>&2
4155 echo "Unknown CPU given in --with-$which=$val." 1>&2
4168 supported_defaults="abi arch tune"
4171 riscv-* | riscv32*) xlen=32 ;;
4172 riscv64*) xlen=64 ;;
4173 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4176 # Infer arch from --with-arch, --target, and --with-abi.
4177 case "${with_arch}" in
4178 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4182 # Infer XLEN, but otherwise assume GC.
4183 case "${with_abi}" in
4184 ilp32e) with_arch="rv32e" ;;
4185 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4186 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4187 *) with_arch="rv${xlen}gc" ;;
4191 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4196 # Make sure --with-abi is valid. If it was not specified,
4197 # pick a default based on the ISA, preferring soft-float
4198 # unless the D extension is present.
4199 case "${with_abi}" in
4200 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4203 case "${with_arch}" in
4204 rv32*d* | rv32g*) with_abi=ilp32d ;;
4205 rv32e*) with_abi=ilp32e ;;
4206 rv32*) with_abi=ilp32 ;;
4207 rv64*d* | rv64g*) with_abi=lp64d ;;
4208 rv64*) with_abi=lp64 ;;
4212 echo "--with-abi=${with_abi} is not supported" 1>&2
4217 # Make sure ABI and ISA are compatible.
4218 case "${with_abi},${with_arch}" in
4219 ilp32,rv32* | ilp32e,rv32e* \
4220 | ilp32f,rv32*f* | ilp32f,rv32g* \
4221 | ilp32d,rv32*d* | ilp32d,rv32g* \
4223 | lp64f,rv64*f* | lp64f,rv64g* \
4224 | lp64d,rv64*d* | lp64d,rv64g*)
4227 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4232 # Handle --with-multilib-list.
4233 if test "x${with_multilib_list}" != xdefault; then
4234 tm_file="${tm_file} riscv/withmultilib.h"
4235 tmake_file="${tmake_file} riscv/t-withmultilib"
4237 case ${with_multilib_list} in
4238 ilp32 | ilp32f | ilp32d \
4239 | lp64 | lp64f | lp64d )
4240 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4243 echo "--with-multilib-list=${with_multilib_list} not supported."
4247 # Define macros to select the default multilib.
4248 case ${with_arch} in
4250 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4253 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4256 echo "unsupported --with-arch for --with-multilib-list"
4261 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4264 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4267 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4270 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4273 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4276 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4279 echo "unsupported --with-abi for --with-multilib"
4286 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"
4288 case ${with_float} in
4293 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4299 "" | single | double)
4303 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4313 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4318 case ${with_fp_32} in
4323 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4328 case ${with_odd_spreg_32} in
4330 with_odd_spreg_32="odd-spreg"
4333 with_odd_spreg_32="no-odd-spreg"
4339 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4345 "" | 32 | o64 | n32 | 64 | eabi)
4349 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4354 case ${with_divide} in
4355 "" | breaks | traps)
4359 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4364 case ${with_llsc} in
4375 echo "Unknown llsc type used in --with-llsc" 1>&2
4380 case ${with_mips_plt} in
4385 with_mips_plt=no-plt
4390 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4395 case ${with_synci} in
4405 echo "Unknown synci type used in --with-synci" 1>&2
4410 case ${with_lxc1_sxc1} in
4412 with_lxc1_sxc1=lxc1-sxc1
4415 with_lxc1_sxc1=no-lxc1-sxc1
4420 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4425 case ${with_madd4} in
4435 echo "Unknown madd4 type used in --with-madd4" 1>&2
4442 supported_defaults="arch cpu nds32_lib float fpu_config"
4444 # process --with-arch
4445 case "${with_arch}" in
4447 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4451 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4454 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4457 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4461 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4466 case "${with_cpu}" in
4470 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4474 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4479 # process --with-nds32-lib
4480 case "${with_nds32_lib}" in
4482 # the default library is newlib
4483 with_nds32_lib=newlib
4484 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4488 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4492 # for the arch=v3f or arch=v3s under mculib toolchain,
4493 # we would like to set -fno-math-errno as default
4494 case "${with_arch}" in
4496 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4502 tm_defines="${tm_defines} TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0"
4507 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4512 # process --with-float
4513 case "${with_float}" in
4518 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4523 # process --with-config-fpu
4524 case "${with_config_fpu}" in
4529 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4537 supported_defaults="arch"
4538 case "$with_arch" in
4543 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4549 powerpc*-*-* | rs6000-*-*)
4550 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4552 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4553 eval "val=\$with_$which"
4555 default32 | default64)
4560 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4564 with_which="with_$which"
4568 tm_defines="${tm_defines} CONFIG_PPC405CR"
4569 eval "with_$which=405"
4571 "" | common | native \
4572 | power[3456789] | power5+ | power6x \
4573 | powerpc | powerpc64 | powerpc64le \
4575 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4576 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4577 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4578 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4579 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4583 echo "Unknown cpu used in --with-$which=$val." 1>&2
4590 "" | elfv1 | elfv2 )
4594 echo "Unknown ABI used in --with-abi=$with_abi"
4599 if test "x$with_advance_toolchain" != x; then
4600 if test -d "/opt/$with_advance_toolchain/." -a \
4601 -d "/opt/$with_advance_toolchain/bin/." -a \
4602 -d "/opt/$with_advance_toolchain/include/."; then
4604 tm_file="$tm_file ./advance-toolchain.h"
4605 (at="/opt/$with_advance_toolchain"
4606 echo "/* Use Advance Toolchain $at */"
4608 echo "#undef LINK_OS_EXTRA_SPEC32"
4609 echo "#define LINK_OS_EXTRA_SPEC32" \
4610 "\"%(link_os_new_dtags)" \
4611 "-rpath $prefix/lib -rpath $at/lib" \
4612 "-L $prefix/lib -L $at/lib\""
4614 echo "#undef LINK_OS_EXTRA_SPEC64"
4615 echo "#define LINK_OS_EXTRA_SPEC64" \
4616 "\"%(link_os_new_dtags)" \
4617 "-rpath $prefix/lib64 -rpath $at/lib64" \
4618 "-L $prefix/lib64 -L $at/lib64\""
4620 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4621 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4622 "\"--enable-new-dtags\""
4624 echo "#undef DYNAMIC_LINKER_PREFIX"
4625 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4627 echo "#undef MD_EXEC_PREFIX"
4628 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4630 echo "#undef MD_STARTFILE_PREFIX"
4631 echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \
4632 > advance-toolchain.h
4634 echo "Unknown advance-toolchain $with_advance_toolchain"
4639 # Set up the default long double format if the user changed it.
4640 if test x$with_long_double_format = xieee; then
4641 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
4643 elif test x$with_long_double_format = xibm; then
4644 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
4649 supported_defaults="arch mode tune"
4651 for which in arch tune; do
4652 eval "val=\$with_$which"
4654 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12)
4658 echo "Unknown cpu used in --with-$which=$val." 1>&2
4664 case ${with_mode} in
4669 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4675 sh[123456ble]*-*-* | sh-*-*)
4676 supported_defaults="cpu"
4677 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4678 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4681 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4683 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4686 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4687 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4688 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4689 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4695 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4697 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4698 eval "val=\$with_$which"
4700 "" | sparc | sparcv9 | sparc64 \
4702 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4703 | sparclite | f930 | f934 | sparclite86x \
4704 | sparclet | tsc701 \
4705 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4706 | niagara3 | niagara4 | niagara7 | m8)
4710 echo "Unknown cpu used in --with-$which=$val" 1>&2
4716 case ${with_float} in
4721 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4728 supported_defaults="arch tune"
4730 for which in arch tune; do
4731 eval "val=\$with_$which"
4733 "" | cell | celledp)
4737 echo "Unknown cpu used in --with-$which=$val." 1>&2
4745 supported_defaults="arch"
4747 case ${with_arch} in
4748 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4752 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4759 supported_defaults=cpu
4761 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4765 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4771 supported_defaults="cpu"
4775 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4782 # Targets for which there is at least one VxWorks port should include
4783 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
4784 # of markers from other files in the port, including the vxworks*.h files to
4785 # distinguish VxWorks variants such as VxWorks 7 or 64).
4788 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
4789 | sparc*-*-* | x86_64-*-*)
4790 tm_file="vxworks-dummy.h ${tm_file}"
4794 # Set some miscellaneous flags for particular targets.
4795 target_cpu_default2=
4798 if test x"$target_cpu_cname" != x
4800 target_cpu_default2=$target_cpu_cname
4805 if test x$with_cpu = x
4807 echo "Don't know the target cpu" 1>&2
4810 target_cpu_default2="\\\"$with_cpu\\\""
4815 if test x$gas = xyes
4817 target_cpu_default2="MASK_GAS"
4821 fido*-*-* | m68k*-*-*)
4822 target_cpu_default2=$m68k_cpu_ident
4823 tmake_file="m68k/t-opts $tmake_file"
4824 if [ x"$m68k_arch_family" != x ]; then
4825 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4829 i[34567]86-*-darwin* | x86_64-*-darwin*)
4831 i[34567]86-*-linux* | x86_64-*-linux*)
4832 extra_objs="${extra_objs} cet.o"
4833 tmake_file="$tmake_file i386/t-linux i386/t-cet"
4835 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4836 tmake_file="$tmake_file i386/t-kfreebsd"
4839 tmake_file="$tmake_file i386/t-gnu"
4841 i[34567]86-*-msdosdjgpp*)
4842 tmake_file="${tmake_file} i386/t-djgpp"
4844 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4846 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4848 i[34567]86-*-mingw* | x86_64-*-mingw*)
4850 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4852 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4858 if test x$gnu_ld = xyes
4860 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4864 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4867 if test x$with_arch != x; then
4868 default_mips_arch=$with_arch
4870 if test x$with_abi != x; then
4871 default_mips_abi=$with_abi
4873 case ${default_mips_arch} in
4874 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4875 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4876 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4877 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4878 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4879 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4880 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
4881 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4882 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4883 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
4885 case ${default_mips_abi} in
4886 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4887 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4888 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4889 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4890 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4892 tmake_file="mips/t-mips $tmake_file"
4895 powerpc*-*-* | rs6000-*-*)
4896 # FIXME: The PowerPC port uses the value set at compile time,
4897 # although it's only cosmetic.
4898 if test "x$with_cpu" != x
4900 target_cpu_default2="\\\"$with_cpu\\\""
4902 out_file="${cpu_type}/${cpu_type}.c"
4903 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
4904 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
4905 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
4906 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
4909 sh[123456ble]*-*-* | sh-*-*)
4910 c_target_objs="${c_target_objs} sh-c.o"
4911 cxx_target_objs="${cxx_target_objs} sh-c.o"
4915 # Some standard aliases.
4920 xsparcv9 | xsparc64)
4925 if test x$with_tune = x ; then
4936 # The SPARC port checks this value at compile-time.
4937 target_cpu_default2="TARGET_CPU_$with_cpu"
4941 case "x$with_cpu" in
4944 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4945 target_cpu_default2="TARGET_CPU_$with_cpu"
4948 target_cpu_default2="TARGET_CPU_v850e1"
4953 target_cpu_default2="TARGET_CPU_$with_cpu"
4958 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"
4959 for option in $all_defaults
4961 eval "val=\$with_"`echo $option | sed s/-/_/g`
4962 if test -n "$val"; then
4963 case " $supported_defaults " in
4967 echo "This target does not support --with-$option." 2>&1
4968 echo "Valid --with options are: $supported_defaults" 2>&1
4975 t="{ \"$option\", \"$val\" }"
4977 t="${t}, { \"$option\", \"$val\" }"
4984 configure_default_options="{ { NULL, NULL} }"
4986 configure_default_options="{ ${t} }"
4989 if test "$target_cpu_default2" != ""
4991 if test "$target_cpu_default" != ""
4993 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4995 target_cpu_default=$target_cpu_default2
5000 i[34567]86-*-* | x86_64-*-*)
5001 if test x$enable_as_accelerator = xyes; then
5002 extra_programs="mkoffload\$(exeext)"