1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2019 Free Software Foundation, Inc.
4 #This file is part of GCC.
6 #GCC is free software; you can redistribute it and/or modify it under
7 #the terms of the GNU General Public License as published by the Free
8 #Software Foundation; either version 3, or (at your option) any later
11 #GCC is distributed in the hope that it will be useful, but WITHOUT
12 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 #FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 #You should have received a copy of the GNU General Public License
17 #along with GCC; see the file COPYING3. If not see
18 #<http://www.gnu.org/licenses/>.
20 # This is the GCC target-specific configuration file
21 # where a configuration type is mapped to different system-specific
22 # definitions and files. This is invoked by the autoconf-generated
23 # configure script. Putting it in a separate shell file lets us skip
24 # running autoconf when modifying target-specific information.
26 # When you change the cases in the OS or target switches, consider
27 # updating ../libgcc/config.host also.
29 # This file switches on the shell variable ${target}, and also uses the
30 # following shell variables:
32 # with_* Various variables as set by configure.
34 # enable_threads Either the name, yes or no depending on whether
35 # threads support was requested.
37 # default_use_cxa_atexit
38 # The default value for the $enable___cxa_atexit
39 # variable. enable___cxa_atexit needs to be set to
40 # "yes" for the correct operation of C++ destructors
41 # but it relies upon the presence of a non-standard C
42 # library function called __cxa_atexit.
43 # Since not all C libraries provide __cxa_atexit the
44 # default value of $default_use_cxa_atexit is set to
45 # "no" except for targets which are known to be OK.
47 # default_gnu_indirect_function
48 # The default value for the $enable_gnu_indirect_function
49 # variable. enable_gnu_indirect_function relies
50 # upon the presence of a non-standard gnu ifunc support
51 # in the assembler, linker and dynamic linker.
52 # Since not all libraries provide the dynamic linking
53 # support, the default value of
54 # $default_gnu_indirect_function is set to
55 # "no" except for targets which are known to be OK.
57 # gas_flag Either yes or no depending on whether GNU as was
60 # gnu_ld_flag Either yes or no depending on whether GNU ld was
63 # This file sets the following shell variables for use by the
64 # autoconf-generated configure script:
66 # cpu_type The name of the cpu, if different from the first
67 # chunk of the canonical target name.
69 # tm_defines List of target macros to define for all compilations.
71 # tm_file A list of target macro files, if different from
72 # "$cpu_type/$cpu_type.h". Usually it's constructed
73 # per target in a way like this:
74 # tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h"
75 # Note that the preferred order is:
76 # - specific target header "${cpu_type}/${cpu_type.h}"
77 # - generic headers like dbxelf.h elfos.h, etc.
78 # - specializing target headers like ${cpu_type.h}/elf.h
79 # This helps to keep OS specific stuff out of the CPU
80 # defining header ${cpu_type}/${cpu_type.h}.
82 # It is possible to include automatically-generated
83 # build-directory files by prefixing them with "./".
84 # All other files should relative to $srcdir/config.
86 # tm_p_file Location of file with declarations for functions
89 # tm_d_file A list of headers with definitions of target hook
90 # macros for the D compiler.
92 # out_file The name of the machine description C support
93 # file, if different from "$cpu_type/$cpu_type.c".
95 # common_out_file The name of the source file for code shared between
96 # the compiler proper and the driver.
98 # md_file The name of the machine-description file, if
99 # different from "$cpu_type/$cpu_type.md".
101 # tmake_file A list of machine-description-specific
102 # makefile-fragments, if different from
103 # "$cpu_type/t-$cpu_type".
105 # extra_modes The name of the file containing a list of extra
106 # machine modes, if necessary and different from
107 # "$cpu_type/$cpu_type-modes.def".
109 # extra_objs List of extra objects that should be linked into
110 # the compiler proper (cc1, cc1obj, cc1plus)
111 # depending on target.
113 # extra_gcc_objs List of extra objects that should be linked into
114 # the compiler driver (gcc) depending on target.
116 # extra_headers List of used header files from the directory
117 # config/${cpu_type}.
119 # user_headers_inc_next_pre
120 # List of header file names of internal gcc header
121 # files, which should be prefixed by an include_next.
122 # user_headers_inc_next_post
123 # List of header file names of internal gcc header
124 # files, which should be postfixed by an include_next.
125 # use_gcc_tgmath If set, add tgmath.h to the list of used header
128 # use_gcc_stdint If "wrap", install a version of stdint.h that
129 # wraps the system's copy for hosted compilations;
130 # if "provide", provide a version of systems without
131 # such a system header; otherwise "none", do not
132 # provide such a header at all.
134 # extra_programs List of extra executables compiled for this target
135 # machine, used when linking.
137 # extra_options List of target-dependent .opt files.
139 # c_target_objs List of extra target-dependent objects that be
140 # linked into the C compiler only.
142 # cxx_target_objs List of extra target-dependent objects that be
143 # linked into the C++ compiler only.
145 # d_target_objs List of extra target-dependent objects that be
146 # linked into the D compiler only.
148 # fortran_target_objs List of extra target-dependent objects that be
149 # linked into the fortran compiler only.
151 # target_gtfiles List of extra source files with type information.
153 # xm_defines List of macros to define when compiling for the
156 # xm_file List of files to include when compiling for the
159 # use_collect2 Set to yes or no, depending on whether collect2
162 # target_cpu_default Set to override the default target model.
164 # gdb_needs_out_file_path
165 # Set to yes if gdb needs a dir command with
166 # `dirname $out_file`.
168 # thread_file Set to control which thread package to use.
170 # gas Set to yes or no depending on whether the target
171 # system normally uses GNU as.
173 # configure_default_options
174 # Set to an initializer for configure_default_options
175 # in configargs.h, based on --with-cpu et cetera.
177 # native_system_header_dir
178 # Where system header files are found for this
179 # target. This defaults to /usr/include. If
180 # the --with-sysroot configure option or the
181 # --sysroot command line option is used this
182 # will be relative to the sysroot.
183 # target_type_format_char
184 # The default character to be used for formatting
186 # .type symbol_name, ${t_t_f_c}<property>
189 # The following variables are used in each case-construct to build up the
190 # outgoing variables:
192 # gnu_ld Set to yes or no depending on whether the target
193 # system normally uses GNU ld.
195 # target_has_targetcm Set to yes or no depending on whether the target
196 # has its own definition of targetcm.
198 # target_has_targetm_common Set to yes or no depending on whether the
199 # target has its own definition of targetm_common.
201 # target_has_targetdm Set to yes or no depending on whether the target
202 # has its own definition of targetdm.
208 user_headers_inc_next_pre=
209 user_headers_inc_next_post=
220 target_has_targetcm=no
221 target_has_targetm_common=yes
222 target_has_targetdm=no
225 # Set this to force installation and use of collect2.
227 # Set this to override the default target model.
229 # Set this if gdb needs a dir command with `dirname $out_file`
230 gdb_needs_out_file_path=
231 # Set this to control which thread package will be used.
233 # Reinitialize these from the flag values every loop pass, since some
234 # configure entries modify them.
236 gnu_ld="$gnu_ld_flag"
237 default_use_cxa_atexit=no
238 default_gnu_indirect_function=no
241 native_system_header_dir=/usr/include
242 target_type_format_char='@'
244 # Don't carry these over build->host->target. Please.
248 # Obsolete configurations.
252 if test "x$enable_obsolete" != xyes; then
253 echo "*** Configuration ${target} is obsolete." >&2
254 echo "*** Specify --enable-obsolete to build it anyway." >&2
255 echo "*** Support will be REMOVED in the next major release of GCC," >&2
256 echo "*** unless a maintainer comes forward." >&2
261 # Unsupported targets list. Do not put an entry in this list unless
262 # it would otherwise be caught by a more permissive pattern. The list
263 # should be in alphabetical order.
265 # Avoid special cases that are not obsolete
274 | i[34567]86-go32-* \
275 | i[34567]86-*-go32* \
276 | m68k-*-uclinuxoldabi* \
277 | mips64orion*-*-rtems* \
279 | powerpc*-*-linux*paired* \
281 | sparc-hal-solaris2* \
284 | *-*-freebsd[12] | *-*-freebsd[1234].* \
285 | *-*-freebsd*aout* \
293 | *-*-solaris2.[0-9] \
294 | *-*-solaris2.[0-9].* \
299 echo "*** Configuration ${target} not supported" 1>&2
304 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
305 # updated in each machine entry. Also set default extra_headers for some
308 cpu_type=`echo ${target} | sed 's/-.*$//'`
313 tmake_file=m32c/t-m32c
314 target_has_targetm_common=no
318 extra_headers="arm_fp16.h arm_neon.h arm_acle.h arm_sve.h"
319 c_target_objs="aarch64-c.o"
320 cxx_target_objs="aarch64-c.o"
321 d_target_objs="aarch64-d.o"
322 extra_objs="aarch64-builtins.o aarch-common.o aarch64-sve-builtins.o aarch64-sve-builtins-shapes.o aarch64-sve-builtins-base.o cortex-a57-fma-steering.o aarch64-speculation.o falkor-tag-collision-avoidance.o aarch64-bti-insert.o"
323 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c \$(srcdir)/config/aarch64/aarch64-sve-builtins.h \$(srcdir)/config/aarch64/aarch64-sve-builtins.cc"
324 target_has_targetm_common=yes
328 extra_options="${extra_options} g.opt"
339 c_target_objs="arc-c.o"
340 cxx_target_objs="arc-c.o"
341 extra_options="${extra_options} arc/arc-tables.opt g.opt"
342 extra_headers="arc-simd.h"
346 extra_objs="arm-builtins.o aarch-common.o"
347 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h"
348 target_type_format_char='%'
349 c_target_objs="arm-c.o"
350 cxx_target_objs="arm-c.o"
351 d_target_objs="arm-d.o"
352 extra_options="${extra_options} arm/arm-tables.opt"
353 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
357 c_target_objs="avr-c.o"
358 cxx_target_objs="avr-c.o"
370 extra_options="${extra_options} g.opt"
373 target_has_targetm_common=no
375 moxie*) cpu_type=moxie
376 target_has_targetm_common=no
380 extra_headers=math-68881.h
381 extra_options="${extra_options} m68k/m68k-tables.opt"
385 c_target_objs="i386-c.o"
386 cxx_target_objs="i386-c.o"
387 d_target_objs="i386-d.o"
388 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o i386-options.o i386-builtins.o i386-expand.o i386-features.o"
389 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
390 extra_options="${extra_options} fused-madd.opt"
391 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
392 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
393 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
394 immintrin.h x86intrin.h avxintrin.h xopintrin.h
395 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
396 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
397 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
398 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
399 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
400 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
401 shaintrin.h clflushoptintrin.h xsavecintrin.h
402 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
403 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
404 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
405 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
406 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
407 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
408 gfniintrin.h cet.h avx512vbmi2intrin.h
409 avx512vbmi2vlintrin.h avx512vnniintrin.h
410 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
411 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
412 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
413 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h avx512bf16intrin.h
414 enqcmdintrin.h avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h"
418 c_target_objs="i386-c.o"
419 cxx_target_objs="i386-c.o"
420 d_target_objs="i386-d.o"
421 extra_options="${extra_options} fused-madd.opt"
422 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o i386-options.o i386-builtins.o i386-expand.o i386-features.o"
423 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
424 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
425 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
426 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
427 immintrin.h x86intrin.h avxintrin.h xopintrin.h
428 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
429 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
430 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
431 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
432 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
433 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
434 shaintrin.h clflushoptintrin.h xsavecintrin.h
435 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
436 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
437 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
438 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
439 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
440 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
441 gfniintrin.h cet.h avx512vbmi2intrin.h
442 avx512vbmi2vlintrin.h avx512vnniintrin.h
443 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
444 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
445 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
446 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h avx512bf16intrin.h
447 enqcmdintrin.h avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h"
450 extra_headers=ia64intrin.h
451 extra_options="${extra_options} g.opt fused-madd.opt"
457 extra_options="${extra_options} g.opt"
461 extra_options="${extra_options} g.opt"
464 extra_headers=math-68881.h
465 extra_options="${extra_options} m68k/m68k-tables.opt"
469 extra_options="${extra_options} g.opt"
473 d_target_objs="mips-d.o"
474 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
475 extra_objs="frame-header-opt.o"
476 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
480 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
483 extra_options="${extra_options} nds32/nds32-linux.opt"
486 extra_options="${extra_options} nds32/nds32-elf.opt"
491 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"
495 extra_options="${extra_options} g.opt"
505 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o rs6000-call.o"
506 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
507 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
508 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
509 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
510 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
511 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
512 extra_headers="${extra_headers} amo.h"
514 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500|xfuture)
518 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
519 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
526 extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o"
527 d_target_objs="riscv-d.o"
530 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
531 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o rs6000-call.o"
532 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
536 c_target_objs="sparc-c.o"
537 cxx_target_objs="sparc-c.o"
538 d_target_objs="sparc-d.o"
539 extra_headers="visintrin.h"
543 d_target_objs="s390-d.o"
544 extra_options="${extra_options} fused-madd.opt"
545 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
547 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
548 sh[123456789lbe]*-*-* | sh-*-*)
550 extra_options="${extra_options} fused-madd.opt"
551 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
558 extra_headers="c6x_intrinsics.h"
559 extra_options="${extra_options} c6x/c6x-tables.opt"
562 extra_options="${extra_options} fused-madd.opt"
572 tm_file=${cpu_type}/${cpu_type}.h
573 tm_d_file=${cpu_type}/${cpu_type}.h
574 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
576 tm_p_file=${cpu_type}/${cpu_type}-protos.h
577 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
581 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
583 extra_modes=${cpu_type}/${cpu_type}-modes.def
585 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
587 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
592 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
595 if test "x$with_multilib_list" = xilp32; then
596 tm_file="aarch64/biarchilp32.h ${tm_file}"
598 tm_file="aarch64/biarchlp64.h ${tm_file}"
602 tm_file="aarch64/biarchilp32.h ${tm_file}"
605 tm_file="aarch64/biarchlp64.h ${tm_file}"
608 echo "Unknown ABI used in --with-abi=$with_abi"
613 if test "x$with_abi" != x; then
614 echo "This target does not support --with-abi."
621 if test "x$with_multilib_list" = xmx32; then
622 tm_file="i386/biarchx32.h ${tm_file}"
624 tm_file="i386/biarch64.h ${tm_file}"
628 tm_file="i386/biarch64.h ${tm_file}"
631 tm_file="i386/biarchx32.h ${tm_file}"
634 echo "Unknown ABI used in --with-abi=$with_abi"
639 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
643 # On a.out targets, we need to use collect2.
650 # Common C libraries.
651 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
653 # 32-bit x86 processors supported by --with-arch=. Each processor
654 # MUST be separated by exactly one space.
655 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
656 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
657 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
658 pentium4 pentium4m pentiumpro prescott lakemont"
660 # 64-bit x86 processors supported by --with-arch=. Each processor
661 # MUST be separated by exactly one space.
662 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
663 bdver3 bdver4 znver1 znver2 btver1 btver2 k8 k8-sse3 opteron \
664 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
665 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
666 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
667 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake x86-64 \
670 # Additional x86 processors supported by --with-cpu=. Each processor
671 # MUST be separated by exactly one space.
672 x86_cpus="generic intel"
674 # Common parts for widely ported systems.
677 tmake_file="t-darwin "
678 tm_file="${tm_file} darwin.h"
681 tm_file="${tm_file} darwin9.h"
684 tm_file="${tm_file} darwin9.h darwin10.h"
686 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
687 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
690 tm_file="${tm_file} ${cpu_type}/darwin.h"
691 tm_p_file="${tm_p_file} darwin-protos.h"
692 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.c"
693 extra_options="${extra_options} darwin.opt"
694 c_target_objs="${c_target_objs} darwin-c.o"
695 cxx_target_objs="${cxx_target_objs} darwin-c.o"
696 fortran_target_objs="darwin-f.o"
697 target_has_targetcm=yes
698 extra_objs="${extra_objs} darwin.o"
699 extra_gcc_objs="darwin-driver.o"
700 default_use_cxa_atexit=yes
702 case ${enable_threads} in
703 "" | yes | posix) thread_file='posix' ;;
709 tmake_file="t-slibgcc"
710 case ${enable_threads} in
715 # Let these non-posix thread selections fall through if requested
718 echo 'Unknown thread configuration for DragonFly BSD'
722 extra_options="$extra_options rpath.opt dragonfly.opt"
723 default_use_cxa_atexit=yes
727 # This is the generic ELF configuration of FreeBSD. Later
728 # machine-specific sections may refine and add to this
731 # Due to tm_file entry ordering issues that vary between cpu
732 # architectures, we only define fbsd_tm_file to allow the
733 # machine-specific section to dictate the final order of all
734 # entries of tm_file with the minor exception that components
735 # of the tm_file set here will always be of the form:
737 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
739 # The machine-specific section should not tamper with this
740 # ordering but may order all other entries of tm_file as it
741 # pleases around the provided core setting.
744 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
745 if test "$fbsd_major" = ""; then
746 echo "Specify the major version number of the targeted FreeBSD release"
747 echo "like this: --target=amd64-unknown-freebsd10.1"
750 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
751 tmake_file="t-slibgcc"
752 case ${enable_threads} in
754 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
760 echo 'Unknown thread configuration for FreeBSD'
764 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
765 extra_options="$extra_options rpath.opt freebsd.opt"
770 default_use_cxa_atexit=yes;;
775 native_system_header_dir=/include
777 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
778 extra_options="$extra_options gnu-user.opt"
781 case ${enable_threads} in
782 "" | yes | posix) thread_file='posix' ;;
784 tmake_file="t-slibgcc"
786 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
789 native_system_header_dir=/include
792 # Linux C libraries selection switch: glibc / uclibc / bionic.
793 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
796 tm_p_file="${tm_p_file} linux-protos.h"
797 tmake_file="${tmake_file} t-linux"
798 extra_objs="${extra_objs} linux.o"
799 extra_options="${extra_options} linux.opt"
804 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
806 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
807 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
810 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
813 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
816 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
818 default_use_cxa_atexit=yes
821 # Enable compilation for Android by default for *android* targets.
824 tm_defines="$tm_defines ANDROID_DEFAULT=1"
827 tm_defines="$tm_defines ANDROID_DEFAULT=0"
830 c_target_objs="${c_target_objs} glibc-c.o"
831 cxx_target_objs="${cxx_target_objs} glibc-c.o"
832 d_target_objs="${d_target_objs} glibc-d.o"
833 tmake_file="${tmake_file} t-glibc"
834 target_has_targetcm=yes
835 target_has_targetdm=yes
838 tm_p_file="${tm_p_file} netbsd-protos.h"
839 tmake_file="t-netbsd t-slibgcc"
840 extra_objs="${extra_objs} netbsd.o"
841 d_target_objs="${d_target_objs} netbsd-d.o"
845 case ${enable_threads} in
846 "" | yes | posix) thread_file='posix' ;;
848 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
849 default_use_cxa_atexit=yes
850 target_has_targetdm=yes
852 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
853 default_gnu_indirect_function=yes
858 tmake_file="t-openbsd"
859 case ${enable_threads} in
865 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
866 default_use_cxa_atexit=yes
873 default_use_cxa_atexit=yes
876 case ${enable_threads} in
877 "" | yes | rtems) thread_file='rtems' ;;
878 posix) thread_file='posix' ;;
881 echo 'Unknown thread configuration for RTEMS'
885 tmake_file="${tmake_file} t-rtems"
886 extra_options="${extra_options} rtems.opt"
887 default_use_cxa_atexit=yes
891 extra_options="$extra_options gnu-user.opt"
893 case ${enable_threads} in
894 "" | yes | posix) thread_file='posix' ;;
896 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
902 # i?86-*-solaris2* needs to insert headers between cpu default and
903 # Solaris 2 specific ones.
904 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
905 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
906 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
908 *-*-solaris2.1[1-9]*)
909 # __cxa_atexit was introduced in Solaris 11.4.
910 default_use_cxa_atexit=yes
914 if test x$gnu_ld = xyes; then
915 tm_file="usegld.h ${tm_file}"
917 if test x$gas = xyes; then
918 tm_file="usegas.h ${tm_file}"
920 tm_p_file="${tm_p_file} sol2-protos.h"
921 tmake_file="${tmake_file} t-sol2 t-slibgcc"
922 c_target_objs="${c_target_objs} sol2-c.o"
923 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
924 d_target_objs="${d_target_objs} sol2-d.o"
925 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
926 extra_options="${extra_options} sol2.opt"
927 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
928 "":yes:* | yes:yes:* )
932 target_has_targetdm=yes
935 extra_options="${extra_options} vms/vms.opt"
937 tmake_file="vms/t-vms t-slibgcc"
939 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
940 tm_p_file="${tm_p_file} vms/vms-protos.h"
941 xm_file="vms/xm-vms.h"
942 c_target_objs="vms-c.o"
943 cxx_target_objs="vms-c.o"
944 fortran_target_objs="vms-f.o"
945 use_gcc_stdint=provide
946 tm_file="${tm_file} vms/vms-stdint.h"
947 if test x$gnu_ld != xyes; then
948 # Build wrappers for native case.
949 extra_programs="ld\$(exeext) ar\$(exeext)"
950 tmake_file="$tmake_file vms/t-vmsnative"
956 extra_options="${extra_options} vxworks.opt"
957 extra_objs="$extra_objs vxworks.o"
958 use_gcc_stdint=provide
959 tm_file="${tm_file} vxworks-stdint.h"
960 case ${enable_threads} in
962 "" | yes | vxworks) thread_file='vxworks' ;;
963 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
966 # A few common macro definitions conveying general characteristics
967 # of the configuration at hand. Note that by VxWorks 7, we mean the
968 # the SR6xx major update or beyond in vendor parlance:
972 tm_defines="$tm_defines TARGET_VXWORKS7=1"
977 tm_defines="$tm_defines TARGET_VXWORKS64=1"
981 # Then a few build configuration controls for VxWorks 7, which
982 # has specificities on top of which we aim to provide more complete
987 # VxWorks 7 always has init/fini_array support and it is simpler to
988 # just leverage this, sticking to what the system toolchain does:
989 gcc_cv_initfini_array=yes
994 # Assume that newlib is being used and so __cxa_atexit is provided.
995 default_use_cxa_atexit=yes
1001 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1002 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
1003 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1004 tmake_file="${tmake_file} aarch64/t-aarch64"
1010 tm_file="${tm_file} fuchsia.h"
1013 tm_file="${tm_file} rtems.h aarch64/rtems.h"
1018 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1021 aarch64_multilibs="${with_multilib_list}"
1022 if test "$aarch64_multilibs" = "default"; then
1023 aarch64_multilibs="lp64,ilp32"
1025 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1026 for aarch64_multilib in ${aarch64_multilibs}; do
1027 case ${aarch64_multilib} in
1029 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1032 echo "--with-multilib-list=${aarch64_multilib} not supported."
1036 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1038 aarch64*-*-freebsd*)
1039 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1040 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1041 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1042 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1045 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
1046 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1047 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1048 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1051 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1052 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1053 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1054 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1057 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1060 aarch64_multilibs="${with_multilib_list}"
1061 if test "$aarch64_multilibs" = "default"; then
1062 # TODO: turn on ILP32 multilib build after its support is mature.
1063 # aarch64_multilibs="lp64,ilp32"
1064 aarch64_multilibs="lp64"
1066 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1067 for aarch64_multilib in ${aarch64_multilibs}; do
1068 case ${aarch64_multilib} in
1070 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1073 echo "--with-multilib-list=${aarch64_multilib} not supported."
1077 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1080 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1081 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1082 extra_options="${extra_options} alpha/elf.opt"
1085 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1086 tmake_file="${tmake_file} alpha/t-alpha"
1087 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1091 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1092 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1093 tmake_file="${tmake_file} alpha/t-alpha"
1094 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1095 # default x-alpha is only appropriate for dec-osf.
1098 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1099 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1102 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1103 tmake_file="arc/t-multilib arc/t-arc"
1104 extra_gcc_objs="driver-arc.o"
1105 if test "x$with_cpu" != x; then
1106 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1108 if test x${with_endian} = x; then
1110 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1111 *) with_endian=little ;;
1114 case ${with_endian} in
1116 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1118 case ${with_endian} in
1119 big*) tm_file="arc/big.h ${tm_file}"
1123 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}"
1124 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1125 extra_gcc_objs="driver-arc.o"
1126 if test "x$with_cpu" != x; then
1127 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1129 if test x${with_endian} = x; then
1131 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1132 *) with_endian=little ;;
1135 case ${with_endian} in
1137 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1139 case ${with_endian} in
1140 big*) tm_file="arc/big.h ${tm_file}"
1142 # Force .init_array support. The configure script cannot always
1143 # automatically detect that GAS supports it, yet we require it.
1144 gcc_cv_initfini_array=yes
1146 arm-wrs-vxworks|arm-wrs-vxworks7)
1147 extra_options="${extra_options} arm/vxworks.opt"
1148 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1151 # VxWorks7 on ARM adheres to the ARM Base Platform ABI
1152 tmake_file="${tmake_file} arm/t-bpabi"
1153 tm_file="arm/bpabi.h ${tm_file}"
1154 # The BPABI long long divmod functions return a 128-bit value in
1156 need_64bit_hwint=yes
1157 default_use_cxa_atexit=yes
1161 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1162 target_cpu_cname="arm8"
1164 arm*-*-freebsd*) # ARM FreeBSD EABI
1165 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1168 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1171 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1172 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1175 target_cpu_cname="arm1176jzf-s"
1176 if test $fbsd_major -ge 11; then
1177 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1181 target_cpu_cname="generic-armv7-a"
1182 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1185 target_cpu_cname="arm9"
1188 with_tls=${with_tls:-gnu}
1191 target_cpu_cname="strongarm"
1192 tmake_file="${tmake_file} arm/t-arm"
1193 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1194 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1196 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1199 arm*-*-netbsdelf-*eabi*)
1200 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1201 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1204 tm_file="$tm_file arm/netbsd-elf.h"
1205 tmake_file="$tmake_file arm/t-netbsd"
1208 tm_file="${tm_file} arm/aout.h arm/arm.h"
1210 arm*-*-netbsdelf-*eabihf*)
1211 # Hard-float requires at least Arm v5te
1212 target_cpu_cname="arm10e"
1213 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1217 armv6*) target_cpu_cname="arm1176jzf-s";;
1218 armv7*) target_cpu_cname="generic-armv7-a";;
1221 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1222 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"
1223 extra_options="${extra_options} linux-android.opt"
1226 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1229 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1230 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1232 arm*-*-uclinuxfdpiceabi)
1233 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1236 # Generation of floating-point instructions requires at least ARMv5te.
1237 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1238 target_cpu_cname="arm10e"
1240 target_cpu_cname="arm10tdmi"
1242 # Define multilib configuration for arm-linux-androideabi.
1245 tmake_file="$tmake_file arm/t-linux-androideabi"
1248 # The EABI requires the use of __cxa_atexit.
1249 default_use_cxa_atexit=yes
1250 with_tls=${with_tls:-gnu}
1252 arm*-*-uclinux*eabi*) # ARM ucLinux
1253 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1254 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1255 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1256 target_cpu_cname="arm7tdmi"
1257 # The EABI requires the use of __cxa_atexit.
1258 default_use_cxa_atexit=yes
1261 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1262 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1263 tm_file="${tm_file} arm/aout.h arm/arm.h"
1264 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1265 target_cpu_cname="arm7tdmi"
1267 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1270 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1272 default_use_cxa_atexit=yes
1273 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1274 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1275 target_cpu_cname="arm7tdmi"
1278 tm_file="$tm_file newlib-stdint.h"
1279 tmake_file="${tmake_file} arm/t-bpabi"
1283 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1284 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1285 target_cpu_cname="generic-armv7-a"
1288 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1289 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1292 tm_file="${tm_file} arm/symbian.h"
1293 # We do not include t-bpabi for Symbian OS because the system
1294 # provides its own implementation of the BPABI functions.
1295 tmake_file="${tmake_file} arm/t-symbian"
1296 target_cpu_cname="arm10tdmi"
1299 tm_file="${tm_file} arm/aout.h arm/arm.h"
1302 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1303 if test x${with_avrlibc} != xno; then
1304 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1305 tm_defines="${tm_defines} WITH_AVRLIBC"
1307 case y${with_double} in
1310 tm_defines="${tm_defines} HAVE_DOUBLE32"
1314 tm_defines="${tm_defines} HAVE_DOUBLE64"
1318 avr_double_multilib=1
1319 tm_defines="${tm_defines} HAVE_DOUBLE32"
1320 tm_defines="${tm_defines} HAVE_DOUBLE64"
1321 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1325 avr_double_multilib=1
1326 tm_defines="${tm_defines} HAVE_DOUBLE32"
1327 tm_defines="${tm_defines} HAVE_DOUBLE64"
1328 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1331 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1335 case y${with_long_double} in
1338 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1342 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1346 avr_long_double_multilib=1
1347 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1348 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1349 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1353 avr_long_double_multilib=1
1354 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1355 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1356 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1359 avr_long_double=${avr_double}
1360 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1361 if test y${avr_double_multilib} = y1; then
1362 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1363 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1365 tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1369 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1373 if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1374 if test y${with_long_double} != ydouble; then
1375 echo "Error: --with-double=${with_double} requests a multilib for double, but long double is always 32 bits wide due to --with-long-double=${with_long_double}" 1>&2
1379 if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1380 echo "Error: --with-long-double=${with_long_double} requests a multilib for long double, but double is always 64 bits wide due to --with-double=64" 1>&2
1383 if test y${avr_double}${avr_long_double} = y6432; then
1384 echo "Error: double default of 64 bits from --with-double=${with_double} conflicts with default of 32 bits for long double from --with-long-double=${with_long_double}" 1>&2
1387 tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1388 tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1389 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1391 extra_gcc_objs="driver-avr.o avr-devices.o"
1392 extra_objs="avr-devices.o avr-log.o"
1395 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1396 tmake_file=bfin/t-bfin-elf
1400 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1401 tmake_file=bfin/t-bfin-uclinux
1404 bfin*-linux-uclibc*)
1405 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"
1406 tmake_file="${tmake_file} bfin/t-bfin-linux"
1410 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1411 tmake_file="${tmake_file} bfin/t-rtems"
1414 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1419 tmake_file="${tmake_file} bpf/t-bpf"
1421 extra_headers="bpf-helpers.h"
1422 use_gcc_stdint=provide
1425 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1426 tmake_file="${tmake_file} cr16/t-cr16 "
1429 crisv32-*-elf | crisv32-*-none)
1430 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1431 tmake_file="cris/t-cris"
1432 target_cpu_default=32
1434 extra_options="${extra_options} cris/elf.opt"
1437 cris-*-elf | cris-*-none)
1438 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1439 tmake_file="cris/t-cris cris/t-elfmulti"
1441 extra_options="${extra_options} cris/elf.opt"
1444 crisv32-*-linux* | cris-*-linux*)
1445 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1446 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1447 extra_options="${extra_options} cris/linux.opt"
1450 target_cpu_default=10
1453 target_cpu_default=32
1458 if test x${with_endian} != x; then
1459 case ${with_endian} in
1462 echo "with_endian=${with_endian} not supported."
1467 if test x${with_float} != x; then
1468 case ${with_float} in
1471 "Unknown floating point type used in --with-float=$with_float"
1476 tm_file="csky/csky.h"
1477 md_file="csky/csky.md"
1478 out_file="csky/csky.c"
1479 tm_p_file="${tm_p_file} csky/csky-protos.h"
1480 extra_options="${extra_options} csky/csky_tables.opt"
1482 if test x${enable_tpf_debug} = xyes; then
1483 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1488 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1489 tmake_file="csky/t-csky csky/t-csky-elf"
1490 default_use_cxa_atexit=no
1493 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1494 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1496 if test "x${enable_multilib}" = xyes ; then
1497 tm_file="$tm_file ./sysroot-suffix.h"
1498 tmake_file="${tmake_file} csky/t-sysroot-suffix"
1503 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1504 # Force .init_array support. The configure script cannot always
1505 # automatically detect that GAS supports it, yet we require it.
1506 gcc_cv_initfini_array=yes
1508 csky-*-linux-uclibc*)
1509 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1510 default_use_cxa_atexit=no
1513 echo "Unknown target $target"
1519 echo "Unknown target $target"
1524 epiphany-*-elf | epiphany-*-rtems*)
1525 tm_file="${tm_file} dbxelf.h elfos.h"
1526 tmake_file="${tmake_file} epiphany/t-epiphany"
1529 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1532 tm_file="${tm_file} newlib-stdint.h"
1535 extra_options="${extra_options} fused-madd.opt"
1536 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1537 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1538 extra_headers="epiphany_intrinsics.h"
1541 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1544 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1545 tmake_file=frv/t-frv
1548 tm_file="dbxelf.h elfos.h ${tm_file} \
1549 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1550 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1555 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1556 tmake_file="${tmake_file} ft32/t-ft32"
1559 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1560 tmake_file="gcn/t-gcn-hsa"
1561 native_system_header_dir=/include
1562 extra_modes=gcn/gcn-modes.def
1563 extra_objs="${extra_objs} gcn-tree.o"
1564 extra_gcc_objs="driver-gcn.o"
1566 x86_64*-*-linux-gnu )
1567 if test "$ac_cv_search_dlopen" != no; then
1568 extra_programs="${extra_programs} gcn-run\$(exeext)"
1572 if test x$enable_as_accelerator = xyes; then
1573 extra_programs="${extra_programs} mkoffload\$(exeext)"
1574 tm_file="${tm_file} gcn/offload.h"
1576 # Force .init_array support.
1577 gcc_cv_initfini_array=yes
1583 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1584 tmake_file="${tmake_file} moxie/t-moxie"
1589 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1590 tmake_file="${tmake_file} moxie/t-moxie"
1593 tmake_file="${tmake_file} moxie/t-moxie"
1594 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1599 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1600 tmake_file="${tmake_file} moxie/t-moxiebox"
1603 tmake_file="h8300/t-h8300"
1604 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1607 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1608 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1611 target_cpu_default="MASK_PA_11|MASK_PA_20"
1612 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1613 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1615 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1616 d_target_objs="${d_target_objs} pa-d.o"
1620 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1621 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1622 pa/pa32-regs.h pa/pa32-linux.h"
1623 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1624 d_target_objs="${d_target_objs} pa-d.o"
1627 target_cpu_default="MASK_PA_11"
1628 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1629 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1630 extra_options="${extra_options} openbsd.opt"
1631 tmake_file="pa/t-pa"
1632 d_target_objs="${d_target_objs} pa-d.o"
1637 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1638 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} \
1639 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1640 tmake_file="${tmake_file}"
1641 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1642 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1644 hppa[12]*-*-hpux10*)
1646 hppa1.1-*-* | hppa2*-*-*)
1647 target_cpu_default="MASK_PA_11"
1650 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1651 pa/pa-hpux.h pa/pa-hpux10.h"
1652 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1655 tm_file="${tm_file} pa/pa-hpux1010.h"
1656 extra_options="${extra_options} pa/pa-hpux1010.opt"
1659 use_gcc_stdint=provide
1660 tm_file="${tm_file} hpux-stdint.h"
1661 tmake_file="pa/t-pa t-slibgcc"
1662 d_target_objs="${d_target_objs} pa-d.o"
1663 case ${enable_threads} in
1665 if test x$have_pthread_h = xyes ; then
1666 tmake_file="${tmake_file} pa/t-dce-thr"
1670 tmake_file="${tmake_file} pa/t-dce-thr"
1675 if test "x$with_dwarf2" != x; then
1676 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1681 target_cpu_default="MASK_PA_11|MASK_PA_20"
1682 if test x$gnu_ld = xyes
1684 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1686 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1687 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1691 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1692 extra_options="${extra_options} pa/pa-hpux1111.opt"
1695 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1696 extra_options="${extra_options} pa/pa-hpux1131.opt"
1699 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1702 extra_options="${extra_options} pa/pa-hpux.opt \
1703 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1704 tmake_file="pa/t-pa t-slibgcc"
1705 d_target_objs="${d_target_objs} pa-d.o"
1706 case x${enable_threads} in
1714 use_gcc_stdint=provide
1715 tm_file="${tm_file} hpux-stdint.h"
1719 tm_file="${tm_file} hpux-stdint.h"
1723 hppa[12]*-*-hpux11*)
1725 hppa1.1-*-* | hppa2*-*-*)
1726 target_cpu_default="MASK_PA_11"
1729 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1730 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1731 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1735 tm_file="${tm_file} pa/pa-hpux1111.h"
1736 extra_options="${extra_options} pa/pa-hpux1111.opt"
1739 tm_file="${tm_file} pa/pa-hpux1131.h"
1740 extra_options="${extra_options} pa/pa-hpux1131.opt"
1743 tmake_file="pa/t-pa t-slibgcc"
1744 d_target_objs="${d_target_objs} pa-d.o"
1745 case x${enable_threads} in
1754 use_gcc_stdint=provide
1755 tm_file="${tm_file} hpux-stdint.h"
1759 tm_file="${tm_file} hpux-stdint.h"
1762 if test "x$with_dwarf2" != x; then
1763 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1767 i[34567]86-*-darwin1[89]*)
1768 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1770 i[34567]86-*-darwin*)
1772 # Baseline choice for a machine that allows m64 support.
1773 with_cpu=${with_cpu:-core2}
1774 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1775 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
1777 x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
1779 with_cpu=${with_cpu:-core2}
1780 tmake_file="${tmake_file} t-slibgcc"
1783 with_cpu=${with_cpu:-core2}
1784 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1785 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
1787 i[34567]86-*-elfiamcu)
1788 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1791 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1794 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1797 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"
1800 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1803 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"
1804 tmake_file="i386/t-i386elf t-svr4"
1806 i[34567]86-*-dragonfly*)
1807 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1808 tmake_file="${tmake_file} i386/t-crtstuff"
1810 x86_64-*-dragonfly*)
1811 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"
1812 tmake_file="${tmake_file} i386/t-crtstuff"
1814 i[34567]86-*-freebsd*)
1815 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1818 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"
1820 i[34567]86-*-netbsdelf*)
1821 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1822 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1825 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1826 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1828 i[34567]86-*-openbsd*)
1829 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1830 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1831 extra_options="${extra_options} openbsd.opt"
1836 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1837 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1838 extra_options="${extra_options} openbsd.opt"
1842 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1843 # Intel 80386's running GNU/*
1844 # with ELF format using glibc 2
1845 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1847 i[34567]86-*-linux*)
1848 tm_file="${tm_file} linux.h linux-android.h"
1849 extra_options="${extra_options} linux-android.opt"
1850 if test x$enable_targets = xall; then
1851 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1852 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1853 tmake_file="${tmake_file} i386/t-linux64"
1854 x86_multilibs="${with_multilib_list}"
1855 if test "$x86_multilibs" = "default"; then
1856 x86_multilibs="m64,m32"
1858 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1859 for x86_multilib in ${x86_multilibs}; do
1860 case ${x86_multilib} in
1862 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1865 echo "--with-multilib-list=${x86_with_multilib} not supported."
1869 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1871 if test x$with_cpu = x; then
1872 if test x$with_cpu_64 = x; then
1876 case " $x86_cpus $x86_archs $x86_64_archs " in
1880 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1881 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1887 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1890 i[34567]86-*-kfreebsd*-gnu)
1891 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1893 i[34567]86-*-kopensolaris*-gnu)
1894 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1897 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1901 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1902 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1903 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1906 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1907 extra_options="${extra_options} linux-android.opt"
1909 x86_64-*-kfreebsd*-gnu)
1910 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1913 tmake_file="${tmake_file} i386/t-linux64"
1914 x86_multilibs="${with_multilib_list}"
1915 if test "$x86_multilibs" = "default"; then
1918 x86_multilibs="mx32"
1921 x86_multilibs="m64,m32"
1925 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1926 for x86_multilib in ${x86_multilibs}; do
1927 case ${x86_multilib} in
1929 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1932 echo "--with-multilib-list=${x86_with_multilib} not supported."
1936 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1938 i[34567]86-pc-msdosdjgpp*)
1939 xm_file=i386/xm-djgpp.h
1940 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1941 native_system_header_dir=/dev/env/DJDIR/include
1942 extra_options="${extra_options} i386/djgpp.opt"
1947 i[34567]86-*-lynxos*)
1949 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1950 tmake_file="${tmake_file} t-lynx"
1951 extra_options="${extra_options} lynx.opt"
1956 i[34567]86-*-nto-qnx*)
1957 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1958 extra_options="${extra_options} i386/nto.opt"
1962 i[34567]86-*-rtems*)
1963 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"
1964 tmake_file="${tmake_file} i386/t-rtems"
1966 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
1967 # Set default arch_32 to pentium4, tune_32 to generic like the other
1968 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1969 with_arch_32=${with_arch_32:-pentium4}
1970 with_tune_32=${with_tune_32:-generic}
1971 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1972 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1973 tmake_file="$tmake_file i386/t-sol2"
1975 if test x$with_cpu = x; then
1976 if test x$with_cpu_64 = x; then
1980 case " $x86_cpus $x86_archs $x86_64_archs " in
1984 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1985 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1991 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
1992 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1996 tm_file="${tm_file} i386/x86-64.h"
1999 tm_file="${tm_file} vx-common.h"
2002 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2003 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2006 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2007 tmake_file="${tmake_file} i386/t-vxworks"
2011 i[34567]86-*-cygwin*)
2012 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"
2013 xm_file=i386/xm-cygwin.h
2014 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2015 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2016 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2017 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2018 c_target_objs="${c_target_objs} msformat-c.o"
2019 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2020 if test x$enable_threads = xyes; then
2023 default_use_cxa_atexit=yes
2028 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"
2029 xm_file=i386/xm-cygwin.h
2030 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
2031 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2032 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2033 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2034 c_target_objs="${c_target_objs} msformat-c.o"
2035 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2036 if test x$enable_threads = xyes; then
2039 default_use_cxa_atexit=yes
2041 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2043 i[34567]86-*-mingw* | x86_64-*-mingw*)
2044 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
2045 xm_file=i386/xm-mingw32.h
2046 c_target_objs="${c_target_objs} winnt-c.o"
2047 cxx_target_objs="${cxx_target_objs} winnt-c.o"
2048 target_has_targetcm="yes"
2050 x86_64-*-* | *-w64-*)
2056 if test x$enable_threads = xposix ; then
2057 tm_file="${tm_file} i386/mingw-pthread.h"
2059 tm_file="${tm_file} i386/mingw32.h"
2060 # This makes the logic if mingw's or the w64 feature set has to be used
2063 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2064 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2065 tm_file="${tm_file} i386/mingw-w64.h"
2066 if test x$enable_targets = xall; then
2067 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2068 if test x$with_cpu = x; then
2069 if test x$with_cpu_64 = x; then
2073 case " $x86_cpus $x86_archs $x86_64_archs " in
2077 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2078 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2088 tm_file="${tm_file} i386/mingw-stdint.h"
2089 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2092 tmake_file="${tmake_file} i386/t-mingw-w64"
2095 tmake_file="${tmake_file} i386/t-mingw-w32"
2098 native_system_header_dir=/mingw/include
2099 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2100 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2103 extra_options="${extra_options} i386/mingw-w64.opt"
2108 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2109 c_target_objs="${c_target_objs} msformat-c.o"
2110 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2113 default_use_cxa_atexit=yes
2115 case ${enable_threads} in
2125 tm_file="${tm_file} i386/crtdll.h"
2127 *mingw32msv* | *mingw*)
2132 tmake_file="${tmake_file} i386/t-x86_64-elf"
2133 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2136 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2137 tmake_file="ia64/t-ia64"
2138 target_cpu_default="0"
2139 if test x$gas = xyes
2141 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2143 if test x$gnu_ld = xyes
2145 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2149 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2150 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2151 tmake_file="${tmake_file} ia64/t-ia64"
2154 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2155 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2156 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2159 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
2160 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2161 target_cpu_default="MASK_GNU_AS"
2162 case x$enable_threads in
2168 c_target_objs="ia64-c.o"
2169 cxx_target_objs="ia64-c.o"
2170 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2172 tm_file="${tm_file} hpux-stdint.h"
2175 tm_file="${tm_file} ia64/hpux-unix2003.h"
2180 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2181 tmake_file="${tmake_file} ia64/t-ia64"
2182 target_cpu_default="0"
2183 if test x$gas = xyes
2185 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2187 extra_options="${extra_options} ia64/vms.opt"
2190 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2191 out_file=iq2000/iq2000.c
2192 md_file=iq2000/iq2000.md
2195 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2196 tmake_file="${tmake_file} lm32/t-lm32"
2199 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2200 tmake_file="${tmake_file} lm32/t-lm32"
2201 tmake_file="${tmake_file} lm32/t-rtems"
2204 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2205 tmake_file="${tmake_file} lm32/t-lm32"
2208 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2211 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2214 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
2215 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2217 if test x$enable_threads = xyes; then
2222 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
2223 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2225 if test x$enable_threads = xyes; then
2229 m68k-*-elf* | fido-*-elf*)
2232 # Check that $with_cpu makes sense.
2237 echo "Cannot accept --with-cpu=$with_cpu"
2244 default_m68k_cpu=68020
2248 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"
2249 tm_defines="${tm_defines} MOTOROLA=1"
2250 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2251 # Add multilibs for targets other than fido.
2256 tmake_file="$tmake_file m68k/t-mlibs"
2261 default_m68k_cpu=68020
2263 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2264 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2265 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2268 default_m68k_cpu=68020
2270 # needed to unconfuse gdb
2271 tm_defines="${tm_defines} OBSD_OLD_GAS"
2272 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
2273 extra_options="${extra_options} openbsd.opt"
2274 tmake_file="t-openbsd m68k/t-openbsd"
2275 # we need collect2 until our bug is fixed...
2278 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2279 # with uClibc, using the new GNU/Linux-style
2281 default_m68k_cpu=68020
2283 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"
2284 extra_options="${extra_options} m68k/uclinux.opt"
2285 tm_defines="${tm_defines} MOTOROLA=1"
2286 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2288 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2289 # with ELF format using glibc 2
2290 # aka the GNU/Linux C library 6.
2291 default_m68k_cpu=68020
2293 with_arch=${with_arch:-m68k}
2294 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2295 extra_options="${extra_options} m68k/ieee.opt"
2296 tm_defines="${tm_defines} MOTOROLA=1"
2297 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2300 default_m68k_cpu=68020
2302 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2303 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"
2304 tm_defines="${tm_defines} MOTOROLA=1"
2307 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2308 tmake_file=mcore/t-mcore
2314 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2317 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2320 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2321 tm_file="${tm_file} glibc-stdint.h"
2322 c_target_objs="${c_target_objs} microblaze-c.o"
2323 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2324 tmake_file="${tmake_file} microblaze/t-microblaze"
2325 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2327 microblaze*-*-rtems*)
2330 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2333 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2336 tm_file="${tm_file} dbxelf.h"
2337 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2338 c_target_objs="${c_target_objs} microblaze-c.o"
2339 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2340 tmake_file="${tmake_file} microblaze/t-microblaze"
2341 tmake_file="${tmake_file} microblaze/t-rtems"
2346 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2349 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2352 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2353 c_target_objs="${c_target_objs} microblaze-c.o"
2354 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2355 tmake_file="${tmake_file} microblaze/t-microblaze"
2358 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2359 case "x${enable_multilib}" in
2361 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2362 *) echo "Unknown value for enable_multilib"; exit 1
2364 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2367 # Force .init_array support. The configure script cannot always
2368 # automatically detect that GAS supports it, yet we require it.
2369 gcc_cv_initfini_array=yes
2371 riscv*-*-elf* | riscv*-*-rtems*)
2372 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2375 tm_file="${tm_file} rtems.h riscv/rtems.h"
2376 tmake_file="${tmake_file} riscv/t-rtems"
2379 case "x${enable_multilib}" in
2381 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2382 *) echo "Unknown value for enable_multilib"; exit 1
2385 tmake_file="${tmake_file} riscv/t-riscv"
2388 # Force .init_array support. The configure script cannot always
2389 # automatically detect that GAS supports it, yet we require it.
2390 gcc_cv_initfini_array=yes
2393 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2394 tmake_file="${tmake_file} riscv/t-riscv"
2397 # Force .init_array support. The configure script cannot always
2398 # automatically detect that GAS supports it, yet we require it.
2399 gcc_cv_initfini_array=yes
2401 mips*-*-netbsd*) # NetBSD/mips, either endian.
2402 target_cpu_default="MASK_ABICALLS"
2403 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2404 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2407 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"
2408 extra_options="${extra_options} linux-android.opt"
2409 tmake_file="${tmake_file} mips/t-img-linux"
2410 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2411 with_arch_32="mips32r6"
2412 with_arch_64="mips64r6"
2417 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"
2418 extra_options="${extra_options} linux-android.opt"
2419 tmake_file="${tmake_file} mips/t-mti-linux"
2420 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2421 with_arch_32="mips32r2"
2422 with_arch_64="mips64r2"
2426 mips*-*-linux*) # Linux MIPS, either endian.
2427 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"
2428 extra_options="${extra_options} linux-android.opt"
2431 default_mips_arch=mips32r6
2434 default_mips_arch=mips32r2
2437 default_mips_arch=mips32
2439 mips64el-st-linux-gnu)
2440 default_mips_abi=n32
2441 tm_file="${tm_file} mips/st.h"
2442 tmake_file="${tmake_file} mips/t-st"
2443 enable_mips_multilibs="yes"
2445 mips64octeon*-*-linux*)
2446 default_mips_abi=n32
2447 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2448 target_cpu_default=MASK_SOFT_FLOAT_ABI
2449 enable_mips_multilibs="yes"
2451 mipsisa64r6*-*-linux*)
2452 default_mips_abi=n32
2453 default_mips_arch=mips64r6
2454 enable_mips_multilibs="yes"
2456 mipsisa64r2*-*-linux*)
2457 default_mips_abi=n32
2458 default_mips_arch=mips64r2
2459 enable_mips_multilibs="yes"
2461 mips64*-*-linux* | mipsisa64*-*-linux*)
2462 default_mips_abi=n32
2463 enable_mips_multilibs="yes"
2466 if test x$enable_targets = xall; then
2467 enable_mips_multilibs="yes"
2469 if test x$enable_mips_multilibs = xyes; then
2470 tmake_file="${tmake_file} mips/t-linux64"
2474 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2475 tmake_file="mips/t-mti-elf"
2476 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2477 with_arch_32="mips32r2"
2478 with_arch_64="mips64r2"
2481 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2482 tmake_file="mips/t-img-elf"
2483 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2484 with_arch_32="mips32r6"
2485 with_arch_64="mips64r6"
2488 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2489 tmake_file="mips/t-sde"
2490 extra_options="${extra_options} mips/sde.opt"
2491 case "${with_newlib}" in
2493 # newlib / libgloss.
2496 # MIPS toolkit libraries.
2497 tm_file="$tm_file mips/sdemtk.h"
2498 tmake_file="$tmake_file mips/t-sdemtk"
2499 case ${enable_threads} in
2501 thread_file='mipssde'
2508 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2511 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2514 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2517 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2520 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2523 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2527 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2528 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2529 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2530 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2531 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2532 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2533 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2534 tmake_file="mips/t-isa3264"
2537 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2540 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2543 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2546 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2549 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2552 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2556 mipsisa32*-*-elfoabi*)
2557 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2558 tm_file="${tm_file} mips/elfoabi.h"
2560 mipsisa64*-*-elfoabi*)
2561 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2562 tm_file="${tm_file} mips/elfoabi.h"
2565 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2569 mipsisa64sr71k-*-elf*)
2570 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2571 tmake_file=mips/t-sr71k
2572 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2574 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2575 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2576 tmake_file="mips/t-elf mips/t-sb1"
2577 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2579 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2580 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2581 tmake_file="mips/t-elf"
2583 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2584 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2585 tmake_file="mips/t-elf"
2586 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2588 mips64-*-elf* | mips64el-*-elf*)
2589 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2590 tmake_file="mips/t-elf"
2591 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2593 mips64vr-*-elf* | mips64vrel-*-elf*)
2594 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2595 tmake_file=mips/t-vr
2596 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2598 mips64orion-*-elf* | mips64orionel-*-elf*)
2599 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2600 tmake_file="mips/t-elf"
2601 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2604 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2605 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2608 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2609 tmake_file="${tmake_file} mips/t-vxworks"
2611 mipstx39-*-elf* | mipstx39el-*-elf*)
2612 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2613 tmake_file="mips/t-r3900"
2615 mmix-knuth-mmixware)
2616 tm_file="${tm_file} newlib-stdint.h"
2620 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2621 if test x$stabs = xyes
2623 tm_file="${tm_file} dbx.h"
2629 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2630 c_target_objs="msp430-c.o"
2631 cxx_target_objs="msp430-c.o"
2632 tmake_file="${tmake_file} msp430/t-msp430"
2633 extra_objs="${extra_objs} msp430-devices.o"
2634 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2635 # Enable .init_array unless it has been explicitly disabled.
2636 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2637 # code since mid-2019 expects it.
2638 if test x${disable_initfini_array} != xyes; then
2639 gcc_cv_initfini_array=yes
2643 target_cpu_default="0"
2644 tm_defines="${tm_defines}"
2649 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2650 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2655 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2656 tmake_file="nds32/t-nds32 nds32/t-elf"
2659 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2660 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2661 gcc_cv_initfini_array=yes
2665 # Handle --enable-default-relax setting.
2666 if test x${enable_default_relax} = xyes; then
2667 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2669 # Handle --with-ext-dsp
2670 if test x${with_ext_dsp} = xyes; then
2671 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2675 tm_file="elfos.h ${tm_file}"
2676 tmake_file="${tmake_file} nios2/t-nios2"
2679 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2682 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2683 extra_options="${extra_options} nios2/elf.opt"
2686 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2687 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2692 tm_file="${tm_file} newlib-stdint.h"
2694 tmake_file="nvptx/t-nvptx"
2695 if test x$enable_as_accelerator = xyes; then
2696 extra_programs="${extra_programs} mkoffload\$(exeext)"
2697 tm_file="${tm_file} nvptx/offload.h"
2701 tm_file="elfos.h ${tm_file}"
2702 tmake_file="${tmake_file} or1k/t-or1k"
2703 # Force .init_array support. The configure script cannot always
2704 # automatically detect that GAS supports it, yet we require it.
2705 gcc_cv_initfini_array=yes
2707 # Handle --with-multilib-list=...
2708 or1k_multilibs="${with_multilib_list}"
2709 if test "$or1k_multilibs" = "default"; then
2710 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2712 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2713 for or1k_multilib in ${or1k_multilibs}; do
2714 case ${or1k_multilib} in
2715 mcmov | msext | msfimm | \
2717 mhard-float | mdouble-float | munordered-float | msoft-float | \
2718 mhard-div | mhard-mul | \
2719 msoft-div | msoft-mul )
2720 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2723 echo "--with-multilib-list=${with_multilib_list} not supported."
2727 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2731 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2732 tm_file="${tm_file} or1k/linux.h"
2735 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2736 extra_options="${extra_options} or1k/elf.opt"
2739 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2740 tmake_file="${tmake_file} or1k/t-rtems"
2745 tm_file="${tm_file} newlib-stdint.h"
2748 # port not yet contributed
2749 #powerpc-*-openbsd*)
2750 # tmake_file="${tmake_file} rs6000/t-fprules"
2754 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2756 *-darwin1[0-9]* | *-darwin9*)
2757 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2758 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2761 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2762 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2763 tm_file="${tm_file} ${cpu_type}/darwin8.h"
2766 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2769 # Earlier - ingle arch, with 32b only
2770 # OS X 10.0, the first edition is Darwin4
2773 tmake_file="${tmake_file} t-slibgcc"
2775 powerpc64-*-darwin*)
2776 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2777 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2778 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2780 powerpc*-*-freebsd*)
2781 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2782 extra_options="${extra_options} rs6000/sysv4.opt"
2783 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2786 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2787 tmake_file="${tmake_file} rs6000/t-freebsd64"
2788 extra_options="${extra_options} rs6000/linux64.opt"
2789 if test $fbsd_major -ge 13; then
2790 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2794 if test $fbsd_major -ge 13; then
2795 tm_file="rs6000/secureplt.h ${tm_file}"
2797 tm_file="${tm_file} rs6000/freebsd.h"
2802 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2803 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2804 tmake_file="${tmake_file} rs6000/t-netbsd"
2805 extra_options="${extra_options} rs6000/sysv4.opt"
2807 powerpc-*-eabisimaltivec*)
2808 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"
2809 extra_options="${extra_options} rs6000/sysv4.opt"
2810 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2814 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"
2815 extra_options="${extra_options} rs6000/sysv4.opt"
2816 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2820 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2821 extra_options="${extra_options} rs6000/sysv4.opt"
2822 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2824 powerpc-*-eabialtivec*)
2825 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"
2826 extra_options="${extra_options} rs6000/sysv4.opt"
2827 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2831 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"
2832 extra_options="${extra_options} rs6000/sysv4.opt"
2833 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2837 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"
2838 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2839 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2842 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2843 extra_options="${extra_options} rs6000/sysv4.opt"
2844 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2845 extra_objs="$extra_objs rs6000-linux.o"
2848 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2850 case ${target}:${with_cpu} in
2851 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2853 maybe_biarch=${cpu_is_64bit}
2854 case ${enable_targets} in
2855 *powerpc64*) maybe_biarch=yes ;;
2856 all) maybe_biarch=yes ;;
2858 case ${target}:${enable_targets}:${maybe_biarch} in
2859 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2860 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2861 | powerpcle-*:*powerpc64le*:yes)
2862 if test x$cpu_is_64bit = xyes; then
2863 tm_file="${tm_file} rs6000/default64.h"
2865 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2866 tmake_file="$tmake_file rs6000/t-linux64"
2869 tmake_file="$tmake_file rs6000/t-linux64le"
2870 case ${enable_targets} in
2871 all | *powerpc64-* | *powerpc-*)
2872 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2875 case ${enable_targets} in
2876 all | *powerpc64le-* | *powerpcle-*)
2877 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2880 extra_options="${extra_options} rs6000/linux64.opt"
2883 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2884 extra_options="${extra_options} rs6000/linux64.opt"
2885 tmake_file="${tmake_file} rs6000/t-linux"
2888 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2889 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2893 powerpc*-*-linux*ppc476*)
2894 tm_file="${tm_file} rs6000/476.h"
2895 extra_options="${extra_options} rs6000/476.opt" ;;
2896 powerpc*-*-linux*altivec*)
2897 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2901 enable_secureplt=yes ;;
2903 if test x${enable_secureplt} = xyes; then
2904 tm_file="rs6000/secureplt.h ${tm_file}"
2907 powerpc-wrs-vxworks*)
2908 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2909 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2910 extra_options="${extra_options} rs6000/sysv4.opt"
2911 extra_headers=ppc-asm.h
2914 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2915 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2918 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
2919 tmake_file="${tmake_file} rs6000/t-vxworksae"
2922 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
2928 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2929 tmake_file="t-lynx rs6000/t-lynx"
2930 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2936 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"
2937 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2938 extra_options="${extra_options} rs6000/sysv4.opt"
2940 powerpcle-*-eabisim*)
2941 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"
2942 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2943 extra_options="${extra_options} rs6000/sysv4.opt"
2947 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"
2948 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2949 extra_options="${extra_options} rs6000/sysv4.opt"
2953 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2954 tmake_file="${tmake_file} pru/t-pru"
2955 extra_objs="pru-pragma.o pru-passes.o"
2958 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
2959 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2960 tmake_file="rs6000/t-aix52 t-slibgcc"
2961 extra_options="${extra_options} rs6000/aix64.opt"
2965 default_use_cxa_atexit=yes
2967 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
2968 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
2969 tmake_file="rs6000/t-aix52 t-slibgcc"
2970 extra_options="${extra_options} rs6000/aix64.opt"
2974 default_use_cxa_atexit=yes
2976 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2977 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
2978 tmake_file="rs6000/t-aix52 t-slibgcc"
2979 extra_options="${extra_options} rs6000/aix64.opt"
2983 default_use_cxa_atexit=yes
2986 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2987 target_has_targetm_common=no
2988 c_target_objs="rl78-c.o"
2989 cxx_target_objs="rl78-c.o"
2990 tmake_file="${tmake_file} rl78/t-rl78"
2993 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2994 tmake_file="${tmake_file} rx/t-rx"
2995 extra_options="${extra_options} rx/elf.opt"
2998 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
2999 tmake_file="${tmake_file} rx/t-linux"
3002 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3003 c_target_objs="${c_target_objs} s390-c.o"
3004 cxx_target_objs="${cxx_target_objs} s390-c.o"
3005 if test x$enable_targets = xall; then
3006 tmake_file="${tmake_file} s390/t-linux64"
3008 tmake_file="${tmake_file} s390/t-s390"
3011 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3012 tm_p_file="linux-protos.h s390/s390-protos.h"
3013 c_target_objs="${c_target_objs} s390-c.o"
3014 cxx_target_objs="${cxx_target_objs} s390-c.o"
3015 md_file=s390/s390.md
3016 extra_modes=s390/s390-modes.def
3017 out_file=s390/s390.c
3018 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3021 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
3022 tm_p_file=s390/s390-protos.h
3023 c_target_objs="${c_target_objs} s390-c.o"
3024 cxx_target_objs="${cxx_target_objs} s390-c.o"
3025 md_file=s390/s390.md
3026 extra_modes=s390/s390-modes.def
3027 out_file=s390/s390.c
3029 extra_options="${extra_options} s390/tpf.opt"
3030 tmake_file="${tmake_file} s390/t-s390"
3032 sh-*-elf* | sh[12346l]*-*-elf* | \
3033 sh-*-linux* | sh[2346lbe]*-*-linux* | \
3034 sh-*-netbsdelf* | shl*-*-netbsdelf*)
3035 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3036 if test x${with_endian} = x; then
3038 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3039 shbe-*-* | sheb-*-*) with_endian=big,little ;;
3040 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
3041 shl* | sh*-*-linux* | \
3042 sh-superh-elf) with_endian=little,big ;;
3043 sh[1234]*-*-*) with_endian=big ;;
3044 *) with_endian=big,little ;;
3047 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3048 # First word : the default endian.
3049 # Second word: the secondary endian (optional).
3050 case ${with_endian} in
3051 big) TM_ENDIAN_CONFIG=mb ;;
3052 little) TM_ENDIAN_CONFIG=ml ;;
3053 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
3054 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
3055 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
3057 case ${with_endian} in
3058 little*) tm_file="sh/little.h ${tm_file}" ;;
3060 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
3062 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
3063 if test x$enable_fdpic = xyes; then
3064 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3066 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3068 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3069 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3072 sh*-superh-elf) if test x$with_libgloss != xno; then
3074 tm_file="${tm_file} sh/newlib.h"
3076 tm_file="${tm_file} sh/embed-elf.h"
3077 tm_file="${tm_file} sh/superh.h"
3078 extra_options="${extra_options} sh/superh.opt" ;;
3079 *) if test x$with_newlib = xyes \
3080 && test x$with_libgloss = xyes; then
3081 tm_file="${tm_file} sh/newlib.h"
3083 tm_file="${tm_file} sh/embed-elf.h" ;;
3089 tm_file="${tm_file} newlib-stdint.h"
3092 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3093 case `echo ${target} | sed 's/e[lb]-/-/'` in
3094 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
3095 sh4a_single*) sh_cpu_target=sh4a-single ;;
3096 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
3097 sh4al) sh_cpu_target=sh4al ;;
3098 sh4a*) sh_cpu_target=sh4a ;;
3099 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3100 sh4_single*) sh_cpu_target=sh4-single ;;
3101 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3102 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3103 sh3e*) sh_cpu_target=sh3e ;;
3104 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3105 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3106 sh2a_single*) sh_cpu_target=sh2a-single ;;
3107 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3108 sh2a*) sh_cpu_target=sh2a ;;
3109 sh2e*) sh_cpu_target=sh2e ;;
3110 sh2*) sh_cpu_target=sh2 ;;
3111 *) sh_cpu_target=sh1 ;;
3113 # did the user say --without-fp ?
3114 if test x$with_fp = xno; then
3115 case ${sh_cpu_target} in
3117 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3118 sh4*) sh_cpu_target=sh4-nofpu ;;
3119 sh3*) sh_cpu_target=sh3 ;;
3120 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3121 sh2*) sh_cpu_target=sh2 ;;
3122 *) echo --without-fp not available for $target: ignored
3124 tm_defines="$tm_defines STRICT_NOFPU=1"
3126 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3127 case $sh_cpu_default in
3128 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3129 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3130 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3131 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3132 "") sh_cpu_default=${sh_cpu_target} ;;
3133 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3135 sh_multilibs=${with_multilib_list}
3136 if test "$sh_multilibs" = "default" ; then
3138 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3139 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3140 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3141 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3142 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3144 if test x$with_fp = xno; then
3145 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`"
3148 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3149 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3150 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3151 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3152 for sh_multilib in ${sh_multilibs}; do
3153 case ${sh_multilib} in
3154 m1 | m2 | m2e | m3 | m3e | \
3155 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3156 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3157 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3158 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3159 # It is passed to MULTIILIB_OPTIONS verbatim.
3160 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3161 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3163 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3164 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3165 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3167 echo "with_multilib_list=${sh_multilib} not supported."
3172 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3173 if test x${enable_incomplete_targets} = xyes ; then
3174 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3176 tm_file="$tm_file ./sysroot-suffix.h"
3177 tmake_file="$tmake_file t-sysroot-suffix"
3180 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3181 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3184 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3185 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3188 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3191 tmake_file="sparc/t-sparc sparc/t-leon"
3194 tmake_file="sparc/t-sparc sparc/t-leon3"
3197 tmake_file="sparc/t-sparc sparc/t-elf"
3202 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3203 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3206 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3207 extra_options="${extra_options} sparc/long-double-switch.opt"
3210 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3213 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3216 tmake_file="${tmake_file} sparc/t-sparc"
3219 if test x$enable_targets = xall; then
3220 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3221 tmake_file="${tmake_file} sparc/t-linux64"
3223 tm_file="${tm_file} sparc/linux.h"
3224 tmake_file="${tmake_file} sparc/t-linux"
3228 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3229 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3230 extra_options="${extra_options} sparc/long-double-switch.opt"
3231 tmake_file="${tmake_file} sparc/t-sparc"
3234 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3236 sparc64-*-* | sparcv9-*-*)
3237 tm_file="sparc/default64.h ${tm_file}"
3240 test x$with_cpu != x || with_cpu=v9
3243 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3246 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3247 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3250 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3251 extra_options="${extra_options}"
3252 tmake_file="${tmake_file} sparc/t-sparc"
3255 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3256 extra_options="${extra_options}"
3257 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3260 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"
3261 extra_options="${extra_options} sparc/long-double-switch.opt"
3262 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3264 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3265 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3266 extra_options="${extra_options} sparc/long-double-switch.opt"
3267 case "x$with_cpu" in
3269 x) with_cpu=ultrasparc ;;
3270 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3272 tmake_file="${tmake_file} sparc/t-sparc"
3275 tm_file="sparc/biarch64.h ${tm_file}"
3276 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3277 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3278 extra_options="${extra_options} sparc/long-double-switch.opt"
3279 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3282 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3283 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3284 extra_options="${extra_options} openbsd.opt"
3285 extra_options="${extra_options}"
3288 tmake_file="${tmake_file} sparc/t-sparc"
3291 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3292 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3293 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3297 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3298 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3299 tm_file="${tm_file} ./sysroot-suffix.h"
3300 tmake_file="t-sysroot-suffix t-slibgcc"
3301 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3305 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3306 tmake_file="${tmake_file} tilegx/t-tilegx"
3307 extra_objs="${extra_objs} mul-tables.o"
3308 c_target_objs="${c_target_objs} tilegx-c.o"
3309 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3310 extra_headers="feedback.h"
3313 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3318 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3319 tmake_file="${tmake_file} tilepro/t-tilepro"
3320 extra_objs="${extra_objs} mul-tables.o"
3321 c_target_objs="${c_target_objs} tilepro-c.o"
3322 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3323 extra_headers="feedback.h"
3326 target_cpu_default="TARGET_CPU_generic"
3327 tm_file="dbxelf.h elfos.h v850/v850.h"
3328 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3329 tmake_file="${tmake_file} v850/t-v850"
3330 tmake_file="${tmake_file} v850/t-rtems"
3332 c_target_objs="v850-c.o"
3333 cxx_target_objs="v850-c.o"
3338 target_cpu_default="TARGET_CPU_v850e3v5"
3341 target_cpu_default="TARGET_CPU_v850e2v3"
3344 target_cpu_default="TARGET_CPU_v850e2"
3346 v850e1-*-* | v850es-*-*)
3347 target_cpu_default="TARGET_CPU_v850e1"
3350 target_cpu_default="TARGET_CPU_v850e"
3353 target_cpu_default="TARGET_CPU_generic"
3356 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3357 if test x$stabs = xyes
3359 tm_file="${tm_file} dbx.h"
3362 c_target_objs="v850-c.o"
3363 cxx_target_objs="v850-c.o"
3367 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3368 extra_options="${extra_options} vax/elf.opt"
3371 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3372 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3373 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3376 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3377 extra_options="${extra_options} openbsd.opt"
3381 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3382 tmake_file="visium/t-visium visium/t-crtstuff"
3385 # For historical reasons, the target files omit the 'x'.
3386 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3387 tm_p_file=stormy16/stormy16-protos.h
3388 tm_d_file="elfos.h stormy16/stormy16.h"
3389 md_file=stormy16/stormy16.md
3390 out_file=stormy16/stormy16.c
3391 extra_options=stormy16/stormy16.opt
3392 tmake_file="stormy16/t-stormy16"
3395 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3396 extra_options="${extra_options} xtensa/elf.opt"
3399 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3400 tmake_file="${tmake_file} xtensa/t-xtensa"
3403 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3404 tmake_file="${tmake_file} xtensa/t-xtensa"
3405 extra_options="${extra_options} xtensa/uclinux.opt"
3408 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3413 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3414 c_target_objs="m32c-pragma.o"
3415 cxx_target_objs="m32c-pragma.o"
3418 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3419 c_target_objs="m32c-pragma.o"
3420 cxx_target_objs="m32c-pragma.o"
3423 echo "*** Configuration ${target} not supported" 1>&2
3429 i[34567]86-*-linux* | x86_64-*-linux*)
3430 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3432 i[34567]86-*-* | x86_64-*-*)
3433 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3435 powerpc*-*-* | rs6000-*-*)
3436 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3442 tmake_file="${tmake_file} t-musl"
3445 tmake_file="${tmake_file} t-uclibc"
3449 # Assume the existence of indirect function support and allow the use of the
3450 # resolver attribute.
3452 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3456 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3457 default_gnu_indirect_function=yes
3463 # Build mkoffload tool
3465 *-intelmic-* | *-intelmicemul-*)
3466 tmake_file="${tmake_file} i386/t-intelmic"
3467 tm_file="${tm_file} i386/intelmic-offload.h"
3471 if [ "$target_has_targetcm" = "no" ]; then
3472 c_target_objs="$c_target_objs default-c.o"
3473 cxx_target_objs="$cxx_target_objs default-c.o"
3476 if [ "$common_out_file" = "" ]; then
3477 if [ "$target_has_targetm_common" = "yes" ]; then
3478 common_out_file="$cpu_type/$cpu_type-common.c"
3480 common_out_file="default-common.c"
3484 if [ "$target_has_targetdm" = "no" ]; then
3485 d_target_objs="$d_target_objs default-d.o"
3488 # Support for --with-cpu and related options (and a few unrelated options,
3492 echo "--with-cpu must be passed a value" 1>&2
3497 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3498 # to generic if there is no processor scheduler model for the target.
3501 arch_without_sse2=no
3502 arch_without_64bit=no
3505 if test $fbsd_major -ge 6; then
3511 arch_without_sse2=yes
3512 arch_without_64bit=yes
3517 arch_without_sse2=yes
3518 arch_without_64bit=yes
3523 arch_without_sse2=yes
3524 arch_without_64bit=yes
3529 arch_without_sse2=yes
3530 arch_without_64bit=yes
3533 arch_without_sse2=yes
3534 arch_without_64bit=yes
3535 case ${target_noncanonical} in
3548 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3558 i686-*-* | i786-*-*)
3559 case ${target_noncanonical} in
3592 amdfam10-*|barcelona-*)
3596 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3600 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3604 athlon_xp-*|athlon_mp-*|athlon_4-*)
3607 arch_without_sse2=yes
3608 arch_without_64bit=yes
3610 athlon_tbird-*|athlon-*)
3613 arch_without_sse2=yes
3618 arch_without_sse2=yes
3623 arch_without_sse2=yes
3625 pentium3-*|pentium3m-*)
3628 arch_without_sse2=yes
3630 pentium4-*|pentium4m-*)
3669 arch_without_sse2=yes
3674 arch_without_sse2=yes
3675 arch_without_64bit=yes
3680 case ${target_noncanonical} in
3713 amdfam10-*|barcelona-*)
3717 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3721 k8-*|opteron-*|athlon_64-*)
3753 # If there is no $with_cpu option, try to infer one from ${target}.
3754 # This block sets nothing except for with_cpu.
3755 if test x$with_cpu = x ; then
3757 i[34567]86-*-elfiamcu)
3760 i[34567]86-*-*|x86_64-*-*)
3778 frv-*-*linux* | frv400-*-*linux*)
3785 case "$with_arch" in
3787 with_cpu=${default_cf_cpu}
3790 with_cpu=m${default_m68k_cpu}
3806 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3815 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3817 i[34567]86-*-*|x86_64-*-*)
3818 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3819 if test x$with_cpu_32 = x; then
3820 with_cpu_32=$with_cpu
3822 if test x$with_cpu_64 = x; then
3823 with_cpu_64=$with_cpu
3831 # Support for --with-arch and related options (and a few unrelated options,
3833 case ${with_arch} in
3835 echo "--with-arch must be passed a value" 1>&2
3840 # If there is no $with_arch option, try to infer one from ${target}.
3841 # This block sets nothing except for with_arch.
3842 if test x$with_arch = x ; then
3844 i[34567]86-*-darwin*|x86_64-*-darwin*)
3845 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3846 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3848 i[34567]86-*-elfiamcu)
3852 # --with-fpmath sets the default ISA to SSE2, which is the same
3853 # ISA supported by Pentium 4.
3854 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3863 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3871 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3873 i[34567]86-*-darwin*|x86_64-*-darwin*)
3874 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3875 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3877 i[34567]86-*-*|x86_64-*-*)
3878 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3879 if test x$with_arch_32 = x; then
3880 with_arch_32=$with_arch
3882 if test x$with_arch_64 = x; then
3883 if test $arch_without_64bit = yes; then
3884 # Set the default 64bit arch to x86-64 if the default arch
3885 # doesn't support 64bit.
3888 with_arch_64=$with_arch
3892 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3893 # Set the default 64bit arch to x86-64 if the default arch
3894 # doesn't support 64bit and we need 64bit ISA.
3895 with_arch_32=$with_arch
3903 # Infer a default setting for --with-float.
3904 if test x$with_float = x; then
3906 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3907 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3908 # comply with IEEE 754.
3914 # Infer a default setting for --with-fpu.
3915 if test x$with_fpu = x; then
3917 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3918 # The R5900 FPU only supports single precision.
3924 # Support --with-fpmath.
3925 if test x$with_fpmath != x; then
3927 i[34567]86-*-* | x86_64-*-*)
3928 case ${with_fpmath} in
3930 tm_file="${tm_file} i386/avxmath.h"
3933 tm_file="${tm_file} i386/ssemath.h"
3936 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3942 echo "--with-fpmath isn't supported for $target." 1>&2
3948 # Similarly for --with-schedule.
3949 if test x$with_schedule = x; then
3952 # Override default PA8000 scheduling model.
3953 with_schedule=7100LC
3958 # Infer a default setting for --with-llsc.
3959 if test x$with_llsc = x; then
3962 # The kernel emulates LL and SC where necessary.
3965 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3966 # The R5900 doesn't support LL(D) and SC(D).
3972 # Validate and mark as valid any --with options supported
3973 # by this target. In order to use a particular --with option
3974 # you must list it in supported_defaults; validating the value
3975 # is optional. This case statement should set nothing besides
3976 # supported_defaults.
3981 supported_defaults="abi cpu arch"
3982 for which in cpu arch; do
3984 eval "val=\$with_$which"
3985 base_val=`echo $val | sed -e 's/\+.*//'`
3986 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
3988 if [ $which = arch ]; then
3989 def=aarch64-arches.def
3990 pattern=AARCH64_ARCH
3992 def=aarch64-cores.def
3993 pattern=AARCH64_CORE
3996 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3998 # Find the base CPU or ARCH id in aarch64-cores.def or
3999 # aarch64-arches.def
4000 if [ x"$base_val" = x ] \
4001 || grep "^$pattern(\"$base_val\"," \
4002 ${srcdir}/config/aarch64/$def \
4005 if [ $which = arch ]; then
4006 base_id=`grep "^$pattern(\"$base_val\"," \
4007 ${srcdir}/config/aarch64/$def | \
4008 sed -e 's/^[^,]*,[ ]*//' | \
4010 # Extract the architecture flags from aarch64-arches.def
4011 ext_mask=`grep "^$pattern(\"$base_val\"," \
4012 ${srcdir}/config/aarch64/$def | \
4016 base_id=`grep "^$pattern(\"$base_val\"," \
4017 ${srcdir}/config/aarch64/$def | \
4018 sed -e 's/^[^,]*,[ ]*//' | \
4022 # Use the pre-processor to strip flatten the options.
4023 # This makes the format less rigid than if we use
4024 # grep and sed directly here.
4025 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4026 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4027 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4029 # Match one element inside AARCH64_OPT_EXTENSION, we
4030 # consume anything that's not a ,.
4031 elem="[ ]*\([^,]\+\)[ ]*"
4033 # Repeat the pattern for the number of entries in the
4034 # AARCH64_OPT_EXTENSION, currently 6 times.
4035 sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
4037 while [ x"$ext_val" != x ]
4039 ext_val=`echo $ext_val | sed -e 's/\+//'`
4040 ext=`echo $ext_val | sed -e 's/\+.*//'`
4041 base_ext=`echo $ext | sed -e 's/^no//'`
4042 opt_line=`echo -e "$options_parsed" | \
4043 grep "^\"$base_ext\""`
4045 if [ x"$base_ext" = x ] \
4046 || [[ -n $opt_line ]]; then
4048 # These regexp extract the elements based on
4049 # their group match index in the regexp.
4050 ext_canon=`echo -e "$opt_line" | \
4051 sed -e "s/$sed_patt/\2/"`
4052 ext_on=`echo -e "$opt_line" | \
4053 sed -e "s/$sed_patt/\3/"`
4054 ext_off=`echo -e "$opt_line" | \
4055 sed -e "s/$sed_patt/\4/"`
4057 if [ $ext = $base_ext ]; then
4059 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
4061 # Removing extension
4062 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
4067 echo "Unknown extension used in --with-$which=$val" 1>&2
4070 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4073 ext_mask="(("$ext_mask") << 6)"
4074 if [ x"$base_id" != x ]; then
4075 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
4079 echo "Unknown $which used in --with-$which=$val" 1>&2
4086 supported_defaults="cpu tune"
4087 for which in cpu tune; do
4088 eval "val=\$with_$which"
4091 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4092 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4096 echo "Unknown CPU used in --with-$which=$val" 1>&2
4104 supported_defaults="cpu"
4106 if [ x"$with_cpu" = x ] \
4107 || grep "^ARC_CPU ($with_cpu," \
4108 ${srcdir}/config/arc/arc-cpus.def \
4113 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4119 supported_defaults="cpu endian float"
4123 supported_defaults="arch cpu float tune fpu abi mode tls"
4124 for which in cpu tune arch; do
4125 # See if it matches a supported value
4126 eval "val=\$with_$which"
4127 if [ x"$val" != x ]; then
4128 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4129 -v cmd="chk$which $val" \
4130 ${srcdir}/config/arm/arm-cpus.in`
4131 if [ "$cpu" = "error" ]; then
4132 echo "Unknown target in --with-$which=$val" 1>&2
4136 eval "target_${which}_cname=$new_val"
4137 echo "For $val real value is $new_val"
4142 case "$with_float" in
4144 | soft | hard | softfp)
4148 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4153 # see if --with-fpu matches any of the supported FPUs
4154 if [ x"$with_fpu" != x ] ; then
4156 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4157 -v cmd="chkfpu $val" \
4158 ${srcdir}/config/arm/arm-cpus.in`
4159 if [ "$fpu" = "error" ]
4161 echo "Unknown target in --with-fpu=$val" 1>&2
4168 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4172 echo "Unknown ABI used in --with-abi=$with_abi"
4177 case "$with_mode" in
4183 echo "Unknown mode used in --with-mode=$with_mode"
4194 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4199 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4200 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4204 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4205 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4209 # Add extra multilibs
4210 if test "x$with_multilib_list" != x; then
4212 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4213 if test "x${arm_multilibs}" != xdefault ; then
4214 for arm_multilib in ${arm_multilibs}; do
4215 case ${arm_multilib} in
4217 tmake_profile_file="arm/t-multilib"
4220 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4221 if test -f "${srcdir}/config/arm/${ml}"; then
4222 tmake_file="${tmake_file} arm/${ml}"
4224 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4229 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4236 if test "x${tmake_profile_file}" != x ; then
4237 # arm/t-aprofile and arm/t-rmprofile are only
4238 # designed to work without any with-cpu,
4239 # with-arch, with-mode, with-fpu or with-float
4241 if test "x$with_arch" != x \
4242 || test "x$with_cpu" != x \
4243 || test "x$with_float" != x \
4244 || test "x$with_fpu" != x \
4245 || test "x$with_mode" != x ; then
4246 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4248 elif test "x$ml" != x ; then
4249 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4252 # But pass the default value for float-abi
4253 # through to the multilib selector
4255 tmake_file="${tmake_file} ${tmake_profile_file}"
4256 TM_MULTILIB_CONFIG="$with_multilib_list"
4259 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4260 with_cpu=${with_cpu:-$target_cpu_cname}
4264 supported_defaults=cpu
4269 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4275 fido-*-* | m68k*-*-*)
4276 supported_defaults="arch cpu"
4277 case "$with_arch" in
4279 m68k_arch_family="$with_arch"
4282 echo "Invalid --with-arch=$with_arch" 1>&2
4287 # We always have a $with_cpu setting here.
4289 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4290 m68k_cpu_ident=$with_cpu
4293 m68k_cpu_ident=m68020
4294 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4297 m68k_cpu_ident=m68020
4298 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4301 # We need the C identifier rather than the string.
4302 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4303 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4304 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4305 ${srcdir}/config/m68k/m68k-devices.def`
4306 if [ x"$m68k_cpu_ident" = x ] ; then
4307 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4310 with_cpu="mcpu=$with_cpu"
4316 supported_defaults="arch tune"
4318 for which in arch tune; do
4319 eval "val=\$with_$which"
4321 "" | carrizo | fiji | gfx900 | gfx906 )
4325 echo "Unknown cpu used in --with-$which=$val." 1>&2
4330 [ "x$with_arch" = x ] && with_arch=fiji
4334 supported_defaults="arch schedule"
4336 case "$with_arch" in
4337 "" | 1.0 | 1.1 | 2.0)
4341 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4346 case "$with_schedule" in
4347 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4351 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4357 i[34567]86-*-* | x86_64-*-*)
4358 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4359 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4360 eval "val=\$with_$which"
4361 case " $x86_archs " in
4369 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4378 if test x${val} != x; then
4379 case " $x86_64_archs " in
4384 # Allow $x86_cpus --with-cpu=/--with-tune=
4387 case " $x86_cpus " in
4392 echo "Unknown CPU given in --with-$which=$val." 1>&2
4398 echo "Unknown CPU given in --with-$which=$val." 1>&2
4411 supported_defaults="abi arch tune riscv_attribute"
4414 riscv-* | riscv32*) xlen=32 ;;
4415 riscv64*) xlen=64 ;;
4416 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4419 case "${with_riscv_attribute}" in
4421 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4424 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4429 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4432 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4437 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4443 # Infer arch from --with-arch, --target, and --with-abi.
4444 case "${with_arch}" in
4445 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4449 # Infer XLEN, but otherwise assume GC.
4450 case "${with_abi}" in
4451 ilp32e) with_arch="rv32e" ;;
4452 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4453 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4454 *) with_arch="rv${xlen}gc" ;;
4458 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4463 # Make sure --with-abi is valid. If it was not specified,
4464 # pick a default based on the ISA, preferring soft-float
4465 # unless the D extension is present.
4466 case "${with_abi}" in
4467 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4470 case "${with_arch}" in
4471 rv32*d* | rv32g*) with_abi=ilp32d ;;
4472 rv32e*) with_abi=ilp32e ;;
4473 rv32*) with_abi=ilp32 ;;
4474 rv64*d* | rv64g*) with_abi=lp64d ;;
4475 rv64*) with_abi=lp64 ;;
4479 echo "--with-abi=${with_abi} is not supported" 1>&2
4484 # Make sure ABI and ISA are compatible.
4485 case "${with_abi},${with_arch}" in
4486 ilp32,rv32* | ilp32e,rv32e* \
4487 | ilp32f,rv32*f* | ilp32f,rv32g* \
4488 | ilp32d,rv32*d* | ilp32d,rv32g* \
4490 | lp64f,rv64*f* | lp64f,rv64g* \
4491 | lp64d,rv64*d* | lp64d,rv64g*)
4494 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4499 # Handle --with-multilib-list.
4500 if test "x${with_multilib_list}" != xdefault; then
4501 tm_file="${tm_file} riscv/withmultilib.h"
4502 tmake_file="${tmake_file} riscv/t-withmultilib"
4504 case ${with_multilib_list} in
4505 ilp32 | ilp32f | ilp32d \
4506 | lp64 | lp64f | lp64d )
4507 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4510 echo "--with-multilib-list=${with_multilib_list} not supported."
4514 # Define macros to select the default multilib.
4515 case ${with_arch} in
4517 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4520 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4523 echo "unsupported --with-arch for --with-multilib-list"
4528 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4531 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4534 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4537 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4540 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4543 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4546 echo "unsupported --with-abi for --with-multilib"
4553 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"
4555 case ${with_float} in
4560 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4566 "" | single | double)
4570 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4580 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4585 case ${with_fp_32} in
4590 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4595 case ${with_odd_spreg_32} in
4597 with_odd_spreg_32="odd-spreg"
4600 with_odd_spreg_32="no-odd-spreg"
4606 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4612 "" | 32 | o64 | n32 | 64 | eabi)
4616 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4621 case ${with_divide} in
4622 "" | breaks | traps)
4626 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4631 case ${with_llsc} in
4642 echo "Unknown llsc type used in --with-llsc" 1>&2
4647 case ${with_mips_plt} in
4652 with_mips_plt=no-plt
4657 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4662 case ${with_synci} in
4672 echo "Unknown synci type used in --with-synci" 1>&2
4677 case ${with_lxc1_sxc1} in
4679 with_lxc1_sxc1=lxc1-sxc1
4682 with_lxc1_sxc1=no-lxc1-sxc1
4687 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4692 case ${with_madd4} in
4702 echo "Unknown madd4 type used in --with-madd4" 1>&2
4709 supported_defaults="arch cpu nds32_lib float fpu_config"
4711 # process --with-arch
4712 case "${with_arch}" in
4714 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4718 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4721 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4724 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4728 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4733 case "${with_cpu}" in
4737 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4741 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4746 # process --with-nds32-lib
4747 case "${with_nds32_lib}" in
4751 with_nds32_lib=ulibc
4754 with_nds32_lib=glibc
4757 with_nds32_lib=newlib
4758 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4764 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4768 # for the arch=v3f or arch=v3s under mculib toolchain,
4769 # we would like to set -fno-math-errno as default
4770 case "${with_arch}" in
4772 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4780 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4785 # process --with-float
4786 case "${with_float}" in
4791 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4796 # process --with-config-fpu
4797 case "${with_config_fpu}" in
4802 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4810 supported_defaults="arch"
4811 case "$with_arch" in
4816 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4822 powerpc*-*-* | rs6000-*-*)
4823 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4825 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4826 eval "val=\$with_$which"
4828 default32 | default64)
4833 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4837 with_which="with_$which"
4841 tm_defines="${tm_defines} CONFIG_PPC405CR"
4842 eval "with_$which=405"
4844 "" | common | native \
4845 | power[3456789] | power5+ | power6x \
4846 | powerpc | powerpc64 | powerpc64le \
4848 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4849 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4850 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4851 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4852 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4856 echo "Unknown cpu used in --with-$which=$val." 1>&2
4863 "" | elfv1 | elfv2 )
4867 echo "Unknown ABI used in --with-abi=$with_abi"
4872 if test "x$with_advance_toolchain" != x; then
4873 if test -d "/opt/$with_advance_toolchain/." -a \
4874 -d "/opt/$with_advance_toolchain/bin/." -a \
4875 -d "/opt/$with_advance_toolchain/include/."; then
4877 tm_file="$tm_file ./advance-toolchain.h"
4878 (at="/opt/$with_advance_toolchain"
4879 echo "/* Use Advance Toolchain $at */"
4881 echo "#undef LINK_OS_EXTRA_SPEC32"
4882 echo "#define LINK_OS_EXTRA_SPEC32" \
4883 "\"%(link_os_new_dtags)" \
4884 "-rpath $prefix/lib -rpath $at/lib\""
4886 echo "#undef LINK_OS_EXTRA_SPEC64"
4887 echo "#define LINK_OS_EXTRA_SPEC64" \
4888 "\"%(link_os_new_dtags)" \
4889 "-rpath $prefix/lib64 -rpath $at/lib64\""
4891 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4892 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4893 "\"--enable-new-dtags\""
4895 echo "#undef DYNAMIC_LINKER_PREFIX"
4896 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4898 echo "#undef MD_EXEC_PREFIX"
4899 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4901 echo "#undef MD_STARTFILE_PREFIX"
4902 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
4904 echo "#undef MD_STARTFILE_PREFIX_1"
4905 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
4906 > advance-toolchain.h
4908 echo "Unknown advance-toolchain $with_advance_toolchain"
4913 # Set up the default long double format if the user changed it.
4914 if test x$with_long_double_format = xieee; then
4915 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
4917 elif test x$with_long_double_format = xibm; then
4918 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
4923 supported_defaults="arch mode tune"
4925 for which in arch tune; do
4926 eval "val=\$with_$which"
4928 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 )
4932 echo "Unknown cpu used in --with-$which=$val." 1>&2
4938 case ${with_mode} in
4943 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4949 sh[123456ble]*-*-* | sh-*-*)
4950 supported_defaults="cpu"
4951 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4952 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4955 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4957 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4960 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4961 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4962 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4963 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4969 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4971 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4972 eval "val=\$with_$which"
4974 "" | sparc | sparcv9 | sparc64 \
4976 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4977 | sparclite | f930 | f934 | sparclite86x \
4978 | sparclet | tsc701 \
4979 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4980 | niagara3 | niagara4 | niagara7 | m8)
4984 echo "Unknown cpu used in --with-$which=$val" 1>&2
4990 case ${with_float} in
4995 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5002 supported_defaults="arch"
5004 case ${with_arch} in
5005 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5009 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5016 supported_defaults=cpu
5018 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5022 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5028 supported_defaults="cpu"
5032 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5039 # Targets for which there is at least one VxWorks port should include
5040 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5041 # of markers from other files in the port, including the vxworks*.h files to
5042 # distinguish VxWorks variants such as VxWorks 7 or 64).
5045 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5046 | sparc*-*-* | x86_64-*-*)
5047 tm_file="vxworks-dummy.h ${tm_file}"
5051 # Set some miscellaneous flags for particular targets.
5052 target_cpu_default2=
5055 if test x"$target_cpu_cname" != x
5057 target_cpu_default2=$target_cpu_cname
5062 if test x$with_cpu = x
5064 echo "Don't know the target cpu" 1>&2
5067 target_cpu_default2="\\\"$with_cpu\\\""
5072 if test x$gas = xyes
5074 target_cpu_default2="MASK_GAS"
5078 fido*-*-* | m68k*-*-*)
5079 target_cpu_default2=$m68k_cpu_ident
5080 tmake_file="m68k/t-opts $tmake_file"
5081 if [ x"$m68k_arch_family" != x ]; then
5082 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5086 i[34567]86-*-darwin* | x86_64-*-darwin*)
5088 i[34567]86-*-linux* | x86_64-*-linux*)
5089 extra_objs="${extra_objs} cet.o"
5090 tmake_file="$tmake_file i386/t-linux i386/t-cet"
5092 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5093 tmake_file="$tmake_file i386/t-kfreebsd"
5096 tmake_file="$tmake_file i386/t-gnu"
5098 i[34567]86-*-msdosdjgpp*)
5099 tmake_file="${tmake_file} i386/t-djgpp"
5101 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5103 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5105 i[34567]86-*-mingw* | x86_64-*-mingw*)
5107 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5109 i[34567]86-*-freebsd*)
5112 tmake_file="${tmake_file} i386/t-freebsd64"
5118 if test x$gnu_ld = xyes
5120 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5124 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5127 if test x$with_arch != x; then
5128 default_mips_arch=$with_arch
5130 if test x$with_abi != x; then
5131 default_mips_abi=$with_abi
5133 case ${default_mips_arch} in
5134 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
5135 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
5136 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
5137 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
5138 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
5139 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
5140 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
5141 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
5142 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
5143 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
5145 case ${default_mips_abi} in
5146 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5147 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5148 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5149 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5150 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5152 tmake_file="mips/t-mips $tmake_file"
5155 powerpc*-*-* | rs6000-*-*)
5156 # FIXME: The PowerPC port uses the value set at compile time,
5157 # although it's only cosmetic.
5158 if test "x$with_cpu" != x
5160 target_cpu_default2="\\\"$with_cpu\\\""
5162 out_file="${cpu_type}/${cpu_type}.c"
5163 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5164 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5165 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5166 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5169 sh[123456ble]*-*-* | sh-*-*)
5170 c_target_objs="${c_target_objs} sh-c.o"
5171 cxx_target_objs="${cxx_target_objs} sh-c.o"
5175 # Some standard aliases.
5180 xsparcv9 | xsparc64)
5185 if test x$with_tune = x ; then
5196 # The SPARC port checks this value at compile-time.
5197 target_cpu_default2="TARGET_CPU_$with_cpu"
5201 case "x$with_cpu" in
5204 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5205 target_cpu_default2="TARGET_CPU_$with_cpu"
5208 target_cpu_default2="TARGET_CPU_v850e1"
5213 target_cpu_default2="TARGET_CPU_$with_cpu"
5218 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"
5219 for option in $all_defaults
5221 eval "val=\$with_"`echo $option | sed s/-/_/g`
5222 if test -n "$val"; then
5223 case " $supported_defaults " in
5227 echo "This target does not support --with-$option." 2>&1
5228 echo "Valid --with options are: $supported_defaults" 2>&1
5235 t="{ \"$option\", \"$val\" }"
5237 t="${t}, { \"$option\", \"$val\" }"
5244 configure_default_options="{ { NULL, NULL} }"
5246 configure_default_options="{ ${t} }"
5249 if test "$target_cpu_default2" != ""
5251 if test "$target_cpu_default" != ""
5253 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5255 target_cpu_default=$target_cpu_default2
5260 i[34567]86-*-* | x86_64-*-*)
5261 if test x$enable_as_accelerator = xyes; then
5262 extra_programs="mkoffload\$(exeext)"