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"
1015 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1018 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1019 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
1020 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1021 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1024 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1027 aarch64_multilibs="${with_multilib_list}"
1028 if test "$aarch64_multilibs" = "default"; then
1029 # TODO: turn on ILP32 multilib build after its support is mature.
1030 # aarch64_multilibs="lp64,ilp32"
1031 aarch64_multilibs="lp64"
1033 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1034 for aarch64_multilib in ${aarch64_multilibs}; do
1035 case ${aarch64_multilib} in
1037 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1040 echo "--with-multilib-list=${aarch64_multilib} not supported."
1044 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1047 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1048 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1049 extra_options="${extra_options} alpha/elf.opt"
1052 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1053 tmake_file="${tmake_file} alpha/t-alpha"
1054 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1058 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1059 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1060 tmake_file="${tmake_file} alpha/t-alpha"
1061 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1062 # default x-alpha is only appropriate for dec-osf.
1065 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1066 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1069 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1070 tmake_file="arc/t-multilib arc/t-arc"
1071 extra_gcc_objs="driver-arc.o"
1072 if test "x$with_cpu" != x; then
1073 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1075 if test x${with_endian} = x; then
1077 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1078 *) with_endian=little ;;
1081 case ${with_endian} in
1083 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1085 case ${with_endian} in
1086 big*) tm_file="arc/big.h ${tm_file}"
1090 tm_file="arc/arc-arch.h dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arc/linux.h ${tm_file}"
1091 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1092 extra_gcc_objs="driver-arc.o"
1093 if test "x$with_cpu" != x; then
1094 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1096 if test x${with_endian} = x; then
1098 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1099 *) with_endian=little ;;
1102 case ${with_endian} in
1104 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1106 case ${with_endian} in
1107 big*) tm_file="arc/big.h ${tm_file}"
1110 arm-wrs-vxworks|arm-wrs-vxworks7)
1111 extra_options="${extra_options} arm/vxworks.opt"
1112 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1115 # VxWorks7 on ARM adheres to the ARM Base Platform ABI
1116 tmake_file="${tmake_file} arm/t-bpabi"
1117 tm_file="arm/bpabi.h ${tm_file}"
1118 # The BPABI long long divmod functions return a 128-bit value in
1120 need_64bit_hwint=yes
1121 default_use_cxa_atexit=yes
1125 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1126 target_cpu_cname="arm8"
1128 arm*-*-freebsd*) # ARM FreeBSD EABI
1129 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1132 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1135 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1136 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1139 target_cpu_cname="arm1176jzf-s"
1140 if test $fbsd_major -ge 11; then
1141 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1145 target_cpu_cname="generic-armv7-a"
1146 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1149 target_cpu_cname="arm9"
1152 with_tls=${with_tls:-gnu}
1155 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1156 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1157 tmake_file="${tmake_file} arm/t-arm"
1158 target_cpu_cname="strongarm"
1160 arm*-*-linux-*) # ARM GNU/Linux with ELF
1161 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
1162 extra_options="${extra_options} linux-android.opt"
1165 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1168 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1169 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1170 # Generation of floating-point instructions requires at least ARMv5te.
1171 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1172 target_cpu_cname="arm10e"
1174 target_cpu_cname="arm10tdmi"
1176 # Define multilib configuration for arm-linux-androideabi.
1179 tmake_file="$tmake_file arm/t-linux-androideabi"
1182 # The EABI requires the use of __cxa_atexit.
1183 default_use_cxa_atexit=yes
1184 with_tls=${with_tls:-gnu}
1186 arm*-*-uclinux*eabi*) # ARM ucLinux
1187 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1188 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1189 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1190 target_cpu_cname="arm7tdmi"
1191 # The EABI requires the use of __cxa_atexit.
1192 default_use_cxa_atexit=yes
1195 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1196 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1197 tm_file="${tm_file} arm/aout.h arm/arm.h"
1198 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1199 target_cpu_cname="arm7tdmi"
1201 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1204 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1206 default_use_cxa_atexit=yes
1207 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1208 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1209 target_cpu_cname="arm7tdmi"
1212 tm_file="$tm_file newlib-stdint.h"
1213 tmake_file="${tmake_file} arm/t-bpabi"
1217 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1218 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1219 target_cpu_cname="generic-armv7-a"
1222 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1223 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1226 tm_file="${tm_file} arm/symbian.h"
1227 # We do not include t-bpabi for Symbian OS because the system
1228 # provides its own implementation of the BPABI functions.
1229 tmake_file="${tmake_file} arm/t-symbian"
1230 target_cpu_cname="arm10tdmi"
1233 tm_file="${tm_file} arm/aout.h arm/arm.h"
1236 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1237 if test x${with_avrlibc} != xno; then
1238 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1239 tm_defines="${tm_defines} WITH_AVRLIBC"
1241 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1243 extra_gcc_objs="driver-avr.o avr-devices.o"
1244 extra_objs="avr-devices.o avr-log.o"
1247 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1248 tmake_file=bfin/t-bfin-elf
1252 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1253 tmake_file=bfin/t-bfin-uclinux
1256 bfin*-linux-uclibc*)
1257 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/linux.h ./linux-sysroot-suffix.h"
1258 tmake_file="${tmake_file} bfin/t-bfin-linux"
1262 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1263 tmake_file="${tmake_file} bfin/t-rtems"
1266 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1271 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1272 tmake_file="${tmake_file} cr16/t-cr16 "
1275 crisv32-*-elf | crisv32-*-none)
1276 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1277 tmake_file="cris/t-cris"
1278 target_cpu_default=32
1280 extra_options="${extra_options} cris/elf.opt"
1283 cris-*-elf | cris-*-none)
1284 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1285 tmake_file="cris/t-cris cris/t-elfmulti"
1287 extra_options="${extra_options} cris/elf.opt"
1290 crisv32-*-linux* | cris-*-linux*)
1291 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1292 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1293 extra_options="${extra_options} cris/linux.opt"
1296 target_cpu_default=10
1299 target_cpu_default=32
1304 if test x${with_endian} != x; then
1305 case ${with_endian} in
1308 echo "with_endian=${with_endian} not supported."
1313 if test x${with_float} != x; then
1314 case ${with_float} in
1317 "Unknown floating point type used in --with-float=$with_float"
1322 tm_file="csky/csky.h"
1323 md_file="csky/csky.md"
1324 out_file="csky/csky.c"
1325 tm_p_file="${tm_p_file} csky/csky-protos.h"
1326 extra_options="${extra_options} csky/csky_tables.opt"
1328 if test x${enable_tpf_debug} = xyes; then
1329 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1334 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1335 tmake_file="csky/t-csky csky/t-csky-elf"
1336 default_use_cxa_atexit=no
1339 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1340 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1342 if test "x${enable_multilib}" = xyes ; then
1343 tm_file="$tm_file ./sysroot-suffix.h"
1344 tmake_file="${tmake_file} csky/t-sysroot-suffix"
1349 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1350 # Force .init_array support. The configure script cannot always
1351 # automatically detect that GAS supports it, yet we require it.
1352 gcc_cv_initfini_array=yes
1354 csky-*-linux-uclibc*)
1355 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1356 default_use_cxa_atexit=no
1359 echo "Unknown target $target"
1365 echo "Unknown target $target"
1370 epiphany-*-elf | epiphany-*-rtems*)
1371 tm_file="${tm_file} dbxelf.h elfos.h"
1372 tmake_file="${tmake_file} epiphany/t-epiphany"
1375 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1378 tm_file="${tm_file} newlib-stdint.h"
1381 extra_options="${extra_options} fused-madd.opt"
1382 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1383 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1384 extra_headers="epiphany_intrinsics.h"
1387 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1390 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1391 tmake_file=frv/t-frv
1394 tm_file="dbxelf.h elfos.h ${tm_file} \
1395 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1396 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1401 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1402 tmake_file="${tmake_file} ft32/t-ft32"
1407 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1408 tmake_file="${tmake_file} moxie/t-moxie"
1413 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1414 tmake_file="${tmake_file} moxie/t-moxie"
1417 tmake_file="${tmake_file} moxie/t-moxie"
1418 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1423 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1424 tmake_file="${tmake_file} moxie/t-moxiebox"
1427 tmake_file="h8300/t-h8300"
1428 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1431 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1432 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1435 target_cpu_default="MASK_PA_11|MASK_PA_20"
1436 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1437 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1442 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1443 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1444 pa/pa32-regs.h pa/pa32-linux.h"
1445 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1446 d_target_objs="${d_target_objs} pa-d.o"
1449 target_cpu_default="MASK_PA_11"
1450 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1451 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1452 extra_options="${extra_options} openbsd.opt"
1456 hppa[12]*-*-hpux10*)
1458 hppa1.1-*-* | hppa2*-*-*)
1459 target_cpu_default="MASK_PA_11"
1462 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1463 pa/pa-hpux.h pa/pa-hpux10.h"
1464 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1467 tm_file="${tm_file} pa/pa-hpux1010.h"
1468 extra_options="${extra_options} pa/pa-hpux1010.opt"
1471 use_gcc_stdint=provide
1472 tm_file="${tm_file} hpux-stdint.h"
1473 tmake_file="t-slibgcc"
1474 case ${enable_threads} in
1476 if test x$have_pthread_h = xyes ; then
1477 tmake_file="${tmake_file} pa/t-dce-thr"
1481 tmake_file="${tmake_file} pa/t-dce-thr"
1486 if test "x$with_dwarf2" != x; then
1487 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1492 target_cpu_default="MASK_PA_11|MASK_PA_20"
1493 if test x$gnu_ld = xyes
1495 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1497 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1498 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1502 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1503 extra_options="${extra_options} pa/pa-hpux1111.opt"
1506 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1507 extra_options="${extra_options} pa/pa-hpux1131.opt"
1510 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1513 extra_options="${extra_options} pa/pa-hpux.opt \
1514 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1515 tmake_file="t-slibgcc"
1516 case x${enable_threads} in
1524 use_gcc_stdint=provide
1525 tm_file="${tm_file} hpux-stdint.h"
1529 tm_file="${tm_file} hpux-stdint.h"
1533 hppa[12]*-*-hpux11*)
1535 hppa1.1-*-* | hppa2*-*-*)
1536 target_cpu_default="MASK_PA_11"
1539 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1540 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1541 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1545 tm_file="${tm_file} pa/pa-hpux1111.h"
1546 extra_options="${extra_options} pa/pa-hpux1111.opt"
1549 tm_file="${tm_file} pa/pa-hpux1131.h"
1550 extra_options="${extra_options} pa/pa-hpux1131.opt"
1553 tmake_file="t-slibgcc"
1554 case x${enable_threads} in
1563 use_gcc_stdint=provide
1564 tm_file="${tm_file} hpux-stdint.h"
1568 tm_file="${tm_file} hpux-stdint.h"
1571 if test "x$with_dwarf2" != x; then
1572 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1576 i[34567]86-*-darwin*)
1578 # Baseline choice for a machine that allows m64 support.
1579 with_cpu=${with_cpu:-core2}
1580 tmake_file="${tmake_file} t-slibgcc"
1583 with_cpu=${with_cpu:-core2}
1584 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1585 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1587 i[34567]86-*-elfiamcu)
1588 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1591 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1594 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1597 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"
1600 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1603 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"
1604 tmake_file="i386/t-i386elf t-svr4"
1606 i[34567]86-*-dragonfly*)
1607 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1608 tmake_file="${tmake_file} i386/t-crtstuff"
1610 x86_64-*-dragonfly*)
1611 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"
1612 tmake_file="${tmake_file} i386/t-crtstuff"
1614 i[34567]86-*-freebsd*)
1615 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1618 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"
1620 i[34567]86-*-netbsdelf*)
1621 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1622 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1625 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1626 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1628 i[34567]86-*-openbsd*)
1629 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1630 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1631 extra_options="${extra_options} openbsd.opt"
1636 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1637 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1638 extra_options="${extra_options} openbsd.opt"
1642 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1643 # Intel 80386's running GNU/*
1644 # with ELF format using glibc 2
1645 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1647 i[34567]86-*-linux*)
1648 tm_file="${tm_file} linux.h linux-android.h"
1649 extra_options="${extra_options} linux-android.opt"
1650 if test x$enable_targets = xall; then
1651 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1652 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1653 tmake_file="${tmake_file} i386/t-linux64"
1654 x86_multilibs="${with_multilib_list}"
1655 if test "$x86_multilibs" = "default"; then
1656 x86_multilibs="m64,m32"
1658 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1659 for x86_multilib in ${x86_multilibs}; do
1660 case ${x86_multilib} in
1662 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1665 echo "--with-multilib-list=${x86_with_multilib} not supported."
1669 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1671 if test x$with_cpu = x; then
1672 if test x$with_cpu_64 = x; then
1676 case " $x86_cpus $x86_archs $x86_64_archs " in
1680 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1681 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1687 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1690 i[34567]86-*-kfreebsd*-gnu)
1691 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1693 i[34567]86-*-kopensolaris*-gnu)
1694 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1697 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1701 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1702 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1703 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1706 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1707 extra_options="${extra_options} linux-android.opt"
1709 x86_64-*-kfreebsd*-gnu)
1710 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1713 tmake_file="${tmake_file} i386/t-linux64"
1714 x86_multilibs="${with_multilib_list}"
1715 if test "$x86_multilibs" = "default"; then
1718 x86_multilibs="mx32"
1721 x86_multilibs="m64,m32"
1725 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1726 for x86_multilib in ${x86_multilibs}; do
1727 case ${x86_multilib} in
1729 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1732 echo "--with-multilib-list=${x86_with_multilib} not supported."
1736 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1738 i[34567]86-pc-msdosdjgpp*)
1739 xm_file=i386/xm-djgpp.h
1740 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1741 native_system_header_dir=/dev/env/DJDIR/include
1742 extra_options="${extra_options} i386/djgpp.opt"
1747 i[34567]86-*-lynxos*)
1749 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1750 tmake_file="${tmake_file} t-lynx"
1751 extra_options="${extra_options} lynx.opt"
1756 i[34567]86-*-nto-qnx*)
1757 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1758 extra_options="${extra_options} i386/nto.opt"
1762 i[34567]86-*-rtems*)
1763 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"
1764 tmake_file="${tmake_file} i386/t-rtems"
1766 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1767 # Set default arch_32 to pentium4, tune_32 to generic like the other
1768 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1769 with_arch_32=${with_arch_32:-pentium4}
1770 with_tune_32=${with_tune_32:-generic}
1771 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1772 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1773 tmake_file="$tmake_file i386/t-sol2"
1775 if test x$with_cpu = x; then
1776 if test x$with_cpu_64 = x; then
1780 case " $x86_cpus $x86_archs $x86_64_archs " in
1784 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1785 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1791 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
1792 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1796 tm_file="${tm_file} i386/x86-64.h"
1799 tm_file="${tm_file} vx-common.h"
1802 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1803 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1806 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1807 tmake_file="${tmake_file} i386/t-vxworks"
1811 i[34567]86-*-cygwin*)
1812 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"
1813 xm_file=i386/xm-cygwin.h
1814 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1815 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1816 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1817 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1818 c_target_objs="${c_target_objs} msformat-c.o"
1819 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1820 if test x$enable_threads = xyes; then
1823 default_use_cxa_atexit=yes
1828 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"
1829 xm_file=i386/xm-cygwin.h
1830 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1831 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1832 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1833 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1834 c_target_objs="${c_target_objs} msformat-c.o"
1835 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1836 if test x$enable_threads = xyes; then
1839 default_use_cxa_atexit=yes
1841 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1843 i[34567]86-*-mingw* | x86_64-*-mingw*)
1844 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1845 xm_file=i386/xm-mingw32.h
1846 c_target_objs="${c_target_objs} winnt-c.o"
1847 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1848 target_has_targetcm="yes"
1850 x86_64-*-* | *-w64-*)
1856 if test x$enable_threads = xposix ; then
1857 tm_file="${tm_file} i386/mingw-pthread.h"
1859 tm_file="${tm_file} i386/mingw32.h"
1860 # This makes the logic if mingw's or the w64 feature set has to be used
1863 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1864 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1865 tm_file="${tm_file} i386/mingw-w64.h"
1866 if test x$enable_targets = xall; then
1867 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1868 if test x$with_cpu = x; then
1869 if test x$with_cpu_64 = x; then
1873 case " $x86_cpus $x86_archs $x86_64_archs " in
1877 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1878 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1888 tm_file="${tm_file} i386/mingw-stdint.h"
1889 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1892 tmake_file="${tmake_file} i386/t-mingw-w64"
1895 tmake_file="${tmake_file} i386/t-mingw-w32"
1898 native_system_header_dir=/mingw/include
1899 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1900 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1903 extra_options="${extra_options} i386/mingw-w64.opt"
1908 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1909 c_target_objs="${c_target_objs} msformat-c.o"
1910 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1913 default_use_cxa_atexit=yes
1915 case ${enable_threads} in
1925 tm_file="${tm_file} i386/crtdll.h"
1927 *mingw32msv* | *mingw*)
1932 tmake_file="${tmake_file} i386/t-x86_64-elf"
1933 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
1936 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1937 tmake_file="ia64/t-ia64"
1938 target_cpu_default="0"
1939 if test x$gas = xyes
1941 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1943 if test x$gnu_ld = xyes
1945 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1949 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1950 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1951 tmake_file="${tmake_file} ia64/t-ia64"
1954 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1955 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1956 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1959 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1960 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1961 target_cpu_default="MASK_GNU_AS"
1962 case x$enable_threads in
1968 c_target_objs="ia64-c.o"
1969 cxx_target_objs="ia64-c.o"
1970 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1972 tm_file="${tm_file} hpux-stdint.h"
1975 tm_file="${tm_file} ia64/hpux-unix2003.h"
1980 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1981 tmake_file="${tmake_file} ia64/t-ia64"
1982 target_cpu_default="0"
1983 if test x$gas = xyes
1985 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1987 extra_options="${extra_options} ia64/vms.opt"
1990 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1991 out_file=iq2000/iq2000.c
1992 md_file=iq2000/iq2000.md
1995 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
1996 tmake_file="${tmake_file} lm32/t-lm32"
1999 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2000 tmake_file="${tmake_file} lm32/t-lm32"
2001 tmake_file="${tmake_file} lm32/t-rtems"
2004 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2005 tmake_file="${tmake_file} lm32/t-lm32"
2008 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2011 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2014 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
2015 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2017 if test x$enable_threads = xyes; then
2022 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
2023 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2025 if test x$enable_threads = xyes; then
2029 m68k-*-elf* | fido-*-elf*)
2032 # Check that $with_cpu makes sense.
2037 echo "Cannot accept --with-cpu=$with_cpu"
2044 default_m68k_cpu=68020
2048 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"
2049 tm_defines="${tm_defines} MOTOROLA=1"
2050 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2051 # Add multilibs for targets other than fido.
2056 tmake_file="$tmake_file m68k/t-mlibs"
2061 default_m68k_cpu=68020
2063 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2064 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2065 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2068 default_m68k_cpu=68020
2070 # needed to unconfuse gdb
2071 tm_defines="${tm_defines} OBSD_OLD_GAS"
2072 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
2073 extra_options="${extra_options} openbsd.opt"
2074 tmake_file="t-openbsd m68k/t-openbsd"
2075 # we need collect2 until our bug is fixed...
2078 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2079 # with uClibc, using the new GNU/Linux-style
2081 default_m68k_cpu=68020
2083 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"
2084 extra_options="${extra_options} m68k/uclinux.opt"
2085 tm_defines="${tm_defines} MOTOROLA=1"
2086 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2088 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2089 # with ELF format using glibc 2
2090 # aka the GNU/Linux C library 6.
2091 default_m68k_cpu=68020
2093 with_arch=${with_arch:-m68k}
2094 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2095 extra_options="${extra_options} m68k/ieee.opt"
2096 tm_defines="${tm_defines} MOTOROLA=1"
2097 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2100 default_m68k_cpu=68020
2102 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2103 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"
2104 tm_defines="${tm_defines} MOTOROLA=1"
2107 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2108 tmake_file=mcore/t-mcore
2114 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2117 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2120 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2121 tm_file="${tm_file} glibc-stdint.h"
2122 c_target_objs="${c_target_objs} microblaze-c.o"
2123 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2124 tmake_file="${tmake_file} microblaze/t-microblaze"
2125 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2127 microblaze*-*-rtems*)
2130 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2133 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2136 tm_file="${tm_file} dbxelf.h"
2137 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2138 c_target_objs="${c_target_objs} microblaze-c.o"
2139 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2140 tmake_file="${tmake_file} microblaze/t-microblaze"
2141 tmake_file="${tmake_file} microblaze/t-rtems"
2146 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2149 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2152 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2153 c_target_objs="${c_target_objs} microblaze-c.o"
2154 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2155 tmake_file="${tmake_file} microblaze/t-microblaze"
2158 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2159 case "x${enable_multilib}" in
2161 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2162 *) echo "Unknown value for enable_multilib"; exit 1
2164 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2167 # Force .init_array support. The configure script cannot always
2168 # automatically detect that GAS supports it, yet we require it.
2169 gcc_cv_initfini_array=yes
2171 riscv*-*-elf* | riscv*-*-rtems*)
2172 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2175 tm_file="${tm_file} rtems.h riscv/rtems.h"
2176 tmake_file="${tmake_file} riscv/t-rtems"
2179 case "x${enable_multilib}" in
2181 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2182 *) echo "Unknown value for enable_multilib"; exit 1
2185 tmake_file="${tmake_file} riscv/t-riscv"
2188 # Force .init_array support. The configure script cannot always
2189 # automatically detect that GAS supports it, yet we require it.
2190 gcc_cv_initfini_array=yes
2193 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2194 tmake_file="${tmake_file} riscv/t-riscv"
2197 # Force .init_array support. The configure script cannot always
2198 # automatically detect that GAS supports it, yet we require it.
2199 gcc_cv_initfini_array=yes
2201 mips*-*-netbsd*) # NetBSD/mips, either endian.
2202 target_cpu_default="MASK_ABICALLS"
2203 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2204 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2207 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"
2208 extra_options="${extra_options} linux-android.opt"
2209 tmake_file="${tmake_file} mips/t-img-linux"
2210 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2211 with_arch_32="mips32r6"
2212 with_arch_64="mips64r6"
2217 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"
2218 extra_options="${extra_options} linux-android.opt"
2219 tmake_file="${tmake_file} mips/t-mti-linux"
2220 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2221 with_arch_32="mips32r2"
2222 with_arch_64="mips64r2"
2226 mips*-*-linux*) # Linux MIPS, either endian.
2227 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"
2228 extra_options="${extra_options} linux-android.opt"
2231 default_mips_arch=mips32r6
2234 default_mips_arch=mips32r2
2237 default_mips_arch=mips32
2239 mips64el-st-linux-gnu)
2240 default_mips_abi=n32
2241 tm_file="${tm_file} mips/st.h"
2242 tmake_file="${tmake_file} mips/t-st"
2243 enable_mips_multilibs="yes"
2245 mips64octeon*-*-linux*)
2246 default_mips_abi=n32
2247 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2248 target_cpu_default=MASK_SOFT_FLOAT_ABI
2249 enable_mips_multilibs="yes"
2251 mipsisa64r6*-*-linux*)
2252 default_mips_abi=n32
2253 default_mips_arch=mips64r6
2254 enable_mips_multilibs="yes"
2256 mipsisa64r2*-*-linux*)
2257 default_mips_abi=n32
2258 default_mips_arch=mips64r2
2259 enable_mips_multilibs="yes"
2261 mips64*-*-linux* | mipsisa64*-*-linux*)
2262 default_mips_abi=n32
2263 enable_mips_multilibs="yes"
2266 if test x$enable_targets = xall; then
2267 enable_mips_multilibs="yes"
2269 if test x$enable_mips_multilibs = xyes; then
2270 tmake_file="${tmake_file} mips/t-linux64"
2274 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2275 tmake_file="mips/t-mti-elf"
2276 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2277 with_arch_32="mips32r2"
2278 with_arch_64="mips64r2"
2281 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2282 tmake_file="mips/t-img-elf"
2283 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2284 with_arch_32="mips32r6"
2285 with_arch_64="mips64r6"
2288 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2289 tmake_file="mips/t-sde"
2290 extra_options="${extra_options} mips/sde.opt"
2291 case "${with_newlib}" in
2293 # newlib / libgloss.
2296 # MIPS toolkit libraries.
2297 tm_file="$tm_file mips/sdemtk.h"
2298 tmake_file="$tmake_file mips/t-sdemtk"
2299 case ${enable_threads} in
2301 thread_file='mipssde'
2308 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2311 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2314 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2317 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2320 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2323 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2327 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2328 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2329 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2330 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2331 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2332 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2333 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2334 tmake_file="mips/t-isa3264"
2337 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2340 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2343 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2346 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2349 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2352 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2356 mipsisa32*-*-elfoabi*)
2357 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2358 tm_file="${tm_file} mips/elfoabi.h"
2360 mipsisa64*-*-elfoabi*)
2361 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2362 tm_file="${tm_file} mips/elfoabi.h"
2365 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2369 mipsisa64sr71k-*-elf*)
2370 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2371 tmake_file=mips/t-sr71k
2372 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2374 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2375 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2376 tmake_file="mips/t-elf mips/t-sb1"
2377 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2379 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2380 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2381 tmake_file="mips/t-elf"
2383 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2384 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2385 tmake_file="mips/t-elf"
2386 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2388 mips64-*-elf* | mips64el-*-elf*)
2389 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2390 tmake_file="mips/t-elf"
2391 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2393 mips64vr-*-elf* | mips64vrel-*-elf*)
2394 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2395 tmake_file=mips/t-vr
2396 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2398 mips64orion-*-elf* | mips64orionel-*-elf*)
2399 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2400 tmake_file="mips/t-elf"
2401 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2404 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2405 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2408 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2409 tmake_file="${tmake_file} mips/t-vxworks"
2411 mipstx39-*-elf* | mipstx39el-*-elf*)
2412 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2413 tmake_file="mips/t-r3900"
2415 mmix-knuth-mmixware)
2416 tm_file="${tm_file} newlib-stdint.h"
2420 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2421 if test x$stabs = xyes
2423 tm_file="${tm_file} dbx.h"
2429 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2430 c_target_objs="msp430-c.o"
2431 cxx_target_objs="msp430-c.o"
2432 tmake_file="${tmake_file} msp430/t-msp430"
2433 extra_gcc_objs="driver-msp430.o"
2436 target_cpu_default="0"
2437 tm_defines="${tm_defines}"
2442 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2443 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2448 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2449 tmake_file="nds32/t-nds32 nds32/t-elf"
2452 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2453 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2457 # Handle --enable-default-relax setting.
2458 if test x${enable_default_relax} = xyes; then
2459 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2461 # Handle --with-ext-dsp
2462 if test x${with_ext_dsp} = xyes; then
2463 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2467 tm_file="elfos.h ${tm_file}"
2468 tmake_file="${tmake_file} nios2/t-nios2"
2471 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2474 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2475 extra_options="${extra_options} nios2/elf.opt"
2478 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2479 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2484 tm_file="${tm_file} newlib-stdint.h"
2486 tmake_file="nvptx/t-nvptx"
2487 if test x$enable_as_accelerator = xyes; then
2488 extra_programs="${extra_programs} mkoffload\$(exeext)"
2489 tm_file="${tm_file} nvptx/offload.h"
2493 tm_file="elfos.h ${tm_file}"
2494 tmake_file="${tmake_file} or1k/t-or1k"
2495 # Force .init_array support. The configure script cannot always
2496 # automatically detect that GAS supports it, yet we require it.
2497 gcc_cv_initfini_array=yes
2499 # Handle --with-multilib-list=...
2500 or1k_multilibs="${with_multilib_list}"
2501 if test "$or1k_multilibs" = "default"; then
2502 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2504 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2505 for or1k_multilib in ${or1k_multilibs}; do
2506 case ${or1k_multilib} in
2507 mcmov | msext | msfimm | \
2508 mhard-div | mhard-mul | \
2509 msoft-div | msoft-mul )
2510 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2513 echo "--with-multilib-list=${with_multilib_list} not supported."
2517 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2521 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2522 tm_file="${tm_file} or1k/linux.h"
2525 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2526 extra_options="${extra_options} or1k/elf.opt"
2529 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2530 tmake_file="${tmake_file} or1k/t-rtems"
2535 tm_file="${tm_file} newlib-stdint.h"
2538 # port not yet contributed
2539 #powerpc-*-openbsd*)
2540 # tmake_file="${tmake_file} rs6000/t-fprules"
2544 extra_options="${extra_options} rs6000/darwin.opt"
2546 *-darwin1[0-9]* | *-darwin[8-9]*)
2547 tmake_file="${tmake_file} rs6000/t-darwin8"
2548 tm_file="${tm_file} rs6000/darwin8.h"
2551 tm_file="${tm_file} rs6000/darwin7.h"
2556 tmake_file="${tmake_file} t-slibgcc"
2557 extra_headers=altivec.h
2559 powerpc64-*-darwin*)
2560 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2561 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2562 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2563 extra_headers=altivec.h
2565 powerpc*-*-freebsd*)
2566 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2567 extra_options="${extra_options} rs6000/sysv4.opt"
2568 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2571 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2572 tmake_file="${tmake_file} rs6000/t-freebsd64"
2573 extra_options="${extra_options} rs6000/linux64.opt"
2576 tm_file="${tm_file} rs6000/freebsd.h"
2581 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2582 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2583 tmake_file="${tmake_file} rs6000/t-netbsd"
2584 extra_options="${extra_options} rs6000/sysv4.opt"
2586 powerpc-*-eabisimaltivec*)
2587 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"
2588 extra_options="${extra_options} rs6000/sysv4.opt"
2589 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2593 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"
2594 extra_options="${extra_options} rs6000/sysv4.opt"
2595 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2599 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2600 extra_options="${extra_options} rs6000/sysv4.opt"
2601 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2603 powerpc-*-eabialtivec*)
2604 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"
2605 extra_options="${extra_options} rs6000/sysv4.opt"
2606 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2610 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"
2611 extra_options="${extra_options} rs6000/sysv4.opt"
2612 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2616 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"
2617 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2618 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2621 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2622 extra_options="${extra_options} rs6000/sysv4.opt"
2623 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2624 extra_objs="$extra_objs rs6000-linux.o"
2627 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2629 case ${target}:${with_cpu} in
2630 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2632 maybe_biarch=${cpu_is_64bit}
2633 case ${enable_targets} in
2634 *powerpc64*) maybe_biarch=yes ;;
2635 all) maybe_biarch=yes ;;
2637 case ${target}:${enable_targets}:${maybe_biarch} in
2638 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2639 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2640 | powerpcle-*:*powerpc64le*:yes)
2641 if test x$cpu_is_64bit = xyes; then
2642 tm_file="${tm_file} rs6000/default64.h"
2644 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2645 tmake_file="$tmake_file rs6000/t-linux64"
2648 tmake_file="$tmake_file rs6000/t-linux64le"
2649 case ${enable_targets} in
2650 all | *powerpc64-* | *powerpc-*)
2651 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2654 case ${enable_targets} in
2655 all | *powerpc64le-* | *powerpcle-*)
2656 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2659 extra_options="${extra_options} rs6000/linux64.opt"
2662 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2663 extra_options="${extra_options} rs6000/linux64.opt"
2664 tmake_file="${tmake_file} rs6000/t-linux"
2667 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2668 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2672 powerpc*-*-linux*ppc476*)
2673 tm_file="${tm_file} rs6000/476.h"
2674 extra_options="${extra_options} rs6000/476.opt" ;;
2675 powerpc*-*-linux*altivec*)
2676 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2680 enable_secureplt=yes ;;
2682 if test x${enable_secureplt} = xyes; then
2683 tm_file="rs6000/secureplt.h ${tm_file}"
2686 powerpc-wrs-vxworks*)
2687 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2688 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2689 extra_options="${extra_options} rs6000/sysv4.opt"
2690 extra_headers=ppc-asm.h
2693 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2694 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2697 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
2698 tmake_file="${tmake_file} rs6000/t-vxworksae"
2701 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
2707 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2708 tmake_file="t-lynx rs6000/t-lynx"
2709 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2715 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"
2716 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2717 extra_options="${extra_options} rs6000/sysv4.opt"
2719 powerpcle-*-eabisim*)
2720 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"
2721 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2722 extra_options="${extra_options} rs6000/sysv4.opt"
2726 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"
2727 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2728 extra_options="${extra_options} rs6000/sysv4.opt"
2731 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
2732 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2733 tmake_file="rs6000/t-aix52 t-slibgcc"
2734 extra_options="${extra_options} rs6000/aix64.opt"
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 default_use_cxa_atexit=yes
2749 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2750 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
2751 tmake_file="rs6000/t-aix52 t-slibgcc"
2752 extra_options="${extra_options} rs6000/aix64.opt"
2756 default_use_cxa_atexit=yes
2759 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2760 target_has_targetm_common=no
2761 c_target_objs="rl78-c.o"
2762 cxx_target_objs="rl78-c.o"
2763 tmake_file="${tmake_file} rl78/t-rl78"
2766 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2767 tmake_file="${tmake_file} rx/t-rx"
2770 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2771 c_target_objs="${c_target_objs} s390-c.o"
2772 cxx_target_objs="${cxx_target_objs} s390-c.o"
2773 if test x$enable_targets = xall; then
2774 tmake_file="${tmake_file} s390/t-linux64"
2776 tmake_file="${tmake_file} s390/t-s390"
2779 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2780 tm_p_file="linux-protos.h s390/s390-protos.h"
2781 c_target_objs="${c_target_objs} s390-c.o"
2782 cxx_target_objs="${cxx_target_objs} s390-c.o"
2783 md_file=s390/s390.md
2784 extra_modes=s390/s390-modes.def
2785 out_file=s390/s390.c
2786 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
2789 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2790 tm_p_file=s390/s390-protos.h
2791 c_target_objs="${c_target_objs} s390-c.o"
2792 cxx_target_objs="${cxx_target_objs} s390-c.o"
2793 md_file=s390/s390.md
2794 extra_modes=s390/s390-modes.def
2795 out_file=s390/s390.c
2797 extra_options="${extra_options} s390/tpf.opt"
2798 tmake_file="${tmake_file} s390/t-s390"
2800 sh-*-elf* | sh[12346l]*-*-elf* | \
2801 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2802 sh-*-netbsdelf* | shl*-*-netbsdelf*)
2803 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2804 if test x${with_endian} = x; then
2806 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2807 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2808 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2809 shl* | sh*-*-linux* | \
2810 sh-superh-elf) with_endian=little,big ;;
2811 sh[1234]*-*-*) with_endian=big ;;
2812 *) with_endian=big,little ;;
2815 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2816 # First word : the default endian.
2817 # Second word: the secondary endian (optional).
2818 case ${with_endian} in
2819 big) TM_ENDIAN_CONFIG=mb ;;
2820 little) TM_ENDIAN_CONFIG=ml ;;
2821 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2822 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2823 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2825 case ${with_endian} in
2826 little*) tm_file="sh/little.h ${tm_file}" ;;
2828 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2830 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2831 if test x$enable_fdpic = xyes; then
2832 tm_defines="$tm_defines FDPIC_DEFAULT=1"
2834 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2836 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
2837 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2840 sh*-superh-elf) if test x$with_libgloss != xno; then
2842 tm_file="${tm_file} sh/newlib.h"
2844 tm_file="${tm_file} sh/embed-elf.h"
2845 tm_file="${tm_file} sh/superh.h"
2846 extra_options="${extra_options} sh/superh.opt" ;;
2847 *) if test x$with_newlib = xyes \
2848 && test x$with_libgloss = xyes; then
2849 tm_file="${tm_file} sh/newlib.h"
2851 tm_file="${tm_file} sh/embed-elf.h" ;;
2857 tm_file="${tm_file} newlib-stdint.h"
2860 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2861 case `echo ${target} | sed 's/e[lb]-/-/'` in
2862 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2863 sh4a_single*) sh_cpu_target=sh4a-single ;;
2864 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2865 sh4al) sh_cpu_target=sh4al ;;
2866 sh4a*) sh_cpu_target=sh4a ;;
2867 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2868 sh4_single*) sh_cpu_target=sh4-single ;;
2869 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2870 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2871 sh3e*) sh_cpu_target=sh3e ;;
2872 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2873 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2874 sh2a_single*) sh_cpu_target=sh2a-single ;;
2875 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2876 sh2a*) sh_cpu_target=sh2a ;;
2877 sh2e*) sh_cpu_target=sh2e ;;
2878 sh2*) sh_cpu_target=sh2 ;;
2879 *) sh_cpu_target=sh1 ;;
2881 # did the user say --without-fp ?
2882 if test x$with_fp = xno; then
2883 case ${sh_cpu_target} in
2885 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2886 sh4*) sh_cpu_target=sh4-nofpu ;;
2887 sh3*) sh_cpu_target=sh3 ;;
2888 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2889 sh2*) sh_cpu_target=sh2 ;;
2890 *) echo --without-fp not available for $target: ignored
2892 tm_defines="$tm_defines STRICT_NOFPU=1"
2894 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2895 case $sh_cpu_default in
2896 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2897 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2898 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2899 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2900 "") sh_cpu_default=${sh_cpu_target} ;;
2901 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2903 sh_multilibs=${with_multilib_list}
2904 if test "$sh_multilibs" = "default" ; then
2906 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2907 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2908 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2909 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2910 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2912 if test x$with_fp = xno; then
2913 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`"
2916 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2917 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2918 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2919 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2920 for sh_multilib in ${sh_multilibs}; do
2921 case ${sh_multilib} in
2922 m1 | m2 | m2e | m3 | m3e | \
2923 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2924 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2925 m2a | m2a-single | m2a-single-only | m2a-nofpu)
2926 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2927 # It is passed to MULTIILIB_OPTIONS verbatim.
2928 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2929 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2931 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2932 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2933 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2935 echo "with_multilib_list=${sh_multilib} not supported."
2940 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2941 if test x${enable_incomplete_targets} = xyes ; then
2942 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
2944 tm_file="$tm_file ./sysroot-suffix.h"
2945 tmake_file="$tmake_file t-sysroot-suffix"
2948 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2949 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2952 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2953 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2956 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2959 tmake_file="sparc/t-sparc sparc/t-leon"
2962 tmake_file="sparc/t-sparc sparc/t-leon3"
2965 tmake_file="sparc/t-sparc sparc/t-elf"
2970 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2971 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2974 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2975 extra_options="${extra_options} sparc/long-double-switch.opt"
2978 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2981 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2984 tmake_file="${tmake_file} sparc/t-sparc"
2987 if test x$enable_targets = xall; then
2988 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2989 tmake_file="${tmake_file} sparc/t-linux64"
2991 tm_file="${tm_file} sparc/linux.h"
2992 tmake_file="${tmake_file} sparc/t-linux"
2996 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
2997 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2998 extra_options="${extra_options} sparc/long-double-switch.opt"
2999 tmake_file="${tmake_file} sparc/t-sparc"
3002 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3004 sparc64-*-* | sparcv9-*-*)
3005 tm_file="sparc/default64.h ${tm_file}"
3008 test x$with_cpu != x || with_cpu=v9
3011 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3014 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3015 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3018 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3019 extra_options="${extra_options}"
3020 tmake_file="${tmake_file} sparc/t-sparc"
3023 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3024 extra_options="${extra_options}"
3025 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3028 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"
3029 extra_options="${extra_options} sparc/long-double-switch.opt"
3030 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3032 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3033 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3034 extra_options="${extra_options} sparc/long-double-switch.opt"
3035 case "x$with_cpu" in
3037 x) with_cpu=ultrasparc ;;
3038 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3040 tmake_file="${tmake_file} sparc/t-sparc"
3043 tm_file="sparc/biarch64.h ${tm_file}"
3044 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3045 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3046 extra_options="${extra_options} sparc/long-double-switch.opt"
3047 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3050 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3051 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3052 extra_options="${extra_options} openbsd.opt"
3053 extra_options="${extra_options}"
3056 tmake_file="${tmake_file} sparc/t-sparc"
3059 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
3060 tmake_file="spu/t-spu-elf"
3061 native_system_header_dir=/include
3062 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
3063 extra_modes=spu/spu-modes.def
3064 c_target_objs="${c_target_objs} spu-c.o"
3065 cxx_target_objs="${cxx_target_objs} spu-c.o"
3068 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3069 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3070 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3074 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3075 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3076 tm_file="${tm_file} ./sysroot-suffix.h"
3077 tmake_file="t-sysroot-suffix t-slibgcc"
3078 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3082 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3083 tmake_file="${tmake_file} tilegx/t-tilegx"
3084 extra_objs="${extra_objs} mul-tables.o"
3085 c_target_objs="${c_target_objs} tilegx-c.o"
3086 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3087 extra_headers="feedback.h"
3090 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3095 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3096 tmake_file="${tmake_file} tilepro/t-tilepro"
3097 extra_objs="${extra_objs} mul-tables.o"
3098 c_target_objs="${c_target_objs} tilepro-c.o"
3099 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3100 extra_headers="feedback.h"
3103 target_cpu_default="TARGET_CPU_generic"
3104 tm_file="dbxelf.h elfos.h v850/v850.h"
3105 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3106 tmake_file="${tmake_file} v850/t-v850"
3107 tmake_file="${tmake_file} v850/t-rtems"
3109 c_target_objs="v850-c.o"
3110 cxx_target_objs="v850-c.o"
3115 target_cpu_default="TARGET_CPU_v850e3v5"
3118 target_cpu_default="TARGET_CPU_v850e2v3"
3121 target_cpu_default="TARGET_CPU_v850e2"
3123 v850e1-*-* | v850es-*-*)
3124 target_cpu_default="TARGET_CPU_v850e1"
3127 target_cpu_default="TARGET_CPU_v850e"
3130 target_cpu_default="TARGET_CPU_generic"
3133 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3134 if test x$stabs = xyes
3136 tm_file="${tm_file} dbx.h"
3139 c_target_objs="v850-c.o"
3140 cxx_target_objs="v850-c.o"
3144 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3145 extra_options="${extra_options} vax/elf.opt"
3148 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3149 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3150 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3153 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3154 extra_options="${extra_options} openbsd.opt"
3158 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3159 tmake_file="visium/t-visium visium/t-crtstuff"
3162 # For historical reasons, the target files omit the 'x'.
3163 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3164 tm_p_file=stormy16/stormy16-protos.h
3165 tm_d_file="elfos.h stormy16/stormy16.h"
3166 md_file=stormy16/stormy16.md
3167 out_file=stormy16/stormy16.c
3168 extra_options=stormy16/stormy16.opt
3169 tmake_file="stormy16/t-stormy16"
3172 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3173 extra_options="${extra_options} xtensa/elf.opt"
3176 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3177 tmake_file="${tmake_file} xtensa/t-xtensa"
3180 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3181 tmake_file="${tmake_file} xtensa/t-xtensa"
3182 extra_options="${extra_options} xtensa/uclinux.opt"
3185 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3190 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3191 c_target_objs="m32c-pragma.o"
3192 cxx_target_objs="m32c-pragma.o"
3195 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3196 c_target_objs="m32c-pragma.o"
3197 cxx_target_objs="m32c-pragma.o"
3200 echo "*** Configuration ${target} not supported" 1>&2
3206 i[34567]86-*-linux* | x86_64-*-linux*)
3207 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3209 i[34567]86-*-* | x86_64-*-*)
3210 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3212 powerpc*-*-* | rs6000-*-*)
3213 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3219 tmake_file="${tmake_file} t-musl"
3222 tmake_file="${tmake_file} t-uclibc"
3226 # Assume the existence of indirect function support and allow the use of the
3227 # resolver attribute.
3229 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3233 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3234 default_gnu_indirect_function=yes
3240 # Build mkoffload tool
3242 *-intelmic-* | *-intelmicemul-*)
3243 tmake_file="${tmake_file} i386/t-intelmic"
3244 tm_file="${tm_file} i386/intelmic-offload.h"
3248 if [ "$target_has_targetcm" = "no" ]; then
3249 c_target_objs="$c_target_objs default-c.o"
3250 cxx_target_objs="$cxx_target_objs default-c.o"
3253 if [ "$common_out_file" = "" ]; then
3254 if [ "$target_has_targetm_common" = "yes" ]; then
3255 common_out_file="$cpu_type/$cpu_type-common.c"
3257 common_out_file="default-common.c"
3261 if [ "$target_has_targetdm" = "no" ]; then
3262 d_target_objs="$d_target_objs default-d.o"
3265 # Support for --with-cpu and related options (and a few unrelated options,
3269 echo "--with-cpu must be passed a value" 1>&2
3274 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3275 # to generic if there is no processor scheduler model for the target.
3278 arch_without_sse2=no
3279 arch_without_64bit=no
3282 if test $fbsd_major -ge 6; then
3288 arch_without_sse2=yes
3289 arch_without_64bit=yes
3294 arch_without_sse2=yes
3295 arch_without_64bit=yes
3300 arch_without_sse2=yes
3301 arch_without_64bit=yes
3306 arch_without_sse2=yes
3307 arch_without_64bit=yes
3310 arch_without_sse2=yes
3311 arch_without_64bit=yes
3312 case ${target_noncanonical} in
3325 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3335 i686-*-* | i786-*-*)
3336 case ${target_noncanonical} in
3369 amdfam10-*|barcelona-*)
3373 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3377 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3381 athlon_xp-*|athlon_mp-*|athlon_4-*)
3384 arch_without_sse2=yes
3385 arch_without_64bit=yes
3387 athlon_tbird-*|athlon-*)
3390 arch_without_sse2=yes
3395 arch_without_sse2=yes
3400 arch_without_sse2=yes
3402 pentium3-*|pentium3m-*)
3405 arch_without_sse2=yes
3407 pentium4-*|pentium4m-*)
3446 arch_without_sse2=yes
3451 arch_without_sse2=yes
3452 arch_without_64bit=yes
3457 case ${target_noncanonical} in
3490 amdfam10-*|barcelona-*)
3494 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3498 k8-*|opteron-*|athlon_64-*)
3530 # If there is no $with_cpu option, try to infer one from ${target}.
3531 # This block sets nothing except for with_cpu.
3532 if test x$with_cpu = x ; then
3534 i[34567]86-*-elfiamcu)
3537 i[34567]86-*-*|x86_64-*-*)
3555 frv-*-*linux* | frv400-*-*linux*)
3562 case "$with_arch" in
3564 with_cpu=${default_cf_cpu}
3567 with_cpu=m${default_m68k_cpu}
3583 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3592 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3594 i[34567]86-*-*|x86_64-*-*)
3595 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3596 if test x$with_cpu_32 = x; then
3597 with_cpu_32=$with_cpu
3599 if test x$with_cpu_64 = x; then
3600 with_cpu_64=$with_cpu
3608 # Support for --with-arch and related options (and a few unrelated options,
3610 case ${with_arch} in
3612 echo "--with-arch must be passed a value" 1>&2
3617 # If there is no $with_arch option, try to infer one from ${target}.
3618 # This block sets nothing except for with_arch.
3619 if test x$with_arch = x ; then
3621 i[34567]86-*-darwin*|x86_64-*-darwin*)
3622 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3623 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3625 i[34567]86-*-elfiamcu)
3629 # --with-fpmath sets the default ISA to SSE2, which is the same
3630 # ISA supported by Pentium 4.
3631 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3640 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3648 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3650 i[34567]86-*-darwin*|x86_64-*-darwin*)
3651 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3652 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3654 i[34567]86-*-*|x86_64-*-*)
3655 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3656 if test x$with_arch_32 = x; then
3657 with_arch_32=$with_arch
3659 if test x$with_arch_64 = x; then
3660 if test $arch_without_64bit = yes; then
3661 # Set the default 64bit arch to x86-64 if the default arch
3662 # doesn't support 64bit.
3665 with_arch_64=$with_arch
3669 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3670 # Set the default 64bit arch to x86-64 if the default arch
3671 # doesn't support 64bit and we need 64bit ISA.
3672 with_arch_32=$with_arch
3680 # Infer a default setting for --with-float.
3681 if test x$with_float = x; then
3683 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3684 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3685 # comply with IEEE 754.
3691 # Infer a default setting for --with-fpu.
3692 if test x$with_fpu = x; then
3694 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3695 # The R5900 FPU only supports single precision.
3701 # Support --with-fpmath.
3702 if test x$with_fpmath != x; then
3704 i[34567]86-*-* | x86_64-*-*)
3705 case ${with_fpmath} in
3707 tm_file="${tm_file} i386/avxmath.h"
3710 tm_file="${tm_file} i386/ssemath.h"
3713 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3719 echo "--with-fpmath isn't supported for $target." 1>&2
3725 # Similarly for --with-schedule.
3726 if test x$with_schedule = x; then
3729 # Override default PA8000 scheduling model.
3730 with_schedule=7100LC
3735 # Infer a default setting for --with-llsc.
3736 if test x$with_llsc = x; then
3739 # The kernel emulates LL and SC where necessary.
3742 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3743 # The R5900 doesn't support LL(D) and SC(D).
3749 # Validate and mark as valid any --with options supported
3750 # by this target. In order to use a particular --with option
3751 # you must list it in supported_defaults; validating the value
3752 # is optional. This case statement should set nothing besides
3753 # supported_defaults.
3758 supported_defaults="abi cpu arch"
3759 for which in cpu arch; do
3761 eval "val=\$with_$which"
3762 base_val=`echo $val | sed -e 's/\+.*//'`
3763 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
3765 if [ $which = arch ]; then
3766 def=aarch64-arches.def
3767 pattern=AARCH64_ARCH
3769 def=aarch64-cores.def
3770 pattern=AARCH64_CORE
3773 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3775 # Find the base CPU or ARCH id in aarch64-cores.def or
3776 # aarch64-arches.def
3777 if [ x"$base_val" = x ] \
3778 || grep "^$pattern(\"$base_val\"," \
3779 ${srcdir}/config/aarch64/$def \
3782 if [ $which = arch ]; then
3783 base_id=`grep "^$pattern(\"$base_val\"," \
3784 ${srcdir}/config/aarch64/$def | \
3785 sed -e 's/^[^,]*,[ ]*//' | \
3787 # Extract the architecture flags from aarch64-arches.def
3788 ext_mask=`grep "^$pattern(\"$base_val\"," \
3789 ${srcdir}/config/aarch64/$def | \
3793 base_id=`grep "^$pattern(\"$base_val\"," \
3794 ${srcdir}/config/aarch64/$def | \
3795 sed -e 's/^[^,]*,[ ]*//' | \
3799 while [ x"$ext_val" != x ]
3801 ext_val=`echo $ext_val | sed -e 's/\+//'`
3802 ext=`echo $ext_val | sed -e 's/\+.*//'`
3803 base_ext=`echo $ext | sed -e 's/^no//'`
3805 if [ x"$base_ext" = x ] \
3806 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3807 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3810 ext_canon=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3811 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3812 sed -e 's/^[^,]*,[ ]*//' | \
3814 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3815 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3816 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3817 sed -e 's/,.*$//' | \
3819 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3820 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3821 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*[^,]*,[ ]*//' | \
3822 sed -e 's/,.*$//' | \
3826 if [ $ext = $base_ext ]; then
3828 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
3830 # Removing extension
3831 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
3836 echo "Unknown extension used in --with-$which=$val" 1>&2
3839 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3842 ext_mask="(("$ext_mask") << 6)"
3843 if [ x"$base_id" != x ]; then
3844 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3848 echo "Unknown $which used in --with-$which=$val" 1>&2
3855 supported_defaults="cpu tune"
3856 for which in cpu tune; do
3857 eval "val=\$with_$which"
3860 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3861 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3865 echo "Unknown CPU used in --with-$which=$val" 1>&2
3873 supported_defaults="cpu"
3875 if [ x"$with_cpu" = x ] \
3876 || grep "^ARC_CPU ($with_cpu," \
3877 ${srcdir}/config/arc/arc-cpus.def \
3882 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3888 supported_defaults="cpu endian float"
3892 supported_defaults="arch cpu float tune fpu abi mode tls"
3893 for which in cpu tune arch; do
3894 # See if it matches a supported value
3895 eval "val=\$with_$which"
3896 if [ x"$val" != x ]; then
3897 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3898 -v cmd="chk$which $val" \
3899 ${srcdir}/config/arm/arm-cpus.in`
3900 if [ "$cpu" = "error" ]; then
3901 echo "Unknown target in --with-$which=$val" 1>&2
3905 eval "target_${which}_cname=$new_val"
3906 echo "For $val real value is $new_val"
3911 case "$with_float" in
3913 | soft | hard | softfp)
3917 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3922 # see if --with-fpu matches any of the supported FPUs
3923 if [ x"$with_fpu" != x ] ; then
3924 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3925 -v cmd="chkfpu $with_fpu" \
3926 ${srcdir}/config/arm/arm-cpus.in`
3927 if [ "$fpu" = "error"]
3929 echo "Unknown target in --with-$which=$val" 1>&2
3936 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3940 echo "Unknown ABI used in --with-abi=$with_abi"
3945 case "$with_mode" in
3951 echo "Unknown mode used in --with-mode=$with_mode"
3962 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3967 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3968 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3972 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3973 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3977 # Add extra multilibs
3978 if test "x$with_multilib_list" != x; then
3979 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3980 if test "x${arm_multilibs}" != xdefault ; then
3981 for arm_multilib in ${arm_multilibs}; do
3982 case ${arm_multilib} in
3984 tmake_profile_file="arm/t-multilib"
3987 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3994 if test "x${tmake_profile_file}" != x ; then
3995 # arm/t-aprofile and arm/t-rmprofile are only
3996 # designed to work without any with-cpu,
3997 # with-arch, with-mode, with-fpu or with-float
3999 if test "x$with_arch" != x \
4000 || test "x$with_cpu" != x \
4001 || test "x$with_float" != x \
4002 || test "x$with_fpu" != x \
4003 || test "x$with_mode" != x ; then
4004 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4007 # But pass the default value for float-abi
4008 # through to the multilib selector
4010 tmake_file="${tmake_file} ${tmake_profile_file}"
4011 TM_MULTILIB_CONFIG="$with_multilib_list"
4014 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4015 with_cpu=${with_cpu:-$target_cpu_cname}
4019 supported_defaults=cpu
4024 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4030 fido-*-* | m68k*-*-*)
4031 supported_defaults="arch cpu"
4032 case "$with_arch" in
4034 m68k_arch_family="$with_arch"
4037 echo "Invalid --with-arch=$with_arch" 1>&2
4042 # We always have a $with_cpu setting here.
4044 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4045 m68k_cpu_ident=$with_cpu
4048 m68k_cpu_ident=m68020
4049 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4052 m68k_cpu_ident=m68020
4053 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4056 # We need the C identifier rather than the string.
4057 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4058 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4059 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4060 ${srcdir}/config/m68k/m68k-devices.def`
4061 if [ x"$m68k_cpu_ident" = x ] ; then
4062 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4065 with_cpu="mcpu=$with_cpu"
4071 supported_defaults="arch schedule"
4073 case "$with_arch" in
4074 "" | 1.0 | 1.1 | 2.0)
4078 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4083 case "$with_schedule" in
4084 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4088 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4094 i[34567]86-*-* | x86_64-*-*)
4095 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4096 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4097 eval "val=\$with_$which"
4098 case " $x86_archs " in
4106 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4115 if test x${val} != x; then
4116 case " $x86_64_archs " in
4121 # Allow $x86_cpus --with-cpu=/--with-tune=
4124 case " $x86_cpus " in
4129 echo "Unknown CPU given in --with-$which=$val." 1>&2
4135 echo "Unknown CPU given in --with-$which=$val." 1>&2
4148 supported_defaults="abi arch tune"
4151 riscv-* | riscv32*) xlen=32 ;;
4152 riscv64*) xlen=64 ;;
4153 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4156 # Infer arch from --with-arch, --target, and --with-abi.
4157 case "${with_arch}" in
4158 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4162 # Infer XLEN, but otherwise assume GC.
4163 case "${with_abi}" in
4164 ilp32e) with_arch="rv32e" ;;
4165 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4166 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4167 *) with_arch="rv${xlen}gc" ;;
4171 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4176 # Make sure --with-abi is valid. If it was not specified,
4177 # pick a default based on the ISA, preferring soft-float
4178 # unless the D extension is present.
4179 case "${with_abi}" in
4180 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4183 case "${with_arch}" in
4184 rv32*d* | rv32g*) with_abi=ilp32d ;;
4185 rv32e*) with_abi=ilp32e ;;
4186 rv32*) with_abi=ilp32 ;;
4187 rv64*d* | rv64g*) with_abi=lp64d ;;
4188 rv64*) with_abi=lp64 ;;
4192 echo "--with-abi=${with_abi} is not supported" 1>&2
4197 # Make sure ABI and ISA are compatible.
4198 case "${with_abi},${with_arch}" in
4199 ilp32,rv32* | ilp32e,rv32e* \
4200 | ilp32f,rv32*f* | ilp32f,rv32g* \
4201 | ilp32d,rv32*d* | ilp32d,rv32g* \
4203 | lp64f,rv64*f* | lp64f,rv64g* \
4204 | lp64d,rv64*d* | lp64d,rv64g*)
4207 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4212 # Handle --with-multilib-list.
4213 if test "x${with_multilib_list}" != xdefault; then
4214 tm_file="${tm_file} riscv/withmultilib.h"
4215 tmake_file="${tmake_file} riscv/t-withmultilib"
4217 case ${with_multilib_list} in
4218 ilp32 | ilp32f | ilp32d \
4219 | lp64 | lp64f | lp64d )
4220 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4223 echo "--with-multilib-list=${with_multilib_list} not supported."
4227 # Define macros to select the default multilib.
4228 case ${with_arch} in
4230 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4233 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4236 echo "unsupported --with-arch for --with-multilib-list"
4241 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4244 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4247 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4250 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4253 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4256 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4259 echo "unsupported --with-abi for --with-multilib"
4266 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"
4268 case ${with_float} in
4273 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4279 "" | single | double)
4283 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4293 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4298 case ${with_fp_32} in
4303 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4308 case ${with_odd_spreg_32} in
4310 with_odd_spreg_32="odd-spreg"
4313 with_odd_spreg_32="no-odd-spreg"
4319 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4325 "" | 32 | o64 | n32 | 64 | eabi)
4329 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4334 case ${with_divide} in
4335 "" | breaks | traps)
4339 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4344 case ${with_llsc} in
4355 echo "Unknown llsc type used in --with-llsc" 1>&2
4360 case ${with_mips_plt} in
4365 with_mips_plt=no-plt
4370 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4375 case ${with_synci} in
4385 echo "Unknown synci type used in --with-synci" 1>&2
4390 case ${with_lxc1_sxc1} in
4392 with_lxc1_sxc1=lxc1-sxc1
4395 with_lxc1_sxc1=no-lxc1-sxc1
4400 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4405 case ${with_madd4} in
4415 echo "Unknown madd4 type used in --with-madd4" 1>&2
4422 supported_defaults="arch cpu nds32_lib float fpu_config"
4424 # process --with-arch
4425 case "${with_arch}" in
4427 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4431 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4434 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4437 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4441 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4446 case "${with_cpu}" in
4450 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4454 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4459 # process --with-nds32-lib
4460 case "${with_nds32_lib}" in
4462 # the default library is newlib
4463 with_nds32_lib=newlib
4464 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4468 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4472 # for the arch=v3f or arch=v3s under mculib toolchain,
4473 # we would like to set -fno-math-errno as default
4474 case "${with_arch}" in
4476 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4482 tm_defines="${tm_defines} TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0"
4487 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4492 # process --with-float
4493 case "${with_float}" in
4498 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4503 # process --with-config-fpu
4504 case "${with_config_fpu}" in
4509 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4517 supported_defaults="arch"
4518 case "$with_arch" in
4523 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4529 powerpc*-*-* | rs6000-*-*)
4530 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4532 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4533 eval "val=\$with_$which"
4535 default32 | default64)
4540 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4544 with_which="with_$which"
4548 tm_defines="${tm_defines} CONFIG_PPC405CR"
4549 eval "with_$which=405"
4551 "" | common | native \
4552 | power[3456789] | power5+ | power6x \
4553 | powerpc | powerpc64 | powerpc64le \
4555 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4556 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4557 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4558 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4559 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4563 echo "Unknown cpu used in --with-$which=$val." 1>&2
4570 "" | elfv1 | elfv2 )
4574 echo "Unknown ABI used in --with-abi=$with_abi"
4579 if test "x$with_advance_toolchain" != x; then
4580 if test -d "/opt/$with_advance_toolchain/." -a \
4581 -d "/opt/$with_advance_toolchain/bin/." -a \
4582 -d "/opt/$with_advance_toolchain/include/."; then
4584 tm_file="$tm_file ./advance-toolchain.h"
4585 (at="/opt/$with_advance_toolchain"
4586 echo "/* Use Advance Toolchain $at */"
4588 echo "#undef LINK_OS_EXTRA_SPEC32"
4589 echo "#define LINK_OS_EXTRA_SPEC32" \
4590 "\"%(link_os_new_dtags)" \
4591 "-rpath $prefix/lib -rpath $at/lib" \
4592 "-L $prefix/lib -L $at/lib\""
4594 echo "#undef LINK_OS_EXTRA_SPEC64"
4595 echo "#define LINK_OS_EXTRA_SPEC64" \
4596 "\"%(link_os_new_dtags)" \
4597 "-rpath $prefix/lib64 -rpath $at/lib64" \
4598 "-L $prefix/lib64 -L $at/lib64\""
4600 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4601 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4602 "\"--enable-new-dtags\""
4604 echo "#undef DYNAMIC_LINKER_PREFIX"
4605 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4607 echo "#undef MD_EXEC_PREFIX"
4608 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4610 echo "#undef MD_STARTFILE_PREFIX"
4611 echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \
4612 > advance-toolchain.h
4614 echo "Unknown advance-toolchain $with_advance_toolchain"
4619 # Set up the default long double format if the user changed it.
4620 if test x$with_long_double_format = xieee; then
4621 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
4623 elif test x$with_long_double_format = xibm; then
4624 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
4629 supported_defaults="arch mode tune"
4631 for which in arch tune; do
4632 eval "val=\$with_$which"
4634 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12)
4638 echo "Unknown cpu used in --with-$which=$val." 1>&2
4644 case ${with_mode} in
4649 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4655 sh[123456ble]*-*-* | sh-*-*)
4656 supported_defaults="cpu"
4657 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4658 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4661 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4663 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4666 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4667 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4668 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4669 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4675 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4677 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4678 eval "val=\$with_$which"
4680 "" | sparc | sparcv9 | sparc64 \
4682 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4683 | sparclite | f930 | f934 | sparclite86x \
4684 | sparclet | tsc701 \
4685 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4686 | niagara3 | niagara4 | niagara7 | m8)
4690 echo "Unknown cpu used in --with-$which=$val" 1>&2
4696 case ${with_float} in
4701 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4708 supported_defaults="arch tune"
4710 for which in arch tune; do
4711 eval "val=\$with_$which"
4713 "" | cell | celledp)
4717 echo "Unknown cpu used in --with-$which=$val." 1>&2
4725 supported_defaults="arch"
4727 case ${with_arch} in
4728 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4732 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4739 supported_defaults=cpu
4741 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4745 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4751 supported_defaults="cpu"
4755 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4762 # Targets for which there is at least one VxWorks port should include
4763 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
4764 # of markers from other files in the port, including the vxworks*.h files to
4765 # distinguish VxWorks variants such as VxWorks 7 or 64).
4768 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
4769 | sparc*-*-* | x86_64-*-*)
4770 tm_file="vxworks-dummy.h ${tm_file}"
4774 # Set some miscellaneous flags for particular targets.
4775 target_cpu_default2=
4778 if test x"$target_cpu_cname" != x
4780 target_cpu_default2=$target_cpu_cname
4785 if test x$with_cpu = x
4787 echo "Don't know the target cpu" 1>&2
4790 target_cpu_default2="\\\"$with_cpu\\\""
4795 if test x$gas = xyes
4797 target_cpu_default2="MASK_GAS"
4801 fido*-*-* | m68k*-*-*)
4802 target_cpu_default2=$m68k_cpu_ident
4803 tmake_file="m68k/t-opts $tmake_file"
4804 if [ x"$m68k_arch_family" != x ]; then
4805 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4809 i[34567]86-*-darwin* | x86_64-*-darwin*)
4811 i[34567]86-*-linux* | x86_64-*-linux*)
4812 extra_objs="${extra_objs} cet.o"
4813 tmake_file="$tmake_file i386/t-linux i386/t-cet"
4815 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4816 tmake_file="$tmake_file i386/t-kfreebsd"
4819 tmake_file="$tmake_file i386/t-gnu"
4821 i[34567]86-*-msdosdjgpp*)
4822 tmake_file="${tmake_file} i386/t-djgpp"
4824 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4826 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4828 i[34567]86-*-mingw* | x86_64-*-mingw*)
4830 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4832 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4838 if test x$gnu_ld = xyes
4840 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4844 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4847 if test x$with_arch != x; then
4848 default_mips_arch=$with_arch
4850 if test x$with_abi != x; then
4851 default_mips_abi=$with_abi
4853 case ${default_mips_arch} in
4854 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4855 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4856 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4857 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4858 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4859 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4860 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
4861 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4862 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4863 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
4865 case ${default_mips_abi} in
4866 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4867 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4868 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4869 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4870 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4872 tmake_file="mips/t-mips $tmake_file"
4875 powerpc*-*-* | rs6000-*-*)
4876 # FIXME: The PowerPC port uses the value set at compile time,
4877 # although it's only cosmetic.
4878 if test "x$with_cpu" != x
4880 target_cpu_default2="\\\"$with_cpu\\\""
4882 out_file="${cpu_type}/${cpu_type}.c"
4883 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
4884 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
4885 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
4886 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
4889 sh[123456ble]*-*-* | sh-*-*)
4890 c_target_objs="${c_target_objs} sh-c.o"
4891 cxx_target_objs="${cxx_target_objs} sh-c.o"
4895 # Some standard aliases.
4900 xsparcv9 | xsparc64)
4905 if test x$with_tune = x ; then
4916 # The SPARC port checks this value at compile-time.
4917 target_cpu_default2="TARGET_CPU_$with_cpu"
4921 case "x$with_cpu" in
4924 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4925 target_cpu_default2="TARGET_CPU_$with_cpu"
4928 target_cpu_default2="TARGET_CPU_v850e1"
4933 target_cpu_default2="TARGET_CPU_$with_cpu"
4938 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"
4939 for option in $all_defaults
4941 eval "val=\$with_"`echo $option | sed s/-/_/g`
4942 if test -n "$val"; then
4943 case " $supported_defaults " in
4947 echo "This target does not support --with-$option." 2>&1
4948 echo "Valid --with options are: $supported_defaults" 2>&1
4955 t="{ \"$option\", \"$val\" }"
4957 t="${t}, { \"$option\", \"$val\" }"
4964 configure_default_options="{ { NULL, NULL} }"
4966 configure_default_options="{ ${t} }"
4969 if test "$target_cpu_default2" != ""
4971 if test "$target_cpu_default" != ""
4973 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4975 target_cpu_default=$target_cpu_default2
4980 i[34567]86-*-* | x86_64-*-*)
4981 if test x$enable_as_accelerator = xyes; then
4982 extra_programs="mkoffload\$(exeext)"