1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2021 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
276 | i[34567]86-go32-* \
277 | i[34567]86-*-go32* \
278 | m68k-*-uclinuxoldabi* \
279 | mips64orion*-*-rtems* \
281 | powerpc*-*-linux*paired* \
283 | sparc-hal-solaris2* \
286 | *-*-freebsd[12] | *-*-freebsd[1234].* \
287 | *-*-freebsd*aout* \
295 | *-*-solaris2.[0-9] \
296 | *-*-solaris2.[0-9].* \
301 echo "*** Configuration ${target} not supported" 1>&2
306 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
307 # updated in each machine entry. Also set default extra_headers for some
310 cpu_type=`echo ${target} | sed 's/-.*$//'`
315 tmake_file=m32c/t-m32c
316 target_has_targetm_common=no
320 extra_headers="arm_fp16.h arm_neon.h arm_bf16.h arm_acle.h arm_sve.h"
321 c_target_objs="aarch64-c.o"
322 cxx_target_objs="aarch64-c.o"
323 d_target_objs="aarch64-d.o"
324 extra_objs="aarch64-builtins.o aarch-common.o aarch64-sve-builtins.o aarch64-sve-builtins-shapes.o aarch64-sve-builtins-base.o aarch64-sve-builtins-sve2.o cortex-a57-fma-steering.o aarch64-speculation.o falkor-tag-collision-avoidance.o aarch64-bti-insert.o aarch64-cc-fusion.o"
325 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c \$(srcdir)/config/aarch64/aarch64-sve-builtins.h \$(srcdir)/config/aarch64/aarch64-sve-builtins.cc"
326 target_has_targetm_common=yes
330 extra_options="${extra_options} g.opt"
341 c_target_objs="arc-c.o"
342 cxx_target_objs="arc-c.o"
343 extra_options="${extra_options} arc/arc-tables.opt g.opt"
344 extra_headers="arc-simd.h"
348 extra_objs="arm-builtins.o aarch-common.o"
349 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h arm_bf16.h arm_mve_types.h arm_mve.h arm_cde.h"
350 target_type_format_char='%'
351 c_target_objs="arm-c.o"
352 cxx_target_objs="arm-c.o"
353 d_target_objs="arm-d.o"
354 extra_options="${extra_options} arm/arm-tables.opt"
355 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
359 c_target_objs="avr-c.o"
360 cxx_target_objs="avr-c.o"
369 extra_options="${extra_options} g.opt"
372 target_has_targetm_common=no
374 moxie*) cpu_type=moxie
375 target_has_targetm_common=no
379 extra_headers=math-68881.h
380 extra_options="${extra_options} m68k/m68k-tables.opt"
384 c_target_objs="i386-c.o"
385 cxx_target_objs="i386-c.o"
386 d_target_objs="i386-d.o"
387 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"
388 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
389 extra_options="${extra_options} fused-madd.opt"
390 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
391 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
392 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
393 immintrin.h x86intrin.h avxintrin.h xopintrin.h
394 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
395 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
396 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
397 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
398 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
399 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
400 shaintrin.h clflushoptintrin.h xsavecintrin.h
401 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
402 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
403 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
404 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
405 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
406 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
407 gfniintrin.h cet.h avx512vbmi2intrin.h
408 avx512vbmi2vlintrin.h avx512vnniintrin.h
409 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
410 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
411 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
412 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h
413 avx512bf16intrin.h enqcmdintrin.h serializeintrin.h
414 avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h
415 tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h
416 amxbf16intrin.h x86gprintrin.h uintrintrin.h
417 hresetintrin.h keylockerintrin.h avxvnniintrin.h"
421 c_target_objs="i386-c.o"
422 cxx_target_objs="i386-c.o"
423 d_target_objs="i386-d.o"
424 extra_options="${extra_options} fused-madd.opt"
425 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"
426 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
427 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
428 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
429 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
430 immintrin.h x86intrin.h avxintrin.h xopintrin.h
431 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
432 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
433 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
434 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
435 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
436 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
437 shaintrin.h clflushoptintrin.h xsavecintrin.h
438 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
439 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
440 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
441 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
442 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
443 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
444 gfniintrin.h cet.h avx512vbmi2intrin.h
445 avx512vbmi2vlintrin.h avx512vnniintrin.h
446 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
447 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
448 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
449 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h
450 avx512bf16intrin.h enqcmdintrin.h serializeintrin.h
451 avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h
452 tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h
453 amxbf16intrin.h x86gprintrin.h uintrintrin.h
454 hresetintrin.h keylockerintrin.h avxvnniintrin.h"
457 extra_headers=ia64intrin.h
458 extra_options="${extra_options} g.opt fused-madd.opt"
464 extra_options="${extra_options} g.opt"
468 extra_options="${extra_options} g.opt"
471 extra_headers=math-68881.h
472 extra_options="${extra_options} m68k/m68k-tables.opt"
476 extra_options="${extra_options} g.opt"
480 d_target_objs="mips-d.o"
481 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
482 extra_objs="frame-header-opt.o"
483 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
487 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
490 extra_options="${extra_options} nds32/nds32-linux.opt"
493 extra_options="${extra_options} nds32/nds32-elf.opt"
498 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"
502 extra_options="${extra_options} g.opt"
512 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
513 extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
514 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
515 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
516 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
517 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
518 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
519 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
520 extra_headers="${extra_headers} amo.h"
522 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower10|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
526 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
527 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
528 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.c"
535 extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o riscv-shorten-memrefs.o"
536 d_target_objs="riscv-d.o"
539 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
540 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
541 extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
542 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
543 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.c"
547 c_target_objs="sparc-c.o"
548 cxx_target_objs="sparc-c.o"
549 d_target_objs="sparc-d.o"
550 extra_headers="visintrin.h"
554 d_target_objs="s390-d.o"
555 extra_options="${extra_options} fused-madd.opt"
556 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
558 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
559 sh[123456789lbe]*-*-* | sh-*-*)
561 extra_options="${extra_options} fused-madd.opt"
562 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
569 extra_headers="c6x_intrinsics.h"
570 extra_options="${extra_options} c6x/c6x-tables.opt"
573 extra_options="${extra_options} fused-madd.opt"
583 tm_file=${cpu_type}/${cpu_type}.h
584 tm_d_file=${cpu_type}/${cpu_type}.h
585 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
587 tm_p_file=${cpu_type}/${cpu_type}-protos.h
588 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
592 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
594 extra_modes=${cpu_type}/${cpu_type}-modes.def
596 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
598 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
603 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
606 if test "x$with_multilib_list" = xilp32; then
607 tm_file="aarch64/biarchilp32.h ${tm_file}"
609 tm_file="aarch64/biarchlp64.h ${tm_file}"
613 tm_file="aarch64/biarchilp32.h ${tm_file}"
616 tm_file="aarch64/biarchlp64.h ${tm_file}"
619 echo "Unknown ABI used in --with-abi=$with_abi"
624 if test "x$with_abi" != x; then
625 echo "This target does not support --with-abi."
632 if test "x$with_multilib_list" = xmx32; then
633 tm_file="i386/biarchx32.h ${tm_file}"
635 tm_file="i386/biarch64.h ${tm_file}"
639 tm_file="i386/biarch64.h ${tm_file}"
642 tm_file="i386/biarchx32.h ${tm_file}"
645 echo "Unknown ABI used in --with-abi=$with_abi"
650 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
654 # On a.out targets, we need to use collect2.
661 # Common C libraries.
662 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
664 # 32-bit x86 processors supported by --with-arch=. Each processor
665 # MUST be separated by exactly one space.
666 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
667 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
668 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
669 pentium4 pentium4m pentiumpro prescott lakemont samuel-2 nehemiah \
672 # 64-bit x86 processors supported by --with-arch=. Each processor
673 # MUST be separated by exactly one space.
674 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
675 bdver3 bdver4 znver1 znver2 znver3 btver1 btver2 k8 k8-sse3 opteron \
676 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
677 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
678 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
679 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake \
680 sapphirerapids alderlake eden-x2 nano nano-1000 nano-2000 nano-3000 \
681 nano-x2 eden-x4 nano-x4 x86-64 x86-64-v2 x86-64-v3 x86-64-v4 native"
683 # Additional x86 processors supported by --with-cpu=. Each processor
684 # MUST be separated by exactly one space.
685 x86_cpus="generic intel"
687 # Common parts for widely ported systems.
690 tmake_file="t-darwin "
691 tm_file="${tm_file} darwin.h"
692 darwin_os=`echo ${target} | sed 's/.*darwin\([0-9.]*\).*$/\1/'`
693 darwin_maj=`expr "$darwin_os" : '\([0-9]*\).*'`
694 macos_min=`expr "$darwin_os" : '[0-9]*\.\([0-9]*\).*'`
696 if test x"${macos_min}" = x; then
701 # Darwin 4 to 19 correspond to macOS 10.0 to 10.15
702 *-*-darwin[4-9]* | *-*-darwin1[0-9]*)
703 macos_min=`expr $darwin_maj - 4`
706 # Darwin 20 corresponds to macOS 11.
712 aarch64) macos_maj=11 ;;
713 x86_64) macos_min=6 ;;
717 *-*-darwin*) tm_defines="$tm_defines DARWIN_USE_KERNEL_VERS" ;;
719 # If configuring a cross-compiler then we will have set some
720 #Â default above, but it is probably not what was intended.
721 echo "Warning: Using ${target} is only suitable for Darwin hosts" 1>&2
722 echo "configure with an explicit target version" 1>&2
727 echo "Error: configuring for an unreleased macOS version ${target}" 1>&2
731 tm_defines="$tm_defines DEF_MIN_OSX_VERSION=\\\"${macos_maj}.${macos_min}\\\""
732 tm_defines="$tm_defines DEF_LD64=\\\"${def_ld64}\\\""
733 tm_file="${tm_file} ${cpu_type}/darwin.h"
734 tm_p_file="${tm_p_file} darwin-protos.h"
735 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.c"
736 extra_options="${extra_options} darwin.opt"
737 c_target_objs="${c_target_objs} darwin-c.o"
738 cxx_target_objs="${cxx_target_objs} darwin-c.o"
739 d_target_objs="${d_target_objs} darwin-d.o"
740 fortran_target_objs="darwin-f.o"
741 target_has_targetcm=yes
742 target_has_targetdm=yes
743 extra_objs="${extra_objs} darwin.o"
744 extra_gcc_objs="darwin-driver.o"
745 default_use_cxa_atexit=yes
747 case ${enable_threads} in
748 "" | yes | posix) thread_file='posix' ;;
754 tmake_file="t-slibgcc"
755 case ${enable_threads} in
760 # Let these non-posix thread selections fall through if requested
763 echo 'Unknown thread configuration for DragonFly BSD'
767 extra_options="$extra_options rpath.opt dragonfly.opt"
768 default_use_cxa_atexit=yes
770 d_target_objs="${d_target_objs} dragonfly-d.o"
771 tmake_file="${tmake_file} t-dragonfly"
772 target_has_targetdm=yes
775 # This is the generic ELF configuration of FreeBSD. Later
776 # machine-specific sections may refine and add to this
779 # Due to tm_file entry ordering issues that vary between cpu
780 # architectures, we only define fbsd_tm_file to allow the
781 # machine-specific section to dictate the final order of all
782 # entries of tm_file with the minor exception that components
783 # of the tm_file set here will always be of the form:
785 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
787 # The machine-specific section should not tamper with this
788 # ordering but may order all other entries of tm_file as it
789 # pleases around the provided core setting.
792 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
793 if test "$fbsd_major" = ""; then
794 echo "Specify the major version number of the targeted FreeBSD release"
795 echo "like this: --target=amd64-unknown-freebsd10.1"
798 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
799 tmake_file="t-slibgcc"
800 case ${enable_threads} in
802 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
808 echo 'Unknown thread configuration for FreeBSD'
812 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
813 extra_options="$extra_options rpath.opt freebsd.opt"
818 default_use_cxa_atexit=yes;;
821 d_target_objs="${d_target_objs} freebsd-d.o"
822 tmake_file="${tmake_file} t-freebsd"
823 target_has_targetdm=yes
826 native_system_header_dir=/include
828 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
829 extra_options="$extra_options gnu-user.opt"
832 case ${enable_threads} in
833 "" | yes | posix) thread_file='posix' ;;
835 tmake_file="t-slibgcc"
837 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
840 native_system_header_dir=/include
843 # Linux C libraries selection switch: glibc / uclibc / bionic.
844 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
847 tm_p_file="${tm_p_file} linux-protos.h"
848 tmake_file="${tmake_file} t-linux"
849 extra_objs="${extra_objs} linux.o"
850 extra_options="${extra_options} linux.opt"
855 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
857 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
858 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
861 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
864 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
867 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
869 default_use_cxa_atexit=yes
872 # Enable compilation for Android by default for *android* targets.
875 tm_defines="$tm_defines ANDROID_DEFAULT=1"
878 tm_defines="$tm_defines ANDROID_DEFAULT=0"
881 c_target_objs="${c_target_objs} glibc-c.o"
882 cxx_target_objs="${cxx_target_objs} glibc-c.o"
883 d_target_objs="${d_target_objs} glibc-d.o"
884 tmake_file="${tmake_file} t-glibc"
885 target_has_targetcm=yes
886 target_has_targetdm=yes
889 tm_p_file="${tm_p_file} netbsd-protos.h"
890 tmake_file="t-netbsd t-slibgcc"
891 extra_objs="${extra_objs} netbsd.o"
892 d_target_objs="${d_target_objs} netbsd-d.o"
896 case ${enable_threads} in
897 "" | yes | posix) thread_file='posix' ;;
899 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
900 default_use_cxa_atexit=yes
901 target_has_targetdm=yes
903 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
904 default_gnu_indirect_function=yes
909 tmake_file="t-openbsd"
910 case ${enable_threads} in
916 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
917 default_use_cxa_atexit=yes
920 d_target_objs="${d_target_objs} openbsd-d.o"
921 target_has_targetdm=yes
926 default_use_cxa_atexit=yes
929 case ${enable_threads} in
930 "" | yes | rtems) thread_file='rtems' ;;
931 posix) thread_file='posix' ;;
934 echo 'Unknown thread configuration for RTEMS'
938 tmake_file="${tmake_file} t-rtems"
939 extra_options="${extra_options} rtems.opt"
940 default_use_cxa_atexit=yes
944 extra_options="$extra_options gnu-user.opt"
946 case ${enable_threads} in
947 "" | yes | posix) thread_file='posix' ;;
949 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
955 # i?86-*-solaris2* needs to insert headers between cpu default and
956 # Solaris 2 specific ones.
957 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
958 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
959 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
961 *-*-solaris2.1[1-9]*)
962 # __cxa_atexit was introduced in Solaris 11.4.
963 default_use_cxa_atexit=yes
967 if test x$gnu_ld = xyes; then
968 tm_file="usegld.h ${tm_file}"
970 if test x$gas = xyes; then
971 tm_file="usegas.h ${tm_file}"
973 tm_p_file="${tm_p_file} sol2-protos.h"
974 tmake_file="${tmake_file} t-sol2 t-slibgcc"
975 c_target_objs="${c_target_objs} sol2-c.o"
976 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
977 d_target_objs="${d_target_objs} sol2-d.o"
978 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
979 extra_options="${extra_options} sol2.opt"
980 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
981 "":yes:* | yes:yes:* )
985 target_has_targetdm=yes
988 extra_options="${extra_options} vms/vms.opt"
990 tmake_file="vms/t-vms t-slibgcc"
992 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
993 tm_p_file="${tm_p_file} vms/vms-protos.h"
994 xm_file="vms/xm-vms.h"
995 c_target_objs="vms-c.o"
996 cxx_target_objs="vms-c.o"
997 fortran_target_objs="vms-f.o"
998 use_gcc_stdint=provide
999 tm_file="${tm_file} vms/vms-stdint.h"
1000 if test x$gnu_ld != xyes; then
1001 # Build wrappers for native case.
1002 extra_programs="ld\$(exeext) ar\$(exeext)"
1003 tmake_file="$tmake_file vms/t-vmsnative"
1007 tmake_file=t-vxworks
1010 extra_options="${extra_options} vxworks.opt"
1011 extra_objs="$extra_objs vxworks.o"
1013 c_target_objs="${c_target_objs} vxworks-c.o"
1014 cxx_target_objs="${cxx_target_objs} vxworks-c.o"
1015 extra_headers="${extra_headers} ../vxworks/vxworks-predef.h"
1016 target_has_targetcm="yes"
1018 # This private header exposes a consistent interface for checks on
1019 # the VxWorks version our runtime header files need to perform, based on
1020 # what the system headers adverstise:
1022 extra_headers="${extra_headers} ../vxworks/_vxworks-versions.h"
1024 # Starting from VxWorks 7, the system comes with a Dinkumware
1025 # environment which requires the inclusion of "yvals.h" before other
1026 # system headers. We provide wrapped versions of a few headers to
1027 # accomodate such constraints:
1029 extra_headers="${extra_headers} ../vxworks/_yvals.h"
1030 extra_headers="${extra_headers} ../vxworks/_yvals-wrapper.h"
1032 extra_headers="${extra_headers} ../vxworks/math.h ../vxworks/complex.h"
1033 extra_headers="${extra_headers} ../vxworks/inttypes.h ../vxworks/setjmp.h"
1035 # We provide stdint.h ...
1037 tm_file="${tm_file} vxworks-stdint.h"
1039 # .. only through the yvals conditional wrapping mentioned above
1040 # to abide by the VxWorks 7 expectations. The final copy is performed
1041 # explicitly by a t-vxworks Makefile rule.
1044 extra_headers="${extra_headers} ../../ginclude/stdint-gcc.h"
1046 case ${enable_threads} in
1048 "" | yes | vxworks) thread_file='vxworks' ;;
1049 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
1052 # A few common macro definitions conveying general characteristics
1053 # of the configuration at hand. Note that by VxWorks 7, we mean the
1054 # the SR6xx major update or beyond in vendor parlance:
1058 tm_defines="$tm_defines TARGET_VXWORKS7=1"
1063 tm_defines="$tm_defines TARGET_VXWORKS64=1"
1067 # Then a few build configuration controls for VxWorks 7, which
1068 # has specificities on top of which we aim to provide more complete
1073 # VxWorks 7 always has init/fini_array support and it is simpler to
1074 # just leverage this, sticking to what the system toolchain does:
1075 gcc_cv_initfini_array=yes
1079 *-*-elf|arc*-*-elf*)
1080 # Assume that newlib is being used and so __cxa_atexit is provided.
1081 default_use_cxa_atexit=yes
1087 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1088 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
1089 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1090 tmake_file="${tmake_file} aarch64/t-aarch64"
1096 tm_file="${tm_file} fuchsia.h"
1099 tm_file="${tm_file} aarch64/rtems.h rtems.h"
1104 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1107 aarch64_multilibs="${with_multilib_list}"
1108 if test "$aarch64_multilibs" = "default"; then
1109 aarch64_multilibs="lp64,ilp32"
1111 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1112 for aarch64_multilib in ${aarch64_multilibs}; do
1113 case ${aarch64_multilib} in
1115 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1118 echo "--with-multilib-list=${aarch64_multilib} not supported."
1122 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1124 aarch64*-*-freebsd*)
1125 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1126 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1127 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1128 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1131 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
1132 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1133 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1134 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1137 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1138 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1139 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1140 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1143 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1146 aarch64_multilibs="${with_multilib_list}"
1147 if test "$aarch64_multilibs" = "default"; then
1148 # TODO: turn on ILP32 multilib build after its support is mature.
1149 # aarch64_multilibs="lp64,ilp32"
1150 aarch64_multilibs="lp64"
1152 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1153 for aarch64_multilib in ${aarch64_multilibs}; do
1154 case ${aarch64_multilib} in
1156 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1159 echo "--with-multilib-list=${aarch64_multilib} not supported."
1163 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1165 aarch64*-wrs-vxworks*)
1166 tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
1167 tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
1168 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
1171 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1172 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1173 extra_options="${extra_options} alpha/elf.opt"
1176 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1177 tmake_file="${tmake_file} alpha/t-alpha"
1178 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1182 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1183 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1184 tmake_file="${tmake_file} alpha/t-alpha"
1185 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1186 # default x-alpha is only appropriate for dec-osf.
1189 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1190 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1193 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1194 tmake_file="arc/t-multilib arc/t-arc"
1195 extra_gcc_objs="driver-arc.o"
1196 if test "x$with_cpu" != x; then
1197 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1199 if test x${with_endian} = x; then
1201 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1202 *) with_endian=little ;;
1205 case ${with_endian} in
1207 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1209 case ${with_endian} in
1210 big*) tm_file="arc/big.h ${tm_file}"
1214 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}"
1215 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1216 extra_gcc_objs="driver-arc.o"
1217 if test "x$with_cpu" != x; then
1218 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1220 if test x${with_endian} = x; then
1222 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1223 *) with_endian=little ;;
1226 case ${with_endian} in
1228 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1230 case ${with_endian} in
1231 big*) tm_file="arc/big.h ${tm_file}"
1233 # Force .init_array support. The configure script cannot always
1234 # automatically detect that GAS supports it, yet we require it.
1235 gcc_cv_initfini_array=yes
1238 # We only support VxWorks 7 now on ARM, post SR600. Pre SR600
1239 # VxWorks 7 was transitory and major versions prior to 7 were based
1240 # on long deprecated ABI, not supported at all any more regardless
1242 extra_options="${extra_options} arm/vxworks.opt"
1243 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1244 tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1245 tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1246 target_cpu_cname="generic-armv7-a"
1247 need_64bit_hwint=yes
1249 arm*-*-freebsd*) # ARM FreeBSD EABI
1250 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1253 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1256 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1257 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1260 target_cpu_cname="arm1176jzf-s"
1261 if test $fbsd_major -ge 11; then
1262 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1266 target_cpu_cname="generic-armv7-a"
1267 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1270 target_cpu_cname="arm9"
1273 with_tls=${with_tls:-gnu}
1276 target_cpu_cname="strongarm"
1277 tmake_file="${tmake_file} arm/t-arm"
1278 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1279 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1281 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1284 arm*-*-netbsdelf-*eabi*)
1285 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1286 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1289 tm_file="$tm_file arm/netbsd-elf.h"
1290 tmake_file="$tmake_file arm/t-netbsd"
1293 tm_file="${tm_file} arm/aout.h arm/arm.h"
1295 arm*-*-netbsdelf-*eabihf*)
1296 # Hard-float requires at least Arm v5te
1297 target_cpu_cname="arm10e"
1298 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1302 armv6*) target_cpu_cname="arm1176jzf-s";;
1303 armv7*) target_cpu_cname="generic-armv7-a";;
1306 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1307 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"
1308 extra_options="${extra_options} linux-android.opt"
1311 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1314 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1315 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1317 arm*-*-uclinuxfdpiceabi)
1318 tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1321 # Generation of floating-point instructions requires at least ARMv5te.
1322 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1323 target_cpu_cname="arm10e"
1325 target_cpu_cname="arm10tdmi"
1327 # Define multilib configuration for arm-linux-androideabi.
1330 tmake_file="$tmake_file arm/t-linux-androideabi"
1333 # The EABI requires the use of __cxa_atexit.
1334 default_use_cxa_atexit=yes
1335 with_tls=${with_tls:-gnu}
1337 arm*-*-uclinux*eabi*) # ARM ucLinux
1338 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1339 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1340 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1341 target_cpu_cname="arm7tdmi"
1342 # The EABI requires the use of __cxa_atexit.
1343 default_use_cxa_atexit=yes
1346 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1347 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1348 tm_file="${tm_file} arm/aout.h arm/arm.h"
1349 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1350 target_cpu_cname="arm7tdmi"
1352 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1355 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1357 default_use_cxa_atexit=yes
1358 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1359 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1360 target_cpu_cname="arm7tdmi"
1363 tm_file="$tm_file newlib-stdint.h"
1364 tmake_file="${tmake_file} arm/t-bpabi"
1368 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1369 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1370 target_cpu_cname="generic-armv7-a"
1373 tm_file="${tm_file} arm/rtems.h rtems.h newlib-stdint.h"
1374 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1377 tm_file="${tm_file} arm/symbian.h"
1378 # We do not include t-bpabi for Symbian OS because the system
1379 # provides its own implementation of the BPABI functions.
1380 tmake_file="${tmake_file} arm/t-symbian"
1381 target_cpu_cname="arm10tdmi"
1384 tm_file="${tm_file} arm/aout.h arm/arm.h"
1387 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1388 if test x${with_avrlibc} != xno; then
1389 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1390 tm_defines="${tm_defines} WITH_AVRLIBC"
1392 # Work out avr_double_comparison which is 2 or 3 and is used in
1393 # target hook FLOAT_LIB_COMPARE_RETURNS_BOOL to determine whether
1394 # DFmode comparisons return 3-state or 2-state results.
1395 case y${with_double_comparison} in
1397 avr_double_comparison=3
1400 avr_double_comparison=2
1403 echo "Error: --with-double-comparison= can only be used with: 'tristate', 'bool', 'libf7'" 1>&2
1407 case "y${with_libf7}" in
1409 # avr_double_comparison as set above.
1412 avr_double_comparison=2
1413 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1415 y | yyes | ymath-symbols)
1416 avr_double_comparison=2
1417 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1418 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1419 tm_defines="${tm_defines} WITH_LIBF7_MATH_SYMBOLS"
1422 avr_double_comparison=2
1423 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1424 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1427 echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
1431 tm_defines="${tm_defines} WITH_DOUBLE_COMPARISON=${avr_double_comparison}"
1432 case y${with_double} in
1435 tm_defines="${tm_defines} HAVE_DOUBLE32"
1439 tm_defines="${tm_defines} HAVE_DOUBLE64"
1443 avr_double_multilib=1
1444 tm_defines="${tm_defines} HAVE_DOUBLE32"
1445 tm_defines="${tm_defines} HAVE_DOUBLE64"
1446 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1450 avr_double_multilib=1
1451 tm_defines="${tm_defines} HAVE_DOUBLE32"
1452 tm_defines="${tm_defines} HAVE_DOUBLE64"
1453 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1456 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1460 case y${with_long_double} in
1463 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1467 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1471 avr_long_double_multilib=1
1472 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1473 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1474 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1478 avr_long_double_multilib=1
1479 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1480 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1481 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1484 avr_long_double=${avr_double}
1485 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1486 if test y${avr_double_multilib} = y1; then
1487 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1488 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1490 tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1494 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1498 if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1499 if test y${with_long_double} != ydouble; then
1500 echo "Error: --with-double=${with_double} requests a multilib for double, but long double is always 32 bits wide due to --with-long-double=${with_long_double}" 1>&2
1504 if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1505 echo "Error: --with-long-double=${with_long_double} requests a multilib for long double, but double is always 64 bits wide due to --with-double=64" 1>&2
1508 if test y${avr_double}${avr_long_double} = y6432; then
1509 echo "Error: double default of 64 bits from --with-double=${with_double} conflicts with default of 32 bits for long double from --with-long-double=${with_long_double}" 1>&2
1512 tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1513 tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1514 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1516 extra_gcc_objs="driver-avr.o avr-devices.o"
1517 extra_objs="avr-devices.o avr-log.o"
1520 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1521 tmake_file=bfin/t-bfin-elf
1525 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1526 tmake_file=bfin/t-bfin-uclinux
1529 bfin*-linux-uclibc*)
1530 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"
1531 tmake_file="${tmake_file} bfin/t-bfin-linux"
1535 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1536 tmake_file="${tmake_file} bfin/t-rtems"
1539 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1544 tm_file="elfos.h ${tm_file}"
1545 tmake_file="${tmake_file} bpf/t-bpf"
1547 extra_headers="bpf-helpers.h"
1548 use_gcc_stdint=provide
1551 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1552 tmake_file="${tmake_file} cr16/t-cr16 "
1555 cris-*-elf | cris-*-none)
1556 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1557 tmake_file="cris/t-cris cris/t-elfmulti"
1559 extra_options="${extra_options} cris/elf.opt"
1563 if test x${with_endian} != x; then
1564 case ${with_endian} in
1567 echo "with_endian=${with_endian} not supported."
1572 if test x${with_float} != x; then
1573 case ${with_float} in
1576 "Unknown floating point type used in --with-float=$with_float"
1581 tm_file="csky/csky.h"
1582 md_file="csky/csky.md"
1583 out_file="csky/csky.c"
1584 tm_p_file="${tm_p_file} csky/csky-protos.h"
1585 extra_options="${extra_options} csky/csky_tables.opt"
1587 if test x${enable_tpf_debug} = xyes; then
1588 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1593 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1594 tmake_file="csky/t-csky csky/t-csky-elf"
1595 default_use_cxa_atexit=no
1599 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1600 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1602 if test "x${enable_multilib}" = xyes ; then
1603 tm_file="$tm_file ./sysroot-suffix.h"
1604 tmake_file="${tmake_file} csky/t-sysroot-suffix"
1609 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1610 # Force .init_array support. The configure script cannot always
1611 # automatically detect that GAS supports it, yet we require it.
1612 gcc_cv_initfini_array=yes
1614 csky-*-linux-uclibc*)
1615 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1616 default_use_cxa_atexit=no
1619 echo "Unknown target $target"
1625 echo "Unknown target $target"
1630 epiphany-*-elf | epiphany-*-rtems*)
1631 tm_file="${tm_file} dbxelf.h elfos.h"
1632 tmake_file="${tmake_file} epiphany/t-epiphany"
1635 tm_file="${tm_file} epiphany/rtems.h rtems.h newlib-stdint.h"
1638 tm_file="${tm_file} newlib-stdint.h"
1641 extra_options="${extra_options} fused-madd.opt"
1642 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1643 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1644 extra_headers="epiphany_intrinsics.h"
1647 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1650 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1651 tmake_file=frv/t-frv
1654 tm_file="dbxelf.h elfos.h ${tm_file} \
1655 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1656 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1661 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1662 tmake_file="${tmake_file} ft32/t-ft32"
1665 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1666 tmake_file="gcn/t-gcn-hsa"
1667 native_system_header_dir=/include
1668 extra_modes=gcn/gcn-modes.def
1669 extra_objs="${extra_objs} gcn-tree.o"
1670 extra_gcc_objs="driver-gcn.o"
1672 x86_64*-*-linux-gnu )
1673 if test "$ac_cv_search_dlopen" != no; then
1674 extra_programs="${extra_programs} gcn-run\$(exeext)"
1678 if test x$enable_as_accelerator = xyes; then
1679 extra_programs="${extra_programs} mkoffload\$(exeext)"
1680 tm_file="${tm_file} gcn/offload.h"
1682 # Force .init_array support.
1683 gcc_cv_initfini_array=yes
1689 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1690 tmake_file="${tmake_file} moxie/t-moxie"
1695 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1696 tmake_file="${tmake_file} moxie/t-moxie"
1699 tmake_file="${tmake_file} moxie/t-moxie"
1700 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1705 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1706 tmake_file="${tmake_file} moxie/t-moxiebox"
1709 tmake_file="h8300/t-h8300"
1710 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1713 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1714 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1717 target_cpu_default="MASK_PA_11|MASK_PA_20"
1718 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1719 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1721 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1722 d_target_objs="${d_target_objs} pa-d.o"
1726 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1727 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1728 pa/pa32-regs.h pa/pa32-linux.h"
1729 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1730 d_target_objs="${d_target_objs} pa-d.o"
1733 target_cpu_default="MASK_PA_11"
1734 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1735 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1736 extra_options="${extra_options} openbsd.opt"
1737 tmake_file="pa/t-pa"
1738 d_target_objs="${d_target_objs} pa-d.o"
1743 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1744 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} \
1745 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1746 tmake_file="${tmake_file}"
1747 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1748 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1750 hppa[12]*-*-hpux10*)
1752 hppa1.1-*-* | hppa2*-*-*)
1753 target_cpu_default="MASK_PA_11"
1756 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1757 pa/pa-hpux.h pa/pa-hpux10.h"
1758 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1761 tm_file="${tm_file} pa/pa-hpux1010.h"
1762 extra_options="${extra_options} pa/pa-hpux1010.opt"
1765 use_gcc_stdint=provide
1766 tm_file="${tm_file} hpux-stdint.h"
1767 tmake_file="pa/t-pa t-slibgcc"
1768 d_target_objs="${d_target_objs} pa-d.o"
1769 case ${enable_threads} in
1771 if test x$have_pthread_h = xyes ; then
1772 tmake_file="${tmake_file} pa/t-dce-thr"
1776 tmake_file="${tmake_file} pa/t-dce-thr"
1781 if test "x$with_dwarf2" != x; then
1782 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1787 target_cpu_default="MASK_PA_11|MASK_PA_20"
1788 if test x$gnu_ld = xyes
1790 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1792 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1793 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1797 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1798 extra_options="${extra_options} pa/pa-hpux1111.opt"
1801 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1802 extra_options="${extra_options} pa/pa-hpux1131.opt"
1805 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1808 extra_options="${extra_options} pa/pa-hpux.opt \
1809 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1810 tmake_file="pa/t-pa t-slibgcc"
1811 d_target_objs="${d_target_objs} pa-d.o"
1812 case x${enable_threads} in
1820 use_gcc_stdint=provide
1821 tm_file="${tm_file} hpux-stdint.h"
1825 tm_file="${tm_file} hpux-stdint.h"
1829 hppa[12]*-*-hpux11*)
1831 hppa1.1-*-* | hppa2*-*-*)
1832 target_cpu_default="MASK_PA_11"
1835 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1836 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1837 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1841 tm_file="${tm_file} pa/pa-hpux1111.h"
1842 extra_options="${extra_options} pa/pa-hpux1111.opt"
1845 tm_file="${tm_file} pa/pa-hpux1131.h"
1846 extra_options="${extra_options} pa/pa-hpux1131.opt"
1849 tmake_file="pa/t-pa t-slibgcc"
1850 d_target_objs="${d_target_objs} pa-d.o"
1851 case x${enable_threads} in
1860 use_gcc_stdint=provide
1861 tm_file="${tm_file} hpux-stdint.h"
1865 tm_file="${tm_file} hpux-stdint.h"
1868 if test "x$with_dwarf2" != x; then
1869 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1873 i[34567]86-*-darwin1[89]*)
1874 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1876 i[34567]86-*-darwin*)
1878 # Baseline choice for a machine that allows m64 support.
1879 with_cpu=${with_cpu:-core2}
1880 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1881 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
1883 x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
1885 with_cpu=${with_cpu:-core2}
1886 tmake_file="${tmake_file} t-slibgcc"
1889 with_cpu=${with_cpu:-core2}
1890 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1891 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
1893 i[34567]86-*-elfiamcu)
1894 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1897 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1900 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1903 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"
1906 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1909 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"
1910 tmake_file="i386/t-i386elf t-svr4"
1912 i[34567]86-*-dragonfly*)
1913 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1914 tmake_file="${tmake_file} i386/t-crtstuff"
1916 x86_64-*-dragonfly*)
1917 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"
1918 tmake_file="${tmake_file} i386/t-crtstuff"
1920 i[34567]86-*-freebsd*)
1921 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1924 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"
1926 i[34567]86-*-netbsdelf*)
1927 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1928 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1931 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1932 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1934 i[34567]86-*-openbsd*)
1935 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1936 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1937 extra_options="${extra_options} openbsd.opt"
1942 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1943 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1944 extra_options="${extra_options} openbsd.opt"
1948 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1949 # Intel 80386's running GNU/*
1950 # with ELF format using glibc 2
1951 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1953 i[34567]86-*-linux*)
1954 tm_file="${tm_file} linux.h linux-android.h"
1955 extra_options="${extra_options} linux-android.opt"
1956 if test x$enable_targets = xall; then
1957 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1958 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1959 tmake_file="${tmake_file} i386/t-linux64"
1960 x86_multilibs="${with_multilib_list}"
1961 if test "$x86_multilibs" = "default"; then
1962 x86_multilibs="m64,m32"
1964 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1965 for x86_multilib in ${x86_multilibs}; do
1966 case ${x86_multilib} in
1968 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1971 echo "--with-multilib-list=${x86_with_multilib} not supported."
1975 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1977 if test x$with_cpu = x; then
1978 if test x$with_cpu_64 = x; then
1982 case " $x86_cpus $x86_archs $x86_64_archs " in
1986 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1987 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1993 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1996 i[34567]86-*-kfreebsd*-gnu)
1997 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1999 i[34567]86-*-kopensolaris*-gnu)
2000 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
2003 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
2007 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
2008 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
2009 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
2012 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
2013 extra_options="${extra_options} linux-android.opt"
2015 x86_64-*-kfreebsd*-gnu)
2016 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
2019 tmake_file="${tmake_file} i386/t-linux64"
2020 x86_multilibs="${with_multilib_list}"
2021 if test "$x86_multilibs" = "default"; then
2024 x86_multilibs="mx32"
2027 x86_multilibs="m64,m32"
2031 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
2032 for x86_multilib in ${x86_multilibs}; do
2033 case ${x86_multilib} in
2035 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
2038 echo "--with-multilib-list=${x86_with_multilib} not supported."
2042 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2044 i[34567]86-pc-msdosdjgpp*)
2045 xm_file=i386/xm-djgpp.h
2046 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
2047 native_system_header_dir=/dev/env/DJDIR/include
2048 extra_options="${extra_options} i386/djgpp.opt"
2053 i[34567]86-*-lynxos*)
2055 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
2056 tmake_file="${tmake_file} t-lynx"
2057 extra_options="${extra_options} lynx.opt"
2062 i[34567]86-*-nto-qnx*)
2063 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
2064 extra_options="${extra_options} i386/nto.opt"
2068 i[34567]86-*-rtems*)
2069 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"
2070 tmake_file="${tmake_file} i386/t-rtems"
2072 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
2073 # Set default arch_32 to pentium4, tune_32 to generic like the other
2074 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
2075 with_arch_32=${with_arch_32:-pentium4}
2076 with_tune_32=${with_tune_32:-generic}
2077 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
2078 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2079 tmake_file="$tmake_file i386/t-sol2"
2081 if test x$with_cpu = x; then
2082 if test x$with_cpu_64 = x; then
2086 case " $x86_cpus $x86_archs $x86_64_archs " in
2090 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2091 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2097 i[4567]86-wrs-vxworks*|x86_64-wrs-vxworks7*)
2098 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
2102 tm_file="${tm_file} i386/x86-64.h"
2105 tm_file="${tm_file} vx-common.h"
2108 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2109 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2112 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2113 tmake_file="${tmake_file} i386/t-vxworks"
2117 i[34567]86-*-cygwin*)
2118 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"
2119 xm_file=i386/xm-cygwin.h
2120 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2121 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2122 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2123 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2124 c_target_objs="${c_target_objs} msformat-c.o"
2125 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2126 d_target_objs="${d_target_objs} winnt-d.o"
2127 target_has_targetdm="yes"
2128 if test x$enable_threads = xyes; then
2131 default_use_cxa_atexit=yes
2136 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"
2137 xm_file=i386/xm-cygwin.h
2138 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
2139 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2140 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2141 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2142 c_target_objs="${c_target_objs} msformat-c.o"
2143 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2144 d_target_objs="${d_target_objs} winnt-d.o"
2145 target_has_targetdm="yes"
2146 if test x$enable_threads = xyes; then
2149 default_use_cxa_atexit=yes
2151 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2153 i[34567]86-*-mingw* | x86_64-*-mingw*)
2154 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
2155 xm_file=i386/xm-mingw32.h
2156 c_target_objs="${c_target_objs} winnt-c.o"
2157 cxx_target_objs="${cxx_target_objs} winnt-c.o"
2158 d_target_objs="${d_target_objs} winnt-d.o"
2159 target_has_targetcm="yes"
2160 target_has_targetdm="yes"
2162 x86_64-*-* | *-w64-*)
2168 if test x$enable_threads = xposix ; then
2169 tm_file="${tm_file} i386/mingw-pthread.h"
2171 tm_file="${tm_file} i386/mingw32.h"
2172 # This makes the logic if mingw's or the w64 feature set has to be used
2175 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2176 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2177 tm_file="${tm_file} i386/mingw-w64.h"
2178 if test x$enable_targets = xall; then
2179 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2180 if test x$with_cpu = x; then
2181 if test x$with_cpu_64 = x; then
2185 case " $x86_cpus $x86_archs $x86_64_archs " in
2189 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2190 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2200 tm_file="${tm_file} i386/mingw-stdint.h"
2201 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2204 tmake_file="${tmake_file} i386/t-mingw-w64"
2207 tmake_file="${tmake_file} i386/t-mingw-w32"
2210 native_system_header_dir=/mingw/include
2211 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2212 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2215 extra_options="${extra_options} i386/mingw-w64.opt"
2220 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2221 c_target_objs="${c_target_objs} msformat-c.o"
2222 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2225 default_use_cxa_atexit=yes
2227 case ${enable_threads} in
2237 tm_file="${tm_file} i386/crtdll.h"
2239 *mingw32msv* | *mingw*)
2244 tmake_file="${tmake_file} i386/t-x86_64-elf"
2245 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2248 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2249 tmake_file="ia64/t-ia64"
2250 target_cpu_default="0"
2251 if test x$gas = xyes
2253 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2255 if test x$gnu_ld = xyes
2257 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2261 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2262 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2263 tmake_file="${tmake_file} ia64/t-ia64"
2266 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2267 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2268 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2271 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
2272 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2273 target_cpu_default="MASK_GNU_AS"
2274 case x$enable_threads in
2280 c_target_objs="ia64-c.o"
2281 cxx_target_objs="ia64-c.o"
2282 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2284 tm_file="${tm_file} hpux-stdint.h"
2287 tm_file="${tm_file} ia64/hpux-unix2003.h"
2292 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2293 tmake_file="${tmake_file} ia64/t-ia64"
2294 target_cpu_default="0"
2295 if test x$gas = xyes
2297 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2299 extra_options="${extra_options} ia64/vms.opt"
2302 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2303 out_file=iq2000/iq2000.c
2304 md_file=iq2000/iq2000.md
2307 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2308 tmake_file="${tmake_file} lm32/t-lm32"
2311 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2312 tmake_file="${tmake_file} lm32/t-lm32"
2313 tmake_file="${tmake_file} lm32/t-rtems"
2316 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2317 tmake_file="${tmake_file} lm32/t-lm32"
2320 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2323 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2326 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
2327 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2329 if test x$enable_threads = xyes; then
2334 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
2335 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
2337 if test x$enable_threads = xyes; then
2341 m68k-*-elf* | fido-*-elf*)
2344 # Check that $with_cpu makes sense.
2349 echo "Cannot accept --with-cpu=$with_cpu"
2356 default_m68k_cpu=68020
2360 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"
2361 tm_defines="${tm_defines} MOTOROLA=1"
2362 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2363 # Add multilibs for targets other than fido.
2368 tmake_file="$tmake_file m68k/t-mlibs"
2373 default_m68k_cpu=68020
2375 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2376 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2377 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2380 default_m68k_cpu=68020
2382 # needed to unconfuse gdb
2383 tm_defines="${tm_defines} OBSD_OLD_GAS"
2384 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
2385 extra_options="${extra_options} openbsd.opt"
2386 tmake_file="t-openbsd m68k/t-openbsd"
2387 # we need collect2 until our bug is fixed...
2390 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2391 # with uClibc, using the new GNU/Linux-style
2393 default_m68k_cpu=68020
2395 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"
2396 extra_options="${extra_options} m68k/uclinux.opt"
2397 tm_defines="${tm_defines} MOTOROLA=1"
2398 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2400 m68k-*-linux*) # Motorola m68k's running GNU/Linux
2401 # with ELF format using glibc 2
2402 # aka the GNU/Linux C library 6.
2403 default_m68k_cpu=68020
2405 with_arch=${with_arch:-m68k}
2406 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2407 extra_options="${extra_options} m68k/ieee.opt"
2408 tm_defines="${tm_defines} MOTOROLA=1"
2409 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2412 default_m68k_cpu=68020
2414 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2415 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"
2416 tm_defines="${tm_defines} MOTOROLA=1"
2419 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2420 tmake_file=mcore/t-mcore
2426 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2429 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2432 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2433 tm_file="${tm_file} glibc-stdint.h"
2434 c_target_objs="${c_target_objs} microblaze-c.o"
2435 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2436 tmake_file="${tmake_file} microblaze/t-microblaze"
2437 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2439 microblaze*-*-rtems*)
2442 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2445 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2448 tm_file="${tm_file} dbxelf.h"
2449 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2450 c_target_objs="${c_target_objs} microblaze-c.o"
2451 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2452 tmake_file="${tmake_file} microblaze/t-microblaze"
2453 tmake_file="${tmake_file} microblaze/t-rtems"
2458 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2461 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2464 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2465 c_target_objs="${c_target_objs} microblaze-c.o"
2466 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2467 tmake_file="${tmake_file} microblaze/t-microblaze"
2470 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2471 case "x${enable_multilib}" in
2473 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2474 *) echo "Unknown value for enable_multilib"; exit 1
2476 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2480 riscv32be-*|riscv64be-*)
2481 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2484 # Force .init_array support. The configure script cannot always
2485 # automatically detect that GAS supports it, yet we require it.
2486 gcc_cv_initfini_array=yes
2488 riscv*-*-elf* | riscv*-*-rtems*)
2489 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2492 tm_file="${tm_file} riscv/rtems.h rtems.h"
2493 tmake_file="${tmake_file} riscv/t-rtems"
2496 if test "x${with_multilib_generator}" == xdefault; then
2497 case "x${enable_multilib}" in
2499 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2500 *) echo "Unknown value for enable_multilib"; exit 1
2504 tmake_file="${tmake_file} riscv/t-riscv"
2508 riscv32be-*|riscv64be-*)
2509 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2512 # Force .init_array support. The configure script cannot always
2513 # automatically detect that GAS supports it, yet we require it.
2514 gcc_cv_initfini_array=yes
2517 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2518 tmake_file="${tmake_file} riscv/t-riscv"
2522 riscv32be-*|riscv64be-*)
2523 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2526 # Force .init_array support. The configure script cannot always
2527 # automatically detect that GAS supports it, yet we require it.
2528 gcc_cv_initfini_array=yes
2530 mips*-*-netbsd*) # NetBSD/mips, either endian.
2531 target_cpu_default="MASK_ABICALLS"
2532 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2533 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2536 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"
2537 extra_options="${extra_options} linux-android.opt"
2538 tmake_file="${tmake_file} mips/t-img-linux"
2539 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2540 with_arch_32="mips32r6"
2541 with_arch_64="mips64r6"
2546 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"
2547 extra_options="${extra_options} linux-android.opt"
2548 tmake_file="${tmake_file} mips/t-mti-linux"
2549 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2550 with_arch_32="mips32r2"
2551 with_arch_64="mips64r2"
2555 mips*-*-linux*) # Linux MIPS, either endian.
2556 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"
2557 extra_options="${extra_options} linux-android.opt"
2560 default_mips_arch=mips32r6
2563 default_mips_arch=mips32r2
2566 default_mips_arch=mips32
2568 mips64el-st-linux-gnu)
2569 default_mips_abi=n32
2570 tm_file="${tm_file} mips/st.h"
2571 tmake_file="${tmake_file} mips/t-st"
2572 enable_mips_multilibs="yes"
2574 mips64octeon*-*-linux*)
2575 default_mips_abi=n32
2576 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2577 target_cpu_default=MASK_SOFT_FLOAT_ABI
2578 enable_mips_multilibs="yes"
2580 mipsisa64r6*-*-linux*)
2581 default_mips_abi=n32
2582 default_mips_arch=mips64r6
2583 enable_mips_multilibs="yes"
2585 mipsisa64r2*-*-linux*)
2586 default_mips_abi=n32
2587 default_mips_arch=mips64r2
2588 enable_mips_multilibs="yes"
2590 mips64*-*-linux* | mipsisa64*-*-linux*)
2591 default_mips_abi=n32
2592 enable_mips_multilibs="yes"
2595 if test x$enable_targets = xall; then
2596 enable_mips_multilibs="yes"
2598 if test x$enable_mips_multilibs = xyes; then
2599 tmake_file="${tmake_file} mips/t-linux64"
2603 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2604 tmake_file="mips/t-mti-elf"
2605 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2606 with_arch_32="mips32r2"
2607 with_arch_64="mips64r2"
2610 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2611 tmake_file="mips/t-img-elf"
2612 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2613 with_arch_32="mips32r6"
2614 with_arch_64="mips64r6"
2617 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2618 tmake_file="mips/t-sde"
2619 extra_options="${extra_options} mips/sde.opt"
2620 case "${with_newlib}" in
2622 # newlib / libgloss.
2625 # MIPS toolkit libraries.
2626 tm_file="$tm_file mips/sdemtk.h"
2627 tmake_file="$tmake_file mips/t-sdemtk"
2628 case ${enable_threads} in
2630 thread_file='mipssde'
2637 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2640 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2643 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2646 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2649 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2652 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2656 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2657 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2658 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2659 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2660 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2661 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2662 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2663 tmake_file="mips/t-isa3264"
2666 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2669 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2672 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2675 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2678 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2681 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2685 mipsisa32*-*-elfoabi*)
2686 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2687 tm_file="${tm_file} mips/elfoabi.h"
2689 mipsisa64*-*-elfoabi*)
2690 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2691 tm_file="${tm_file} mips/elfoabi.h"
2694 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2698 mipsisa64sr71k-*-elf*)
2699 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2700 tmake_file=mips/t-sr71k
2701 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2703 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2704 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2705 tmake_file="mips/t-elf mips/t-sb1"
2706 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2708 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2709 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2710 tmake_file="mips/t-elf"
2712 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2713 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2714 tmake_file="mips/t-elf"
2715 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2717 mips64-*-elf* | mips64el-*-elf*)
2718 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2719 tmake_file="mips/t-elf"
2720 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2722 mips64vr-*-elf* | mips64vrel-*-elf*)
2723 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2724 tmake_file=mips/t-vr
2725 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2727 mips64orion-*-elf* | mips64orionel-*-elf*)
2728 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2729 tmake_file="mips/t-elf"
2730 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2733 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2734 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2737 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2738 tmake_file="${tmake_file} mips/t-vxworks"
2740 mipstx39-*-elf* | mipstx39el-*-elf*)
2741 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2742 tmake_file="mips/t-r3900"
2744 mmix-knuth-mmixware)
2745 tm_file="${tm_file} newlib-stdint.h"
2749 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2750 if test x$stabs = xyes
2752 tm_file="${tm_file} dbx.h"
2758 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2759 c_target_objs="msp430-c.o"
2760 cxx_target_objs="msp430-c.o"
2761 tmake_file="${tmake_file} msp430/t-msp430"
2762 extra_objs="${extra_objs} msp430-devices.o"
2763 extra_gcc_objs="driver-msp430.o msp430-devices.o"
2764 # Enable .init_array unless it has been explicitly disabled.
2765 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2766 # code since mid-2019 expects it.
2767 if test x${disable_initfini_array} != xyes; then
2768 gcc_cv_initfini_array=yes
2772 # __cxa_atexit increases code size, and we don't need to support
2773 # dynamic shared objects on MSP430, so regular Newlib atexit is a
2774 # fine replacement as it also supports registration of more than 32
2776 default_use_cxa_atexit=no
2777 # This target does not match the generic *-*-elf case above which
2778 # sets use_gcc_stdint=wrap, so explicitly set it here.
2784 target_cpu_default="0"
2785 tm_defines="${tm_defines}"
2790 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2791 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2796 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2797 tmake_file="nds32/t-nds32 nds32/t-elf"
2800 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2801 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2802 gcc_cv_initfini_array=yes
2806 # Handle --enable-default-relax setting.
2807 if test x${enable_default_relax} = xyes; then
2808 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2810 # Handle --with-ext-dsp
2811 if test x${with_ext_dsp} = xyes; then
2812 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2816 tm_file="elfos.h ${tm_file}"
2817 tmake_file="${tmake_file} nios2/t-nios2"
2820 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2823 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2824 extra_options="${extra_options} nios2/elf.opt"
2827 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2828 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2833 tm_file="${tm_file} newlib-stdint.h"
2835 tmake_file="nvptx/t-nvptx"
2836 if test x$enable_as_accelerator = xyes; then
2837 extra_programs="${extra_programs} mkoffload\$(exeext)"
2838 tm_file="${tm_file} nvptx/offload.h"
2842 tm_file="elfos.h ${tm_file}"
2843 tmake_file="${tmake_file} or1k/t-or1k"
2844 # Force .init_array support. The configure script cannot always
2845 # automatically detect that GAS supports it, yet we require it.
2846 gcc_cv_initfini_array=yes
2848 # Handle --with-multilib-list=...
2849 or1k_multilibs="${with_multilib_list}"
2850 if test "$or1k_multilibs" = "default"; then
2851 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2853 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2854 for or1k_multilib in ${or1k_multilibs}; do
2855 case ${or1k_multilib} in
2856 mcmov | msext | msfimm | \
2858 mhard-float | mdouble-float | munordered-float | msoft-float | \
2859 mhard-div | mhard-mul | \
2860 msoft-div | msoft-mul )
2861 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2864 echo "--with-multilib-list=${with_multilib_list} not supported."
2868 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2872 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2873 tm_file="${tm_file} or1k/linux.h"
2876 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2877 extra_options="${extra_options} or1k/elf.opt"
2880 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2881 tmake_file="${tmake_file} or1k/t-rtems"
2886 tm_file="${tm_file} newlib-stdint.h"
2889 # port not yet contributed
2890 #powerpc-*-openbsd*)
2891 # tmake_file="${tmake_file} rs6000/t-fprules"
2895 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2897 *-darwin1[0-9]* | *-darwin9*)
2898 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2899 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2902 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2903 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2906 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2909 # Earlier - ingle arch, with 32b only
2910 # OS X 10.0, the first edition is Darwin4
2913 tmake_file="${tmake_file} t-slibgcc"
2915 powerpc64-*-darwin*)
2916 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2917 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2918 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2920 powerpc*-*-freebsd*)
2921 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2922 extra_options="${extra_options} rs6000/sysv4.opt"
2923 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2926 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2930 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2931 tmake_file="${tmake_file} rs6000/t-freebsd64"
2932 extra_options="${extra_options} rs6000/linux64.opt"
2933 if test $fbsd_major -ge 13; then
2934 tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2938 if test $fbsd_major -ge 13; then
2939 tm_file="rs6000/secureplt.h ${tm_file}"
2941 tm_file="${tm_file} rs6000/freebsd.h"
2946 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2947 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2948 tmake_file="${tmake_file} rs6000/t-netbsd"
2949 extra_options="${extra_options} rs6000/sysv4.opt"
2951 powerpc-*-eabisimaltivec*)
2952 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"
2953 extra_options="${extra_options} rs6000/sysv4.opt"
2954 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2958 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"
2959 extra_options="${extra_options} rs6000/sysv4.opt"
2960 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2964 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2965 extra_options="${extra_options} rs6000/sysv4.opt"
2966 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2968 powerpc-*-eabialtivec*)
2969 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"
2970 extra_options="${extra_options} rs6000/sysv4.opt"
2971 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2975 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"
2976 extra_options="${extra_options} rs6000/sysv4.opt"
2977 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2981 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"
2982 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2983 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2986 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2987 extra_options="${extra_options} rs6000/sysv4.opt"
2988 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2989 extra_objs="$extra_objs rs6000-linux.o"
2992 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2994 case ${target}:${with_cpu} in
2995 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2997 maybe_biarch=${cpu_is_64bit}
2998 case ${enable_targets} in
2999 *powerpc64*) maybe_biarch=yes ;;
3000 all) maybe_biarch=yes ;;
3002 case ${target}:${enable_targets}:${maybe_biarch} in
3003 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
3004 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
3005 | powerpcle-*:*powerpc64le*:yes)
3006 if test x$cpu_is_64bit = xyes; then
3007 tm_file="${tm_file} rs6000/default64.h"
3009 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
3010 tmake_file="$tmake_file rs6000/t-linux64"
3013 tmake_file="$tmake_file rs6000/t-linux64le"
3014 case ${enable_targets} in
3015 all | *powerpc64-* | *powerpc-*)
3016 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
3019 case ${enable_targets} in
3020 all | *powerpc64le-* | *powerpcle-*)
3021 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
3024 extra_options="${extra_options} rs6000/linux64.opt"
3027 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
3028 extra_options="${extra_options} rs6000/linux64.opt"
3029 tmake_file="${tmake_file} rs6000/t-linux"
3032 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
3033 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
3037 powerpc*-*-linux*ppc476*)
3038 tm_file="${tm_file} rs6000/476.h"
3039 extra_options="${extra_options} rs6000/476.opt" ;;
3040 powerpc*-*-linux*altivec*)
3041 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
3045 enable_secureplt=yes ;;
3047 if test x${enable_secureplt} = xyes; then
3048 tm_file="rs6000/secureplt.h ${tm_file}"
3051 powerpc*-wrs-vxworks7r*)
3053 # Wind River 7 post SR0600 is mostly like Linux so we setup
3054 # our config in a very similar fashion and adjust to a few
3057 # The system compiler is configured with secureplt by default.
3058 tm_file="${tm_file} rs6000/secureplt.h"
3060 tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h"
3061 tm_file="${tm_file} rs6000/sysv4.h rs6000/biarch64.h rs6000/default64.h rs6000/linux64.h"
3062 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3064 extra_options="${extra_options} rs6000/sysv4.opt linux.opt rs6000/linux64.opt"
3066 tmake_file="${tmake_file} t-linux rs6000/t-linux64 rs6000/t-fprules rs6000/t-ppccomm"
3067 tmake_file="${tmake_file} rs6000/t-vxworks"
3069 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
3070 extra_objs="$extra_objs linux.o rs6000-linux.o"
3072 powerpc-wrs-vxworks*)
3073 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
3074 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
3075 extra_options="${extra_options} rs6000/sysv4.opt"
3076 extra_headers="${extra_headers} ppc-asm.h"
3079 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
3080 tmake_file="${tmake_file} rs6000/t-vxworksmils"
3083 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
3084 tmake_file="${tmake_file} rs6000/t-vxworksae"
3087 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3093 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3094 tmake_file="t-lynx rs6000/t-lynx"
3095 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3101 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"
3102 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3103 extra_options="${extra_options} rs6000/sysv4.opt"
3105 powerpcle-*-eabisim*)
3106 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"
3107 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3108 extra_options="${extra_options} rs6000/sysv4.opt"
3112 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"
3113 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3114 extra_options="${extra_options} rs6000/sysv4.opt"
3118 tm_file="elfos.h newlib-stdint.h ${tm_file}"
3119 tmake_file="${tmake_file} pru/t-pru"
3120 extra_objs="pru-pragma.o pru-passes.o"
3123 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
3124 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
3125 tmake_file="rs6000/t-aix52 t-slibgcc"
3126 extra_options="${extra_options} rs6000/aix64.opt"
3130 default_use_cxa_atexit=yes
3132 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3133 tmake_file="rs6000/t-aix52 t-slibgcc"
3134 if test x$cpu_is_64bit = xyes; then
3135 tm_file="${tm_file} rs6000/biarch64.h"
3136 tmake_file="rs6000/t-aix64 t-slibgcc"
3138 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3139 extra_options="${extra_options} rs6000/aix64.opt"
3143 default_use_cxa_atexit=yes
3145 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3146 tmake_file="rs6000/t-aix52 t-slibgcc"
3147 if test x$cpu_is_64bit = xyes; then
3148 tm_file="${tm_file} rs6000/biarch64.h"
3149 tmake_file="rs6000/t-aix64 t-slibgcc"
3151 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3152 extra_options="${extra_options} rs6000/aix64.opt"
3156 default_use_cxa_atexit=yes
3159 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3160 target_has_targetm_common=no
3161 c_target_objs="rl78-c.o"
3162 cxx_target_objs="rl78-c.o"
3163 tmake_file="${tmake_file} rl78/t-rl78"
3166 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3167 tmake_file="${tmake_file} rx/t-rx"
3168 extra_options="${extra_options} rx/elf.opt"
3171 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3172 tmake_file="${tmake_file} rx/t-linux"
3175 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3176 c_target_objs="${c_target_objs} s390-c.o"
3177 cxx_target_objs="${cxx_target_objs} s390-c.o"
3178 if test x$enable_targets = xall; then
3179 tmake_file="${tmake_file} s390/t-linux64"
3181 tmake_file="${tmake_file} s390/t-s390"
3184 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3185 tm_p_file="linux-protos.h s390/s390-protos.h"
3186 c_target_objs="${c_target_objs} s390-c.o"
3187 cxx_target_objs="${cxx_target_objs} s390-c.o"
3188 md_file=s390/s390.md
3189 extra_modes=s390/s390-modes.def
3190 out_file=s390/s390.c
3191 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3194 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h glibc-stdint.h s390/tpf.h"
3195 tm_p_file=s390/s390-protos.h
3196 c_target_objs="${c_target_objs} s390-c.o"
3197 cxx_target_objs="${cxx_target_objs} s390-c.o"
3198 md_file=s390/s390.md
3199 extra_modes=s390/s390-modes.def
3200 out_file=s390/s390.c
3202 extra_options="${extra_options} s390/tpf.opt"
3203 tmake_file="${tmake_file} s390/t-s390"
3205 sh-*-elf* | sh[12346l]*-*-elf* | \
3206 sh-*-linux* | sh[2346lbe]*-*-linux* | \
3207 sh-*-netbsdelf* | shl*-*-netbsdelf*)
3208 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3209 if test x${with_endian} = x; then
3211 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3212 shbe-*-* | sheb-*-*) with_endian=big,little ;;
3213 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
3214 shl* | sh*-*-linux* | \
3215 sh-superh-elf) with_endian=little,big ;;
3216 sh[1234]*-*-*) with_endian=big ;;
3217 *) with_endian=big,little ;;
3220 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3221 # First word : the default endian.
3222 # Second word: the secondary endian (optional).
3223 case ${with_endian} in
3224 big) TM_ENDIAN_CONFIG=mb ;;
3225 little) TM_ENDIAN_CONFIG=ml ;;
3226 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
3227 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
3228 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
3230 case ${with_endian} in
3231 little*) tm_file="sh/little.h ${tm_file}" ;;
3233 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
3235 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
3236 if test x$enable_fdpic = xyes; then
3237 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3239 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3241 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3242 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3245 sh*-superh-elf) if test x$with_libgloss != xno; then
3247 tm_file="${tm_file} sh/newlib.h"
3249 tm_file="${tm_file} sh/embed-elf.h"
3250 tm_file="${tm_file} sh/superh.h"
3251 extra_options="${extra_options} sh/superh.opt" ;;
3252 *) if test x$with_newlib = xyes \
3253 && test x$with_libgloss = xyes; then
3254 tm_file="${tm_file} sh/newlib.h"
3256 tm_file="${tm_file} sh/embed-elf.h" ;;
3262 tm_file="${tm_file} newlib-stdint.h"
3265 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3266 case `echo ${target} | sed 's/e[lb]-/-/'` in
3267 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
3268 sh4a_single*) sh_cpu_target=sh4a-single ;;
3269 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
3270 sh4al) sh_cpu_target=sh4al ;;
3271 sh4a*) sh_cpu_target=sh4a ;;
3272 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
3273 sh4_single*) sh_cpu_target=sh4-single ;;
3274 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
3275 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
3276 sh3e*) sh_cpu_target=sh3e ;;
3277 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
3278 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
3279 sh2a_single*) sh_cpu_target=sh2a-single ;;
3280 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
3281 sh2a*) sh_cpu_target=sh2a ;;
3282 sh2e*) sh_cpu_target=sh2e ;;
3283 sh2*) sh_cpu_target=sh2 ;;
3284 *) sh_cpu_target=sh1 ;;
3286 # did the user say --without-fp ?
3287 if test x$with_fp = xno; then
3288 case ${sh_cpu_target} in
3290 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3291 sh4*) sh_cpu_target=sh4-nofpu ;;
3292 sh3*) sh_cpu_target=sh3 ;;
3293 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3294 sh2*) sh_cpu_target=sh2 ;;
3295 *) echo --without-fp not available for $target: ignored
3297 tm_defines="$tm_defines STRICT_NOFPU=1"
3299 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3300 case $sh_cpu_default in
3301 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3302 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3303 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3304 sh3e | sh3 | sh2e | sh2 | sh1) ;;
3305 "") sh_cpu_default=${sh_cpu_target} ;;
3306 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3308 sh_multilibs=${with_multilib_list}
3309 if test "$sh_multilibs" = "default" ; then
3311 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
3312 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3313 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3314 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
3315 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3317 if test x$with_fp = xno; then
3318 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`"
3321 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3322 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3323 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3324 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3325 for sh_multilib in ${sh_multilibs}; do
3326 case ${sh_multilib} in
3327 m1 | m2 | m2e | m3 | m3e | \
3328 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3329 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3330 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3331 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3332 # It is passed to MULTIILIB_OPTIONS verbatim.
3333 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3334 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3336 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3337 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3338 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3340 echo "with_multilib_list=${sh_multilib} not supported."
3345 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3346 if test x${enable_incomplete_targets} = xyes ; then
3347 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3349 tm_file="$tm_file ./sysroot-suffix.h"
3350 tmake_file="$tmake_file t-sysroot-suffix"
3353 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3354 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3357 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3358 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3361 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3364 tmake_file="sparc/t-sparc sparc/t-leon"
3367 tmake_file="sparc/t-sparc sparc/t-leon3"
3370 tmake_file="sparc/t-sparc sparc/t-elf"
3375 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3376 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3379 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3380 extra_options="${extra_options} sparc/long-double-switch.opt"
3383 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3386 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3389 tmake_file="${tmake_file} sparc/t-sparc"
3392 if test x$enable_targets = xall; then
3393 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3394 tmake_file="${tmake_file} sparc/t-linux64"
3396 tm_file="${tm_file} sparc/linux.h"
3397 tmake_file="${tmake_file} sparc/t-linux"
3401 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3402 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3403 extra_options="${extra_options} sparc/long-double-switch.opt"
3404 tmake_file="${tmake_file} sparc/t-sparc"
3407 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3409 sparc64-*-* | sparcv9-*-*)
3410 tm_file="sparc/default64.h ${tm_file}"
3413 test x$with_cpu != x || with_cpu=v9
3416 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3419 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3420 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3423 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3424 extra_options="${extra_options}"
3425 tmake_file="${tmake_file} sparc/t-sparc"
3428 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3429 extra_options="${extra_options}"
3430 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3433 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"
3434 extra_options="${extra_options} sparc/long-double-switch.opt"
3435 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3437 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3438 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3439 extra_options="${extra_options} sparc/long-double-switch.opt"
3440 case "x$with_cpu" in
3442 x) with_cpu=ultrasparc ;;
3443 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3445 tmake_file="${tmake_file} sparc/t-sparc"
3448 tm_file="sparc/biarch64.h ${tm_file}"
3449 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3450 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3451 extra_options="${extra_options} sparc/long-double-switch.opt"
3452 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3455 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3456 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3457 extra_options="${extra_options} openbsd.opt"
3458 extra_options="${extra_options}"
3461 tmake_file="${tmake_file} sparc/t-sparc"
3464 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3465 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3466 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3470 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3471 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3472 tm_file="${tm_file} ./sysroot-suffix.h"
3473 tmake_file="t-sysroot-suffix t-slibgcc"
3474 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3478 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3479 tmake_file="${tmake_file} tilegx/t-tilegx"
3480 extra_objs="${extra_objs} mul-tables.o"
3481 c_target_objs="${c_target_objs} tilegx-c.o"
3482 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3483 extra_headers="feedback.h"
3486 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3491 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3492 tmake_file="${tmake_file} tilepro/t-tilepro"
3493 extra_objs="${extra_objs} mul-tables.o"
3494 c_target_objs="${c_target_objs} tilepro-c.o"
3495 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3496 extra_headers="feedback.h"
3499 target_cpu_default="TARGET_CPU_generic"
3500 tm_file="dbxelf.h elfos.h v850/v850.h"
3501 tm_file="${tm_file} v850/rtems.h rtems.h newlib-stdint.h"
3502 tmake_file="${tmake_file} v850/t-v850"
3503 tmake_file="${tmake_file} v850/t-rtems"
3505 c_target_objs="v850-c.o"
3506 cxx_target_objs="v850-c.o"
3511 target_cpu_default="TARGET_CPU_v850e3v5"
3514 target_cpu_default="TARGET_CPU_v850e2v3"
3517 target_cpu_default="TARGET_CPU_v850e2"
3519 v850e1-*-* | v850es-*-*)
3520 target_cpu_default="TARGET_CPU_v850e1"
3523 target_cpu_default="TARGET_CPU_v850e"
3526 target_cpu_default="TARGET_CPU_generic"
3529 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3530 if test x$stabs = xyes
3532 tm_file="${tm_file} dbx.h"
3535 c_target_objs="v850-c.o"
3536 cxx_target_objs="v850-c.o"
3540 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3541 extra_options="${extra_options} vax/elf.opt"
3544 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3545 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3546 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3549 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3550 extra_options="${extra_options} openbsd.opt"
3554 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3555 tmake_file="visium/t-visium visium/t-crtstuff"
3558 # For historical reasons, the target files omit the 'x'.
3559 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3560 tm_p_file=stormy16/stormy16-protos.h
3561 tm_d_file="elfos.h stormy16/stormy16.h"
3562 md_file=stormy16/stormy16.md
3563 out_file=stormy16/stormy16.c
3564 extra_options=stormy16/stormy16.opt
3565 tmake_file="stormy16/t-stormy16"
3568 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3569 extra_options="${extra_options} xtensa/elf.opt"
3572 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3573 tmake_file="${tmake_file} xtensa/t-xtensa"
3576 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3577 tmake_file="${tmake_file} xtensa/t-xtensa"
3578 extra_options="${extra_options} xtensa/uclinux.opt"
3581 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3586 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3587 c_target_objs="m32c-pragma.o"
3588 cxx_target_objs="m32c-pragma.o"
3591 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3592 c_target_objs="m32c-pragma.o"
3593 cxx_target_objs="m32c-pragma.o"
3596 echo "*** Configuration ${target} not supported" 1>&2
3602 i[34567]86-*-linux* | x86_64-*-linux*)
3603 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3605 i[34567]86-*-* | x86_64-*-*)
3606 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3608 powerpc*-*-* | rs6000-*-*)
3609 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3615 tmake_file="${tmake_file} t-musl"
3618 tmake_file="${tmake_file} t-uclibc"
3622 # Assume the existence of indirect function support and allow the use of the
3623 # resolver attribute.
3625 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3627 *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
3629 *-*-linux* | *-*-gnu*)
3631 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3632 default_gnu_indirect_function=yes
3638 # Build mkoffload tool
3640 *-intelmic-* | *-intelmicemul-*)
3641 tmake_file="${tmake_file} i386/t-intelmic"
3642 tm_file="${tm_file} i386/intelmic-offload.h"
3646 if [ "$target_has_targetcm" = "no" ]; then
3647 c_target_objs="$c_target_objs default-c.o"
3648 cxx_target_objs="$cxx_target_objs default-c.o"
3651 if [ "$common_out_file" = "" ]; then
3652 if [ "$target_has_targetm_common" = "yes" ]; then
3653 common_out_file="$cpu_type/$cpu_type-common.c"
3655 common_out_file="default-common.c"
3659 if [ "$target_has_targetdm" = "no" ]; then
3660 d_target_objs="$d_target_objs default-d.o"
3663 # Support for --with-cpu and related options (and a few unrelated options,
3667 echo "--with-cpu must be passed a value" 1>&2
3672 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3673 # to generic if there is no processor scheduler model for the target.
3676 arch_without_sse2=no
3677 arch_without_64bit=no
3680 if test $fbsd_major -ge 6; then
3686 arch_without_sse2=yes
3687 arch_without_64bit=yes
3692 arch_without_sse2=yes
3693 arch_without_64bit=yes
3698 arch_without_sse2=yes
3699 arch_without_64bit=yes
3704 arch_without_sse2=yes
3705 arch_without_64bit=yes
3708 arch_without_sse2=yes
3709 arch_without_64bit=yes
3710 case ${target_noncanonical} in
3723 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3733 i686-*-* | i786-*-*)
3734 case ${target_noncanonical} in
3771 amdfam10-*|barcelona-*)
3775 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3779 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3783 athlon_xp-*|athlon_mp-*|athlon_4-*)
3786 arch_without_sse2=yes
3787 arch_without_64bit=yes
3789 athlon_tbird-*|athlon-*)
3792 arch_without_sse2=yes
3797 arch_without_sse2=yes
3802 arch_without_sse2=yes
3804 pentium3-*|pentium3m-*)
3807 arch_without_sse2=yes
3809 pentium4-*|pentium4m-*)
3848 arch_without_sse2=yes
3853 arch_without_sse2=yes
3854 arch_without_64bit=yes
3859 case ${target_noncanonical} in
3896 amdfam10-*|barcelona-*)
3900 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3904 k8-*|opteron-*|athlon_64-*)
3936 # If there is no $with_cpu option, try to infer one from ${target}.
3937 # This block sets nothing except for with_cpu.
3938 if test x$with_cpu = x ; then
3940 i[34567]86-*-elfiamcu)
3943 i[34567]86-*-*|x86_64-*-*)
3961 frv-*-*linux* | frv400-*-*linux*)
3968 case "$with_arch" in
3970 with_cpu=${default_cf_cpu}
3973 with_cpu=m${default_m68k_cpu}
3989 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3998 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
4000 i[34567]86-*-*|x86_64-*-*)
4001 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
4002 if test x$with_cpu_32 = x; then
4003 with_cpu_32=$with_cpu
4005 if test x$with_cpu_64 = x; then
4006 with_cpu_64=$with_cpu
4014 # Support for --with-arch and related options (and a few unrelated options,
4016 case ${with_arch} in
4018 echo "--with-arch must be passed a value" 1>&2
4023 # If there is no $with_arch option, try to infer one from ${target}.
4024 # This block sets nothing except for with_arch.
4025 if test x$with_arch = x ; then
4027 i[34567]86-*-darwin*|x86_64-*-darwin*)
4028 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4029 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4031 i[34567]86-*-elfiamcu)
4035 # --with-fpmath sets the default ISA to SSE2, which is the same
4036 # ISA supported by Pentium 4.
4037 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
4046 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4054 # Avoid overriding --with-arch-32 and --with-arch-64 values.
4056 i[34567]86-*-darwin*|x86_64-*-darwin*)
4057 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4058 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4060 i[34567]86-*-*|x86_64-*-*)
4061 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
4062 if test x$with_arch_32 = x; then
4063 with_arch_32=$with_arch
4065 if test x$with_arch_64 = x; then
4066 if test $arch_without_64bit = yes; then
4067 # Set the default 64bit arch to x86-64 if the default arch
4068 # doesn't support 64bit.
4071 with_arch_64=$with_arch
4075 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
4076 # Set the default 64bit arch to x86-64 if the default arch
4077 # doesn't support 64bit and we need 64bit ISA.
4078 with_arch_32=$with_arch
4086 # Infer a default setting for --with-float.
4087 if test x$with_float = x; then
4089 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4090 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
4091 # comply with IEEE 754.
4097 # Infer a default setting for --with-fpu.
4098 if test x$with_fpu = x; then
4100 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4101 # The R5900 FPU only supports single precision.
4107 # Support --with-fpmath.
4108 if test x$with_fpmath != x; then
4110 i[34567]86-*-* | x86_64-*-*)
4111 case ${with_fpmath} in
4113 tm_file="${tm_file} i386/avxmath.h"
4116 tm_file="${tm_file} i386/ssemath.h"
4119 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4125 echo "--with-fpmath isn't supported for $target." 1>&2
4131 # Similarly for --with-schedule.
4132 if test x$with_schedule = x; then
4135 # Override default PA8000 scheduling model.
4136 with_schedule=7100LC
4141 # Infer a default setting for --with-llsc.
4142 if test x$with_llsc = x; then
4145 # The kernel emulates LL and SC where necessary.
4148 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4149 # The R5900 doesn't support LL(D) and SC(D).
4155 # Validate and mark as valid any --with options supported
4156 # by this target. In order to use a particular --with option
4157 # you must list it in supported_defaults; validating the value
4158 # is optional. This case statement should set nothing besides
4159 # supported_defaults.
4164 supported_defaults="abi cpu cpu_64 arch arch_64 tune tune_64"
4165 if test x$with_cpu_64 != x && test x$with_cpu = x; then
4166 with_cpu=$with_cpu_64
4168 if test x$with_arch_64 != x && test x$with_arch = x; then
4169 with_arch=$with_arch_64
4171 if test x$with_tune_64 != x && test x$with_tune = x; then
4172 with_tune=$with_tune_64
4174 for which in cpu arch tune; do
4175 eval "val=\$with_$which"
4176 base_val=`echo $val | sed -e 's/\+.*//'`
4177 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4179 if [ $which = arch ]; then
4180 def=aarch64-arches.def
4181 pattern=AARCH64_ARCH
4183 def=aarch64-cores.def
4184 pattern=AARCH64_CORE
4187 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
4189 # Find the base CPU or ARCH id in aarch64-cores.def or
4190 # aarch64-arches.def
4191 if [ x"$base_val" = x ] \
4192 || grep "^$pattern(\"$base_val\"," \
4193 ${srcdir}/config/aarch64/$def \
4196 if [ $which = arch ]; then
4197 base_id=`grep "^$pattern(\"$base_val\"," \
4198 ${srcdir}/config/aarch64/$def | \
4199 sed -e 's/^[^,]*,[ ]*//' | \
4201 # Extract the architecture flags from aarch64-arches.def
4202 ext_mask=`grep "^$pattern(\"$base_val\"," \
4203 ${srcdir}/config/aarch64/$def | \
4207 base_id=`grep "^$pattern(\"$base_val\"," \
4208 ${srcdir}/config/aarch64/$def | \
4209 sed -e 's/^[^,]*,[ ]*//' | \
4213 # Disallow extensions in --with-tune=cortex-a53+crc.
4214 if [ $which = tune ] && [ x"$ext_val" != x ]; then
4215 echo "Architecture extensions not supported in --with-$which=$val" 1>&2
4219 # Use the pre-processor to strip flatten the options.
4220 # This makes the format less rigid than if we use
4221 # grep and sed directly here.
4222 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4223 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4224 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4226 # Match one element inside AARCH64_OPT_EXTENSION, we
4227 # consume anything that's not a ,.
4228 elem="[ ]*\([^,]\+\)[ ]*"
4230 # Repeat the pattern for the number of entries in the
4231 # AARCH64_OPT_EXTENSION, currently 6 times.
4232 sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
4234 while [ x"$ext_val" != x ]
4236 ext_val=`echo $ext_val | sed -e 's/\+//'`
4237 ext=`echo $ext_val | sed -e 's/\+.*//'`
4238 base_ext=`echo $ext | sed -e 's/^no//'`
4239 opt_line=`echo -e "$options_parsed" | \
4240 grep "^\"$base_ext\""`
4242 if [ x"$base_ext" = x ] \
4243 || [[ -n $opt_line ]]; then
4245 # These regexp extract the elements based on
4246 # their group match index in the regexp.
4247 ext_canon=`echo -e "$opt_line" | \
4248 sed -e "s/$sed_patt/\2/"`
4249 ext_on=`echo -e "$opt_line" | \
4250 sed -e "s/$sed_patt/\3/"`
4251 ext_off=`echo -e "$opt_line" | \
4252 sed -e "s/$sed_patt/\4/"`
4254 if [ $ext = $base_ext ]; then
4256 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
4258 # Removing extension
4259 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
4264 echo "Unknown extension used in --with-$which=$val" 1>&2
4267 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4270 ext_mask="(("$ext_mask") << 6)"
4271 if [ x"$base_id" != x ]; then
4272 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
4276 # Allow --with-$which=native.
4277 if [ "$val" = native ]; then
4280 echo "Unknown $which used in --with-$which=$val" 1>&2
4288 supported_defaults="cpu tune"
4289 for which in cpu tune; do
4290 eval "val=\$with_$which"
4293 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4294 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4298 echo "Unknown CPU used in --with-$which=$val" 1>&2
4306 supported_defaults="cpu"
4308 if [ x"$with_cpu" = x ] \
4309 || grep "^ARC_CPU ($with_cpu," \
4310 ${srcdir}/config/arc/arc-cpus.def \
4315 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4321 supported_defaults="cpu endian float"
4325 supported_defaults="arch cpu float tune fpu abi mode tls"
4326 for which in cpu tune arch; do
4327 # See if it matches a supported value
4328 eval "val=\$with_$which"
4329 if [ x"$val" != x ]; then
4330 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4331 -v cmd="chk$which $val" \
4332 ${srcdir}/config/arm/arm-cpus.in`
4333 if [ "$cpu" = "error" ]; then
4334 echo "Unknown target in --with-$which=$val" 1>&2
4338 eval "target_${which}_cname=$new_val"
4339 echo "For $val real value is $new_val"
4344 case "$with_float" in
4346 | soft | hard | softfp)
4350 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4355 # see if --with-fpu matches any of the supported FPUs
4356 if [ x"$with_fpu" != x ] ; then
4358 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4359 -v cmd="chkfpu $val" \
4360 ${srcdir}/config/arm/arm-cpus.in`
4361 if [ "$fpu" = "error" ]
4363 echo "Unknown target in --with-fpu=$val" 1>&2
4370 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4374 echo "Unknown ABI used in --with-abi=$with_abi"
4379 case "$with_mode" in
4385 echo "Unknown mode used in --with-mode=$with_mode"
4396 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4401 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4402 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4406 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4407 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4411 # Add extra multilibs
4412 if test "x$with_multilib_list" != x; then
4414 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4415 if test "x${arm_multilibs}" != xdefault ; then
4416 for arm_multilib in ${arm_multilibs}; do
4417 case ${arm_multilib} in
4419 tmake_profile_file="arm/t-multilib"
4422 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4423 if test -f "${srcdir}/config/arm/${ml}"; then
4424 tmake_file="${tmake_file} arm/${ml}"
4426 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4431 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4438 if test "x${tmake_profile_file}" != x ; then
4439 # arm/t-aprofile and arm/t-rmprofile are only
4440 # designed to work without any with-cpu,
4441 # with-arch, with-mode, with-fpu or with-float
4443 if test "x$with_arch" != x \
4444 || test "x$with_cpu" != x \
4445 || test "x$with_float" != x \
4446 || test "x$with_fpu" != x \
4447 || test "x$with_mode" != x ; then
4448 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4450 elif test "x$ml" != x ; then
4451 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4454 # But pass the default value for float-abi
4455 # through to the multilib selector
4457 tmake_file="${tmake_file} ${tmake_profile_file}"
4458 TM_MULTILIB_CONFIG="$with_multilib_list"
4461 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4462 with_cpu=${with_cpu:-$target_cpu_cname}
4466 supported_defaults=cpu
4471 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4477 fido-*-* | m68k*-*-*)
4478 supported_defaults="arch cpu"
4479 case "$with_arch" in
4481 m68k_arch_family="$with_arch"
4484 echo "Invalid --with-arch=$with_arch" 1>&2
4489 # We always have a $with_cpu setting here.
4491 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4492 m68k_cpu_ident=$with_cpu
4495 m68k_cpu_ident=m68020
4496 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4499 m68k_cpu_ident=m68020
4500 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4503 # We need the C identifier rather than the string.
4504 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4505 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4506 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4507 ${srcdir}/config/m68k/m68k-devices.def`
4508 if [ x"$m68k_cpu_ident" = x ] ; then
4509 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4512 with_cpu="mcpu=$with_cpu"
4518 supported_defaults="arch tune"
4520 for which in arch tune; do
4521 eval "val=\$with_$which"
4523 "" | fiji | gfx900 | gfx906 )
4527 echo "Unknown cpu used in --with-$which=$val." 1>&2
4532 [ "x$with_arch" = x ] && with_arch=fiji
4536 supported_defaults="arch schedule"
4538 case "$with_arch" in
4539 "" | 1.0 | 1.1 | 2.0)
4543 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4548 case "$with_schedule" in
4549 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4553 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4559 i[34567]86-*-* | x86_64-*-*)
4560 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4561 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4562 eval "val=\$with_$which"
4563 case " $x86_archs " in
4571 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4580 if test x${val} != x; then
4581 case " $x86_64_archs " in
4583 # Disallow x86-64-v* for --with-cpu=/--with-tune=
4584 case "x$which$val" in
4585 xcpu*x86-64-v*|xtune*x86-64-v*)
4586 echo "Unknown CPU given in --with-$which=$val." 1>&2
4595 # Allow $x86_cpus --with-cpu=/--with-tune=
4598 case " $x86_cpus " in
4603 echo "Unknown CPU given in --with-$which=$val." 1>&2
4609 echo "Unknown CPU given in --with-$which=$val." 1>&2
4622 supported_defaults="abi arch tune riscv_attribute isa_spec"
4625 riscv-* | riscv32*) xlen=32 ;;
4626 riscv64*) xlen=64 ;;
4627 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4630 case "${with_isa_spec}" in
4632 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_2P2"
4635 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20191213"
4638 tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20190608"
4641 echo "--with-isa-spec only accept 2.2, 20191213, 201912, 20190608 or 201906" 1>&2
4645 case "${with_riscv_attribute}" in
4647 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4650 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4655 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4658 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4663 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4669 # Infer arch from --with-arch, --target, and --with-abi.
4670 case "${with_arch}" in
4671 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4675 # Infer XLEN, but otherwise assume GC.
4676 case "${with_abi}" in
4677 ilp32e) with_arch="rv32e" ;;
4678 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4679 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4680 *) with_arch="rv${xlen}gc" ;;
4684 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4688 PYTHON=`which python || which python3 || which python2`
4689 if test "x${PYTHON}" != x; then
4690 with_arch=`${PYTHON} ${srcdir}/config/riscv/arch-canonicalize ${with_arch}`
4692 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ARCH=${with_arch}"
4694 # Make sure --with-abi is valid. If it was not specified,
4695 # pick a default based on the ISA, preferring soft-float
4696 # unless the D extension is present.
4697 case "${with_abi}" in
4698 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4701 case "${with_arch}" in
4702 rv32*d* | rv32g*) with_abi=ilp32d ;;
4703 rv32e*) with_abi=ilp32e ;;
4704 rv32*) with_abi=ilp32 ;;
4705 rv64*d* | rv64g*) with_abi=lp64d ;;
4706 rv64*) with_abi=lp64 ;;
4710 echo "--with-abi=${with_abi} is not supported" 1>&2
4714 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ABI=${with_abi}"
4716 # Make sure ABI and ISA are compatible.
4717 case "${with_abi},${with_arch}" in
4718 ilp32,rv32* | ilp32e,rv32e* \
4719 | ilp32f,rv32*f* | ilp32f,rv32g* \
4720 | ilp32d,rv32*d* | ilp32d,rv32g* \
4722 | lp64f,rv64*f* | lp64f,rv64g* \
4723 | lp64d,rv64*d* | lp64d,rv64g*)
4726 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4730 # Handle --with-multilib-generator.
4731 if test "x${with_multilib_generator}" != xdefault; then
4732 if test "x${with_multilib_list}" != xdefault; then
4733 echo "--with-multilib-list= can't used with --with-multilib-generator= at same time" 1>&2
4738 if ${srcdir}/config/riscv/multilib-generator \
4739 `echo ${with_multilib_generator} | sed 's/;/ /g'`\
4740 > t-multilib-config;
4742 tmake_file="${tmake_file} riscv/t-withmultilib-generator"
4744 echo "invalid option for --with-multilib-generator" 1>&2
4749 echo "--with-multilib-generator= is not supported for ${target}, only supported for riscv*-*-elf*" 1>&2
4755 # Handle --with-multilib-list.
4756 if test "x${with_multilib_list}" != xdefault; then
4757 tmake_file="${tmake_file} riscv/t-withmultilib"
4759 case ${with_multilib_list} in
4760 ilp32 | ilp32f | ilp32d \
4761 | lp64 | lp64f | lp64d )
4762 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4765 echo "--with-multilib-list=${with_multilib_list} not supported."
4772 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"
4774 case ${with_float} in
4779 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4785 "" | single | double)
4789 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4799 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4804 case ${with_fp_32} in
4809 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4814 case ${with_odd_spreg_32} in
4816 with_odd_spreg_32="odd-spreg"
4819 with_odd_spreg_32="no-odd-spreg"
4825 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4831 "" | 32 | o64 | n32 | 64 | eabi)
4835 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4840 case ${with_divide} in
4841 "" | breaks | traps)
4845 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4850 case ${with_llsc} in
4861 echo "Unknown llsc type used in --with-llsc" 1>&2
4866 case ${with_mips_plt} in
4871 with_mips_plt=no-plt
4876 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4881 case ${with_synci} in
4891 echo "Unknown synci type used in --with-synci" 1>&2
4896 case ${with_lxc1_sxc1} in
4898 with_lxc1_sxc1=lxc1-sxc1
4901 with_lxc1_sxc1=no-lxc1-sxc1
4906 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4911 case ${with_madd4} in
4921 echo "Unknown madd4 type used in --with-madd4" 1>&2
4928 supported_defaults="arch cpu nds32_lib float fpu_config"
4930 # process --with-arch
4931 case "${with_arch}" in
4933 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4937 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4940 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4943 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4947 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4952 case "${with_cpu}" in
4956 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4960 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4965 # process --with-nds32-lib
4966 case "${with_nds32_lib}" in
4970 with_nds32_lib=ulibc
4973 with_nds32_lib=glibc
4976 with_nds32_lib=newlib
4977 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4983 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4987 # for the arch=v3f or arch=v3s under mculib toolchain,
4988 # we would like to set -fno-math-errno as default
4989 case "${with_arch}" in
4991 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4999 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
5004 # process --with-float
5005 case "${with_float}" in
5010 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
5015 # process --with-config-fpu
5016 case "${with_config_fpu}" in
5021 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
5029 supported_defaults="arch"
5030 case "$with_arch" in
5035 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
5041 powerpc*-*-* | rs6000-*-*)
5042 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
5044 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5045 eval "val=\$with_$which"
5047 default32 | default64)
5052 echo "$val only valid for --with-cpu and --with-tune." 1>&2
5056 with_which="with_$which"
5060 tm_defines="${tm_defines} CONFIG_PPC405CR"
5061 eval "with_$which=405"
5063 "" | common | native \
5064 | power[3456789] | power10 | power5+ | power6x \
5065 | powerpc | powerpc64 | powerpc64le \
5067 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
5068 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
5069 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
5070 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
5071 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
5075 echo "Unknown cpu used in --with-$which=$val." 1>&2
5082 "" | elfv1 | elfv2 )
5086 echo "Unknown ABI used in --with-abi=$with_abi"
5091 if test "x$with_advance_toolchain" != x; then
5092 if test -d "/opt/$with_advance_toolchain/." -a \
5093 -d "/opt/$with_advance_toolchain/bin/." -a \
5094 -d "/opt/$with_advance_toolchain/include/."; then
5096 tm_file="$tm_file ./advance-toolchain.h"
5097 (at="/opt/$with_advance_toolchain"
5098 echo "/* Use Advance Toolchain $at */"
5100 echo "#undef LINK_OS_EXTRA_SPEC32"
5101 echo "#define LINK_OS_EXTRA_SPEC32" \
5102 "\"%(link_os_new_dtags)" \
5103 "-rpath $prefix/lib -rpath $at/lib\""
5105 echo "#undef LINK_OS_EXTRA_SPEC64"
5106 echo "#define LINK_OS_EXTRA_SPEC64" \
5107 "\"%(link_os_new_dtags)" \
5108 "-rpath $prefix/lib64 -rpath $at/lib64\""
5110 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
5111 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
5112 "\"--enable-new-dtags\""
5114 echo "#undef DYNAMIC_LINKER_PREFIX"
5115 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
5117 echo "#undef MD_EXEC_PREFIX"
5118 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
5120 echo "#undef MD_STARTFILE_PREFIX"
5121 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
5123 echo "#undef MD_STARTFILE_PREFIX_1"
5124 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
5125 > advance-toolchain.h
5127 echo "Unknown advance-toolchain $with_advance_toolchain"
5132 # Set up the default long double format if the user changed it.
5133 if test x$with_long_double_format = xieee; then
5134 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
5136 elif test x$with_long_double_format = xibm; then
5137 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5142 supported_defaults="arch mode tune"
5144 for which in arch tune; do
5145 eval "val=\$with_$which"
5147 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 | arch14 )
5151 echo "Unknown cpu used in --with-$which=$val." 1>&2
5157 case ${with_mode} in
5162 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5168 sh[123456ble]*-*-* | sh-*-*)
5169 supported_defaults="cpu"
5170 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5171 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5174 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5176 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5179 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
5180 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5181 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5182 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5188 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5190 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5191 eval "val=\$with_$which"
5193 "" | sparc | sparcv9 | sparc64 \
5195 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5196 | sparclite | f930 | f934 | sparclite86x \
5197 | sparclet | tsc701 \
5198 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5199 | niagara3 | niagara4 | niagara7 | m8)
5203 echo "Unknown cpu used in --with-$which=$val" 1>&2
5209 case ${with_float} in
5214 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5221 supported_defaults="arch"
5223 case ${with_arch} in
5224 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5228 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5235 supported_defaults=cpu
5237 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5241 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5247 supported_defaults="cpu"
5251 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5258 # Targets for which there is at least one VxWorks port should include
5259 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5260 # of markers from other files in the port, including the vxworks*.h files to
5261 # distinguish VxWorks variants such as VxWorks 7 or 64).
5264 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5265 | sparc*-*-* | x86_64-*-*)
5266 tm_file="vxworks-dummy.h ${tm_file}"
5270 # Set some miscellaneous flags for particular targets.
5271 target_cpu_default2=
5274 if test x"$target_cpu_cname" != x
5276 target_cpu_default2=$target_cpu_cname
5281 if test x$with_cpu = x
5283 echo "Don't know the target cpu" 1>&2
5286 target_cpu_default2="\\\"$with_cpu\\\""
5291 if test x$gas = xyes
5293 target_cpu_default2="MASK_GAS"
5297 fido*-*-* | m68k*-*-*)
5298 target_cpu_default2=$m68k_cpu_ident
5299 tmake_file="m68k/t-opts $tmake_file"
5300 if [ x"$m68k_arch_family" != x ]; then
5301 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5305 i[34567]86-*-darwin* | x86_64-*-darwin*)
5307 i[34567]86-*-linux* | x86_64-*-linux*)
5308 extra_objs="${extra_objs} gnu-property.o"
5309 tmake_file="$tmake_file i386/t-linux i386/t-gnu-property"
5311 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5312 tmake_file="$tmake_file i386/t-kfreebsd"
5315 tmake_file="$tmake_file i386/t-gnu"
5317 i[34567]86-*-msdosdjgpp*)
5318 tmake_file="${tmake_file} i386/t-djgpp"
5320 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5322 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5324 i[34567]86-*-mingw* | x86_64-*-mingw*)
5326 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5328 i[34567]86-*-freebsd*)
5331 tmake_file="${tmake_file} i386/t-freebsd64"
5337 if test x$gnu_ld = xyes
5339 target_cpu_default2="MASK_SPLIT_ADDRESSES"
5343 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5346 if test x$with_arch != x; then
5347 default_mips_arch=$with_arch
5349 if test x$with_abi != x; then
5350 default_mips_abi=$with_abi
5352 case ${default_mips_arch} in
5353 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
5354 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
5355 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
5356 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
5357 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
5358 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
5359 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
5360 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
5361 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
5362 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
5364 case ${default_mips_abi} in
5365 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5366 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5367 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5368 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5369 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5371 tmake_file="mips/t-mips $tmake_file"
5374 powerpc*-*-* | rs6000-*-*)
5375 # FIXME: The PowerPC port uses the value set at compile time,
5376 # although it's only cosmetic.
5377 if test "x$with_cpu" != x
5379 target_cpu_default2="\\\"$with_cpu\\\""
5381 out_file="${cpu_type}/${cpu_type}.c"
5382 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5383 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5384 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5385 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5388 sh[123456ble]*-*-* | sh-*-*)
5389 c_target_objs="${c_target_objs} sh-c.o"
5390 cxx_target_objs="${cxx_target_objs} sh-c.o"
5394 # Some standard aliases.
5399 xsparcv9 | xsparc64)
5404 if test x$with_tune = x ; then
5415 # The SPARC port checks this value at compile-time.
5416 target_cpu_default2="TARGET_CPU_$with_cpu"
5420 case "x$with_cpu" in
5423 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5424 target_cpu_default2="TARGET_CPU_$with_cpu"
5427 target_cpu_default2="TARGET_CPU_v850e1"
5432 target_cpu_default2="TARGET_CPU_$with_cpu"
5437 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"
5438 for option in $all_defaults
5440 eval "val=\$with_"`echo $option | sed s/-/_/g`
5441 if test -n "$val"; then
5442 case " $supported_defaults " in
5446 echo "This target does not support --with-$option." 2>&1
5447 echo "Valid --with options are: $supported_defaults" 2>&1
5454 t="{ \"$option\", \"$val\" }"
5456 t="${t}, { \"$option\", \"$val\" }"
5463 configure_default_options="{ { NULL, NULL} }"
5465 configure_default_options="{ ${t} }"
5468 if test "$target_cpu_default2" != ""
5470 if test "$target_cpu_default" != ""
5472 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5474 target_cpu_default=$target_cpu_default2
5479 i[34567]86-*-* | x86_64-*-*)
5480 if test x$enable_as_accelerator = xyes; then
5481 extra_programs="mkoffload\$(exeext)"