1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2018 Free Software Foundation, Inc.
4 #This file is part of GCC.
6 #GCC is free software; you can redistribute it and/or modify it under
7 #the terms of the GNU General Public License as published by the Free
8 #Software Foundation; either version 3, or (at your option) any later
11 #GCC is distributed in the hope that it will be useful, but WITHOUT
12 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 #FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 #You should have received a copy of the GNU General Public License
17 #along with GCC; see the file COPYING3. If not see
18 #<http://www.gnu.org/licenses/>.
20 # This is the GCC target-specific configuration file
21 # where a configuration type is mapped to different system-specific
22 # definitions and files. This is invoked by the autoconf-generated
23 # configure script. Putting it in a separate shell file lets us skip
24 # running autoconf when modifying target-specific information.
26 # When you change the cases in the OS or target switches, consider
27 # updating ../libgcc/config.host also.
29 # This file switches on the shell variable ${target}, and also uses the
30 # following shell variables:
32 # with_* Various variables as set by configure.
34 # enable_threads Either the name, yes or no depending on whether
35 # threads support was requested.
37 # default_use_cxa_atexit
38 # The default value for the $enable___cxa_atexit
39 # variable. enable___cxa_atexit needs to be set to
40 # "yes" for the correct operation of C++ destructors
41 # but it relies upon the presence of a non-standard C
42 # library function called __cxa_atexit.
43 # Since not all C libraries provide __cxa_atexit the
44 # default value of $default_use_cxa_atexit is set to
45 # "no" except for targets which are known to be OK.
47 # default_gnu_indirect_function
48 # The default value for the $enable_gnu_indirect_function
49 # variable. enable_gnu_indirect_function relies
50 # upon the presence of a non-standard gnu ifunc support
51 # in the assembler, linker and dynamic linker.
52 # Since not all libraries provide the dynamic linking
53 # support, the default value of
54 # $default_gnu_indirect_function is set to
55 # "no" except for targets which are known to be OK.
57 # gas_flag Either yes or no depending on whether GNU as was
60 # gnu_ld_flag Either yes or no depending on whether GNU ld was
63 # This file sets the following shell variables for use by the
64 # autoconf-generated configure script:
66 # cpu_type The name of the cpu, if different from the first
67 # chunk of the canonical target name.
69 # tm_defines List of target macros to define for all compilations.
71 # tm_file A list of target macro files, if different from
72 # "$cpu_type/$cpu_type.h". Usually it's constructed
73 # per target in a way like this:
74 # tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h"
75 # Note that the preferred order is:
76 # - specific target header "${cpu_type}/${cpu_type.h}"
77 # - generic headers like dbxelf.h elfos.h, etc.
78 # - specializing target headers like ${cpu_type.h}/elf.h
79 # This helps to keep OS specific stuff out of the CPU
80 # defining header ${cpu_type}/${cpu_type.h}.
82 # It is possible to include automatically-generated
83 # build-directory files by prefixing them with "./".
84 # All other files should relative to $srcdir/config.
86 # tm_p_file Location of file with declarations for functions
89 # 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"
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"
1017 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1018 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
1019 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1020 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1023 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1026 aarch64_multilibs="${with_multilib_list}"
1027 if test "$aarch64_multilibs" = "default"; then
1028 # TODO: turn on ILP32 multilib build after its support is mature.
1029 # aarch64_multilibs="lp64,ilp32"
1030 aarch64_multilibs="lp64"
1032 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1033 for aarch64_multilib in ${aarch64_multilibs}; do
1034 case ${aarch64_multilib} in
1036 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1039 echo "--with-multilib-list=${aarch64_multilib} not supported."
1043 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1046 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1047 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1048 extra_options="${extra_options} alpha/elf.opt"
1051 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1052 tmake_file="${tmake_file} alpha/t-alpha"
1053 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1057 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1058 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1059 tmake_file="${tmake_file} alpha/t-alpha"
1060 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1061 # default x-alpha is only appropriate for dec-osf.
1064 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1065 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1068 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1069 tmake_file="arc/t-multilib arc/t-arc"
1070 extra_gcc_objs="driver-arc.o"
1071 if test "x$with_cpu" != x; then
1072 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1074 if test x${with_endian} = x; then
1076 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1077 *) with_endian=little ;;
1080 case ${with_endian} in
1082 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1084 case ${with_endian} in
1085 big*) tm_file="arc/big.h ${tm_file}"
1089 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}"
1090 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1091 extra_gcc_objs="driver-arc.o"
1092 if test "x$with_cpu" != x; then
1093 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1095 if test x${with_endian} = x; then
1097 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1098 *) with_endian=little ;;
1101 case ${with_endian} in
1103 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1105 case ${with_endian} in
1106 big*) tm_file="arc/big.h ${tm_file}"
1109 arm-wrs-vxworks|arm-wrs-vxworks7)
1110 extra_options="${extra_options} arm/vxworks.opt"
1111 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1114 # VxWorks7 on ARM adheres to the ARM Base Platform ABI
1115 tmake_file="${tmake_file} arm/t-bpabi"
1116 tm_file="arm/bpabi.h ${tm_file}"
1117 # The BPABI long long divmod functions return a 128-bit value in
1119 need_64bit_hwint=yes
1120 default_use_cxa_atexit=yes
1124 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1125 target_cpu_cname="arm8"
1127 arm*-*-freebsd*) # ARM FreeBSD EABI
1128 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1131 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1134 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1135 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1138 target_cpu_cname="arm1176jzf-s"
1139 if test $fbsd_major -ge 11; then
1140 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1144 target_cpu_cname="generic-armv7-a"
1145 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1148 target_cpu_cname="arm9"
1151 with_tls=${with_tls:-gnu}
1154 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1155 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1156 tmake_file="${tmake_file} arm/t-arm"
1157 target_cpu_cname="strongarm"
1159 arm*-*-linux-*) # ARM GNU/Linux with ELF
1160 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"
1161 extra_options="${extra_options} linux-android.opt"
1164 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1167 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1168 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1169 # Generation of floating-point instructions requires at least ARMv5te.
1170 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1171 target_cpu_cname="arm10e"
1173 target_cpu_cname="arm10tdmi"
1175 # Define multilib configuration for arm-linux-androideabi.
1178 tmake_file="$tmake_file arm/t-linux-androideabi"
1181 # The EABI requires the use of __cxa_atexit.
1182 default_use_cxa_atexit=yes
1183 with_tls=${with_tls:-gnu}
1185 arm*-*-uclinux*eabi*) # ARM ucLinux
1186 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1187 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1188 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1189 target_cpu_cname="arm7tdmi"
1190 # The EABI requires the use of __cxa_atexit.
1191 default_use_cxa_atexit=yes
1194 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1195 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1196 tm_file="${tm_file} arm/aout.h arm/arm.h"
1197 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1198 target_cpu_cname="arm7tdmi"
1200 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1203 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1205 default_use_cxa_atexit=yes
1206 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1207 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1208 target_cpu_cname="arm7tdmi"
1211 tm_file="$tm_file newlib-stdint.h"
1212 tmake_file="${tmake_file} arm/t-bpabi"
1216 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1217 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1218 target_cpu_cname="generic-armv7-a"
1221 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1222 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1225 tm_file="${tm_file} arm/symbian.h"
1226 # We do not include t-bpabi for Symbian OS because the system
1227 # provides its own implementation of the BPABI functions.
1228 tmake_file="${tmake_file} arm/t-symbian"
1229 target_cpu_cname="arm10tdmi"
1232 tm_file="${tm_file} arm/aout.h arm/arm.h"
1235 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1236 if test x${with_avrlibc} != xno; then
1237 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1238 tm_defines="${tm_defines} WITH_AVRLIBC"
1240 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1242 extra_gcc_objs="driver-avr.o avr-devices.o"
1243 extra_objs="avr-devices.o avr-log.o"
1246 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1247 tmake_file=bfin/t-bfin-elf
1251 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1252 tmake_file=bfin/t-bfin-uclinux
1255 bfin*-linux-uclibc*)
1256 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"
1257 tmake_file="${tmake_file} bfin/t-bfin-linux"
1261 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1262 tmake_file="${tmake_file} bfin/t-rtems"
1265 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1270 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1271 tmake_file="${tmake_file} cr16/t-cr16 "
1274 crisv32-*-elf | crisv32-*-none)
1275 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1276 tmake_file="cris/t-cris"
1277 target_cpu_default=32
1279 extra_options="${extra_options} cris/elf.opt"
1282 cris-*-elf | cris-*-none)
1283 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1284 tmake_file="cris/t-cris cris/t-elfmulti"
1286 extra_options="${extra_options} cris/elf.opt"
1289 crisv32-*-linux* | cris-*-linux*)
1290 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1291 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1292 extra_options="${extra_options} cris/linux.opt"
1295 target_cpu_default=10
1298 target_cpu_default=32
1303 if test x${with_endian} != x; then
1304 case ${with_endian} in
1307 echo "with_endian=${with_endian} not supported."
1312 if test x${with_float} != x; then
1313 case ${with_float} in
1316 "Unknown floating point type used in --with-float=$with_float"
1321 tm_file="csky/csky.h"
1322 md_file="csky/csky.md"
1323 out_file="csky/csky.c"
1324 tm_p_file="${tm_p_file} csky/csky-protos.h"
1325 extra_options="${extra_options} csky/csky_tables.opt"
1327 if test x${enable_tpf_debug} = xyes; then
1328 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1333 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1334 tmake_file="csky/t-csky csky/t-csky-elf"
1335 default_use_cxa_atexit=no
1338 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1339 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1341 if test "x${enable_multilib}" = xyes ; then
1342 tm_file="$tm_file ./sysroot-suffix.h"
1343 tmake_file="${tmake_file} csky/t-sysroot-suffix"
1348 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1349 # Force .init_array support. The configure script cannot always
1350 # automatically detect that GAS supports it, yet we require it.
1351 gcc_cv_initfini_array=yes
1353 csky-*-linux-uclibc*)
1354 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1355 default_use_cxa_atexit=no
1358 echo "Unknown target $target"
1364 echo "Unknown target $target"
1369 epiphany-*-elf | epiphany-*-rtems*)
1370 tm_file="${tm_file} dbxelf.h elfos.h"
1371 tmake_file="${tmake_file} epiphany/t-epiphany"
1374 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1377 tm_file="${tm_file} newlib-stdint.h"
1380 extra_options="${extra_options} fused-madd.opt"
1381 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1382 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1383 extra_headers="epiphany_intrinsics.h"
1386 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1389 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1390 tmake_file=frv/t-frv
1393 tm_file="dbxelf.h elfos.h ${tm_file} \
1394 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1395 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1400 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1401 tmake_file="${tmake_file} ft32/t-ft32"
1406 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1407 tmake_file="${tmake_file} moxie/t-moxie"
1412 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1413 tmake_file="${tmake_file} moxie/t-moxie"
1416 tmake_file="${tmake_file} moxie/t-moxie"
1417 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1422 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1423 tmake_file="${tmake_file} moxie/t-moxiebox"
1426 tmake_file="h8300/t-h8300"
1427 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1430 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1431 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1434 target_cpu_default="MASK_PA_11|MASK_PA_20"
1435 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1436 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1441 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1442 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1443 pa/pa32-regs.h pa/pa32-linux.h"
1444 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1445 d_target_objs="${d_target_objs} pa-d.o"
1448 target_cpu_default="MASK_PA_11"
1449 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1450 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1451 extra_options="${extra_options} openbsd.opt"
1455 hppa[12]*-*-hpux10*)
1457 hppa1.1-*-* | hppa2*-*-*)
1458 target_cpu_default="MASK_PA_11"
1461 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1462 pa/pa-hpux.h pa/pa-hpux10.h"
1463 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1466 tm_file="${tm_file} pa/pa-hpux1010.h"
1467 extra_options="${extra_options} pa/pa-hpux1010.opt"
1470 use_gcc_stdint=provide
1471 tm_file="${tm_file} hpux-stdint.h"
1472 tmake_file="t-slibgcc"
1473 case ${enable_threads} in
1475 if test x$have_pthread_h = xyes ; then
1476 tmake_file="${tmake_file} pa/t-dce-thr"
1480 tmake_file="${tmake_file} pa/t-dce-thr"
1485 if test "x$with_dwarf2" != x; then
1486 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1491 target_cpu_default="MASK_PA_11|MASK_PA_20"
1492 if test x$gnu_ld = xyes
1494 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1496 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1497 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1501 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1502 extra_options="${extra_options} pa/pa-hpux1111.opt"
1505 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1506 extra_options="${extra_options} pa/pa-hpux1131.opt"
1509 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1512 extra_options="${extra_options} pa/pa-hpux.opt \
1513 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1514 tmake_file="t-slibgcc"
1515 case x${enable_threads} in
1523 use_gcc_stdint=provide
1524 tm_file="${tm_file} hpux-stdint.h"
1528 tm_file="${tm_file} hpux-stdint.h"
1532 hppa[12]*-*-hpux11*)
1534 hppa1.1-*-* | hppa2*-*-*)
1535 target_cpu_default="MASK_PA_11"
1538 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1539 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1540 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1544 tm_file="${tm_file} pa/pa-hpux1111.h"
1545 extra_options="${extra_options} pa/pa-hpux1111.opt"
1548 tm_file="${tm_file} pa/pa-hpux1131.h"
1549 extra_options="${extra_options} pa/pa-hpux1131.opt"
1552 tmake_file="t-slibgcc"
1553 case x${enable_threads} in
1562 use_gcc_stdint=provide
1563 tm_file="${tm_file} hpux-stdint.h"
1567 tm_file="${tm_file} hpux-stdint.h"
1570 if test "x$with_dwarf2" != x; then
1571 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1575 i[34567]86-*-darwin*)
1577 # Baseline choice for a machine that allows m64 support.
1578 with_cpu=${with_cpu:-core2}
1579 tmake_file="${tmake_file} t-slibgcc"
1582 with_cpu=${with_cpu:-core2}
1583 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1584 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1586 i[34567]86-*-elfiamcu)
1587 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1590 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1593 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1596 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"
1599 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1602 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"
1603 tmake_file="i386/t-i386elf t-svr4"
1605 i[34567]86-*-dragonfly*)
1606 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1607 tmake_file="${tmake_file} i386/t-crtstuff"
1609 x86_64-*-dragonfly*)
1610 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"
1611 tmake_file="${tmake_file} i386/t-crtstuff"
1613 i[34567]86-*-freebsd*)
1614 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1617 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"
1619 i[34567]86-*-netbsdelf*)
1620 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1621 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1624 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1625 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1627 i[34567]86-*-openbsd*)
1628 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1629 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1630 extra_options="${extra_options} openbsd.opt"
1635 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1636 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1637 extra_options="${extra_options} openbsd.opt"
1641 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1642 # Intel 80386's running GNU/*
1643 # with ELF format using glibc 2
1644 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1646 i[34567]86-*-linux*)
1647 tm_file="${tm_file} linux.h linux-android.h"
1648 extra_options="${extra_options} linux-android.opt"
1649 if test x$enable_targets = xall; then
1650 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1651 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1652 tmake_file="${tmake_file} i386/t-linux64"
1653 x86_multilibs="${with_multilib_list}"
1654 if test "$x86_multilibs" = "default"; then
1655 x86_multilibs="m64,m32"
1657 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1658 for x86_multilib in ${x86_multilibs}; do
1659 case ${x86_multilib} in
1661 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1664 echo "--with-multilib-list=${x86_with_multilib} not supported."
1668 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1670 if test x$with_cpu = x; then
1671 if test x$with_cpu_64 = x; then
1675 case " $x86_cpus $x86_archs $x86_64_archs " in
1679 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1680 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1686 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1689 i[34567]86-*-kfreebsd*-gnu)
1690 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1692 i[34567]86-*-kopensolaris*-gnu)
1693 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1696 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1700 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1701 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1702 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1705 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1706 extra_options="${extra_options} linux-android.opt"
1708 x86_64-*-kfreebsd*-gnu)
1709 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1712 tmake_file="${tmake_file} i386/t-linux64"
1713 x86_multilibs="${with_multilib_list}"
1714 if test "$x86_multilibs" = "default"; then
1717 x86_multilibs="mx32"
1720 x86_multilibs="m64,m32"
1724 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1725 for x86_multilib in ${x86_multilibs}; do
1726 case ${x86_multilib} in
1728 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1731 echo "--with-multilib-list=${x86_with_multilib} not supported."
1735 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1737 i[34567]86-pc-msdosdjgpp*)
1738 xm_file=i386/xm-djgpp.h
1739 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1740 native_system_header_dir=/dev/env/DJDIR/include
1741 extra_options="${extra_options} i386/djgpp.opt"
1746 i[34567]86-*-lynxos*)
1748 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1749 tmake_file="${tmake_file} t-lynx"
1750 extra_options="${extra_options} lynx.opt"
1755 i[34567]86-*-nto-qnx*)
1756 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1757 extra_options="${extra_options} i386/nto.opt"
1761 i[34567]86-*-rtems*)
1762 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"
1763 tmake_file="${tmake_file} i386/t-rtems"
1765 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1766 # Set default arch_32 to pentium4, tune_32 to generic like the other
1767 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1768 with_arch_32=${with_arch_32:-pentium4}
1769 with_tune_32=${with_tune_32:-generic}
1770 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1771 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1772 tmake_file="$tmake_file i386/t-sol2"
1774 if test x$with_cpu = x; then
1775 if test x$with_cpu_64 = x; then
1779 case " $x86_cpus $x86_archs $x86_64_archs " in
1783 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1784 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1790 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
1791 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1795 tm_file="${tm_file} i386/x86-64.h"
1798 tm_file="${tm_file} vx-common.h"
1801 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1802 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1805 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1806 tmake_file="${tmake_file} i386/t-vxworks"
1810 i[34567]86-*-cygwin*)
1811 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"
1812 xm_file=i386/xm-cygwin.h
1813 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1814 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1815 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1816 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1817 c_target_objs="${c_target_objs} msformat-c.o"
1818 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1819 if test x$enable_threads = xyes; then
1822 default_use_cxa_atexit=yes
1827 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"
1828 xm_file=i386/xm-cygwin.h
1829 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1830 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1831 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1832 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1833 c_target_objs="${c_target_objs} msformat-c.o"
1834 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1835 if test x$enable_threads = xyes; then
1838 default_use_cxa_atexit=yes
1840 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1842 i[34567]86-*-mingw* | x86_64-*-mingw*)
1843 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1844 xm_file=i386/xm-mingw32.h
1845 c_target_objs="${c_target_objs} winnt-c.o"
1846 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1847 target_has_targetcm="yes"
1849 x86_64-*-* | *-w64-*)
1855 if test x$enable_threads = xposix ; then
1856 tm_file="${tm_file} i386/mingw-pthread.h"
1858 tm_file="${tm_file} i386/mingw32.h"
1859 # This makes the logic if mingw's or the w64 feature set has to be used
1862 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1863 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1864 tm_file="${tm_file} i386/mingw-w64.h"
1865 if test x$enable_targets = xall; then
1866 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1867 if test x$with_cpu = x; then
1868 if test x$with_cpu_64 = x; then
1872 case " $x86_cpus $x86_archs $x86_64_archs " in
1876 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1877 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1887 tm_file="${tm_file} i386/mingw-stdint.h"
1888 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1891 tmake_file="${tmake_file} i386/t-mingw-w64"
1894 tmake_file="${tmake_file} i386/t-mingw-w32"
1897 native_system_header_dir=/mingw/include
1898 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1899 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1902 extra_options="${extra_options} i386/mingw-w64.opt"
1907 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1908 c_target_objs="${c_target_objs} msformat-c.o"
1909 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1912 default_use_cxa_atexit=yes
1914 case ${enable_threads} in
1924 tm_file="${tm_file} i386/crtdll.h"
1926 *mingw32msv* | *mingw*)
1931 tmake_file="${tmake_file} i386/t-x86_64-elf"
1932 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
1935 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1936 tmake_file="ia64/t-ia64"
1937 target_cpu_default="0"
1938 if test x$gas = xyes
1940 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1942 if test x$gnu_ld = xyes
1944 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1948 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1949 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1950 tmake_file="${tmake_file} ia64/t-ia64"
1953 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1954 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1955 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1958 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1959 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1960 target_cpu_default="MASK_GNU_AS"
1961 case x$enable_threads in
1967 c_target_objs="ia64-c.o"
1968 cxx_target_objs="ia64-c.o"
1969 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1971 tm_file="${tm_file} hpux-stdint.h"
1974 tm_file="${tm_file} ia64/hpux-unix2003.h"
1979 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1980 tmake_file="${tmake_file} ia64/t-ia64"
1981 target_cpu_default="0"
1982 if test x$gas = xyes
1984 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1986 extra_options="${extra_options} ia64/vms.opt"
1989 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1990 out_file=iq2000/iq2000.c
1991 md_file=iq2000/iq2000.md
1994 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
1995 tmake_file="${tmake_file} lm32/t-lm32"
1998 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1999 tmake_file="${tmake_file} lm32/t-lm32"
2000 tmake_file="${tmake_file} lm32/t-rtems"
2003 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2004 tmake_file="${tmake_file} lm32/t-lm32"
2007 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2010 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2013 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
2014 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2016 if test x$enable_threads = xyes; then
2021 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
2022 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2024 if test x$enable_threads = xyes; then
2028 m68k-*-elf* | fido-*-elf*)
2031 # Check that $with_cpu makes sense.
2036 echo "Cannot accept --with-cpu=$with_cpu"
2043 default_m68k_cpu=68020
2047 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"
2048 tm_defines="${tm_defines} MOTOROLA=1"
2049 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2050 # Add multilibs for targets other than fido.
2055 tmake_file="$tmake_file m68k/t-mlibs"
2060 default_m68k_cpu=68020
2062 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2063 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2064 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2067 default_m68k_cpu=68020
2069 # needed to unconfuse gdb
2070 tm_defines="${tm_defines} OBSD_OLD_GAS"
2071 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
2072 extra_options="${extra_options} openbsd.opt"
2073 tmake_file="t-openbsd m68k/t-openbsd"
2074 # we need collect2 until our bug is fixed...
2077 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2078 # with uClibc, using the new GNU/Linux-style
2080 default_m68k_cpu=68020
2082 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"
2083 extra_options="${extra_options} m68k/uclinux.opt"
2084 tm_defines="${tm_defines} MOTOROLA=1"
2085 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2087 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2088 # with ELF format using glibc 2
2089 # aka the GNU/Linux C library 6.
2090 default_m68k_cpu=68020
2092 with_arch=${with_arch:-m68k}
2093 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2094 extra_options="${extra_options} m68k/ieee.opt"
2095 tm_defines="${tm_defines} MOTOROLA=1"
2096 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2099 default_m68k_cpu=68020
2101 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2102 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"
2103 tm_defines="${tm_defines} MOTOROLA=1"
2106 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2107 tmake_file=mcore/t-mcore
2113 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2116 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2119 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2120 tm_file="${tm_file} glibc-stdint.h"
2121 c_target_objs="${c_target_objs} microblaze-c.o"
2122 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2123 tmake_file="${tmake_file} microblaze/t-microblaze"
2124 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2126 microblaze*-*-rtems*)
2129 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2132 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2135 tm_file="${tm_file} dbxelf.h"
2136 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2137 c_target_objs="${c_target_objs} microblaze-c.o"
2138 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2139 tmake_file="${tmake_file} microblaze/t-microblaze"
2140 tmake_file="${tmake_file} microblaze/t-rtems"
2145 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2148 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2151 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2152 c_target_objs="${c_target_objs} microblaze-c.o"
2153 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2154 tmake_file="${tmake_file} microblaze/t-microblaze"
2157 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2158 case "x${enable_multilib}" in
2160 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2161 *) echo "Unknown value for enable_multilib"; exit 1
2163 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2166 # Force .init_array support. The configure script cannot always
2167 # automatically detect that GAS supports it, yet we require it.
2168 gcc_cv_initfini_array=yes
2170 riscv*-*-elf* | riscv*-*-rtems*)
2171 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2174 tm_file="${tm_file} rtems.h riscv/rtems.h"
2175 tmake_file="${tmake_file} riscv/t-rtems"
2178 case "x${enable_multilib}" in
2180 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2181 *) echo "Unknown value for enable_multilib"; exit 1
2184 tmake_file="${tmake_file} riscv/t-riscv"
2187 # Force .init_array support. The configure script cannot always
2188 # automatically detect that GAS supports it, yet we require it.
2189 gcc_cv_initfini_array=yes
2192 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2193 tmake_file="${tmake_file} riscv/t-riscv"
2196 # Force .init_array support. The configure script cannot always
2197 # automatically detect that GAS supports it, yet we require it.
2198 gcc_cv_initfini_array=yes
2200 mips*-*-netbsd*) # NetBSD/mips, either endian.
2201 target_cpu_default="MASK_ABICALLS"
2202 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2203 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2206 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"
2207 extra_options="${extra_options} linux-android.opt"
2208 tmake_file="${tmake_file} mips/t-img-linux"
2209 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2210 with_arch_32="mips32r6"
2211 with_arch_64="mips64r6"
2216 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"
2217 extra_options="${extra_options} linux-android.opt"
2218 tmake_file="${tmake_file} mips/t-mti-linux"
2219 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2220 with_arch_32="mips32r2"
2221 with_arch_64="mips64r2"
2225 mips*-*-linux*) # Linux MIPS, either endian.
2226 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"
2227 extra_options="${extra_options} linux-android.opt"
2230 default_mips_arch=mips32r6
2233 default_mips_arch=mips32r2
2236 default_mips_arch=mips32
2238 mips64el-st-linux-gnu)
2239 default_mips_abi=n32
2240 tm_file="${tm_file} mips/st.h"
2241 tmake_file="${tmake_file} mips/t-st"
2242 enable_mips_multilibs="yes"
2244 mips64octeon*-*-linux*)
2245 default_mips_abi=n32
2246 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2247 target_cpu_default=MASK_SOFT_FLOAT_ABI
2248 enable_mips_multilibs="yes"
2250 mipsisa64r6*-*-linux*)
2251 default_mips_abi=n32
2252 default_mips_arch=mips64r6
2253 enable_mips_multilibs="yes"
2255 mipsisa64r2*-*-linux*)
2256 default_mips_abi=n32
2257 default_mips_arch=mips64r2
2258 enable_mips_multilibs="yes"
2260 mips64*-*-linux* | mipsisa64*-*-linux*)
2261 default_mips_abi=n32
2262 enable_mips_multilibs="yes"
2265 if test x$enable_targets = xall; then
2266 enable_mips_multilibs="yes"
2268 if test x$enable_mips_multilibs = xyes; then
2269 tmake_file="${tmake_file} mips/t-linux64"
2273 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2274 tmake_file="mips/t-mti-elf"
2275 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2276 with_arch_32="mips32r2"
2277 with_arch_64="mips64r2"
2280 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2281 tmake_file="mips/t-img-elf"
2282 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2283 with_arch_32="mips32r6"
2284 with_arch_64="mips64r6"
2287 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2288 tmake_file="mips/t-sde"
2289 extra_options="${extra_options} mips/sde.opt"
2290 case "${with_newlib}" in
2292 # newlib / libgloss.
2295 # MIPS toolkit libraries.
2296 tm_file="$tm_file mips/sdemtk.h"
2297 tmake_file="$tmake_file mips/t-sdemtk"
2298 case ${enable_threads} in
2300 thread_file='mipssde'
2307 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2310 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2313 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2316 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2319 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2322 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2326 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2327 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2328 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2329 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2330 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2331 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2332 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2333 tmake_file="mips/t-isa3264"
2336 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2339 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2342 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2345 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2348 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2351 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2355 mipsisa32*-*-elfoabi*)
2356 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2357 tm_file="${tm_file} mips/elfoabi.h"
2359 mipsisa64*-*-elfoabi*)
2360 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2361 tm_file="${tm_file} mips/elfoabi.h"
2364 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2368 mipsisa64sr71k-*-elf*)
2369 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2370 tmake_file=mips/t-sr71k
2371 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2373 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2374 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2375 tmake_file="mips/t-elf mips/t-sb1"
2376 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2378 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2379 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2380 tmake_file="mips/t-elf"
2382 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2383 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2384 tmake_file="mips/t-elf"
2385 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2387 mips64-*-elf* | mips64el-*-elf*)
2388 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2389 tmake_file="mips/t-elf"
2390 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2392 mips64vr-*-elf* | mips64vrel-*-elf*)
2393 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2394 tmake_file=mips/t-vr
2395 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2397 mips64orion-*-elf* | mips64orionel-*-elf*)
2398 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2399 tmake_file="mips/t-elf"
2400 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2403 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2404 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2407 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2408 tmake_file="${tmake_file} mips/t-vxworks"
2410 mipstx39-*-elf* | mipstx39el-*-elf*)
2411 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2412 tmake_file="mips/t-r3900"
2414 mmix-knuth-mmixware)
2415 tm_file="${tm_file} newlib-stdint.h"
2419 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2420 if test x$stabs = xyes
2422 tm_file="${tm_file} dbx.h"
2428 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2429 c_target_objs="msp430-c.o"
2430 cxx_target_objs="msp430-c.o"
2431 tmake_file="${tmake_file} msp430/t-msp430"
2432 extra_gcc_objs="driver-msp430.o"
2435 target_cpu_default="0"
2436 tm_defines="${tm_defines}"
2441 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2442 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2447 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2448 tmake_file="nds32/t-nds32 nds32/t-elf"
2451 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2452 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2456 # Handle --enable-default-relax setting.
2457 if test x${enable_default_relax} = xyes; then
2458 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2460 # Handle --with-ext-dsp
2461 if test x${with_ext_dsp} = xyes; then
2462 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2466 tm_file="elfos.h ${tm_file}"
2467 tmake_file="${tmake_file} nios2/t-nios2"
2470 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2473 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2474 extra_options="${extra_options} nios2/elf.opt"
2477 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2478 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2483 tm_file="${tm_file} newlib-stdint.h"
2485 tmake_file="nvptx/t-nvptx"
2486 if test x$enable_as_accelerator = xyes; then
2487 extra_programs="${extra_programs} mkoffload\$(exeext)"
2488 tm_file="${tm_file} nvptx/offload.h"
2492 tm_file="elfos.h ${tm_file}"
2493 tmake_file="${tmake_file} or1k/t-or1k"
2494 # Force .init_array support. The configure script cannot always
2495 # automatically detect that GAS supports it, yet we require it.
2496 gcc_cv_initfini_array=yes
2498 # Handle --with-multilib-list=...
2499 or1k_multilibs="${with_multilib_list}"
2500 if test "$or1k_multilibs" = "default"; then
2501 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2503 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2504 for or1k_multilib in ${or1k_multilibs}; do
2505 case ${or1k_multilib} in
2506 mcmov | msext | msfimm | \
2507 mhard-div | mhard-mul | \
2508 msoft-div | msoft-mul )
2509 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2512 echo "--with-multilib-list=${with_multilib_list} not supported."
2516 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2520 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2521 tm_file="${tm_file} or1k/linux.h"
2524 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2525 extra_options="${extra_options} or1k/elf.opt"
2528 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2529 tmake_file="${tmake_file} or1k/t-rtems"
2534 tm_file="${tm_file} newlib-stdint.h"
2537 # port not yet contributed
2538 #powerpc-*-openbsd*)
2539 # tmake_file="${tmake_file} rs6000/t-fprules"
2543 extra_options="${extra_options} rs6000/darwin.opt"
2545 *-darwin1[0-9]* | *-darwin[8-9]*)
2546 tmake_file="${tmake_file} rs6000/t-darwin8"
2547 tm_file="${tm_file} rs6000/darwin8.h"
2550 tm_file="${tm_file} rs6000/darwin7.h"
2555 tmake_file="${tmake_file} t-slibgcc"
2556 extra_headers=altivec.h
2558 powerpc64-*-darwin*)
2559 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2560 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2561 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2562 extra_headers=altivec.h
2564 powerpc*-*-freebsd*)
2565 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2566 extra_options="${extra_options} rs6000/sysv4.opt"
2567 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2570 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2571 tmake_file="${tmake_file} rs6000/t-freebsd64"
2572 extra_options="${extra_options} rs6000/linux64.opt"
2575 tm_file="${tm_file} rs6000/freebsd.h"
2580 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2581 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2582 tmake_file="${tmake_file} rs6000/t-netbsd"
2583 extra_options="${extra_options} rs6000/sysv4.opt"
2585 powerpc-*-eabisimaltivec*)
2586 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"
2587 extra_options="${extra_options} rs6000/sysv4.opt"
2588 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2592 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"
2593 extra_options="${extra_options} rs6000/sysv4.opt"
2594 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2598 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2599 extra_options="${extra_options} rs6000/sysv4.opt"
2600 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2602 powerpc-*-eabialtivec*)
2603 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"
2604 extra_options="${extra_options} rs6000/sysv4.opt"
2605 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2609 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"
2610 extra_options="${extra_options} rs6000/sysv4.opt"
2611 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2615 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"
2616 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2617 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2620 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2621 extra_options="${extra_options} rs6000/sysv4.opt"
2622 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2623 extra_objs="$extra_objs rs6000-linux.o"
2626 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2628 case ${target}:${with_cpu} in
2629 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2631 maybe_biarch=${cpu_is_64bit}
2632 case ${enable_targets} in
2633 *powerpc64*) maybe_biarch=yes ;;
2634 all) maybe_biarch=yes ;;
2636 case ${target}:${enable_targets}:${maybe_biarch} in
2637 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2638 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2639 | powerpcle-*:*powerpc64le*:yes)
2640 if test x$cpu_is_64bit = xyes; then
2641 tm_file="${tm_file} rs6000/default64.h"
2643 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2644 tmake_file="$tmake_file rs6000/t-linux64"
2647 tmake_file="$tmake_file rs6000/t-linux64le"
2648 case ${enable_targets} in
2649 all | *powerpc64-* | *powerpc-*)
2650 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2653 case ${enable_targets} in
2654 all | *powerpc64le-* | *powerpcle-*)
2655 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2658 extra_options="${extra_options} rs6000/linux64.opt"
2661 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2662 extra_options="${extra_options} rs6000/linux64.opt"
2663 tmake_file="${tmake_file} rs6000/t-linux"
2666 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2667 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2671 powerpc*-*-linux*ppc476*)
2672 tm_file="${tm_file} rs6000/476.h"
2673 extra_options="${extra_options} rs6000/476.opt" ;;
2674 powerpc*-*-linux*altivec*)
2675 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2679 enable_secureplt=yes ;;
2681 if test x${enable_secureplt} = xyes; then
2682 tm_file="rs6000/secureplt.h ${tm_file}"
2685 powerpc-wrs-vxworks*)
2686 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2687 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2688 extra_options="${extra_options} rs6000/sysv4.opt"
2689 extra_headers=ppc-asm.h
2692 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2693 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2696 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
2697 tmake_file="${tmake_file} rs6000/t-vxworksae"
2700 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
2706 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2707 tmake_file="t-lynx rs6000/t-lynx"
2708 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2714 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"
2715 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2716 extra_options="${extra_options} rs6000/sysv4.opt"
2718 powerpcle-*-eabisim*)
2719 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"
2720 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2721 extra_options="${extra_options} rs6000/sysv4.opt"
2725 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"
2726 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2727 extra_options="${extra_options} rs6000/sysv4.opt"
2730 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
2731 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2732 tmake_file="rs6000/t-aix52 t-slibgcc"
2733 extra_options="${extra_options} rs6000/aix64.opt"
2737 extra_headers=altivec.h
2738 default_use_cxa_atexit=yes
2740 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
2741 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
2742 tmake_file="rs6000/t-aix52 t-slibgcc"
2743 extra_options="${extra_options} rs6000/aix64.opt"
2747 extra_headers="altivec.h amo.h"
2748 default_use_cxa_atexit=yes
2750 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2751 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
2752 tmake_file="rs6000/t-aix52 t-slibgcc"
2753 extra_options="${extra_options} rs6000/aix64.opt"
2757 extra_headers="altivec.h amo.h"
2758 default_use_cxa_atexit=yes
2761 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2762 target_has_targetm_common=no
2763 c_target_objs="rl78-c.o"
2764 cxx_target_objs="rl78-c.o"
2765 tmake_file="${tmake_file} rl78/t-rl78"
2768 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2769 tmake_file="${tmake_file} rx/t-rx"
2772 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2773 c_target_objs="${c_target_objs} s390-c.o"
2774 cxx_target_objs="${cxx_target_objs} s390-c.o"
2775 if test x$enable_targets = xall; then
2776 tmake_file="${tmake_file} s390/t-linux64"
2778 tmake_file="${tmake_file} s390/t-s390"
2781 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2782 tm_p_file="linux-protos.h s390/s390-protos.h"
2783 c_target_objs="${c_target_objs} s390-c.o"
2784 cxx_target_objs="${cxx_target_objs} s390-c.o"
2785 md_file=s390/s390.md
2786 extra_modes=s390/s390-modes.def
2787 out_file=s390/s390.c
2788 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
2791 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2792 tm_p_file=s390/s390-protos.h
2793 c_target_objs="${c_target_objs} s390-c.o"
2794 cxx_target_objs="${cxx_target_objs} s390-c.o"
2795 md_file=s390/s390.md
2796 extra_modes=s390/s390-modes.def
2797 out_file=s390/s390.c
2799 extra_options="${extra_options} s390/tpf.opt"
2800 tmake_file="${tmake_file} s390/t-s390"
2802 sh-*-elf* | sh[12346l]*-*-elf* | \
2803 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2804 sh-*-netbsdelf* | shl*-*-netbsdelf*)
2805 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2806 if test x${with_endian} = x; then
2808 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2809 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2810 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2811 shl* | sh*-*-linux* | \
2812 sh-superh-elf) with_endian=little,big ;;
2813 sh[1234]*-*-*) with_endian=big ;;
2814 *) with_endian=big,little ;;
2817 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2818 # First word : the default endian.
2819 # Second word: the secondary endian (optional).
2820 case ${with_endian} in
2821 big) TM_ENDIAN_CONFIG=mb ;;
2822 little) TM_ENDIAN_CONFIG=ml ;;
2823 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2824 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2825 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2827 case ${with_endian} in
2828 little*) tm_file="sh/little.h ${tm_file}" ;;
2830 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2832 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2833 if test x$enable_fdpic = xyes; then
2834 tm_defines="$tm_defines FDPIC_DEFAULT=1"
2836 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2838 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
2839 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2842 sh*-superh-elf) if test x$with_libgloss != xno; then
2844 tm_file="${tm_file} sh/newlib.h"
2846 tm_file="${tm_file} sh/embed-elf.h"
2847 tm_file="${tm_file} sh/superh.h"
2848 extra_options="${extra_options} sh/superh.opt" ;;
2849 *) if test x$with_newlib = xyes \
2850 && test x$with_libgloss = xyes; then
2851 tm_file="${tm_file} sh/newlib.h"
2853 tm_file="${tm_file} sh/embed-elf.h" ;;
2859 tm_file="${tm_file} newlib-stdint.h"
2862 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2863 case `echo ${target} | sed 's/e[lb]-/-/'` in
2864 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2865 sh4a_single*) sh_cpu_target=sh4a-single ;;
2866 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2867 sh4al) sh_cpu_target=sh4al ;;
2868 sh4a*) sh_cpu_target=sh4a ;;
2869 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2870 sh4_single*) sh_cpu_target=sh4-single ;;
2871 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2872 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2873 sh3e*) sh_cpu_target=sh3e ;;
2874 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2875 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2876 sh2a_single*) sh_cpu_target=sh2a-single ;;
2877 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2878 sh2a*) sh_cpu_target=sh2a ;;
2879 sh2e*) sh_cpu_target=sh2e ;;
2880 sh2*) sh_cpu_target=sh2 ;;
2881 *) sh_cpu_target=sh1 ;;
2883 # did the user say --without-fp ?
2884 if test x$with_fp = xno; then
2885 case ${sh_cpu_target} in
2887 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2888 sh4*) sh_cpu_target=sh4-nofpu ;;
2889 sh3*) sh_cpu_target=sh3 ;;
2890 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2891 sh2*) sh_cpu_target=sh2 ;;
2892 *) echo --without-fp not available for $target: ignored
2894 tm_defines="$tm_defines STRICT_NOFPU=1"
2896 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2897 case $sh_cpu_default in
2898 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2899 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2900 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2901 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2902 "") sh_cpu_default=${sh_cpu_target} ;;
2903 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2905 sh_multilibs=${with_multilib_list}
2906 if test "$sh_multilibs" = "default" ; then
2908 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2909 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2910 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2911 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2912 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2914 if test x$with_fp = xno; then
2915 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`"
2918 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2919 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2920 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2921 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2922 for sh_multilib in ${sh_multilibs}; do
2923 case ${sh_multilib} in
2924 m1 | m2 | m2e | m3 | m3e | \
2925 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2926 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2927 m2a | m2a-single | m2a-single-only | m2a-nofpu)
2928 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2929 # It is passed to MULTIILIB_OPTIONS verbatim.
2930 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2931 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2933 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2934 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2935 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2937 echo "with_multilib_list=${sh_multilib} not supported."
2942 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2943 if test x${enable_incomplete_targets} = xyes ; then
2944 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
2946 tm_file="$tm_file ./sysroot-suffix.h"
2947 tmake_file="$tmake_file t-sysroot-suffix"
2950 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2951 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2954 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2955 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2958 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2961 tmake_file="sparc/t-sparc sparc/t-leon"
2964 tmake_file="sparc/t-sparc sparc/t-leon3"
2967 tmake_file="sparc/t-sparc sparc/t-elf"
2972 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2973 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2976 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2977 extra_options="${extra_options} sparc/long-double-switch.opt"
2980 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2983 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2986 tmake_file="${tmake_file} sparc/t-sparc"
2989 if test x$enable_targets = xall; then
2990 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2991 tmake_file="${tmake_file} sparc/t-linux64"
2993 tm_file="${tm_file} sparc/linux.h"
2994 tmake_file="${tmake_file} sparc/t-linux"
2998 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
2999 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3000 extra_options="${extra_options} sparc/long-double-switch.opt"
3001 tmake_file="${tmake_file} sparc/t-sparc"
3004 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3006 sparc64-*-* | sparcv9-*-*)
3007 tm_file="sparc/default64.h ${tm_file}"
3010 test x$with_cpu != x || with_cpu=v9
3013 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3016 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3017 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3020 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3021 extra_options="${extra_options}"
3022 tmake_file="${tmake_file} sparc/t-sparc"
3025 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3026 extra_options="${extra_options}"
3027 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3030 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"
3031 extra_options="${extra_options} sparc/long-double-switch.opt"
3032 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3034 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3035 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3036 extra_options="${extra_options} sparc/long-double-switch.opt"
3037 case "x$with_cpu" in
3039 x) with_cpu=ultrasparc ;;
3040 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3042 tmake_file="${tmake_file} sparc/t-sparc"
3045 tm_file="sparc/biarch64.h ${tm_file}"
3046 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3047 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3048 extra_options="${extra_options} sparc/long-double-switch.opt"
3049 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3052 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3053 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3054 extra_options="${extra_options} openbsd.opt"
3055 extra_options="${extra_options}"
3058 tmake_file="${tmake_file} sparc/t-sparc"
3061 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
3062 tmake_file="spu/t-spu-elf"
3063 native_system_header_dir=/include
3064 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
3065 extra_modes=spu/spu-modes.def
3066 c_target_objs="${c_target_objs} spu-c.o"
3067 cxx_target_objs="${cxx_target_objs} spu-c.o"
3070 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3071 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3072 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3076 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3077 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3078 tm_file="${tm_file} ./sysroot-suffix.h"
3079 tmake_file="t-sysroot-suffix t-slibgcc"
3080 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3084 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3085 tmake_file="${tmake_file} tilegx/t-tilegx"
3086 extra_objs="${extra_objs} mul-tables.o"
3087 c_target_objs="${c_target_objs} tilegx-c.o"
3088 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3089 extra_headers="feedback.h"
3092 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3097 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3098 tmake_file="${tmake_file} tilepro/t-tilepro"
3099 extra_objs="${extra_objs} mul-tables.o"
3100 c_target_objs="${c_target_objs} tilepro-c.o"
3101 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3102 extra_headers="feedback.h"
3105 target_cpu_default="TARGET_CPU_generic"
3106 tm_file="dbxelf.h elfos.h v850/v850.h"
3107 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3108 tmake_file="${tmake_file} v850/t-v850"
3109 tmake_file="${tmake_file} v850/t-rtems"
3111 c_target_objs="v850-c.o"
3112 cxx_target_objs="v850-c.o"
3117 target_cpu_default="TARGET_CPU_v850e3v5"
3120 target_cpu_default="TARGET_CPU_v850e2v3"
3123 target_cpu_default="TARGET_CPU_v850e2"
3125 v850e1-*-* | v850es-*-*)
3126 target_cpu_default="TARGET_CPU_v850e1"
3129 target_cpu_default="TARGET_CPU_v850e"
3132 target_cpu_default="TARGET_CPU_generic"
3135 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3136 if test x$stabs = xyes
3138 tm_file="${tm_file} dbx.h"
3141 c_target_objs="v850-c.o"
3142 cxx_target_objs="v850-c.o"
3146 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3147 extra_options="${extra_options} vax/elf.opt"
3150 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3151 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3152 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3155 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3156 extra_options="${extra_options} openbsd.opt"
3160 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3161 tmake_file="visium/t-visium visium/t-crtstuff"
3164 # For historical reasons, the target files omit the 'x'.
3165 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3166 tm_p_file=stormy16/stormy16-protos.h
3167 tm_d_file="elfos.h stormy16/stormy16.h"
3168 md_file=stormy16/stormy16.md
3169 out_file=stormy16/stormy16.c
3170 extra_options=stormy16/stormy16.opt
3171 tmake_file="stormy16/t-stormy16"
3174 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3175 extra_options="${extra_options} xtensa/elf.opt"
3178 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3179 tmake_file="${tmake_file} xtensa/t-xtensa"
3182 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3183 tmake_file="${tmake_file} xtensa/t-xtensa"
3184 extra_options="${extra_options} xtensa/uclinux.opt"
3187 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3192 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3193 c_target_objs="m32c-pragma.o"
3194 cxx_target_objs="m32c-pragma.o"
3197 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3198 c_target_objs="m32c-pragma.o"
3199 cxx_target_objs="m32c-pragma.o"
3202 echo "*** Configuration ${target} not supported" 1>&2
3208 i[34567]86-*-linux* | x86_64-*-linux*)
3209 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3211 i[34567]86-*-* | x86_64-*-*)
3212 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3214 powerpc*-*-* | rs6000-*-*)
3215 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3221 tmake_file="${tmake_file} t-musl"
3224 tmake_file="${tmake_file} t-uclibc"
3228 # Assume the existence of indirect function support and allow the use of the
3229 # resolver attribute.
3231 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3235 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3236 default_gnu_indirect_function=yes
3242 # Build mkoffload tool
3244 *-intelmic-* | *-intelmicemul-*)
3245 tmake_file="${tmake_file} i386/t-intelmic"
3246 tm_file="${tm_file} i386/intelmic-offload.h"
3250 if [ "$target_has_targetcm" = "no" ]; then
3251 c_target_objs="$c_target_objs default-c.o"
3252 cxx_target_objs="$cxx_target_objs default-c.o"
3255 if [ "$common_out_file" = "" ]; then
3256 if [ "$target_has_targetm_common" = "yes" ]; then
3257 common_out_file="$cpu_type/$cpu_type-common.c"
3259 common_out_file="default-common.c"
3263 if [ "$target_has_targetdm" = "no" ]; then
3264 d_target_objs="$d_target_objs default-d.o"
3267 # Support for --with-cpu and related options (and a few unrelated options,
3271 echo "--with-cpu must be passed a value" 1>&2
3276 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3277 # to generic if there is no processor scheduler model for the target.
3280 arch_without_sse2=no
3281 arch_without_64bit=no
3284 if test $fbsd_major -ge 6; then
3290 arch_without_sse2=yes
3291 arch_without_64bit=yes
3296 arch_without_sse2=yes
3297 arch_without_64bit=yes
3302 arch_without_sse2=yes
3303 arch_without_64bit=yes
3308 arch_without_sse2=yes
3309 arch_without_64bit=yes
3312 arch_without_sse2=yes
3313 arch_without_64bit=yes
3314 case ${target_noncanonical} in
3327 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3337 i686-*-* | i786-*-*)
3338 case ${target_noncanonical} in
3371 amdfam10-*|barcelona-*)
3375 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3379 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3383 athlon_xp-*|athlon_mp-*|athlon_4-*)
3386 arch_without_sse2=yes
3387 arch_without_64bit=yes
3389 athlon_tbird-*|athlon-*)
3392 arch_without_sse2=yes
3397 arch_without_sse2=yes
3402 arch_without_sse2=yes
3404 pentium3-*|pentium3m-*)
3407 arch_without_sse2=yes
3409 pentium4-*|pentium4m-*)
3448 arch_without_sse2=yes
3453 arch_without_sse2=yes
3454 arch_without_64bit=yes
3459 case ${target_noncanonical} in
3492 amdfam10-*|barcelona-*)
3496 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3500 k8-*|opteron-*|athlon_64-*)
3532 # If there is no $with_cpu option, try to infer one from ${target}.
3533 # This block sets nothing except for with_cpu.
3534 if test x$with_cpu = x ; then
3536 i[34567]86-*-elfiamcu)
3539 i[34567]86-*-*|x86_64-*-*)
3557 frv-*-*linux* | frv400-*-*linux*)
3564 case "$with_arch" in
3566 with_cpu=${default_cf_cpu}
3569 with_cpu=m${default_m68k_cpu}
3585 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3594 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3596 i[34567]86-*-*|x86_64-*-*)
3597 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3598 if test x$with_cpu_32 = x; then
3599 with_cpu_32=$with_cpu
3601 if test x$with_cpu_64 = x; then
3602 with_cpu_64=$with_cpu
3610 # Support for --with-arch and related options (and a few unrelated options,
3612 case ${with_arch} in
3614 echo "--with-arch must be passed a value" 1>&2
3619 # If there is no $with_arch option, try to infer one from ${target}.
3620 # This block sets nothing except for with_arch.
3621 if test x$with_arch = x ; then
3623 i[34567]86-*-darwin*|x86_64-*-darwin*)
3624 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3625 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3627 i[34567]86-*-elfiamcu)
3631 # --with-fpmath sets the default ISA to SSE2, which is the same
3632 # ISA supported by Pentium 4.
3633 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3642 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3650 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3652 i[34567]86-*-darwin*|x86_64-*-darwin*)
3653 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3654 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3656 i[34567]86-*-*|x86_64-*-*)
3657 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3658 if test x$with_arch_32 = x; then
3659 with_arch_32=$with_arch
3661 if test x$with_arch_64 = x; then
3662 if test $arch_without_64bit = yes; then
3663 # Set the default 64bit arch to x86-64 if the default arch
3664 # doesn't support 64bit.
3667 with_arch_64=$with_arch
3671 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3672 # Set the default 64bit arch to x86-64 if the default arch
3673 # doesn't support 64bit and we need 64bit ISA.
3674 with_arch_32=$with_arch
3682 # Infer a default setting for --with-float.
3683 if test x$with_float = x; then
3685 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3686 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3687 # comply with IEEE 754.
3693 # Infer a default setting for --with-fpu.
3694 if test x$with_fpu = x; then
3696 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3697 # The R5900 FPU only supports single precision.
3703 # Support --with-fpmath.
3704 if test x$with_fpmath != x; then
3706 i[34567]86-*-* | x86_64-*-*)
3707 case ${with_fpmath} in
3709 tm_file="${tm_file} i386/avxmath.h"
3712 tm_file="${tm_file} i386/ssemath.h"
3715 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3721 echo "--with-fpmath isn't supported for $target." 1>&2
3727 # Similarly for --with-schedule.
3728 if test x$with_schedule = x; then
3731 # Override default PA8000 scheduling model.
3732 with_schedule=7100LC
3737 # Infer a default setting for --with-llsc.
3738 if test x$with_llsc = x; then
3741 # The kernel emulates LL and SC where necessary.
3744 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3745 # The R5900 doesn't support LL(D) and SC(D).
3751 # Validate and mark as valid any --with options supported
3752 # by this target. In order to use a particular --with option
3753 # you must list it in supported_defaults; validating the value
3754 # is optional. This case statement should set nothing besides
3755 # supported_defaults.
3760 supported_defaults="abi cpu arch"
3761 for which in cpu arch; do
3763 eval "val=\$with_$which"
3764 base_val=`echo $val | sed -e 's/\+.*//'`
3765 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
3767 if [ $which = arch ]; then
3768 def=aarch64-arches.def
3769 pattern=AARCH64_ARCH
3771 def=aarch64-cores.def
3772 pattern=AARCH64_CORE
3775 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3777 # Find the base CPU or ARCH id in aarch64-cores.def or
3778 # aarch64-arches.def
3779 if [ x"$base_val" = x ] \
3780 || grep "^$pattern(\"$base_val\"," \
3781 ${srcdir}/config/aarch64/$def \
3784 if [ $which = arch ]; then
3785 base_id=`grep "^$pattern(\"$base_val\"," \
3786 ${srcdir}/config/aarch64/$def | \
3787 sed -e 's/^[^,]*,[ ]*//' | \
3789 # Extract the architecture flags from aarch64-arches.def
3790 ext_mask=`grep "^$pattern(\"$base_val\"," \
3791 ${srcdir}/config/aarch64/$def | \
3795 base_id=`grep "^$pattern(\"$base_val\"," \
3796 ${srcdir}/config/aarch64/$def | \
3797 sed -e 's/^[^,]*,[ ]*//' | \
3801 while [ x"$ext_val" != x ]
3803 ext_val=`echo $ext_val | sed -e 's/\+//'`
3804 ext=`echo $ext_val | sed -e 's/\+.*//'`
3805 base_ext=`echo $ext | sed -e 's/^no//'`
3807 if [ x"$base_ext" = x ] \
3808 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3809 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3812 ext_canon=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3813 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3814 sed -e 's/^[^,]*,[ ]*//' | \
3816 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3817 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3818 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3819 sed -e 's/,.*$//' | \
3821 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3822 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3823 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*[^,]*,[ ]*//' | \
3824 sed -e 's/,.*$//' | \
3828 if [ $ext = $base_ext ]; then
3830 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
3832 # Removing extension
3833 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
3838 echo "Unknown extension used in --with-$which=$val" 1>&2
3841 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3844 ext_mask="(("$ext_mask") << 6)"
3845 if [ x"$base_id" != x ]; then
3846 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3850 echo "Unknown $which used in --with-$which=$val" 1>&2
3857 supported_defaults="cpu tune"
3858 for which in cpu tune; do
3859 eval "val=\$with_$which"
3862 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3863 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3867 echo "Unknown CPU used in --with-$which=$val" 1>&2
3875 supported_defaults="cpu"
3877 if [ x"$with_cpu" = x ] \
3878 || grep "^ARC_CPU ($with_cpu," \
3879 ${srcdir}/config/arc/arc-cpus.def \
3884 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3890 supported_defaults="cpu endian float"
3894 supported_defaults="arch cpu float tune fpu abi mode tls"
3895 for which in cpu tune arch; do
3896 # See if it matches a supported value
3897 eval "val=\$with_$which"
3898 if [ x"$val" != x ]; then
3899 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3900 -v cmd="chk$which $val" \
3901 ${srcdir}/config/arm/arm-cpus.in`
3902 if [ "$cpu" = "error" ]; then
3903 echo "Unknown target in --with-$which=$val" 1>&2
3907 eval "target_${which}_cname=$new_val"
3908 echo "For $val real value is $new_val"
3913 case "$with_float" in
3915 | soft | hard | softfp)
3919 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3924 # see if --with-fpu matches any of the supported FPUs
3925 if [ x"$with_fpu" != x ] ; then
3926 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3927 -v cmd="chkfpu $with_fpu" \
3928 ${srcdir}/config/arm/arm-cpus.in`
3929 if [ "$fpu" = "error"]
3931 echo "Unknown target in --with-$which=$val" 1>&2
3938 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3942 echo "Unknown ABI used in --with-abi=$with_abi"
3947 case "$with_mode" in
3953 echo "Unknown mode used in --with-mode=$with_mode"
3964 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3969 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3970 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3974 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3975 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3979 # Add extra multilibs
3980 if test "x$with_multilib_list" != x; then
3981 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3982 if test "x${arm_multilibs}" != xdefault ; then
3983 for arm_multilib in ${arm_multilibs}; do
3984 case ${arm_multilib} in
3986 tmake_profile_file="arm/t-multilib"
3989 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3996 if test "x${tmake_profile_file}" != x ; then
3997 # arm/t-aprofile and arm/t-rmprofile are only
3998 # designed to work without any with-cpu,
3999 # with-arch, with-mode, with-fpu or with-float
4001 if test "x$with_arch" != x \
4002 || test "x$with_cpu" != x \
4003 || test "x$with_float" != x \
4004 || test "x$with_fpu" != x \
4005 || test "x$with_mode" != x ; then
4006 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4009 # But pass the default value for float-abi
4010 # through to the multilib selector
4012 tmake_file="${tmake_file} ${tmake_profile_file}"
4013 TM_MULTILIB_CONFIG="$with_multilib_list"
4016 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4017 with_cpu=${with_cpu:-$target_cpu_cname}
4021 supported_defaults=cpu
4026 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4032 fido-*-* | m68k*-*-*)
4033 supported_defaults="arch cpu"
4034 case "$with_arch" in
4036 m68k_arch_family="$with_arch"
4039 echo "Invalid --with-arch=$with_arch" 1>&2
4044 # We always have a $with_cpu setting here.
4046 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4047 m68k_cpu_ident=$with_cpu
4050 m68k_cpu_ident=m68020
4051 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4054 m68k_cpu_ident=m68020
4055 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4058 # We need the C identifier rather than the string.
4059 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4060 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4061 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4062 ${srcdir}/config/m68k/m68k-devices.def`
4063 if [ x"$m68k_cpu_ident" = x ] ; then
4064 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4067 with_cpu="mcpu=$with_cpu"
4073 supported_defaults="arch schedule"
4075 case "$with_arch" in
4076 "" | 1.0 | 1.1 | 2.0)
4080 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4085 case "$with_schedule" in
4086 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4090 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4096 i[34567]86-*-* | x86_64-*-*)
4097 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4098 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4099 eval "val=\$with_$which"
4100 case " $x86_archs " in
4108 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4117 if test x${val} != x; then
4118 case " $x86_64_archs " in
4123 # Allow $x86_cpus --with-cpu=/--with-tune=
4126 case " $x86_cpus " in
4131 echo "Unknown CPU given in --with-$which=$val." 1>&2
4137 echo "Unknown CPU given in --with-$which=$val." 1>&2
4150 supported_defaults="abi arch tune"
4153 riscv-* | riscv32*) xlen=32 ;;
4154 riscv64*) xlen=64 ;;
4155 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4158 # Infer arch from --with-arch, --target, and --with-abi.
4159 case "${with_arch}" in
4160 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4164 # Infer XLEN, but otherwise assume GC.
4165 case "${with_abi}" in
4166 ilp32e) with_arch="rv32e" ;;
4167 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4168 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4169 *) with_arch="rv${xlen}gc" ;;
4173 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4178 # Make sure --with-abi is valid. If it was not specified,
4179 # pick a default based on the ISA, preferring soft-float
4180 # unless the D extension is present.
4181 case "${with_abi}" in
4182 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4185 case "${with_arch}" in
4186 rv32*d* | rv32g*) with_abi=ilp32d ;;
4187 rv32e*) with_abi=ilp32e ;;
4188 rv32*) with_abi=ilp32 ;;
4189 rv64*d* | rv64g*) with_abi=lp64d ;;
4190 rv64*) with_abi=lp64 ;;
4194 echo "--with-abi=${with_abi} is not supported" 1>&2
4199 # Make sure ABI and ISA are compatible.
4200 case "${with_abi},${with_arch}" in
4201 ilp32,rv32* | ilp32e,rv32e* \
4202 | ilp32f,rv32*f* | ilp32f,rv32g* \
4203 | ilp32d,rv32*d* | ilp32d,rv32g* \
4205 | lp64f,rv64*f* | lp64f,rv64g* \
4206 | lp64d,rv64*d* | lp64d,rv64g*)
4209 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4214 # Handle --with-multilib-list.
4215 if test "x${with_multilib_list}" != xdefault; then
4216 tm_file="${tm_file} riscv/withmultilib.h"
4217 tmake_file="${tmake_file} riscv/t-withmultilib"
4219 case ${with_multilib_list} in
4220 ilp32 | ilp32f | ilp32d \
4221 | lp64 | lp64f | lp64d )
4222 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4225 echo "--with-multilib-list=${with_multilib_list} not supported."
4229 # Define macros to select the default multilib.
4230 case ${with_arch} in
4232 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4235 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4238 echo "unsupported --with-arch for --with-multilib-list"
4243 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4246 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4249 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4252 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4255 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4258 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4261 echo "unsupported --with-abi for --with-multilib"
4268 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"
4270 case ${with_float} in
4275 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4281 "" | single | double)
4285 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4295 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4300 case ${with_fp_32} in
4305 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4310 case ${with_odd_spreg_32} in
4312 with_odd_spreg_32="odd-spreg"
4315 with_odd_spreg_32="no-odd-spreg"
4321 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4327 "" | 32 | o64 | n32 | 64 | eabi)
4331 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4336 case ${with_divide} in
4337 "" | breaks | traps)
4341 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4346 case ${with_llsc} in
4357 echo "Unknown llsc type used in --with-llsc" 1>&2
4362 case ${with_mips_plt} in
4367 with_mips_plt=no-plt
4372 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4377 case ${with_synci} in
4387 echo "Unknown synci type used in --with-synci" 1>&2
4392 case ${with_lxc1_sxc1} in
4394 with_lxc1_sxc1=lxc1-sxc1
4397 with_lxc1_sxc1=no-lxc1-sxc1
4402 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4407 case ${with_madd4} in
4417 echo "Unknown madd4 type used in --with-madd4" 1>&2
4424 supported_defaults="arch cpu nds32_lib float fpu_config"
4426 # process --with-arch
4427 case "${with_arch}" in
4429 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4433 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4436 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4439 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4443 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4448 case "${with_cpu}" in
4452 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4456 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4461 # process --with-nds32-lib
4462 case "${with_nds32_lib}" in
4464 # the default library is newlib
4465 with_nds32_lib=newlib
4466 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4470 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4474 # for the arch=v3f or arch=v3s under mculib toolchain,
4475 # we would like to set -fno-math-errno as default
4476 case "${with_arch}" in
4478 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4484 tm_defines="${tm_defines} TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0"
4489 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4494 # process --with-float
4495 case "${with_float}" in
4500 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4505 # process --with-config-fpu
4506 case "${with_config_fpu}" in
4511 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4519 supported_defaults="arch"
4520 case "$with_arch" in
4525 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4531 powerpc*-*-* | rs6000-*-*)
4532 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4534 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4535 eval "val=\$with_$which"
4537 default32 | default64)
4542 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4546 with_which="with_$which"
4550 tm_defines="${tm_defines} CONFIG_PPC405CR"
4551 eval "with_$which=405"
4553 "" | common | native \
4554 | power[3456789] | power5+ | power6x \
4555 | powerpc | powerpc64 | powerpc64le \
4557 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4558 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4559 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4560 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4561 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4565 echo "Unknown cpu used in --with-$which=$val." 1>&2
4572 "" | elfv1 | elfv2 )
4576 echo "Unknown ABI used in --with-abi=$with_abi"
4581 if test "x$with_advance_toolchain" != x; then
4582 if test -d "/opt/$with_advance_toolchain/." -a \
4583 -d "/opt/$with_advance_toolchain/bin/." -a \
4584 -d "/opt/$with_advance_toolchain/include/."; then
4586 tm_file="$tm_file ./advance-toolchain.h"
4587 (at="/opt/$with_advance_toolchain"
4588 echo "/* Use Advance Toolchain $at */"
4590 echo "#undef LINK_OS_EXTRA_SPEC32"
4591 echo "#define LINK_OS_EXTRA_SPEC32" \
4592 "\"%(link_os_new_dtags)" \
4593 "-rpath $prefix/lib -rpath $at/lib" \
4594 "-L $prefix/lib -L $at/lib\""
4596 echo "#undef LINK_OS_EXTRA_SPEC64"
4597 echo "#define LINK_OS_EXTRA_SPEC64" \
4598 "\"%(link_os_new_dtags)" \
4599 "-rpath $prefix/lib64 -rpath $at/lib64" \
4600 "-L $prefix/lib64 -L $at/lib64\""
4602 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4603 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4604 "\"--enable-new-dtags\""
4606 echo "#undef DYNAMIC_LINKER_PREFIX"
4607 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4609 echo "#undef MD_EXEC_PREFIX"
4610 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4612 echo "#undef MD_STARTFILE_PREFIX"
4613 echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \
4614 > advance-toolchain.h
4616 echo "Unknown advance-toolchain $with_advance_toolchain"
4621 # Set up the default long double format if the user changed it.
4622 if test x$with_long_double_format = xieee; then
4623 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
4625 elif test x$with_long_double_format = xibm; then
4626 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
4631 supported_defaults="arch mode tune"
4633 for which in arch tune; do
4634 eval "val=\$with_$which"
4636 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12)
4640 echo "Unknown cpu used in --with-$which=$val." 1>&2
4646 case ${with_mode} in
4651 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4657 sh[123456ble]*-*-* | sh-*-*)
4658 supported_defaults="cpu"
4659 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4660 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4663 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4665 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4668 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4669 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4670 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4671 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4677 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4679 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4680 eval "val=\$with_$which"
4682 "" | sparc | sparcv9 | sparc64 \
4684 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4685 | sparclite | f930 | f934 | sparclite86x \
4686 | sparclet | tsc701 \
4687 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4688 | niagara3 | niagara4 | niagara7 | m8)
4692 echo "Unknown cpu used in --with-$which=$val" 1>&2
4698 case ${with_float} in
4703 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4710 supported_defaults="arch tune"
4712 for which in arch tune; do
4713 eval "val=\$with_$which"
4715 "" | cell | celledp)
4719 echo "Unknown cpu used in --with-$which=$val." 1>&2
4727 supported_defaults="arch"
4729 case ${with_arch} in
4730 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4734 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4741 supported_defaults=cpu
4743 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4747 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4753 supported_defaults="cpu"
4757 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4764 # Targets for which there is at least one VxWorks port should include
4765 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
4766 # of markers from other files in the port, including the vxworks*.h files to
4767 # distinguish VxWorks variants such as VxWorks 7 or 64).
4770 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
4771 | sparc*-*-* | x86_64-*-*)
4772 tm_file="vxworks-dummy.h ${tm_file}"
4776 # Set some miscellaneous flags for particular targets.
4777 target_cpu_default2=
4780 if test x"$target_cpu_cname" != x
4782 target_cpu_default2=$target_cpu_cname
4787 if test x$with_cpu = x
4789 echo "Don't know the target cpu" 1>&2
4792 target_cpu_default2="\\\"$with_cpu\\\""
4797 if test x$gas = xyes
4799 target_cpu_default2="MASK_GAS"
4803 fido*-*-* | m68k*-*-*)
4804 target_cpu_default2=$m68k_cpu_ident
4805 tmake_file="m68k/t-opts $tmake_file"
4806 if [ x"$m68k_arch_family" != x ]; then
4807 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4811 i[34567]86-*-darwin* | x86_64-*-darwin*)
4813 i[34567]86-*-linux* | x86_64-*-linux*)
4814 extra_objs="${extra_objs} cet.o"
4815 tmake_file="$tmake_file i386/t-linux i386/t-cet"
4817 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4818 tmake_file="$tmake_file i386/t-kfreebsd"
4821 tmake_file="$tmake_file i386/t-gnu"
4823 i[34567]86-*-msdosdjgpp*)
4824 tmake_file="${tmake_file} i386/t-djgpp"
4826 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4828 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4830 i[34567]86-*-mingw* | x86_64-*-mingw*)
4832 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4834 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4840 if test x$gnu_ld = xyes
4842 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4846 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4849 if test x$with_arch != x; then
4850 default_mips_arch=$with_arch
4852 if test x$with_abi != x; then
4853 default_mips_abi=$with_abi
4855 case ${default_mips_arch} in
4856 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4857 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4858 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4859 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4860 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4861 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4862 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
4863 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4864 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4865 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
4867 case ${default_mips_abi} in
4868 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4869 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4870 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4871 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4872 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4874 tmake_file="mips/t-mips $tmake_file"
4877 powerpc*-*-* | rs6000-*-*)
4878 # FIXME: The PowerPC port uses the value set at compile time,
4879 # although it's only cosmetic.
4880 if test "x$with_cpu" != x
4882 target_cpu_default2="\\\"$with_cpu\\\""
4884 out_file="${cpu_type}/${cpu_type}.c"
4885 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
4886 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
4887 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
4888 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
4891 sh[123456ble]*-*-* | sh-*-*)
4892 c_target_objs="${c_target_objs} sh-c.o"
4893 cxx_target_objs="${cxx_target_objs} sh-c.o"
4897 # Some standard aliases.
4902 xsparcv9 | xsparc64)
4907 if test x$with_tune = x ; then
4918 # The SPARC port checks this value at compile-time.
4919 target_cpu_default2="TARGET_CPU_$with_cpu"
4923 case "x$with_cpu" in
4926 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4927 target_cpu_default2="TARGET_CPU_$with_cpu"
4930 target_cpu_default2="TARGET_CPU_v850e1"
4935 target_cpu_default2="TARGET_CPU_$with_cpu"
4940 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"
4941 for option in $all_defaults
4943 eval "val=\$with_"`echo $option | sed s/-/_/g`
4944 if test -n "$val"; then
4945 case " $supported_defaults " in
4949 echo "This target does not support --with-$option." 2>&1
4950 echo "Valid --with options are: $supported_defaults" 2>&1
4957 t="{ \"$option\", \"$val\" }"
4959 t="${t}, { \"$option\", \"$val\" }"
4966 configure_default_options="{ { NULL, NULL} }"
4968 configure_default_options="{ ${t} }"
4971 if test "$target_cpu_default2" != ""
4973 if test "$target_cpu_default" != ""
4975 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4977 target_cpu_default=$target_cpu_default2
4982 i[34567]86-*-* | x86_64-*-*)
4983 if test x$enable_as_accelerator = xyes; then
4984 extra_programs="mkoffload\$(exeext)"