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"
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 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"
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 ;;
967 tm_defines="$tm_defines TARGET_VXWORKS7=1"
972 tm_defines="$tm_defines TARGET_VXWORKS64=1"
977 # Assume that newlib is being used and so __cxa_atexit is provided.
978 default_use_cxa_atexit=yes
984 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
985 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
986 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
987 tmake_file="${tmake_file} aarch64/t-aarch64"
993 tm_file="${tm_file} fuchsia.h"
996 tm_file="${tm_file} rtems.h aarch64/rtems.h"
1001 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1004 aarch64_multilibs="${with_multilib_list}"
1005 if test "$aarch64_multilibs" = "default"; then
1006 aarch64_multilibs="lp64,ilp32"
1008 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1009 for aarch64_multilib in ${aarch64_multilibs}; do
1010 case ${aarch64_multilib} in
1012 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1015 echo "--with-multilib-list=${aarch64_multilib} not supported."
1019 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1021 aarch64*-*-freebsd*)
1022 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1023 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1024 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1025 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1028 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
1029 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1030 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1031 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1034 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1035 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1036 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1037 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1040 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1043 aarch64_multilibs="${with_multilib_list}"
1044 if test "$aarch64_multilibs" = "default"; then
1045 # TODO: turn on ILP32 multilib build after its support is mature.
1046 # aarch64_multilibs="lp64,ilp32"
1047 aarch64_multilibs="lp64"
1049 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1050 for aarch64_multilib in ${aarch64_multilibs}; do
1051 case ${aarch64_multilib} in
1053 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1056 echo "--with-multilib-list=${aarch64_multilib} not supported."
1060 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1063 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1064 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1065 extra_options="${extra_options} alpha/elf.opt"
1068 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1069 tmake_file="${tmake_file} alpha/t-alpha"
1070 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1074 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1075 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1076 tmake_file="${tmake_file} alpha/t-alpha"
1077 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1078 # default x-alpha is only appropriate for dec-osf.
1081 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1082 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1085 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1086 tmake_file="arc/t-multilib arc/t-arc"
1087 extra_gcc_objs="driver-arc.o"
1088 if test "x$with_cpu" != x; then
1089 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1091 if test x${with_endian} = x; then
1093 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1094 *) with_endian=little ;;
1097 case ${with_endian} in
1099 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1101 case ${with_endian} in
1102 big*) tm_file="arc/big.h ${tm_file}"
1106 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}"
1107 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1108 extra_gcc_objs="driver-arc.o"
1109 if test "x$with_cpu" != x; then
1110 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1112 if test x${with_endian} = x; then
1114 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1115 *) with_endian=little ;;
1118 case ${with_endian} in
1120 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1122 case ${with_endian} in
1123 big*) tm_file="arc/big.h ${tm_file}"
1125 # Force .init_array support. The configure script cannot always
1126 # automatically detect that GAS supports it, yet we require it.
1127 gcc_cv_initfini_array=yes
1129 arm-wrs-vxworks|arm-wrs-vxworks7)
1130 extra_options="${extra_options} arm/vxworks.opt"
1131 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1134 # VxWorks7 on ARM adheres to the ARM Base Platform ABI
1135 tmake_file="${tmake_file} arm/t-bpabi"
1136 tm_file="arm/bpabi.h ${tm_file}"
1137 # The BPABI long long divmod functions return a 128-bit value in
1139 need_64bit_hwint=yes
1140 default_use_cxa_atexit=yes
1144 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1145 target_cpu_cname="arm8"
1147 arm*-*-freebsd*) # ARM FreeBSD EABI
1148 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1151 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1154 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1155 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1158 target_cpu_cname="arm1176jzf-s"
1159 if test $fbsd_major -ge 11; then
1160 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1164 target_cpu_cname="generic-armv7-a"
1165 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1168 target_cpu_cname="arm9"
1171 with_tls=${with_tls:-gnu}
1174 target_cpu_cname="strongarm"
1175 tmake_file="${tmake_file} arm/t-arm"
1176 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1177 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1179 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1182 arm*-*-netbsdelf-*eabi*)
1183 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1184 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1187 tm_file="$tm_file arm/netbsd-elf.h"
1188 tmake_file="$tmake_file arm/t-netbsd"
1191 tm_file="${tm_file} arm/aout.h arm/arm.h"
1193 arm*-*-netbsdelf-*eabihf*)
1194 # Hard-float requires at least Arm v5te
1195 target_cpu_cname="arm10e"
1196 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1200 armv6*) target_cpu_cname="arm1176jzf-s";;
1201 armv7*) target_cpu_cname="generic-armv7-a";;
1204 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1205 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"
1206 extra_options="${extra_options} linux-android.opt"
1209 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1212 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1213 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1215 arm*-*-uclinuxfdpiceabi)
1216 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1219 # Generation of floating-point instructions requires at least ARMv5te.
1220 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1221 target_cpu_cname="arm10e"
1223 target_cpu_cname="arm10tdmi"
1225 # Define multilib configuration for arm-linux-androideabi.
1228 tmake_file="$tmake_file arm/t-linux-androideabi"
1231 # The EABI requires the use of __cxa_atexit.
1232 default_use_cxa_atexit=yes
1233 with_tls=${with_tls:-gnu}
1235 arm*-*-uclinux*eabi*) # ARM ucLinux
1236 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1237 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1238 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1239 target_cpu_cname="arm7tdmi"
1240 # The EABI requires the use of __cxa_atexit.
1241 default_use_cxa_atexit=yes
1244 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1245 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1246 tm_file="${tm_file} arm/aout.h arm/arm.h"
1247 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1248 target_cpu_cname="arm7tdmi"
1250 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1253 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1255 default_use_cxa_atexit=yes
1256 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1257 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1258 target_cpu_cname="arm7tdmi"
1261 tm_file="$tm_file newlib-stdint.h"
1262 tmake_file="${tmake_file} arm/t-bpabi"
1266 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1267 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1268 target_cpu_cname="generic-armv7-a"
1271 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1272 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1275 tm_file="${tm_file} arm/symbian.h"
1276 # We do not include t-bpabi for Symbian OS because the system
1277 # provides its own implementation of the BPABI functions.
1278 tmake_file="${tmake_file} arm/t-symbian"
1279 target_cpu_cname="arm10tdmi"
1282 tm_file="${tm_file} arm/aout.h arm/arm.h"
1285 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1286 if test x${with_avrlibc} != xno; then
1287 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1288 tm_defines="${tm_defines} WITH_AVRLIBC"
1290 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1292 extra_gcc_objs="driver-avr.o avr-devices.o"
1293 extra_objs="avr-devices.o avr-log.o"
1296 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1297 tmake_file=bfin/t-bfin-elf
1301 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1302 tmake_file=bfin/t-bfin-uclinux
1305 bfin*-linux-uclibc*)
1306 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"
1307 tmake_file="${tmake_file} bfin/t-bfin-linux"
1311 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1312 tmake_file="${tmake_file} bfin/t-rtems"
1315 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1320 tmake_file="${tmake_file} bpf/t-bpf"
1322 extra_headers="bpf-helpers.h"
1323 use_gcc_stdint=provide
1326 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1327 tmake_file="${tmake_file} cr16/t-cr16 "
1330 crisv32-*-elf | crisv32-*-none)
1331 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1332 tmake_file="cris/t-cris"
1333 target_cpu_default=32
1335 extra_options="${extra_options} cris/elf.opt"
1338 cris-*-elf | cris-*-none)
1339 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1340 tmake_file="cris/t-cris cris/t-elfmulti"
1342 extra_options="${extra_options} cris/elf.opt"
1345 crisv32-*-linux* | cris-*-linux*)
1346 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1347 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1348 extra_options="${extra_options} cris/linux.opt"
1351 target_cpu_default=10
1354 target_cpu_default=32
1359 if test x${with_endian} != x; then
1360 case ${with_endian} in
1363 echo "with_endian=${with_endian} not supported."
1368 if test x${with_float} != x; then
1369 case ${with_float} in
1372 "Unknown floating point type used in --with-float=$with_float"
1377 tm_file="csky/csky.h"
1378 md_file="csky/csky.md"
1379 out_file="csky/csky.c"
1380 tm_p_file="${tm_p_file} csky/csky-protos.h"
1381 extra_options="${extra_options} csky/csky_tables.opt"
1383 if test x${enable_tpf_debug} = xyes; then
1384 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1389 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1390 tmake_file="csky/t-csky csky/t-csky-elf"
1391 default_use_cxa_atexit=no
1394 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1395 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1397 if test "x${enable_multilib}" = xyes ; then
1398 tm_file="$tm_file ./sysroot-suffix.h"
1399 tmake_file="${tmake_file} csky/t-sysroot-suffix"
1404 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1405 # Force .init_array support. The configure script cannot always
1406 # automatically detect that GAS supports it, yet we require it.
1407 gcc_cv_initfini_array=yes
1409 csky-*-linux-uclibc*)
1410 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1411 default_use_cxa_atexit=no
1414 echo "Unknown target $target"
1420 echo "Unknown target $target"
1425 epiphany-*-elf | epiphany-*-rtems*)
1426 tm_file="${tm_file} dbxelf.h elfos.h"
1427 tmake_file="${tmake_file} epiphany/t-epiphany"
1430 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1433 tm_file="${tm_file} newlib-stdint.h"
1436 extra_options="${extra_options} fused-madd.opt"
1437 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1438 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1439 extra_headers="epiphany_intrinsics.h"
1442 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1445 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1446 tmake_file=frv/t-frv
1449 tm_file="dbxelf.h elfos.h ${tm_file} \
1450 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1451 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1456 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1457 tmake_file="${tmake_file} ft32/t-ft32"
1460 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1461 tmake_file="gcn/t-gcn-hsa"
1462 native_system_header_dir=/include
1463 extra_modes=gcn/gcn-modes.def
1464 extra_objs="${extra_objs} gcn-tree.o"
1465 extra_gcc_objs="driver-gcn.o"
1467 x86_64*-*-linux-gnu )
1468 if test "$ac_cv_search_dlopen" != no; then
1469 extra_programs="${extra_programs} gcn-run\$(exeext)"
1473 if test x$enable_as_accelerator = xyes; then
1474 extra_programs="${extra_programs} mkoffload\$(exeext)"
1475 tm_file="${tm_file} gcn/offload.h"
1477 # Force .init_array support.
1478 gcc_cv_initfini_array=yes
1484 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1485 tmake_file="${tmake_file} moxie/t-moxie"
1490 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1491 tmake_file="${tmake_file} moxie/t-moxie"
1494 tmake_file="${tmake_file} moxie/t-moxie"
1495 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1500 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1501 tmake_file="${tmake_file} moxie/t-moxiebox"
1504 tmake_file="h8300/t-h8300"
1505 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1508 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1509 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1512 target_cpu_default="MASK_PA_11|MASK_PA_20"
1513 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1514 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1516 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1517 d_target_objs="${d_target_objs} pa-d.o"
1521 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1522 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1523 pa/pa32-regs.h pa/pa32-linux.h"
1524 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1525 d_target_objs="${d_target_objs} pa-d.o"
1528 target_cpu_default="MASK_PA_11"
1529 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1530 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1531 extra_options="${extra_options} openbsd.opt"
1532 tmake_file="pa/t-pa"
1533 d_target_objs="${d_target_objs} pa-d.o"
1538 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1539 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} \
1540 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1541 tmake_file="${tmake_file}"
1542 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1543 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1545 hppa[12]*-*-hpux10*)
1547 hppa1.1-*-* | hppa2*-*-*)
1548 target_cpu_default="MASK_PA_11"
1551 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1552 pa/pa-hpux.h pa/pa-hpux10.h"
1553 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1556 tm_file="${tm_file} pa/pa-hpux1010.h"
1557 extra_options="${extra_options} pa/pa-hpux1010.opt"
1560 use_gcc_stdint=provide
1561 tm_file="${tm_file} hpux-stdint.h"
1562 tmake_file="pa/t-pa t-slibgcc"
1563 d_target_objs="${d_target_objs} pa-d.o"
1564 case ${enable_threads} in
1566 if test x$have_pthread_h = xyes ; then
1567 tmake_file="${tmake_file} pa/t-dce-thr"
1571 tmake_file="${tmake_file} pa/t-dce-thr"
1576 if test "x$with_dwarf2" != x; then
1577 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1582 target_cpu_default="MASK_PA_11|MASK_PA_20"
1583 if test x$gnu_ld = xyes
1585 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1587 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1588 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1592 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1593 extra_options="${extra_options} pa/pa-hpux1111.opt"
1596 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1597 extra_options="${extra_options} pa/pa-hpux1131.opt"
1600 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1603 extra_options="${extra_options} pa/pa-hpux.opt \
1604 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1605 tmake_file="pa/t-pa t-slibgcc"
1606 d_target_objs="${d_target_objs} pa-d.o"
1607 case x${enable_threads} in
1615 use_gcc_stdint=provide
1616 tm_file="${tm_file} hpux-stdint.h"
1620 tm_file="${tm_file} hpux-stdint.h"
1624 hppa[12]*-*-hpux11*)
1626 hppa1.1-*-* | hppa2*-*-*)
1627 target_cpu_default="MASK_PA_11"
1630 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1631 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1632 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1636 tm_file="${tm_file} pa/pa-hpux1111.h"
1637 extra_options="${extra_options} pa/pa-hpux1111.opt"
1640 tm_file="${tm_file} pa/pa-hpux1131.h"
1641 extra_options="${extra_options} pa/pa-hpux1131.opt"
1644 tmake_file="pa/t-pa t-slibgcc"
1645 d_target_objs="${d_target_objs} pa-d.o"
1646 case x${enable_threads} in
1655 use_gcc_stdint=provide
1656 tm_file="${tm_file} hpux-stdint.h"
1660 tm_file="${tm_file} hpux-stdint.h"
1663 if test "x$with_dwarf2" != x; then
1664 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1668 i[34567]86-*-darwin1[89]*)
1669 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1671 i[34567]86-*-darwin*)
1673 # Baseline choice for a machine that allows m64 support.
1674 with_cpu=${with_cpu:-core2}
1675 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1676 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
1678 x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
1680 with_cpu=${with_cpu:-core2}
1681 tmake_file="${tmake_file} t-slibgcc"
1684 with_cpu=${with_cpu:-core2}
1685 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1686 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
1688 i[34567]86-*-elfiamcu)
1689 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1692 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1695 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1698 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"
1701 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1704 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"
1705 tmake_file="i386/t-i386elf t-svr4"
1707 i[34567]86-*-dragonfly*)
1708 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1709 tmake_file="${tmake_file} i386/t-crtstuff"
1711 x86_64-*-dragonfly*)
1712 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"
1713 tmake_file="${tmake_file} i386/t-crtstuff"
1715 i[34567]86-*-freebsd*)
1716 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1719 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"
1721 i[34567]86-*-netbsdelf*)
1722 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1723 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1726 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1727 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1729 i[34567]86-*-openbsd*)
1730 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1731 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1732 extra_options="${extra_options} openbsd.opt"
1737 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1738 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1739 extra_options="${extra_options} openbsd.opt"
1743 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1744 # Intel 80386's running GNU/*
1745 # with ELF format using glibc 2
1746 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1748 i[34567]86-*-linux*)
1749 tm_file="${tm_file} linux.h linux-android.h"
1750 extra_options="${extra_options} linux-android.opt"
1751 if test x$enable_targets = xall; then
1752 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1753 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1754 tmake_file="${tmake_file} i386/t-linux64"
1755 x86_multilibs="${with_multilib_list}"
1756 if test "$x86_multilibs" = "default"; then
1757 x86_multilibs="m64,m32"
1759 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1760 for x86_multilib in ${x86_multilibs}; do
1761 case ${x86_multilib} in
1763 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1766 echo "--with-multilib-list=${x86_with_multilib} not supported."
1770 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1772 if test x$with_cpu = x; then
1773 if test x$with_cpu_64 = x; then
1777 case " $x86_cpus $x86_archs $x86_64_archs " in
1781 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1782 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1788 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1791 i[34567]86-*-kfreebsd*-gnu)
1792 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1794 i[34567]86-*-kopensolaris*-gnu)
1795 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1798 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1802 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1803 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1804 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1807 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1808 extra_options="${extra_options} linux-android.opt"
1810 x86_64-*-kfreebsd*-gnu)
1811 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1814 tmake_file="${tmake_file} i386/t-linux64"
1815 x86_multilibs="${with_multilib_list}"
1816 if test "$x86_multilibs" = "default"; then
1819 x86_multilibs="mx32"
1822 x86_multilibs="m64,m32"
1826 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1827 for x86_multilib in ${x86_multilibs}; do
1828 case ${x86_multilib} in
1830 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1833 echo "--with-multilib-list=${x86_with_multilib} not supported."
1837 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1839 i[34567]86-pc-msdosdjgpp*)
1840 xm_file=i386/xm-djgpp.h
1841 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1842 native_system_header_dir=/dev/env/DJDIR/include
1843 extra_options="${extra_options} i386/djgpp.opt"
1848 i[34567]86-*-lynxos*)
1850 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1851 tmake_file="${tmake_file} t-lynx"
1852 extra_options="${extra_options} lynx.opt"
1857 i[34567]86-*-nto-qnx*)
1858 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1859 extra_options="${extra_options} i386/nto.opt"
1863 i[34567]86-*-rtems*)
1864 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"
1865 tmake_file="${tmake_file} i386/t-rtems"
1867 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
1868 # Set default arch_32 to pentium4, tune_32 to generic like the other
1869 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1870 with_arch_32=${with_arch_32:-pentium4}
1871 with_tune_32=${with_tune_32:-generic}
1872 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1873 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1874 tmake_file="$tmake_file i386/t-sol2"
1876 if test x$with_cpu = x; then
1877 if test x$with_cpu_64 = x; then
1881 case " $x86_cpus $x86_archs $x86_64_archs " in
1885 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1886 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1892 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
1893 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1897 tm_file="${tm_file} i386/x86-64.h"
1900 tm_file="${tm_file} vx-common.h"
1903 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1904 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1907 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1908 tmake_file="${tmake_file} i386/t-vxworks"
1912 i[34567]86-*-cygwin*)
1913 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"
1914 xm_file=i386/xm-cygwin.h
1915 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1916 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
1917 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1918 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1919 c_target_objs="${c_target_objs} msformat-c.o"
1920 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1921 if test x$enable_threads = xyes; then
1924 default_use_cxa_atexit=yes
1929 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"
1930 xm_file=i386/xm-cygwin.h
1931 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1932 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
1933 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1934 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1935 c_target_objs="${c_target_objs} msformat-c.o"
1936 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1937 if test x$enable_threads = xyes; then
1940 default_use_cxa_atexit=yes
1942 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1944 i[34567]86-*-mingw* | x86_64-*-mingw*)
1945 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1946 xm_file=i386/xm-mingw32.h
1947 c_target_objs="${c_target_objs} winnt-c.o"
1948 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1949 target_has_targetcm="yes"
1951 x86_64-*-* | *-w64-*)
1957 if test x$enable_threads = xposix ; then
1958 tm_file="${tm_file} i386/mingw-pthread.h"
1960 tm_file="${tm_file} i386/mingw32.h"
1961 # This makes the logic if mingw's or the w64 feature set has to be used
1964 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1965 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1966 tm_file="${tm_file} i386/mingw-w64.h"
1967 if test x$enable_targets = xall; then
1968 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1969 if test x$with_cpu = x; then
1970 if test x$with_cpu_64 = x; then
1974 case " $x86_cpus $x86_archs $x86_64_archs " in
1978 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1979 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1989 tm_file="${tm_file} i386/mingw-stdint.h"
1990 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1993 tmake_file="${tmake_file} i386/t-mingw-w64"
1996 tmake_file="${tmake_file} i386/t-mingw-w32"
1999 native_system_header_dir=/mingw/include
2000 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2001 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2004 extra_options="${extra_options} i386/mingw-w64.opt"
2009 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2010 c_target_objs="${c_target_objs} msformat-c.o"
2011 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2014 default_use_cxa_atexit=yes
2016 case ${enable_threads} in
2026 tm_file="${tm_file} i386/crtdll.h"
2028 *mingw32msv* | *mingw*)
2033 tmake_file="${tmake_file} i386/t-x86_64-elf"
2034 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2037 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2038 tmake_file="ia64/t-ia64"
2039 target_cpu_default="0"
2040 if test x$gas = xyes
2042 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2044 if test x$gnu_ld = xyes
2046 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2050 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2051 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2052 tmake_file="${tmake_file} ia64/t-ia64"
2055 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2056 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2057 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2060 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
2061 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2062 target_cpu_default="MASK_GNU_AS"
2063 case x$enable_threads in
2069 c_target_objs="ia64-c.o"
2070 cxx_target_objs="ia64-c.o"
2071 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2073 tm_file="${tm_file} hpux-stdint.h"
2076 tm_file="${tm_file} ia64/hpux-unix2003.h"
2081 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2082 tmake_file="${tmake_file} ia64/t-ia64"
2083 target_cpu_default="0"
2084 if test x$gas = xyes
2086 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2088 extra_options="${extra_options} ia64/vms.opt"
2091 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2092 out_file=iq2000/iq2000.c
2093 md_file=iq2000/iq2000.md
2096 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2097 tmake_file="${tmake_file} lm32/t-lm32"
2100 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2101 tmake_file="${tmake_file} lm32/t-lm32"
2102 tmake_file="${tmake_file} lm32/t-rtems"
2105 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2106 tmake_file="${tmake_file} lm32/t-lm32"
2109 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2112 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2115 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
2116 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2118 if test x$enable_threads = xyes; then
2123 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
2124 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2126 if test x$enable_threads = xyes; then
2130 m68k-*-elf* | fido-*-elf*)
2133 # Check that $with_cpu makes sense.
2138 echo "Cannot accept --with-cpu=$with_cpu"
2145 default_m68k_cpu=68020
2149 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"
2150 tm_defines="${tm_defines} MOTOROLA=1"
2151 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2152 # Add multilibs for targets other than fido.
2157 tmake_file="$tmake_file m68k/t-mlibs"
2162 default_m68k_cpu=68020
2164 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2165 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2166 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2169 default_m68k_cpu=68020
2171 # needed to unconfuse gdb
2172 tm_defines="${tm_defines} OBSD_OLD_GAS"
2173 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
2174 extra_options="${extra_options} openbsd.opt"
2175 tmake_file="t-openbsd m68k/t-openbsd"
2176 # we need collect2 until our bug is fixed...
2179 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2180 # with uClibc, using the new GNU/Linux-style
2182 default_m68k_cpu=68020
2184 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"
2185 extra_options="${extra_options} m68k/uclinux.opt"
2186 tm_defines="${tm_defines} MOTOROLA=1"
2187 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2189 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2190 # with ELF format using glibc 2
2191 # aka the GNU/Linux C library 6.
2192 default_m68k_cpu=68020
2194 with_arch=${with_arch:-m68k}
2195 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2196 extra_options="${extra_options} m68k/ieee.opt"
2197 tm_defines="${tm_defines} MOTOROLA=1"
2198 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2201 default_m68k_cpu=68020
2203 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2204 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"
2205 tm_defines="${tm_defines} MOTOROLA=1"
2208 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2209 tmake_file=mcore/t-mcore
2215 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2218 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2221 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2222 tm_file="${tm_file} glibc-stdint.h"
2223 c_target_objs="${c_target_objs} microblaze-c.o"
2224 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2225 tmake_file="${tmake_file} microblaze/t-microblaze"
2226 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2228 microblaze*-*-rtems*)
2231 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2234 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2237 tm_file="${tm_file} dbxelf.h"
2238 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2239 c_target_objs="${c_target_objs} microblaze-c.o"
2240 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2241 tmake_file="${tmake_file} microblaze/t-microblaze"
2242 tmake_file="${tmake_file} microblaze/t-rtems"
2247 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2250 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2253 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2254 c_target_objs="${c_target_objs} microblaze-c.o"
2255 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2256 tmake_file="${tmake_file} microblaze/t-microblaze"
2259 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2260 case "x${enable_multilib}" in
2262 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2263 *) echo "Unknown value for enable_multilib"; exit 1
2265 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2268 # Force .init_array support. The configure script cannot always
2269 # automatically detect that GAS supports it, yet we require it.
2270 gcc_cv_initfini_array=yes
2272 riscv*-*-elf* | riscv*-*-rtems*)
2273 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2276 tm_file="${tm_file} rtems.h riscv/rtems.h"
2277 tmake_file="${tmake_file} riscv/t-rtems"
2280 case "x${enable_multilib}" in
2282 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2283 *) echo "Unknown value for enable_multilib"; exit 1
2286 tmake_file="${tmake_file} riscv/t-riscv"
2289 # Force .init_array support. The configure script cannot always
2290 # automatically detect that GAS supports it, yet we require it.
2291 gcc_cv_initfini_array=yes
2294 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2295 tmake_file="${tmake_file} riscv/t-riscv"
2298 # Force .init_array support. The configure script cannot always
2299 # automatically detect that GAS supports it, yet we require it.
2300 gcc_cv_initfini_array=yes
2302 mips*-*-netbsd*) # NetBSD/mips, either endian.
2303 target_cpu_default="MASK_ABICALLS"
2304 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2305 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2308 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"
2309 extra_options="${extra_options} linux-android.opt"
2310 tmake_file="${tmake_file} mips/t-img-linux"
2311 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2312 with_arch_32="mips32r6"
2313 with_arch_64="mips64r6"
2318 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"
2319 extra_options="${extra_options} linux-android.opt"
2320 tmake_file="${tmake_file} mips/t-mti-linux"
2321 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2322 with_arch_32="mips32r2"
2323 with_arch_64="mips64r2"
2327 mips*-*-linux*) # Linux MIPS, either endian.
2328 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"
2329 extra_options="${extra_options} linux-android.opt"
2332 default_mips_arch=mips32r6
2335 default_mips_arch=mips32r2
2338 default_mips_arch=mips32
2340 mips64el-st-linux-gnu)
2341 default_mips_abi=n32
2342 tm_file="${tm_file} mips/st.h"
2343 tmake_file="${tmake_file} mips/t-st"
2344 enable_mips_multilibs="yes"
2346 mips64octeon*-*-linux*)
2347 default_mips_abi=n32
2348 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2349 target_cpu_default=MASK_SOFT_FLOAT_ABI
2350 enable_mips_multilibs="yes"
2352 mipsisa64r6*-*-linux*)
2353 default_mips_abi=n32
2354 default_mips_arch=mips64r6
2355 enable_mips_multilibs="yes"
2357 mipsisa64r2*-*-linux*)
2358 default_mips_abi=n32
2359 default_mips_arch=mips64r2
2360 enable_mips_multilibs="yes"
2362 mips64*-*-linux* | mipsisa64*-*-linux*)
2363 default_mips_abi=n32
2364 enable_mips_multilibs="yes"
2367 if test x$enable_targets = xall; then
2368 enable_mips_multilibs="yes"
2370 if test x$enable_mips_multilibs = xyes; then
2371 tmake_file="${tmake_file} mips/t-linux64"
2375 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2376 tmake_file="mips/t-mti-elf"
2377 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2378 with_arch_32="mips32r2"
2379 with_arch_64="mips64r2"
2382 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2383 tmake_file="mips/t-img-elf"
2384 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2385 with_arch_32="mips32r6"
2386 with_arch_64="mips64r6"
2389 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2390 tmake_file="mips/t-sde"
2391 extra_options="${extra_options} mips/sde.opt"
2392 case "${with_newlib}" in
2394 # newlib / libgloss.
2397 # MIPS toolkit libraries.
2398 tm_file="$tm_file mips/sdemtk.h"
2399 tmake_file="$tmake_file mips/t-sdemtk"
2400 case ${enable_threads} in
2402 thread_file='mipssde'
2409 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2412 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2415 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2418 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2421 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2424 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2428 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2429 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2430 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2431 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2432 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2433 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2434 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2435 tmake_file="mips/t-isa3264"
2438 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2441 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2444 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2447 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2450 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2453 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2457 mipsisa32*-*-elfoabi*)
2458 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2459 tm_file="${tm_file} mips/elfoabi.h"
2461 mipsisa64*-*-elfoabi*)
2462 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2463 tm_file="${tm_file} mips/elfoabi.h"
2466 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2470 mipsisa64sr71k-*-elf*)
2471 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2472 tmake_file=mips/t-sr71k
2473 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2475 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2476 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2477 tmake_file="mips/t-elf mips/t-sb1"
2478 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2480 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2481 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2482 tmake_file="mips/t-elf"
2484 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2485 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2486 tmake_file="mips/t-elf"
2487 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2489 mips64-*-elf* | mips64el-*-elf*)
2490 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2491 tmake_file="mips/t-elf"
2492 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2494 mips64vr-*-elf* | mips64vrel-*-elf*)
2495 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2496 tmake_file=mips/t-vr
2497 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2499 mips64orion-*-elf* | mips64orionel-*-elf*)
2500 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2501 tmake_file="mips/t-elf"
2502 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2505 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2506 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2509 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2510 tmake_file="${tmake_file} mips/t-vxworks"
2512 mipstx39-*-elf* | mipstx39el-*-elf*)
2513 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2514 tmake_file="mips/t-r3900"
2516 mmix-knuth-mmixware)
2517 tm_file="${tm_file} newlib-stdint.h"
2521 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2522 if test x$stabs = xyes
2524 tm_file="${tm_file} dbx.h"
2530 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2531 c_target_objs="msp430-c.o"
2532 cxx_target_objs="msp430-c.o"
2533 tmake_file="${tmake_file} msp430/t-msp430"
2534 extra_objs="${extra_objs} msp430-devices.o"
2535 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2536 # Enable .init_array unless it has been explicitly disabled.
2537 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2538 # code since mid-2019 expects it.
2539 if test x${disable_initfini_array} != xyes; then
2540 gcc_cv_initfini_array=yes
2544 target_cpu_default="0"
2545 tm_defines="${tm_defines}"
2550 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2551 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2556 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2557 tmake_file="nds32/t-nds32 nds32/t-elf"
2560 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2561 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2562 gcc_cv_initfini_array=yes
2566 # Handle --enable-default-relax setting.
2567 if test x${enable_default_relax} = xyes; then
2568 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2570 # Handle --with-ext-dsp
2571 if test x${with_ext_dsp} = xyes; then
2572 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2576 tm_file="elfos.h ${tm_file}"
2577 tmake_file="${tmake_file} nios2/t-nios2"
2580 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2583 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2584 extra_options="${extra_options} nios2/elf.opt"
2587 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2588 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2593 tm_file="${tm_file} newlib-stdint.h"
2595 tmake_file="nvptx/t-nvptx"
2596 if test x$enable_as_accelerator = xyes; then
2597 extra_programs="${extra_programs} mkoffload\$(exeext)"
2598 tm_file="${tm_file} nvptx/offload.h"
2602 tm_file="elfos.h ${tm_file}"
2603 tmake_file="${tmake_file} or1k/t-or1k"
2604 # Force .init_array support. The configure script cannot always
2605 # automatically detect that GAS supports it, yet we require it.
2606 gcc_cv_initfini_array=yes
2608 # Handle --with-multilib-list=...
2609 or1k_multilibs="${with_multilib_list}"
2610 if test "$or1k_multilibs" = "default"; then
2611 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2613 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2614 for or1k_multilib in ${or1k_multilibs}; do
2615 case ${or1k_multilib} in
2616 mcmov | msext | msfimm | \
2618 mhard-float | mdouble-float | munordered-float | msoft-float | \
2619 mhard-div | mhard-mul | \
2620 msoft-div | msoft-mul )
2621 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2624 echo "--with-multilib-list=${with_multilib_list} not supported."
2628 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2632 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2633 tm_file="${tm_file} or1k/linux.h"
2636 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2637 extra_options="${extra_options} or1k/elf.opt"
2640 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2641 tmake_file="${tmake_file} or1k/t-rtems"
2646 tm_file="${tm_file} newlib-stdint.h"
2649 # port not yet contributed
2650 #powerpc-*-openbsd*)
2651 # tmake_file="${tmake_file} rs6000/t-fprules"
2655 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2657 *-darwin1[0-9]* | *-darwin9*)
2658 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2659 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2662 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2663 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2664 tm_file="${tm_file} ${cpu_type}/darwin8.h"
2667 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2670 # Earlier - ingle arch, with 32b only
2671 # OS X 10.0, the first edition is Darwin4
2674 tmake_file="${tmake_file} t-slibgcc"
2676 powerpc64-*-darwin*)
2677 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2678 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2679 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2681 powerpc*-*-freebsd*)
2682 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2683 extra_options="${extra_options} rs6000/sysv4.opt"
2684 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2687 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2688 tmake_file="${tmake_file} rs6000/t-freebsd64"
2689 extra_options="${extra_options} rs6000/linux64.opt"
2690 if test $fbsd_major -ge 13; then
2691 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2695 if test $fbsd_major -ge 13; then
2696 tm_file="rs6000/secureplt.h ${tm_file}"
2698 tm_file="${tm_file} rs6000/freebsd.h"
2703 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2704 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2705 tmake_file="${tmake_file} rs6000/t-netbsd"
2706 extra_options="${extra_options} rs6000/sysv4.opt"
2708 powerpc-*-eabisimaltivec*)
2709 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"
2710 extra_options="${extra_options} rs6000/sysv4.opt"
2711 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2715 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"
2716 extra_options="${extra_options} rs6000/sysv4.opt"
2717 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2721 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2722 extra_options="${extra_options} rs6000/sysv4.opt"
2723 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2725 powerpc-*-eabialtivec*)
2726 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"
2727 extra_options="${extra_options} rs6000/sysv4.opt"
2728 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2732 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"
2733 extra_options="${extra_options} rs6000/sysv4.opt"
2734 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2738 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"
2739 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2740 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2743 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2744 extra_options="${extra_options} rs6000/sysv4.opt"
2745 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2746 extra_objs="$extra_objs rs6000-linux.o"
2749 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2751 case ${target}:${with_cpu} in
2752 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2754 maybe_biarch=${cpu_is_64bit}
2755 case ${enable_targets} in
2756 *powerpc64*) maybe_biarch=yes ;;
2757 all) maybe_biarch=yes ;;
2759 case ${target}:${enable_targets}:${maybe_biarch} in
2760 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2761 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2762 | powerpcle-*:*powerpc64le*:yes)
2763 if test x$cpu_is_64bit = xyes; then
2764 tm_file="${tm_file} rs6000/default64.h"
2766 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2767 tmake_file="$tmake_file rs6000/t-linux64"
2770 tmake_file="$tmake_file rs6000/t-linux64le"
2771 case ${enable_targets} in
2772 all | *powerpc64-* | *powerpc-*)
2773 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2776 case ${enable_targets} in
2777 all | *powerpc64le-* | *powerpcle-*)
2778 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2781 extra_options="${extra_options} rs6000/linux64.opt"
2784 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2785 extra_options="${extra_options} rs6000/linux64.opt"
2786 tmake_file="${tmake_file} rs6000/t-linux"
2789 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2790 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2794 powerpc*-*-linux*ppc476*)
2795 tm_file="${tm_file} rs6000/476.h"
2796 extra_options="${extra_options} rs6000/476.opt" ;;
2797 powerpc*-*-linux*altivec*)
2798 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2802 enable_secureplt=yes ;;
2804 if test x${enable_secureplt} = xyes; then
2805 tm_file="rs6000/secureplt.h ${tm_file}"
2808 powerpc-wrs-vxworks*)
2809 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2810 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2811 extra_options="${extra_options} rs6000/sysv4.opt"
2812 extra_headers=ppc-asm.h
2815 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2816 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2819 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
2820 tmake_file="${tmake_file} rs6000/t-vxworksae"
2823 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
2829 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2830 tmake_file="t-lynx rs6000/t-lynx"
2831 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2837 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"
2838 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2839 extra_options="${extra_options} rs6000/sysv4.opt"
2841 powerpcle-*-eabisim*)
2842 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"
2843 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2844 extra_options="${extra_options} rs6000/sysv4.opt"
2848 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"
2849 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2850 extra_options="${extra_options} rs6000/sysv4.opt"
2854 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2855 tmake_file="${tmake_file} pru/t-pru"
2856 extra_objs="pru-pragma.o pru-passes.o"
2859 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
2860 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2861 tmake_file="rs6000/t-aix52 t-slibgcc"
2862 extra_options="${extra_options} rs6000/aix64.opt"
2866 default_use_cxa_atexit=yes
2868 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
2869 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
2870 tmake_file="rs6000/t-aix52 t-slibgcc"
2871 extra_options="${extra_options} rs6000/aix64.opt"
2875 default_use_cxa_atexit=yes
2877 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2878 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
2879 tmake_file="rs6000/t-aix52 t-slibgcc"
2880 extra_options="${extra_options} rs6000/aix64.opt"
2884 default_use_cxa_atexit=yes
2887 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2888 target_has_targetm_common=no
2889 c_target_objs="rl78-c.o"
2890 cxx_target_objs="rl78-c.o"
2891 tmake_file="${tmake_file} rl78/t-rl78"
2894 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2895 tmake_file="${tmake_file} rx/t-rx"
2896 extra_options="${extra_options} rx/elf.opt"
2899 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
2900 tmake_file="${tmake_file} rx/t-linux"
2903 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2904 c_target_objs="${c_target_objs} s390-c.o"
2905 cxx_target_objs="${cxx_target_objs} s390-c.o"
2906 if test x$enable_targets = xall; then
2907 tmake_file="${tmake_file} s390/t-linux64"
2909 tmake_file="${tmake_file} s390/t-s390"
2912 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2913 tm_p_file="linux-protos.h s390/s390-protos.h"
2914 c_target_objs="${c_target_objs} s390-c.o"
2915 cxx_target_objs="${cxx_target_objs} s390-c.o"
2916 md_file=s390/s390.md
2917 extra_modes=s390/s390-modes.def
2918 out_file=s390/s390.c
2919 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
2922 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2923 tm_p_file=s390/s390-protos.h
2924 c_target_objs="${c_target_objs} s390-c.o"
2925 cxx_target_objs="${cxx_target_objs} s390-c.o"
2926 md_file=s390/s390.md
2927 extra_modes=s390/s390-modes.def
2928 out_file=s390/s390.c
2930 extra_options="${extra_options} s390/tpf.opt"
2931 tmake_file="${tmake_file} s390/t-s390"
2933 sh-*-elf* | sh[12346l]*-*-elf* | \
2934 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2935 sh-*-netbsdelf* | shl*-*-netbsdelf*)
2936 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2937 if test x${with_endian} = x; then
2939 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2940 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2941 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2942 shl* | sh*-*-linux* | \
2943 sh-superh-elf) with_endian=little,big ;;
2944 sh[1234]*-*-*) with_endian=big ;;
2945 *) with_endian=big,little ;;
2948 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2949 # First word : the default endian.
2950 # Second word: the secondary endian (optional).
2951 case ${with_endian} in
2952 big) TM_ENDIAN_CONFIG=mb ;;
2953 little) TM_ENDIAN_CONFIG=ml ;;
2954 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2955 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2956 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2958 case ${with_endian} in
2959 little*) tm_file="sh/little.h ${tm_file}" ;;
2961 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2963 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2964 if test x$enable_fdpic = xyes; then
2965 tm_defines="$tm_defines FDPIC_DEFAULT=1"
2967 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2969 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
2970 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2973 sh*-superh-elf) if test x$with_libgloss != xno; then
2975 tm_file="${tm_file} sh/newlib.h"
2977 tm_file="${tm_file} sh/embed-elf.h"
2978 tm_file="${tm_file} sh/superh.h"
2979 extra_options="${extra_options} sh/superh.opt" ;;
2980 *) if test x$with_newlib = xyes \
2981 && test x$with_libgloss = xyes; then
2982 tm_file="${tm_file} sh/newlib.h"
2984 tm_file="${tm_file} sh/embed-elf.h" ;;
2990 tm_file="${tm_file} newlib-stdint.h"
2993 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2994 case `echo ${target} | sed 's/e[lb]-/-/'` in
2995 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2996 sh4a_single*) sh_cpu_target=sh4a-single ;;
2997 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2998 sh4al) sh_cpu_target=sh4al ;;
2999 sh4a*) sh_cpu_target=sh4a ;;
3000 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3001 sh4_single*) sh_cpu_target=sh4-single ;;
3002 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3003 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3004 sh3e*) sh_cpu_target=sh3e ;;
3005 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3006 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3007 sh2a_single*) sh_cpu_target=sh2a-single ;;
3008 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3009 sh2a*) sh_cpu_target=sh2a ;;
3010 sh2e*) sh_cpu_target=sh2e ;;
3011 sh2*) sh_cpu_target=sh2 ;;
3012 *) sh_cpu_target=sh1 ;;
3014 # did the user say --without-fp ?
3015 if test x$with_fp = xno; then
3016 case ${sh_cpu_target} in
3018 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3019 sh4*) sh_cpu_target=sh4-nofpu ;;
3020 sh3*) sh_cpu_target=sh3 ;;
3021 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3022 sh2*) sh_cpu_target=sh2 ;;
3023 *) echo --without-fp not available for $target: ignored
3025 tm_defines="$tm_defines STRICT_NOFPU=1"
3027 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3028 case $sh_cpu_default in
3029 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3030 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3031 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3032 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3033 "") sh_cpu_default=${sh_cpu_target} ;;
3034 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3036 sh_multilibs=${with_multilib_list}
3037 if test "$sh_multilibs" = "default" ; then
3039 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3040 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3041 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3042 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3043 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3045 if test x$with_fp = xno; then
3046 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`"
3049 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3050 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3051 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3052 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3053 for sh_multilib in ${sh_multilibs}; do
3054 case ${sh_multilib} in
3055 m1 | m2 | m2e | m3 | m3e | \
3056 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3057 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3058 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3059 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3060 # It is passed to MULTIILIB_OPTIONS verbatim.
3061 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3062 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3064 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3065 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3066 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3068 echo "with_multilib_list=${sh_multilib} not supported."
3073 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3074 if test x${enable_incomplete_targets} = xyes ; then
3075 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3077 tm_file="$tm_file ./sysroot-suffix.h"
3078 tmake_file="$tmake_file t-sysroot-suffix"
3081 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3082 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3085 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3086 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3089 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3092 tmake_file="sparc/t-sparc sparc/t-leon"
3095 tmake_file="sparc/t-sparc sparc/t-leon3"
3098 tmake_file="sparc/t-sparc sparc/t-elf"
3103 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3104 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3107 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3108 extra_options="${extra_options} sparc/long-double-switch.opt"
3111 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3114 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3117 tmake_file="${tmake_file} sparc/t-sparc"
3120 if test x$enable_targets = xall; then
3121 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3122 tmake_file="${tmake_file} sparc/t-linux64"
3124 tm_file="${tm_file} sparc/linux.h"
3125 tmake_file="${tmake_file} sparc/t-linux"
3129 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3130 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3131 extra_options="${extra_options} sparc/long-double-switch.opt"
3132 tmake_file="${tmake_file} sparc/t-sparc"
3135 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3137 sparc64-*-* | sparcv9-*-*)
3138 tm_file="sparc/default64.h ${tm_file}"
3141 test x$with_cpu != x || with_cpu=v9
3144 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3147 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3148 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3151 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3152 extra_options="${extra_options}"
3153 tmake_file="${tmake_file} sparc/t-sparc"
3156 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3157 extra_options="${extra_options}"
3158 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3161 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"
3162 extra_options="${extra_options} sparc/long-double-switch.opt"
3163 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3165 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3166 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3167 extra_options="${extra_options} sparc/long-double-switch.opt"
3168 case "x$with_cpu" in
3170 x) with_cpu=ultrasparc ;;
3171 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3173 tmake_file="${tmake_file} sparc/t-sparc"
3176 tm_file="sparc/biarch64.h ${tm_file}"
3177 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3178 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3179 extra_options="${extra_options} sparc/long-double-switch.opt"
3180 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3183 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3184 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3185 extra_options="${extra_options} openbsd.opt"
3186 extra_options="${extra_options}"
3189 tmake_file="${tmake_file} sparc/t-sparc"
3192 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3193 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3194 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3198 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3199 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3200 tm_file="${tm_file} ./sysroot-suffix.h"
3201 tmake_file="t-sysroot-suffix t-slibgcc"
3202 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3206 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3207 tmake_file="${tmake_file} tilegx/t-tilegx"
3208 extra_objs="${extra_objs} mul-tables.o"
3209 c_target_objs="${c_target_objs} tilegx-c.o"
3210 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3211 extra_headers="feedback.h"
3214 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3219 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3220 tmake_file="${tmake_file} tilepro/t-tilepro"
3221 extra_objs="${extra_objs} mul-tables.o"
3222 c_target_objs="${c_target_objs} tilepro-c.o"
3223 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3224 extra_headers="feedback.h"
3227 target_cpu_default="TARGET_CPU_generic"
3228 tm_file="dbxelf.h elfos.h v850/v850.h"
3229 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3230 tmake_file="${tmake_file} v850/t-v850"
3231 tmake_file="${tmake_file} v850/t-rtems"
3233 c_target_objs="v850-c.o"
3234 cxx_target_objs="v850-c.o"
3239 target_cpu_default="TARGET_CPU_v850e3v5"
3242 target_cpu_default="TARGET_CPU_v850e2v3"
3245 target_cpu_default="TARGET_CPU_v850e2"
3247 v850e1-*-* | v850es-*-*)
3248 target_cpu_default="TARGET_CPU_v850e1"
3251 target_cpu_default="TARGET_CPU_v850e"
3254 target_cpu_default="TARGET_CPU_generic"
3257 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3258 if test x$stabs = xyes
3260 tm_file="${tm_file} dbx.h"
3263 c_target_objs="v850-c.o"
3264 cxx_target_objs="v850-c.o"
3268 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3269 extra_options="${extra_options} vax/elf.opt"
3272 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3273 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3274 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3277 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3278 extra_options="${extra_options} openbsd.opt"
3282 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3283 tmake_file="visium/t-visium visium/t-crtstuff"
3286 # For historical reasons, the target files omit the 'x'.
3287 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3288 tm_p_file=stormy16/stormy16-protos.h
3289 tm_d_file="elfos.h stormy16/stormy16.h"
3290 md_file=stormy16/stormy16.md
3291 out_file=stormy16/stormy16.c
3292 extra_options=stormy16/stormy16.opt
3293 tmake_file="stormy16/t-stormy16"
3296 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3297 extra_options="${extra_options} xtensa/elf.opt"
3300 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3301 tmake_file="${tmake_file} xtensa/t-xtensa"
3304 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3305 tmake_file="${tmake_file} xtensa/t-xtensa"
3306 extra_options="${extra_options} xtensa/uclinux.opt"
3309 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3314 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3315 c_target_objs="m32c-pragma.o"
3316 cxx_target_objs="m32c-pragma.o"
3319 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3320 c_target_objs="m32c-pragma.o"
3321 cxx_target_objs="m32c-pragma.o"
3324 echo "*** Configuration ${target} not supported" 1>&2
3330 i[34567]86-*-linux* | x86_64-*-linux*)
3331 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3333 i[34567]86-*-* | x86_64-*-*)
3334 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3336 powerpc*-*-* | rs6000-*-*)
3337 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3343 tmake_file="${tmake_file} t-musl"
3346 tmake_file="${tmake_file} t-uclibc"
3350 # Assume the existence of indirect function support and allow the use of the
3351 # resolver attribute.
3353 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3357 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3358 default_gnu_indirect_function=yes
3364 # Build mkoffload tool
3366 *-intelmic-* | *-intelmicemul-*)
3367 tmake_file="${tmake_file} i386/t-intelmic"
3368 tm_file="${tm_file} i386/intelmic-offload.h"
3372 if [ "$target_has_targetcm" = "no" ]; then
3373 c_target_objs="$c_target_objs default-c.o"
3374 cxx_target_objs="$cxx_target_objs default-c.o"
3377 if [ "$common_out_file" = "" ]; then
3378 if [ "$target_has_targetm_common" = "yes" ]; then
3379 common_out_file="$cpu_type/$cpu_type-common.c"
3381 common_out_file="default-common.c"
3385 if [ "$target_has_targetdm" = "no" ]; then
3386 d_target_objs="$d_target_objs default-d.o"
3389 # Support for --with-cpu and related options (and a few unrelated options,
3393 echo "--with-cpu must be passed a value" 1>&2
3398 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3399 # to generic if there is no processor scheduler model for the target.
3402 arch_without_sse2=no
3403 arch_without_64bit=no
3406 if test $fbsd_major -ge 6; then
3412 arch_without_sse2=yes
3413 arch_without_64bit=yes
3418 arch_without_sse2=yes
3419 arch_without_64bit=yes
3424 arch_without_sse2=yes
3425 arch_without_64bit=yes
3430 arch_without_sse2=yes
3431 arch_without_64bit=yes
3434 arch_without_sse2=yes
3435 arch_without_64bit=yes
3436 case ${target_noncanonical} in
3449 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3459 i686-*-* | i786-*-*)
3460 case ${target_noncanonical} in
3493 amdfam10-*|barcelona-*)
3497 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3501 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3505 athlon_xp-*|athlon_mp-*|athlon_4-*)
3508 arch_without_sse2=yes
3509 arch_without_64bit=yes
3511 athlon_tbird-*|athlon-*)
3514 arch_without_sse2=yes
3519 arch_without_sse2=yes
3524 arch_without_sse2=yes
3526 pentium3-*|pentium3m-*)
3529 arch_without_sse2=yes
3531 pentium4-*|pentium4m-*)
3570 arch_without_sse2=yes
3575 arch_without_sse2=yes
3576 arch_without_64bit=yes
3581 case ${target_noncanonical} in
3614 amdfam10-*|barcelona-*)
3618 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3622 k8-*|opteron-*|athlon_64-*)
3654 # If there is no $with_cpu option, try to infer one from ${target}.
3655 # This block sets nothing except for with_cpu.
3656 if test x$with_cpu = x ; then
3658 i[34567]86-*-elfiamcu)
3661 i[34567]86-*-*|x86_64-*-*)
3679 frv-*-*linux* | frv400-*-*linux*)
3686 case "$with_arch" in
3688 with_cpu=${default_cf_cpu}
3691 with_cpu=m${default_m68k_cpu}
3707 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3716 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3718 i[34567]86-*-*|x86_64-*-*)
3719 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3720 if test x$with_cpu_32 = x; then
3721 with_cpu_32=$with_cpu
3723 if test x$with_cpu_64 = x; then
3724 with_cpu_64=$with_cpu
3732 # Support for --with-arch and related options (and a few unrelated options,
3734 case ${with_arch} in
3736 echo "--with-arch must be passed a value" 1>&2
3741 # If there is no $with_arch option, try to infer one from ${target}.
3742 # This block sets nothing except for with_arch.
3743 if test x$with_arch = x ; then
3745 i[34567]86-*-darwin*|x86_64-*-darwin*)
3746 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3747 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3749 i[34567]86-*-elfiamcu)
3753 # --with-fpmath sets the default ISA to SSE2, which is the same
3754 # ISA supported by Pentium 4.
3755 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3764 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3772 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3774 i[34567]86-*-darwin*|x86_64-*-darwin*)
3775 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3776 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3778 i[34567]86-*-*|x86_64-*-*)
3779 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3780 if test x$with_arch_32 = x; then
3781 with_arch_32=$with_arch
3783 if test x$with_arch_64 = x; then
3784 if test $arch_without_64bit = yes; then
3785 # Set the default 64bit arch to x86-64 if the default arch
3786 # doesn't support 64bit.
3789 with_arch_64=$with_arch
3793 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3794 # Set the default 64bit arch to x86-64 if the default arch
3795 # doesn't support 64bit and we need 64bit ISA.
3796 with_arch_32=$with_arch
3804 # Infer a default setting for --with-float.
3805 if test x$with_float = x; then
3807 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3808 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3809 # comply with IEEE 754.
3815 # Infer a default setting for --with-fpu.
3816 if test x$with_fpu = x; then
3818 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3819 # The R5900 FPU only supports single precision.
3825 # Support --with-fpmath.
3826 if test x$with_fpmath != x; then
3828 i[34567]86-*-* | x86_64-*-*)
3829 case ${with_fpmath} in
3831 tm_file="${tm_file} i386/avxmath.h"
3834 tm_file="${tm_file} i386/ssemath.h"
3837 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3843 echo "--with-fpmath isn't supported for $target." 1>&2
3849 # Similarly for --with-schedule.
3850 if test x$with_schedule = x; then
3853 # Override default PA8000 scheduling model.
3854 with_schedule=7100LC
3859 # Infer a default setting for --with-llsc.
3860 if test x$with_llsc = x; then
3863 # The kernel emulates LL and SC where necessary.
3866 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3867 # The R5900 doesn't support LL(D) and SC(D).
3873 # Validate and mark as valid any --with options supported
3874 # by this target. In order to use a particular --with option
3875 # you must list it in supported_defaults; validating the value
3876 # is optional. This case statement should set nothing besides
3877 # supported_defaults.
3882 supported_defaults="abi cpu arch"
3883 for which in cpu arch; do
3885 eval "val=\$with_$which"
3886 base_val=`echo $val | sed -e 's/\+.*//'`
3887 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
3889 if [ $which = arch ]; then
3890 def=aarch64-arches.def
3891 pattern=AARCH64_ARCH
3893 def=aarch64-cores.def
3894 pattern=AARCH64_CORE
3897 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3899 # Find the base CPU or ARCH id in aarch64-cores.def or
3900 # aarch64-arches.def
3901 if [ x"$base_val" = x ] \
3902 || grep "^$pattern(\"$base_val\"," \
3903 ${srcdir}/config/aarch64/$def \
3906 if [ $which = arch ]; then
3907 base_id=`grep "^$pattern(\"$base_val\"," \
3908 ${srcdir}/config/aarch64/$def | \
3909 sed -e 's/^[^,]*,[ ]*//' | \
3911 # Extract the architecture flags from aarch64-arches.def
3912 ext_mask=`grep "^$pattern(\"$base_val\"," \
3913 ${srcdir}/config/aarch64/$def | \
3917 base_id=`grep "^$pattern(\"$base_val\"," \
3918 ${srcdir}/config/aarch64/$def | \
3919 sed -e 's/^[^,]*,[ ]*//' | \
3923 # Use the pre-processor to strip flatten the options.
3924 # This makes the format less rigid than if we use
3925 # grep and sed directly here.
3926 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
3927 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
3928 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
3930 # Match one element inside AARCH64_OPT_EXTENSION, we
3931 # consume anything that's not a ,.
3932 elem="[ ]*\([^,]\+\)[ ]*"
3934 # Repeat the pattern for the number of entries in the
3935 # AARCH64_OPT_EXTENSION, currently 6 times.
3936 sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
3938 while [ x"$ext_val" != x ]
3940 ext_val=`echo $ext_val | sed -e 's/\+//'`
3941 ext=`echo $ext_val | sed -e 's/\+.*//'`
3942 base_ext=`echo $ext | sed -e 's/^no//'`
3943 opt_line=`echo -e "$options_parsed" | \
3944 grep "^\"$base_ext\""`
3946 if [ x"$base_ext" = x ] \
3947 || [[ -n $opt_line ]]; then
3949 # These regexp extract the elements based on
3950 # their group match index in the regexp.
3951 ext_canon=`echo -e "$opt_line" | \
3952 sed -e "s/$sed_patt/\2/"`
3953 ext_on=`echo -e "$opt_line" | \
3954 sed -e "s/$sed_patt/\3/"`
3955 ext_off=`echo -e "$opt_line" | \
3956 sed -e "s/$sed_patt/\4/"`
3958 if [ $ext = $base_ext ]; then
3960 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
3962 # Removing extension
3963 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
3968 echo "Unknown extension used in --with-$which=$val" 1>&2
3971 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3974 ext_mask="(("$ext_mask") << 6)"
3975 if [ x"$base_id" != x ]; then
3976 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3980 echo "Unknown $which used in --with-$which=$val" 1>&2
3987 supported_defaults="cpu tune"
3988 for which in cpu tune; do
3989 eval "val=\$with_$which"
3992 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3993 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3997 echo "Unknown CPU used in --with-$which=$val" 1>&2
4005 supported_defaults="cpu"
4007 if [ x"$with_cpu" = x ] \
4008 || grep "^ARC_CPU ($with_cpu," \
4009 ${srcdir}/config/arc/arc-cpus.def \
4014 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4020 supported_defaults="cpu endian float"
4024 supported_defaults="arch cpu float tune fpu abi mode tls"
4025 for which in cpu tune arch; do
4026 # See if it matches a supported value
4027 eval "val=\$with_$which"
4028 if [ x"$val" != x ]; then
4029 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4030 -v cmd="chk$which $val" \
4031 ${srcdir}/config/arm/arm-cpus.in`
4032 if [ "$cpu" = "error" ]; then
4033 echo "Unknown target in --with-$which=$val" 1>&2
4037 eval "target_${which}_cname=$new_val"
4038 echo "For $val real value is $new_val"
4043 case "$with_float" in
4045 | soft | hard | softfp)
4049 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4054 # see if --with-fpu matches any of the supported FPUs
4055 if [ x"$with_fpu" != x ] ; then
4057 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4058 -v cmd="chkfpu $val" \
4059 ${srcdir}/config/arm/arm-cpus.in`
4060 if [ "$fpu" = "error" ]
4062 echo "Unknown target in --with-fpu=$val" 1>&2
4069 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4073 echo "Unknown ABI used in --with-abi=$with_abi"
4078 case "$with_mode" in
4084 echo "Unknown mode used in --with-mode=$with_mode"
4095 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4100 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4101 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4105 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4106 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4110 # Add extra multilibs
4111 if test "x$with_multilib_list" != x; then
4113 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4114 if test "x${arm_multilibs}" != xdefault ; then
4115 for arm_multilib in ${arm_multilibs}; do
4116 case ${arm_multilib} in
4118 tmake_profile_file="arm/t-multilib"
4121 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4122 if test -f "${srcdir}/config/arm/${ml}"; then
4123 tmake_file="${tmake_file} arm/${ml}"
4125 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4130 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4137 if test "x${tmake_profile_file}" != x ; then
4138 # arm/t-aprofile and arm/t-rmprofile are only
4139 # designed to work without any with-cpu,
4140 # with-arch, with-mode, with-fpu or with-float
4142 if test "x$with_arch" != x \
4143 || test "x$with_cpu" != x \
4144 || test "x$with_float" != x \
4145 || test "x$with_fpu" != x \
4146 || test "x$with_mode" != x ; then
4147 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4149 elif test "x$ml" != x ; then
4150 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4153 # But pass the default value for float-abi
4154 # through to the multilib selector
4156 tmake_file="${tmake_file} ${tmake_profile_file}"
4157 TM_MULTILIB_CONFIG="$with_multilib_list"
4160 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4161 with_cpu=${with_cpu:-$target_cpu_cname}
4165 supported_defaults=cpu
4170 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4176 fido-*-* | m68k*-*-*)
4177 supported_defaults="arch cpu"
4178 case "$with_arch" in
4180 m68k_arch_family="$with_arch"
4183 echo "Invalid --with-arch=$with_arch" 1>&2
4188 # We always have a $with_cpu setting here.
4190 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4191 m68k_cpu_ident=$with_cpu
4194 m68k_cpu_ident=m68020
4195 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4198 m68k_cpu_ident=m68020
4199 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4202 # We need the C identifier rather than the string.
4203 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4204 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4205 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4206 ${srcdir}/config/m68k/m68k-devices.def`
4207 if [ x"$m68k_cpu_ident" = x ] ; then
4208 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4211 with_cpu="mcpu=$with_cpu"
4217 supported_defaults="arch tune"
4219 for which in arch tune; do
4220 eval "val=\$with_$which"
4222 "" | carrizo | fiji | gfx900 | gfx906 )
4226 echo "Unknown cpu used in --with-$which=$val." 1>&2
4231 [ "x$with_arch" = x ] && with_arch=fiji
4235 supported_defaults="arch schedule"
4237 case "$with_arch" in
4238 "" | 1.0 | 1.1 | 2.0)
4242 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4247 case "$with_schedule" in
4248 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4252 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4258 i[34567]86-*-* | x86_64-*-*)
4259 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4260 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4261 eval "val=\$with_$which"
4262 case " $x86_archs " in
4270 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4279 if test x${val} != x; then
4280 case " $x86_64_archs " in
4285 # Allow $x86_cpus --with-cpu=/--with-tune=
4288 case " $x86_cpus " in
4293 echo "Unknown CPU given in --with-$which=$val." 1>&2
4299 echo "Unknown CPU given in --with-$which=$val." 1>&2
4312 supported_defaults="abi arch tune riscv_attribute"
4315 riscv-* | riscv32*) xlen=32 ;;
4316 riscv64*) xlen=64 ;;
4317 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4320 case "${with_riscv_attribute}" in
4322 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4325 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4330 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4333 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4338 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4344 # Infer arch from --with-arch, --target, and --with-abi.
4345 case "${with_arch}" in
4346 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4350 # Infer XLEN, but otherwise assume GC.
4351 case "${with_abi}" in
4352 ilp32e) with_arch="rv32e" ;;
4353 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4354 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4355 *) with_arch="rv${xlen}gc" ;;
4359 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4364 # Make sure --with-abi is valid. If it was not specified,
4365 # pick a default based on the ISA, preferring soft-float
4366 # unless the D extension is present.
4367 case "${with_abi}" in
4368 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4371 case "${with_arch}" in
4372 rv32*d* | rv32g*) with_abi=ilp32d ;;
4373 rv32e*) with_abi=ilp32e ;;
4374 rv32*) with_abi=ilp32 ;;
4375 rv64*d* | rv64g*) with_abi=lp64d ;;
4376 rv64*) with_abi=lp64 ;;
4380 echo "--with-abi=${with_abi} is not supported" 1>&2
4385 # Make sure ABI and ISA are compatible.
4386 case "${with_abi},${with_arch}" in
4387 ilp32,rv32* | ilp32e,rv32e* \
4388 | ilp32f,rv32*f* | ilp32f,rv32g* \
4389 | ilp32d,rv32*d* | ilp32d,rv32g* \
4391 | lp64f,rv64*f* | lp64f,rv64g* \
4392 | lp64d,rv64*d* | lp64d,rv64g*)
4395 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4400 # Handle --with-multilib-list.
4401 if test "x${with_multilib_list}" != xdefault; then
4402 tm_file="${tm_file} riscv/withmultilib.h"
4403 tmake_file="${tmake_file} riscv/t-withmultilib"
4405 case ${with_multilib_list} in
4406 ilp32 | ilp32f | ilp32d \
4407 | lp64 | lp64f | lp64d )
4408 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4411 echo "--with-multilib-list=${with_multilib_list} not supported."
4415 # Define macros to select the default multilib.
4416 case ${with_arch} in
4418 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4421 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4424 echo "unsupported --with-arch for --with-multilib-list"
4429 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4432 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4435 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4438 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4441 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4444 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4447 echo "unsupported --with-abi for --with-multilib"
4454 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"
4456 case ${with_float} in
4461 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4467 "" | single | double)
4471 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4481 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4486 case ${with_fp_32} in
4491 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4496 case ${with_odd_spreg_32} in
4498 with_odd_spreg_32="odd-spreg"
4501 with_odd_spreg_32="no-odd-spreg"
4507 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4513 "" | 32 | o64 | n32 | 64 | eabi)
4517 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4522 case ${with_divide} in
4523 "" | breaks | traps)
4527 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4532 case ${with_llsc} in
4543 echo "Unknown llsc type used in --with-llsc" 1>&2
4548 case ${with_mips_plt} in
4553 with_mips_plt=no-plt
4558 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4563 case ${with_synci} in
4573 echo "Unknown synci type used in --with-synci" 1>&2
4578 case ${with_lxc1_sxc1} in
4580 with_lxc1_sxc1=lxc1-sxc1
4583 with_lxc1_sxc1=no-lxc1-sxc1
4588 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4593 case ${with_madd4} in
4603 echo "Unknown madd4 type used in --with-madd4" 1>&2
4610 supported_defaults="arch cpu nds32_lib float fpu_config"
4612 # process --with-arch
4613 case "${with_arch}" in
4615 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4619 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4622 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4625 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4629 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4634 case "${with_cpu}" in
4638 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4642 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4647 # process --with-nds32-lib
4648 case "${with_nds32_lib}" in
4652 with_nds32_lib=ulibc
4655 with_nds32_lib=glibc
4658 with_nds32_lib=newlib
4659 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4665 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4669 # for the arch=v3f or arch=v3s under mculib toolchain,
4670 # we would like to set -fno-math-errno as default
4671 case "${with_arch}" in
4673 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4681 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4686 # process --with-float
4687 case "${with_float}" in
4692 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4697 # process --with-config-fpu
4698 case "${with_config_fpu}" in
4703 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4711 supported_defaults="arch"
4712 case "$with_arch" in
4717 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4723 powerpc*-*-* | rs6000-*-*)
4724 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4726 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4727 eval "val=\$with_$which"
4729 default32 | default64)
4734 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4738 with_which="with_$which"
4742 tm_defines="${tm_defines} CONFIG_PPC405CR"
4743 eval "with_$which=405"
4745 "" | common | native \
4746 | power[3456789] | power5+ | power6x \
4747 | powerpc | powerpc64 | powerpc64le \
4749 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4750 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4751 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4752 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4753 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4757 echo "Unknown cpu used in --with-$which=$val." 1>&2
4764 "" | elfv1 | elfv2 )
4768 echo "Unknown ABI used in --with-abi=$with_abi"
4773 if test "x$with_advance_toolchain" != x; then
4774 if test -d "/opt/$with_advance_toolchain/." -a \
4775 -d "/opt/$with_advance_toolchain/bin/." -a \
4776 -d "/opt/$with_advance_toolchain/include/."; then
4778 tm_file="$tm_file ./advance-toolchain.h"
4779 (at="/opt/$with_advance_toolchain"
4780 echo "/* Use Advance Toolchain $at */"
4782 echo "#undef LINK_OS_EXTRA_SPEC32"
4783 echo "#define LINK_OS_EXTRA_SPEC32" \
4784 "\"%(link_os_new_dtags)" \
4785 "-rpath $prefix/lib -rpath $at/lib\""
4787 echo "#undef LINK_OS_EXTRA_SPEC64"
4788 echo "#define LINK_OS_EXTRA_SPEC64" \
4789 "\"%(link_os_new_dtags)" \
4790 "-rpath $prefix/lib64 -rpath $at/lib64\""
4792 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4793 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4794 "\"--enable-new-dtags\""
4796 echo "#undef DYNAMIC_LINKER_PREFIX"
4797 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4799 echo "#undef MD_EXEC_PREFIX"
4800 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4802 echo "#undef MD_STARTFILE_PREFIX"
4803 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
4805 echo "#undef MD_STARTFILE_PREFIX_1"
4806 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
4807 > advance-toolchain.h
4809 echo "Unknown advance-toolchain $with_advance_toolchain"
4814 # Set up the default long double format if the user changed it.
4815 if test x$with_long_double_format = xieee; then
4816 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
4818 elif test x$with_long_double_format = xibm; then
4819 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
4824 supported_defaults="arch mode tune"
4826 for which in arch tune; do
4827 eval "val=\$with_$which"
4829 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 )
4833 echo "Unknown cpu used in --with-$which=$val." 1>&2
4839 case ${with_mode} in
4844 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4850 sh[123456ble]*-*-* | sh-*-*)
4851 supported_defaults="cpu"
4852 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4853 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4856 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4858 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4861 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4862 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4863 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4864 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4870 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4872 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4873 eval "val=\$with_$which"
4875 "" | sparc | sparcv9 | sparc64 \
4877 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4878 | sparclite | f930 | f934 | sparclite86x \
4879 | sparclet | tsc701 \
4880 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4881 | niagara3 | niagara4 | niagara7 | m8)
4885 echo "Unknown cpu used in --with-$which=$val" 1>&2
4891 case ${with_float} in
4896 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4903 supported_defaults="arch"
4905 case ${with_arch} in
4906 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4910 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4917 supported_defaults=cpu
4919 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4923 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4929 supported_defaults="cpu"
4933 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4940 # Targets for which there is at least one VxWorks port should include
4941 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
4942 # of markers from other files in the port, including the vxworks*.h files to
4943 # distinguish VxWorks variants such as VxWorks 7 or 64).
4946 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
4947 | sparc*-*-* | x86_64-*-*)
4948 tm_file="vxworks-dummy.h ${tm_file}"
4952 # Set some miscellaneous flags for particular targets.
4953 target_cpu_default2=
4956 if test x"$target_cpu_cname" != x
4958 target_cpu_default2=$target_cpu_cname
4963 if test x$with_cpu = x
4965 echo "Don't know the target cpu" 1>&2
4968 target_cpu_default2="\\\"$with_cpu\\\""
4973 if test x$gas = xyes
4975 target_cpu_default2="MASK_GAS"
4979 fido*-*-* | m68k*-*-*)
4980 target_cpu_default2=$m68k_cpu_ident
4981 tmake_file="m68k/t-opts $tmake_file"
4982 if [ x"$m68k_arch_family" != x ]; then
4983 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4987 i[34567]86-*-darwin* | x86_64-*-darwin*)
4989 i[34567]86-*-linux* | x86_64-*-linux*)
4990 extra_objs="${extra_objs} cet.o"
4991 tmake_file="$tmake_file i386/t-linux i386/t-cet"
4993 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4994 tmake_file="$tmake_file i386/t-kfreebsd"
4997 tmake_file="$tmake_file i386/t-gnu"
4999 i[34567]86-*-msdosdjgpp*)
5000 tmake_file="${tmake_file} i386/t-djgpp"
5002 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5004 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5006 i[34567]86-*-mingw* | x86_64-*-mingw*)
5008 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5010 i[34567]86-*-freebsd*)
5013 tmake_file="${tmake_file} i386/t-freebsd64"
5019 if test x$gnu_ld = xyes
5021 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5025 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5028 if test x$with_arch != x; then
5029 default_mips_arch=$with_arch
5031 if test x$with_abi != x; then
5032 default_mips_abi=$with_abi
5034 case ${default_mips_arch} in
5035 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
5036 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
5037 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
5038 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
5039 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
5040 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
5041 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
5042 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
5043 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
5044 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
5046 case ${default_mips_abi} in
5047 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5048 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5049 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5050 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5051 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5053 tmake_file="mips/t-mips $tmake_file"
5056 powerpc*-*-* | rs6000-*-*)
5057 # FIXME: The PowerPC port uses the value set at compile time,
5058 # although it's only cosmetic.
5059 if test "x$with_cpu" != x
5061 target_cpu_default2="\\\"$with_cpu\\\""
5063 out_file="${cpu_type}/${cpu_type}.c"
5064 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5065 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5066 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5067 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5070 sh[123456ble]*-*-* | sh-*-*)
5071 c_target_objs="${c_target_objs} sh-c.o"
5072 cxx_target_objs="${cxx_target_objs} sh-c.o"
5076 # Some standard aliases.
5081 xsparcv9 | xsparc64)
5086 if test x$with_tune = x ; then
5097 # The SPARC port checks this value at compile-time.
5098 target_cpu_default2="TARGET_CPU_$with_cpu"
5102 case "x$with_cpu" in
5105 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5106 target_cpu_default2="TARGET_CPU_$with_cpu"
5109 target_cpu_default2="TARGET_CPU_v850e1"
5114 target_cpu_default2="TARGET_CPU_$with_cpu"
5119 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"
5120 for option in $all_defaults
5122 eval "val=\$with_"`echo $option | sed s/-/_/g`
5123 if test -n "$val"; then
5124 case " $supported_defaults " in
5128 echo "This target does not support --with-$option." 2>&1
5129 echo "Valid --with options are: $supported_defaults" 2>&1
5136 t="{ \"$option\", \"$val\" }"
5138 t="${t}, { \"$option\", \"$val\" }"
5145 configure_default_options="{ { NULL, NULL} }"
5147 configure_default_options="{ ${t} }"
5150 if test "$target_cpu_default2" != ""
5152 if test "$target_cpu_default" != ""
5154 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5156 target_cpu_default=$target_cpu_default2
5161 i[34567]86-*-* | x86_64-*-*)
5162 if test x$enable_as_accelerator = xyes; then
5163 extra_programs="mkoffload\$(exeext)"