Daily bump.
[official-gcc.git] / gcc / config.gcc
blobc8824367b13e60d4cac571a49ab781168d49da41
1 # SPDX-License-Identifier: GPL-3.0-or-later
2 # GCC target-specific configuration file.
3 # Copyright (C) 1997-2021 Free Software Foundation, Inc.
5 #This file is part of GCC.
7 #GCC is free software; you can redistribute it and/or modify it under
8 #the terms of the GNU General Public License as published by the Free
9 #Software Foundation; either version 3, or (at your option) any later
10 #version.
12 #GCC is distributed in the hope that it will be useful, but WITHOUT
13 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 #FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 #for more details.
17 #You should have received a copy of the GNU General Public License
18 #along with GCC; see the file COPYING3.  If not see
19 #<http://www.gnu.org/licenses/>.
21 # This is the GCC target-specific configuration file
22 # where a configuration type is mapped to different system-specific
23 # definitions and files.  This is invoked by the autoconf-generated
24 # configure script.  Putting it in a separate shell file lets us skip
25 # running autoconf when modifying target-specific information.
27 # When you change the cases in the OS or target switches, consider
28 # updating ../libgcc/config.host also.
30 # This file switches on the shell variable ${target}, and also uses the
31 # following shell variables:
33 #  with_*               Various variables as set by configure.
35 #  enable_threads       Either the name, yes or no depending on whether
36 #                       threads support was requested.
38 #  default_use_cxa_atexit
39 #                         The default value for the $enable___cxa_atexit
40 #                       variable.  enable___cxa_atexit needs to be set to
41 #                       "yes" for the correct operation of C++ destructors
42 #                       but it relies upon the presence of a non-standard C
43 #                       library function called __cxa_atexit.
44 #                         Since not all C libraries provide __cxa_atexit the
45 #                       default value of $default_use_cxa_atexit is set to
46 #                       "no" except for targets which are known to be OK.
48 #  default_gnu_indirect_function
49 #                       The default value for the $enable_gnu_indirect_function
50 #                       variable.  enable_gnu_indirect_function relies
51 #                       upon the presence of a non-standard gnu ifunc support
52 #                       in the assembler, linker and dynamic linker.
53 #                       Since not all libraries provide the dynamic linking
54 #                       support, the default value of
55 #                       $default_gnu_indirect_function is set to
56 #                       "no" except for targets which are known to be OK.
58 #  gas_flag             Either yes or no depending on whether GNU as was
59 #                       requested.
61 #  gnu_ld_flag          Either yes or no depending on whether GNU ld was
62 #                       requested.
64 # This file sets the following shell variables for use by the
65 # autoconf-generated configure script:
67 #  cpu_type             The name of the cpu, if different from the first
68 #                       chunk of the canonical target name.
70 #  tm_defines           List of target macros to define for all compilations.
72 #  tm_file              A list of target macro files, if different from
73 #                       "$cpu_type/$cpu_type.h". Usually it's constructed
74 #                       per target in a way like this:
75 #                       tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h"
76 #                       Note that the preferred order is:
77 #                       - specific target header "${cpu_type}/${cpu_type.h}"
78 #                       - generic headers like dbxelf.h elfos.h, etc.
79 #                       - specializing target headers like ${cpu_type.h}/elf.h
80 #                       This helps to keep OS specific stuff out of the CPU
81 #                       defining header ${cpu_type}/${cpu_type.h}.
83 #                       It is possible to include automatically-generated
84 #                       build-directory files by prefixing them with "./".
85 #                       All other files should relative to $srcdir/config.
87 #  tm_p_file            Location of file with declarations for functions
88 #                       in $out_file.
90 #  tm_d_file            A list of headers with definitions of target hook
91 #                       macros for the D compiler.
93 #  out_file             The name of the machine description C support
94 #                       file, if different from "$cpu_type/$cpu_type.c".
96 #  common_out_file      The name of the source file for code shared between
97 #                       the compiler proper and the driver.
99 #  md_file              The name of the machine-description file, if
100 #                       different from "$cpu_type/$cpu_type.md".
102 #  tmake_file           A list of machine-description-specific
103 #                       makefile-fragments, if different from
104 #                       "$cpu_type/t-$cpu_type".
106 #  extra_modes          The name of the file containing a list of extra
107 #                       machine modes, if necessary and different from
108 #                       "$cpu_type/$cpu_type-modes.def".
110 #  extra_objs           List of extra objects that should be linked into
111 #                       the compiler proper (cc1, cc1obj, cc1plus)
112 #                       depending on target.
114 #  extra_gcc_objs       List of extra objects that should be linked into
115 #                       the compiler driver (gcc) depending on target.
117 #  extra_headers        List of used header files from the directory
118 #                       config/${cpu_type}.
120 #  user_headers_inc_next_pre
121 #                       List of header file names of internal gcc header
122 #                       files, which should be prefixed by an include_next.
123 #  user_headers_inc_next_post
124 #                       List of header file names of internal gcc header
125 #                       files, which should be postfixed by an include_next.
126 #  use_gcc_tgmath       If set, add tgmath.h to the list of used header
127 #                       files.
129 #  use_gcc_stdint       If "wrap", install a version of stdint.h that
130 #                       wraps the system's copy for hosted compilations;
131 #                       if "provide", provide a version of systems without
132 #                       such a system header; otherwise "none", do not
133 #                       provide such a header at all.
135 #  extra_programs       List of extra executables compiled for this target
136 #                       machine, used when linking.
138 #  extra_options        List of target-dependent .opt files.
140 #  c_target_objs        List of extra target-dependent objects that be
141 #                       linked into the C compiler only.
143 #  cxx_target_objs      List of extra target-dependent objects that be
144 #                       linked into the C++ compiler only.
146 #  d_target_objs        List of extra target-dependent objects that be
147 #                       linked into the D compiler only.
149 #  fortran_target_objs  List of extra target-dependent objects that be
150 #                       linked into the fortran compiler only.
152 #  target_gtfiles       List of extra source files with type information.
154 #  xm_defines           List of macros to define when compiling for the
155 #                       target machine.
157 #  xm_file              List of files to include when compiling for the
158 #                       target machine.
160 #  use_collect2         Set to yes or no, depending on whether collect2
161 #                       will be used.
163 #  target_cpu_default   Set to override the default target model.
165 #  gdb_needs_out_file_path
166 #                       Set to yes if gdb needs a dir command with
167 #                       `dirname $out_file`.
169 #  thread_file          Set to control which thread package to use.
171 #  gas                  Set to yes or no depending on whether the target
172 #                       system normally uses GNU as.
174 #  configure_default_options
175 #                       Set to an initializer for configure_default_options
176 #                       in configargs.h, based on --with-cpu et cetera.
178 #  native_system_header_dir
179 #                       Where system header files are found for this
180 #                       target.  This defaults to /usr/include.  If
181 #                       the --with-sysroot configure option or the
182 #                       --sysroot command line option is used this
183 #                       will be relative to the sysroot.
184 # target_type_format_char 
185 #                       The default character to be used for formatting
186 #                       the attribute in a
187 #                       .type symbol_name, ${t_t_f_c}<property>
188 #                       directive.
190 # The following variables are used in each case-construct to build up the
191 # outgoing variables:
193 #  gnu_ld               Set to yes or no depending on whether the target
194 #                       system normally uses GNU ld.
196 #  target_has_targetcm  Set to yes or no depending on whether the target
197 #                       has its own definition of targetcm.
199 #  target_has_targetm_common    Set to yes or no depending on whether the
200 #                       target has its own definition of targetm_common.
202 #  target_has_targetdm  Set to yes or no depending on whether the target
203 #                       has its own definition of targetdm.
205 out_file=
206 common_out_file=
207 tmake_file=
208 extra_headers=
209 user_headers_inc_next_pre=
210 user_headers_inc_next_post=
211 use_gcc_tgmath=yes
212 use_gcc_stdint=none
213 extra_programs=
214 extra_objs=
215 extra_gcc_objs=
216 extra_options=
217 c_target_objs=
218 cxx_target_objs=
219 d_target_objs=
220 fortran_target_objs=
221 target_has_targetcm=no
222 target_has_targetm_common=yes
223 target_has_targetdm=no
224 tm_defines=
225 xm_defines=
226 # Set this to force installation and use of collect2.
227 use_collect2=
228 # Set this to override the default target model.
229 target_cpu_default=
230 # Set this if gdb needs a dir command with `dirname $out_file`
231 gdb_needs_out_file_path=
232 # Set this to control which thread package will be used.
233 thread_file=
234 # Reinitialize these from the flag values every loop pass, since some
235 # configure entries modify them.
236 gas="$gas_flag"
237 gnu_ld="$gnu_ld_flag"
238 default_use_cxa_atexit=no
239 default_gnu_indirect_function=no
240 target_gtfiles=
241 need_64bit_isa=
242 native_system_header_dir=/usr/include
243 target_type_format_char='@'
245 # Don't carry these over build->host->target.  Please.
246 xm_file=
247 md_file=
249 # Obsolete configurations.
250 case ${target} in
251   tile*-*-*                             \
252  | cr16-*-*                             \
253  | hppa[12]*-*-hpux10*                  \
254  | hppa[12]*-*-hpux11*                  \
256     if test "x$enable_obsolete" != xyes; then
257       echo "*** Configuration ${target} is obsolete." >&2
258       echo "*** Specify --enable-obsolete to build it anyway." >&2
259       echo "*** Support will be REMOVED in the next major release of GCC," >&2
260       echo "*** unless a maintainer comes forward." >&2
261       exit 1
262     fi;;
263 esac
265 # Unsupported targets list.  Do not put an entry in this list unless
266 # it would otherwise be caught by a more permissive pattern.  The list
267 # should be in alphabetical order.
268 case ${target} in
269  # Avoid special cases that are not obsolete
270    arm*-*-*eabi*                        \
272         ;;
273    arm*-wince-pe*                       \
274  | arm*-*-ecos-elf                      \
275  | arm*-*-elf                           \
276  | arm*-*-linux*                        \
277  | arm*-*-uclinux*                      \
278  | cris-*-linux*                        \
279  | crisv32-*-*                          \
280  | i[34567]86-go32-*                    \
281  | i[34567]86-*-go32*                   \
282  | m32r-*-linux*                        \
283  | m32rle-*-linux*                      \
284  | m68k*-*-openbsd*                     \
285  | m68k-*-uclinuxoldabi*                \
286  | mips64orion*-*-rtems*                \
287  | pdp11-*-bsd                          \
288  | powerpc*-*-linux*paired*             \
289  | powerpc*-*-*spe*                     \
290  | sparc-hal-solaris2*                  \
291  | spu*-*-*                             \
292  | thumb-*-*                            \
293  | *-*-freebsd[12] | *-*-freebsd[1234].* \
294  | *-*-freebsd*aout*                    \
295  | *-*-linux*aout*                      \
296  | *-*-linux*coff*                      \
297  | *-*-linux*libc1*                     \
298  | *-*-linux*oldld*                     \
299  | *-*-rtemsaout*                       \
300  | *-*-rtemscoff*                       \
301  | *-*-solaris2                         \
302  | *-*-solaris2.[0-9]                   \
303  | *-*-solaris2.[0-9].*                 \
304  | *-*-solaris2.10*                     \
305  | *-*-sysv*                            \
306  | vax-*-vms*                           \
308         echo "*** Configuration ${target} not supported" 1>&2
309         exit 1
310         ;;
311 esac
313 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
314 # updated in each machine entry.  Also set default extra_headers for some
315 # machines.
316 tm_p_file=
317 cpu_type=`echo ${target} | sed 's/-.*$//'`
318 cpu_is_64bit=
319 case ${target} in
320 m32c*-*-*)
321         cpu_type=m32c
322         tmake_file=m32c/t-m32c
323         target_has_targetm_common=no
324         ;;
325 aarch64*-*-*)
326         cpu_type=aarch64
327         extra_headers="arm_fp16.h arm_neon.h arm_bf16.h arm_acle.h arm_sve.h"
328         c_target_objs="aarch64-c.o"
329         cxx_target_objs="aarch64-c.o"
330         d_target_objs="aarch64-d.o"
331         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"
332         target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c \$(srcdir)/config/aarch64/aarch64-sve-builtins.h \$(srcdir)/config/aarch64/aarch64-sve-builtins.cc"
333         target_has_targetm_common=yes
334         ;;
335 alpha*-*-*)
336         cpu_type=alpha
337         extra_options="${extra_options} g.opt"
338         ;;
339 amdgcn*)
340         cpu_type=gcn
341         use_gcc_stdint=wrap
342         ;;
343 am33_2.0-*-linux*)
344         cpu_type=mn10300
345         ;;
346 arc*-*-*)
347         cpu_type=arc
348         c_target_objs="arc-c.o"
349         cxx_target_objs="arc-c.o"
350         extra_options="${extra_options} arc/arc-tables.opt g.opt"
351         extra_headers="arc-simd.h"
352         ;;
353 arm*-*-*)
354         cpu_type=arm
355         extra_objs="arm-builtins.o aarch-common.o"
356         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"
357         target_type_format_char='%'
358         c_target_objs="arm-c.o"
359         cxx_target_objs="arm-c.o"
360         d_target_objs="arm-d.o"
361         extra_options="${extra_options} arm/arm-tables.opt"
362         target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
363         ;;
364 avr-*-*)
365         cpu_type=avr
366         c_target_objs="avr-c.o"
367         cxx_target_objs="avr-c.o"
368         ;;
369 bfin*-*)
370         cpu_type=bfin
371         ;;
372 bpf-*-*)
373         cpu_type=bpf
374         ;;
375 frv*)   cpu_type=frv
376         extra_options="${extra_options} g.opt"
377         ;;
378 ft32*)  cpu_type=ft32
379         target_has_targetm_common=no
380         ;;
381 moxie*) cpu_type=moxie
382         target_has_targetm_common=no
383         ;;
384 fido-*-*)
385         cpu_type=m68k
386         extra_headers=math-68881.h
387         extra_options="${extra_options} m68k/m68k-tables.opt"
388         ;;
389 i[34567]86-*-* | x86_64-*-*)
390         cpu_type=i386
391         c_target_objs="i386-c.o"
392         cxx_target_objs="i386-c.o"
393         d_target_objs="i386-d.o"
394         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"
395         target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
396         extra_options="${extra_options} fused-madd.opt"
397         extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
398                        pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
399                        nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
400                        immintrin.h x86intrin.h avxintrin.h xopintrin.h
401                        ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
402                        lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
403                        avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
404                        rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
405                        adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
406                        avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
407                        shaintrin.h clflushoptintrin.h xsavecintrin.h
408                        xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
409                        avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
410                        avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
411                        avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
412                        avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
413                        clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
414                        gfniintrin.h cet.h avx512vbmi2intrin.h
415                        avx512vbmi2vlintrin.h avx512vnniintrin.h
416                        avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
417                        avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
418                        pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
419                        waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h
420                        avx512bf16intrin.h enqcmdintrin.h serializeintrin.h
421                        avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h
422                        tsxldtrkintrin.h amxtileintrin.h amxint8intrin.h
423                        amxbf16intrin.h x86gprintrin.h uintrintrin.h
424                        hresetintrin.h keylockerintrin.h avxvnniintrin.h
425                        mwaitintrin.h avx512fp16intrin.h avx512fp16vlintrin.h"
426         ;;
427 ia64-*-*)
428         extra_headers=ia64intrin.h
429         extra_options="${extra_options} g.opt fused-madd.opt"
430         ;;
431 hppa*-*-*)
432         cpu_type=pa
433         ;;
434 lm32*)
435         extra_options="${extra_options} g.opt"
436         ;;
437 m32r*-*-*)
438         cpu_type=m32r
439         extra_options="${extra_options} g.opt"
440         ;;
441 m68k-*-*)
442         extra_headers=math-68881.h
443         extra_options="${extra_options} m68k/m68k-tables.opt"
444         ;;
445 microblaze*-*-*)
446         cpu_type=microblaze
447         extra_options="${extra_options} g.opt"
448         ;;
449 mips*-*-*)
450         cpu_type=mips
451         d_target_objs="mips-d.o"
452         extra_headers="loongson.h loongson-mmiintrin.h msa.h"
453         extra_objs="frame-header-opt.o"
454         extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
455         ;;
456 nds32*)
457         cpu_type=nds32
458         extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
459         case ${target} in
460           nds32*-*-linux*)
461             extra_options="${extra_options} nds32/nds32-linux.opt"
462             ;;
463           nds32*-*-elf*)
464             extra_options="${extra_options} nds32/nds32-elf.opt"
465             ;;
466           *)
467             ;;
468         esac
469         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"
470         ;;
471 nios2-*-*)
472         cpu_type=nios2
473         extra_options="${extra_options} g.opt"
474         ;;
475 nvptx-*-*)
476         cpu_type=nvptx
477         c_target_objs="nvptx-c.o"
478         cxx_target_objs="nvptx-c.o"
479         ;;
480 or1k*-*-*)
481         cpu_type=or1k
482         ;;
483 powerpc*-*-*)
484         cpu_type=rs6000
485         extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
486         extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
487         extra_objs="${extra_objs} rs6000-builtins.o"
488         extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
489         extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
490         extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
491         extra_headers="${extra_headers} mmintrin.h x86intrin.h"
492         extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
493         extra_headers="${extra_headers} nmmintrin.h immintrin.h x86gprintrin.h"
494         extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
495         extra_headers="${extra_headers} amo.h"
496         case x$with_cpu in
497             xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower10|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
498                 cpu_is_64bit=yes
499                 ;;
500         esac
501         extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
502         target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
503         target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.c"
504         target_gtfiles="$target_gtfiles ./rs6000-builtins.h"
505         ;;
506 pru-*-*)
507         cpu_type=pru
508         ;;
509 riscv*)
510         cpu_type=riscv
511         extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o riscv-shorten-memrefs.o"
512         d_target_objs="riscv-d.o"
513         ;;
514 rs6000*-*-*)
515         extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
516         extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
517         extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
518         target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
519         target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-pcrel-opt.c"
520         ;;
521 sparc*-*-*)
522         cpu_type=sparc
523         c_target_objs="sparc-c.o"
524         cxx_target_objs="sparc-c.o"
525         d_target_objs="sparc-d.o"
526         extra_headers="visintrin.h"
527         ;;
528 s390*-*-*)
529         cpu_type=s390
530         d_target_objs="s390-d.o"
531         extra_options="${extra_options} fused-madd.opt"
532         extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
533         ;;
534 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
535 sh[123456789lbe]*-*-* | sh-*-*)
536         cpu_type=sh
537         extra_options="${extra_options} fused-madd.opt"
538         extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
539         ;;
540 v850*-*-*)
541         cpu_type=v850
542         ;;
543 tic6x-*-*)
544         cpu_type=c6x
545         extra_headers="c6x_intrinsics.h"
546         extra_options="${extra_options} c6x/c6x-tables.opt"
547         ;;
548 xtensa*-*-*)
549         extra_options="${extra_options} fused-madd.opt"
550         ;;
551 tilegx*-*-*)
552         cpu_type=tilegx
553         ;;
554 tilepro*-*-*)
555         cpu_type=tilepro
556         ;;
557 esac
559 tm_file=${cpu_type}/${cpu_type}.h
560 tm_d_file=${cpu_type}/${cpu_type}.h
561 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
562 then
563         tm_p_file=${cpu_type}/${cpu_type}-protos.h
564         tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
567 extra_modes=
568 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
569 then
570         extra_modes=${cpu_type}/${cpu_type}-modes.def
572 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
573 then
574         extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
577 case ${target} in
578 aarch64*-*-*)
579         tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
580         case ${with_abi} in
581         "")
582                 if test "x$with_multilib_list" = xilp32; then
583                         tm_file="aarch64/biarchilp32.h ${tm_file}"
584                 else
585                         tm_file="aarch64/biarchlp64.h ${tm_file}"
586                 fi
587                 ;;
588         ilp32)
589                 tm_file="aarch64/biarchilp32.h ${tm_file}"
590                 ;;
591         lp64)
592                 tm_file="aarch64/biarchlp64.h ${tm_file}"
593                 ;;
594         *)
595                 echo "Unknown ABI used in --with-abi=$with_abi"
596                 exit 1
597         esac
598         ;;
599 i[34567]86-*-*)
600         if test "x$with_abi" != x; then
601                 echo "This target does not support --with-abi."
602                 exit 1
603         fi
604         ;;
605 x86_64-*-darwin*)
606         ;;
607 x86_64-*-*)
608         case ${with_abi} in
609         "")
610                 if test "x$with_multilib_list" = xmx32; then
611                         tm_file="i386/biarchx32.h ${tm_file}"
612                 else
613                         tm_file="i386/biarch64.h ${tm_file}"
614                 fi
615                 ;;
616         64 | m64)
617                 tm_file="i386/biarch64.h ${tm_file}"
618                 ;;
619         x32 | mx32)
620                 tm_file="i386/biarchx32.h ${tm_file}"
621                 ;;
622         *)
623                 echo "Unknown ABI used in --with-abi=$with_abi"
624                 exit 1
625         esac
626         ;;
627 arm*-*-*)
628         tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
629         ;;
630 esac
632 # On a.out targets, we need to use collect2.
633 case ${target} in
634 *-*-*aout*)
635         use_collect2=yes
636         ;;
637 esac
639 # Common C libraries.
640 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
642 # 32-bit x86 processors supported by --with-arch=.  Each processor
643 # MUST be separated by exactly one space.
644 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
645 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
646 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
647 pentium4 pentium4m pentiumpro prescott lakemont samuel-2 nehemiah \
648 c7 esther"
650 # 64-bit x86 processors supported by --with-arch=.  Each processor
651 # MUST be separated by exactly one space.
652 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
653 bdver3 bdver4 znver1 znver2 znver3 btver1 btver2 k8 k8-sse3 opteron \
654 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
655 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
656 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
657 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake \
658 sapphirerapids alderlake rocketlake eden-x2 nano nano-1000 nano-2000 nano-3000 \
659 nano-x2 eden-x4 nano-x4 x86-64 x86-64-v2 x86-64-v3 x86-64-v4 native"
661 # Additional x86 processors supported by --with-cpu=.  Each processor
662 # MUST be separated by exactly one space.
663 x86_cpus="generic intel"
665 # Common parts for widely ported systems.
666 case ${target} in
667 *-*-darwin*)
668   tmake_file="t-darwin "
669   tm_file="${tm_file} darwin.h"
670   tm_d_file="${tm_d_file} tm-dwarf2.h"
671   darwin_os=`echo ${target} | sed 's/.*darwin\([0-9.]*\).*$/\1/'`
672   darwin_maj=`expr "$darwin_os" : '\([0-9]*\).*'`
673   macos_min=`expr "$darwin_os" : '[0-9]*\.\([0-9]*\).*'`
674   macos_maj=10
675   if test x"${macos_min}" = x; then
676     macos_min=0
677   fi
678   def_ld64=85.2
679   case ${target} in
680       # Darwin 4 to 19 correspond to macOS 10.0 to 10.15
681       *-*-darwin[4-9]* | *-*-darwin1[0-9]*)
682         macos_min=`expr $darwin_maj - 4`
683         ;;
684       *-*-darwin2*)
685         # Darwin 20 corresponds to macOS 11, Darwin 21 to macOS 12.
686         macos_maj=`expr $darwin_maj - 9`
687         def_ld64=609.0
688         ;;
689       *-*-darwin)
690         case ${cpu_type} in
691           aarch64) macos_maj=11 ;;
692           x86_64) macos_min=6 ;;
693           *)  macos_min=5 ;;
694           esac
695           case ${host} in
696             *-*-darwin*) tm_defines="$tm_defines DARWIN_USE_KERNEL_VERS" ;;
697             *)
698               # If configuring a cross-compiler then we will have set some
699               # default above, but it is probably not what was intended.
700               echo "Warning: Using ${target} is only suitable for Darwin hosts" 1>&2
701               echo "configure with an explicit target version" 1>&2
702               ;;
703           esac
704         ;;
705       *)
706         echo "Error: configuring for an unreleased macOS version ${target}" 1>&2
707         exit 1
708         ;;
709   esac
710   tm_defines="$tm_defines DEF_MIN_OSX_VERSION=\\\"${macos_maj}.${macos_min}\\\""
711   tm_defines="$tm_defines DEF_LD64=\\\"${def_ld64}\\\""
712   tm_file="${tm_file} ${cpu_type}/darwin.h"
713   tm_p_file="${tm_p_file} darwin-protos.h"
714   target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.c"
715   extra_options="${extra_options} rpath.opt darwin.opt"
716   c_target_objs="${c_target_objs} darwin-c.o"
717   cxx_target_objs="${cxx_target_objs} darwin-c.o"
718   d_target_objs="${d_target_objs} darwin-d.o"
719   fortran_target_objs="darwin-f.o"
720   target_has_targetcm=yes
721   target_has_targetdm=yes
722   extra_objs="${extra_objs} darwin.o"
723   extra_gcc_objs="darwin-driver.o"
724   default_use_cxa_atexit=yes
725   use_gcc_stdint=wrap
726   case ${enable_threads} in
727     "" | yes | posix) thread_file='posix' ;;
728   esac
729   ;;
730 *-*-dragonfly*)
731   gas=yes
732   gnu_ld=yes
733   tmake_file="t-slibgcc"
734   case ${enable_threads} in
735     "" | yes | posix)
736       thread_file='posix'
737       ;;
738     no | single)
739       # Let these non-posix thread selections fall through if requested
740       ;;
741     *)
742       echo 'Unknown thread configuration for DragonFly BSD'
743       exit 1
744       ;;
745   esac
746   extra_options="$extra_options rpath.opt dragonfly.opt"
747   default_use_cxa_atexit=yes
748   use_gcc_stdint=wrap
749   d_target_objs="${d_target_objs} dragonfly-d.o"
750   tmake_file="${tmake_file} t-dragonfly"
751   target_has_targetdm=yes
752   ;;
753 *-*-freebsd*)
754   # This is the generic ELF configuration of FreeBSD.  Later
755   # machine-specific sections may refine and add to this
756   # configuration.
757   #
758   # Due to tm_file entry ordering issues that vary between cpu
759   # architectures, we only define fbsd_tm_file to allow the
760   # machine-specific section to dictate the final order of all
761   # entries of tm_file with the minor exception that components
762   # of the tm_file set here will always be of the form:
763   #
764   # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
765   #
766   # The machine-specific section should not tamper with this
767   # ordering but may order all other entries of tm_file as it
768   # pleases around the provided core setting.
769   gas=yes
770   gnu_ld=yes
771   fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
772   if test "$fbsd_major" = ""; then
773     echo "Specify the major version number of the targeted FreeBSD release"
774     echo "like this: --target=amd64-unknown-freebsd10.1"
775     exit 1
776   fi
777   tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
778   tmake_file="t-slibgcc"
779   case ${enable_threads} in
780     no)
781       fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
782       ;;
783     "" | yes | posix)
784       thread_file='posix'
785       ;;
786     *)
787       echo 'Unknown thread configuration for FreeBSD'
788       exit 1
789       ;;
790   esac
791   fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
792   extra_options="$extra_options rpath.opt freebsd.opt"
793   case ${target} in
794     *-*-freebsd[345].*)
795       :;;
796     *)
797       default_use_cxa_atexit=yes;;
798   esac
799   use_gcc_stdint=wrap
800   d_target_objs="${d_target_objs} freebsd-d.o"
801   tmake_file="${tmake_file} t-freebsd"
802   target_has_targetdm=yes
803   ;;
804 *-*-fuchsia*)
805   native_system_header_dir=/include
806   ;;
807 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
808   extra_options="$extra_options gnu-user.opt"
809   gas=yes
810   gnu_ld=yes
811   case ${enable_threads} in
812     "" | yes | posix) thread_file='posix' ;;
813   esac
814   tmake_file="t-slibgcc"
815   case $target in
816     *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
817       :;;
818     *-*-gnu*)
819       native_system_header_dir=/include
820       ;;
821   esac
822   # Linux C libraries selection switch: glibc / uclibc / bionic.
823   # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
824   case $target in
825     *linux*)
826       tm_p_file="${tm_p_file} linux-protos.h"
827       tmake_file="${tmake_file} t-linux"
828       extra_objs="${extra_objs} linux.o"
829       extra_options="${extra_options} linux.opt"
830       ;;
831   esac
832   case $target in
833     *-*-*android*)
834       tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
835       ;;
836     *-*-*uclibc* | *-*-uclinuxfdpiceabi)
837       tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
838       ;;
839     *-*-*musl*)
840       tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
841       ;;
842     *)
843       tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
844       ;;
845   esac
846   # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
847   # is provided.
848   default_use_cxa_atexit=yes
849   use_gcc_tgmath=no
850   use_gcc_stdint=wrap
851   # Enable compilation for Android by default for *android* targets.
852   case $target in
853     *-*-*android*)
854       tm_defines="$tm_defines ANDROID_DEFAULT=1"
855       ;;
856     *)
857       tm_defines="$tm_defines ANDROID_DEFAULT=0"
858       ;;
859   esac
860   c_target_objs="${c_target_objs} glibc-c.o"
861   cxx_target_objs="${cxx_target_objs} glibc-c.o"
862   d_target_objs="${d_target_objs} glibc-d.o"
863   tmake_file="${tmake_file} t-glibc"
864   target_has_targetcm=yes
865   target_has_targetdm=yes
866   case $target in
867     *-*-*uclibc* | *-*-uclinuxfdpiceabi)
868       ;;
869     *)
870       # Linux targets always support .init_array.
871       gcc_cv_initfini_array=yes
872       ;;
873   esac
874   ;;
875 *-*-netbsd*)
876   tm_p_file="${tm_p_file} netbsd-protos.h"
877   tmake_file="t-netbsd t-slibgcc"
878   extra_objs="${extra_objs} netbsd.o"
879   d_target_objs="${d_target_objs} netbsd-d.o"
880   gas=yes
881   gnu_ld=yes
882   use_gcc_stdint=wrap
883   case ${enable_threads} in
884     "" | yes | posix) thread_file='posix' ;;
885   esac
886   nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
887   default_use_cxa_atexit=yes
888   target_has_targetdm=yes
889   case ${target} in
890     arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
891       default_gnu_indirect_function=yes
892       ;;
893   esac
894   ;;
895 *-*-openbsd*)
896   tmake_file="t-openbsd"
897   case ${enable_threads} in
898     yes)
899       thread_file='posix'
900       ;;
901   esac
902   case ${target} in
903     *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
904       default_use_cxa_atexit=yes
905       ;;
906   esac
907   d_target_objs="${d_target_objs} openbsd-d.o"
908   target_has_targetdm=yes
909   ;;
910 *-*-phoenix*)
911   gas=yes
912   gnu_ld=yes
913   default_use_cxa_atexit=yes
914   ;;
915 *-*-rtems*)
916   case ${enable_threads} in
917     "" | yes | rtems) thread_file='rtems' ;;
918     posix) thread_file='posix' ;;
919     no) ;;
920     *)
921       echo 'Unknown thread configuration for RTEMS'
922       exit 1
923       ;;
924   esac
925   tmake_file="${tmake_file} t-rtems"
926   extra_options="${extra_options} rtems.opt"
927   default_use_cxa_atexit=yes
928   use_gcc_stdint=wrap
929   ;;
930 *-*-uclinux*)
931   extra_options="$extra_options gnu-user.opt"
932   use_gcc_stdint=wrap
933   case ${enable_threads} in
934     "" | yes | posix) thread_file='posix' ;;
935   esac
936   tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
937   ;;
938 *-*-rdos*)
939   use_gcc_stdint=wrap
940   ;;
941 *-*-solaris2*)
942   # i?86-*-solaris2* needs to insert headers between cpu default and
943   # Solaris 2 specific ones.
944   sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
945   sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
946   sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
947   case ${target} in
948     *-*-solaris2.1[1-9]*)
949       # __cxa_atexit was introduced in Solaris 11.4.
950       default_use_cxa_atexit=yes
951       ;;
952   esac
953   use_gcc_stdint=wrap
954   if test x$gnu_ld = xyes; then
955     tm_file="usegld.h ${tm_file}"
956   fi
957   if test x$gas = xyes; then
958     tm_file="usegas.h ${tm_file}"
959   fi
960   tm_p_file="${tm_p_file} sol2-protos.h"
961   tmake_file="${tmake_file} t-sol2 t-slibgcc"
962   c_target_objs="${c_target_objs} sol2-c.o"
963   cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
964   d_target_objs="${d_target_objs} sol2-d.o"
965   extra_objs="${extra_objs} sol2.o sol2-stubs.o"
966   extra_options="${extra_options} sol2.opt"
967   case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
968     "":yes:* | yes:yes:* )
969       thread_file=posix
970       ;;
971   esac
972   target_has_targetdm=yes
973   ;;
974 *-*-*vms*)
975   extra_options="${extra_options} vms/vms.opt"
976   xmake_file=vms/x-vms
977   tmake_file="vms/t-vms t-slibgcc"
978   extra_objs="vms.o"
979   target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
980   tm_p_file="${tm_p_file} vms/vms-protos.h"
981   xm_file="vms/xm-vms.h"
982   c_target_objs="vms-c.o"
983   cxx_target_objs="vms-c.o"
984   fortran_target_objs="vms-f.o"
985   use_gcc_stdint=provide
986   tm_file="${tm_file} vms/vms-stdint.h"
987   if test x$gnu_ld != xyes; then
988     # Build wrappers for native case.
989     extra_programs="ld\$(exeext) ar\$(exeext)"
990     tmake_file="$tmake_file vms/t-vmsnative"
991   fi
992   ;;
993 *-*-vxworks*)
994   tmake_file=t-vxworks
995   xm_defines=POSIX
997   extra_options="${extra_options} vxworks.opt"
998   extra_objs="$extra_objs vxworks.o"
1000   c_target_objs="${c_target_objs} vxworks-c.o"
1001   cxx_target_objs="${cxx_target_objs} vxworks-c.o"
1002   extra_headers="${extra_headers} ../vxworks/vxworks-predef.h"
1003   target_has_targetcm="yes"
1005   # This private header exposes a consistent interface for checks on
1006   # the VxWorks version our runtime header files need to perform, based on
1007   # what the system headers adverstise:
1009   extra_headers="${extra_headers} ../vxworks/_vxworks-versions.h"
1011   # Starting from VxWorks 7, the system comes with a Dinkumware
1012   # environment which requires the inclusion of "yvals.h" before other
1013   # system headers.  We provide wrapped versions of a few headers to
1014   # accomodate such constraints:
1016   extra_headers="${extra_headers} ../vxworks/_yvals.h"
1017   extra_headers="${extra_headers} ../vxworks/_yvals-wrapper.h"
1019   extra_headers="${extra_headers} ../vxworks/math.h ../vxworks/complex.h"
1020   extra_headers="${extra_headers} ../vxworks/inttypes.h ../vxworks/setjmp.h"
1022   # We provide (a tailored version of) stdint.h
1023   tm_file="${tm_file} vxworks-stdint.h"
1024   use_gcc_stdint=provide
1026   case ${enable_threads} in
1027     no) ;;
1028     "" | yes | vxworks) thread_file='vxworks' ;;
1029     *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
1030   esac
1032   # A few common macro definitions conveying general characteristics
1033   # of the configuration at hand. Note that by VxWorks 7, we mean the
1034   # the SR6xx major update or beyond in vendor parlance:
1036   case $target in
1037     *-*-vxworks7*)
1038       tm_defines="$tm_defines TARGET_VXWORKS7=1"
1039       ;;
1040   esac
1041   case $target in
1042     *64-*-vxworks*)
1043       tm_defines="$tm_defines TARGET_VXWORKS64=1"
1044       ;;
1045   esac
1047   # Then a few build configuration controls for VxWorks 7, which
1048   # has specificities on top of which we aim to provide more complete
1049   # C++ support:
1051   case $target in
1052     *-*-vxworks7*)
1053       # VxWorks 7 always has init/fini_array support and it is simpler to
1054       # just leverage this, sticking to what the system toolchain does:
1055       gcc_cv_initfini_array=yes
1056       ;;
1057   esac
1058   ;;
1059 *-*-elf|arc*-*-elf*)
1060   # Assume that newlib is being used and so __cxa_atexit is provided.
1061   default_use_cxa_atexit=yes
1062   use_gcc_stdint=wrap
1063   ;;
1064 esac
1066 case ${target} in
1067 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
1068         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
1069         tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
1070         tmake_file="${tmake_file} aarch64/t-aarch64"
1071         case $target in
1072         aarch64-*-elf*)
1073                 use_gcc_stdint=wrap
1074                 ;;
1075         aarch64-*-fuchsia*)
1076                 tm_file="${tm_file} fuchsia.h"
1077                 ;;
1078         aarch64-*-rtems*)
1079                 tm_file="${tm_file} aarch64/rtems.h rtems.h"
1080                 ;;
1081         esac
1082         case $target in
1083         aarch64_be-*)
1084                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1085                 ;;
1086         esac
1087         aarch64_multilibs="${with_multilib_list}"
1088         if test "$aarch64_multilibs" = "default"; then
1089                 aarch64_multilibs="lp64,ilp32"
1090         fi
1091         aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1092         for aarch64_multilib in ${aarch64_multilibs}; do
1093                 case ${aarch64_multilib} in
1094                 ilp32 | lp64 )
1095                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1096                         ;;
1097                 *)
1098                         echo "--with-multilib-list=${aarch64_multilib} not supported."
1099                         exit 1
1100                 esac
1101         done
1102         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1103         ;;
1104 aarch64*-*-freebsd*)
1105         tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
1106         tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
1107         tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1108         tm_defines="${tm_defines}  TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1109         ;;
1110 aarch64*-*-netbsd*)
1111         tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
1112         tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
1113         tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1114         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1115         ;;
1116 aarch64*-*-linux*)
1117         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
1118         tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
1119         tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1120         tm_defines="${tm_defines}  TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1121         case $target in
1122         aarch64_be-*)
1123                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1124                 ;;
1125         esac
1126         aarch64_multilibs="${with_multilib_list}"
1127         if test "$aarch64_multilibs" = "default"; then
1128                 # TODO: turn on ILP32 multilib build after its support is mature.
1129                 # aarch64_multilibs="lp64,ilp32"
1130                 aarch64_multilibs="lp64"
1131         fi
1132         aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1133         for aarch64_multilib in ${aarch64_multilibs}; do
1134                 case ${aarch64_multilib} in
1135                 ilp32 | lp64 )
1136                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1137                         ;;
1138                 *)
1139                         echo "--with-multilib-list=${aarch64_multilib} not supported."
1140                         exit 1
1141                 esac
1142         done
1143         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1144         ;;
1145 aarch64*-wrs-vxworks*)
1146         tm_file="${tm_file} elfos.h aarch64/aarch64-elf.h"
1147         tm_file="${tm_file} vx-common.h vxworks.h aarch64/aarch64-vxworks.h"
1148         tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-vxworks"
1149         ;;
1150 alpha*-*-linux*)
1151         tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1152         tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1153         extra_options="${extra_options} alpha/elf.opt"
1154         ;;
1155 alpha*-*-netbsd*)
1156         tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1157         tmake_file="${tmake_file} alpha/t-alpha"
1158         extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1159                        alpha/elf.opt"
1160         ;;
1161 alpha*-*-openbsd*)
1162         tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
1163         tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1164         tmake_file="${tmake_file} alpha/t-alpha"
1165         extra_options="${extra_options} openbsd.opt alpha/elf.opt"
1166         # default x-alpha is only appropriate for dec-osf.
1167         ;;
1168 alpha*-dec-*vms*)
1169         tm_file="${tm_file} vms/vms.h alpha/vms.h"
1170         tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
1171         ;;
1172 arc*-*-elf*)
1173         tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
1174         tmake_file="arc/t-multilib arc/t-arc"
1175         extra_gcc_objs="driver-arc.o"
1176         if test "x$with_cpu" != x; then
1177                 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1178         fi
1179         if test x${with_endian} = x; then
1180                 case ${target} in
1181                 arc*be-*-* | arc*eb-*-*)        with_endian=big ;;
1182                 *)                              with_endian=little ;;
1183                 esac
1184         fi
1185         case ${with_endian} in
1186         big|little)             ;;
1187         *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
1188         esac
1189         case ${with_endian} in
1190         big*)   tm_file="arc/big.h ${tm_file}"
1191         esac
1192         ;;
1193 arc*-*-linux*)
1194         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}"
1195         tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
1196         extra_gcc_objs="driver-arc.o"
1197         if test "x$with_cpu" != x; then
1198                 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1199         fi
1200         if test x${with_endian} = x; then
1201                 case ${target} in
1202                 arc*be-*-* | arc*eb-*-*)        with_endian=big ;;
1203                 *)                              with_endian=little ;;
1204                 esac
1205         fi
1206         case ${with_endian} in
1207         big|little)             ;;
1208         *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
1209         esac
1210         case ${with_endian} in
1211         big*)   tm_file="arc/big.h ${tm_file}"
1212         esac
1213         # Force .init_array support.  The configure script cannot always
1214         # automatically detect that GAS supports it, yet we require it.
1215         gcc_cv_initfini_array=yes
1216         ;;
1217 arm-wrs-vxworks7*)
1218         # We only support VxWorks 7 now on ARM, post SR600.  Pre SR600
1219         # VxWorks 7 was transitory and major versions prior to 7 were based
1220         # on long deprecated ABI, not supported at all any more regardless
1221         # of VxWorks.
1222         extra_options="${extra_options} arm/vxworks.opt"
1223         tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1224         tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1225         tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1226         target_cpu_cname="generic-armv7-a"
1227         need_64bit_hwint=yes
1228         ;;
1229 arm*-*-freebsd*)                # ARM FreeBSD EABI
1230         tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1231         case $target in
1232         arm*b-*-freebsd*)
1233             tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1234             ;;
1235         esac
1236         tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1237         tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1238         case $target in
1239         armv6*-*-freebsd*)
1240             target_cpu_cname="arm1176jzf-s"
1241             if test $fbsd_major -ge 11; then
1242                tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1243             fi
1244             ;;
1245         armv7*-*-freebsd*)
1246             target_cpu_cname="generic-armv7-a"
1247             tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1248             ;;
1249         *)
1250             target_cpu_cname="arm9"
1251             ;;
1252         esac
1253         with_tls=${with_tls:-gnu}
1254         ;;
1255 arm*-*-netbsdelf*)
1256         target_cpu_cname="strongarm"
1257         tmake_file="${tmake_file} arm/t-arm"
1258         tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1259         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1260         case ${target} in
1261         arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1262         esac
1263         case ${target} in
1264         arm*-*-netbsdelf-*eabi*)
1265             tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1266             tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1267             ;;
1268         *)
1269             tm_file="$tm_file arm/netbsd-elf.h"
1270             tmake_file="$tmake_file arm/t-netbsd"
1271             ;;
1272         esac
1273         tm_file="${tm_file} arm/aout.h arm/arm.h"
1274         case ${target} in
1275         arm*-*-netbsdelf-*eabihf*)
1276             # Hard-float requires at least Arm v5te
1277             target_cpu_cname="arm10e"
1278             tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1279             ;;
1280         esac
1281         case ${target} in
1282         armv6*) target_cpu_cname="arm1176jzf-s";;
1283         armv7*) target_cpu_cname="generic-armv7-a";;
1284         esac
1285         ;;
1286 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1287         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"
1288         extra_options="${extra_options} linux-android.opt"
1289         case $target in
1290         arm*b-*-linux*)
1291             tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1292             ;;
1293         esac
1294         tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1295         tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
1296         case $target in
1297         arm*-*-uclinuxfdpiceabi)
1298             tm_file="$tm_file arm/uclinuxfdpiceabi.h"
1299             ;;
1300         esac
1301         # Generation of floating-point instructions requires at least ARMv5te.
1302         if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1303             target_cpu_cname="arm10e"
1304         else
1305             target_cpu_cname="arm10tdmi"
1306         fi
1307         # Define multilib configuration for arm-linux-androideabi.
1308         case ${target} in
1309         *-androideabi)
1310             tmake_file="$tmake_file arm/t-linux-androideabi"
1311             ;;
1312         esac
1313         # The EABI requires the use of __cxa_atexit.
1314         default_use_cxa_atexit=yes
1315         with_tls=${with_tls:-gnu}
1316         ;;
1317 arm*-*-uclinux*eabi*)           # ARM ucLinux
1318         tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1319         tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1320         tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
1321         target_cpu_cname="arm7tdmi"
1322         # The EABI requires the use of __cxa_atexit.
1323         default_use_cxa_atexit=yes
1324         ;;
1325 arm*-*-phoenix*)
1326         tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1327         tm_file="${tm_file} newlib-stdint.h phoenix.h"
1328         tm_file="${tm_file} arm/aout.h arm/arm.h"
1329         tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
1330         target_cpu_cname="arm7tdmi"
1331         ;;
1332 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
1333         case ${target} in
1334         arm*eb-*-eabi*)
1335           tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1336         esac
1337         default_use_cxa_atexit=yes
1338         tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1339         tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1340         target_cpu_cname="arm7tdmi"
1341         case ${target} in
1342         arm*-*-eabi*)
1343           tm_file="$tm_file newlib-stdint.h"
1344           tmake_file="${tmake_file} arm/t-bpabi"
1345           use_gcc_stdint=wrap
1346           ;;
1347         arm*-*-fuchsia*)
1348           tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
1349           tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
1350           target_cpu_cname="generic-armv7-a"
1351           ;;
1352         arm*-*-rtems*)
1353           tm_file="${tm_file} arm/rtems.h rtems.h newlib-stdint.h"
1354           tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1355           ;;
1356         arm*-*-symbianelf*)
1357           tm_file="${tm_file} arm/symbian.h"
1358           # We do not include t-bpabi for Symbian OS because the system
1359           # provides its own implementation of the BPABI functions.
1360           tmake_file="${tmake_file} arm/t-symbian"
1361           target_cpu_cname="arm10tdmi"
1362           ;;
1363         esac
1364         tm_file="${tm_file} arm/aout.h arm/arm.h"
1365         ;;
1366 avr-*-*)
1367         tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1368         if test x${with_avrlibc} != xno; then
1369             tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1370             tm_defines="${tm_defines} WITH_AVRLIBC"
1371         fi
1372         # Work out avr_double_comparison which is 2 or 3 and is used in
1373         # target hook FLOAT_LIB_COMPARE_RETURNS_BOOL to determine whether
1374         # DFmode comparisons return 3-state or 2-state results.
1375         case y${with_double_comparison} in
1376             y | ytristate)
1377                 avr_double_comparison=3
1378                 ;;
1379             ybool | ylibf7)
1380                 avr_double_comparison=2
1381                 ;;
1382             *)
1383                 echo "Error: --with-double-comparison= can only be used with: 'tristate', 'bool', 'libf7'" 1>&2
1384                 exit 1
1385                 ;;
1386         esac
1387         case "y${with_libf7}" in
1388             yno)
1389                 # avr_double_comparison as set above.
1390                 ;;
1391             ylibgcc)
1392                 avr_double_comparison=2
1393                 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1394                 ;;
1395             y | yyes | ymath-symbols)
1396                 avr_double_comparison=2
1397                 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1398                 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1399                 tm_defines="${tm_defines} WITH_LIBF7_MATH_SYMBOLS"
1400                 ;;
1401             ymath)
1402                 avr_double_comparison=2
1403                 tm_defines="${tm_defines} WITH_LIBF7_LIBGCC"
1404                 tm_defines="${tm_defines} WITH_LIBF7_MATH"
1405                 ;;
1406             *)
1407                 echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
1408                 exit 1
1409                 ;;
1410         esac
1411         tm_defines="${tm_defines} WITH_DOUBLE_COMPARISON=${avr_double_comparison}"
1412         case y${with_double} in
1413             y32)
1414                 avr_double=32
1415                 tm_defines="${tm_defines} HAVE_DOUBLE32"
1416                 ;;
1417             y64)
1418                 avr_double=64
1419                 tm_defines="${tm_defines} HAVE_DOUBLE64"
1420                 ;;
1421             y64,32)
1422                 avr_double=64
1423                 avr_double_multilib=1
1424                 tm_defines="${tm_defines} HAVE_DOUBLE32"
1425                 tm_defines="${tm_defines} HAVE_DOUBLE64"
1426                 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1427                 ;;
1428             y | y32,64)
1429                 avr_double=32
1430                 avr_double_multilib=1
1431                 tm_defines="${tm_defines} HAVE_DOUBLE32"
1432                 tm_defines="${tm_defines} HAVE_DOUBLE64"
1433                 tm_defines="${tm_defines} HAVE_DOUBLE_MULTILIB"
1434                 ;;
1435             *)
1436                 echo "Error: --with-double= can only be used with: '32', '32,64', '64,32', '64'" 1>&2
1437                 exit 1
1438                 ;;
1439         esac
1440         case y${with_long_double} in
1441             y32)
1442                 avr_long_double=32
1443                 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1444                 ;;
1445             y64)
1446                 avr_long_double=64
1447                 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1448                 ;;
1449             y | y64,32)
1450                 avr_long_double=64
1451                 avr_long_double_multilib=1
1452                 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1453                 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1454                 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1455                 ;;
1456             y32,64)
1457                 avr_long_double=32
1458                 avr_long_double_multilib=1
1459                 tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1460                 tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1461                 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_MULTILIB"
1462                 ;;
1463             ydouble)
1464                 avr_long_double=${avr_double}
1465                 tm_defines="${tm_defines} HAVE_LONG_DOUBLE_IS_DOUBLE"
1466                 if test y${avr_double_multilib} = y1; then
1467                     tm_defines="${tm_defines} HAVE_LONG_DOUBLE32"
1468                     tm_defines="${tm_defines} HAVE_LONG_DOUBLE64"
1469                 else
1470                     tm_defines="${tm_defines} HAVE_LONG_DOUBLE${avr_long_double}"
1471                 fi
1472                 ;;
1473             *)
1474                 echo "Error: --with-long_double= can only be used with: '32', '32,64', '64,32', '64', 'double'" 1>&2
1475                 exit 1
1476                 ;;
1477         esac
1478         if test ${avr_long_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 32xy1z; then
1479             if test y${with_long_double} != ydouble; then
1480                 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
1481                 exit 1
1482             fi
1483         fi
1484         if test ${avr_double}x${avr_long_double_multilib}y${avr_double_multilib}z = 64x1yz; then
1485             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
1486             exit 1
1487         fi
1488         if test y${avr_double}${avr_long_double} = y6432; then
1489             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
1490             exit 1
1491         fi
1492         tm_defines="${tm_defines} WITH_DOUBLE${avr_double}"
1493         tm_defines="${tm_defines} WITH_LONG_DOUBLE${avr_long_double}"
1494         tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1495         use_gcc_stdint=wrap
1496         extra_gcc_objs="driver-avr.o avr-devices.o"
1497         extra_objs="avr-devices.o avr-log.o"
1498         ;;
1499 bfin*-elf*)
1500         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1501         tmake_file=bfin/t-bfin-elf
1502         use_collect2=no
1503         ;;
1504 bfin*-uclinux*)
1505         tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1506         tmake_file=bfin/t-bfin-uclinux
1507         use_collect2=no
1508         ;;
1509 bfin*-linux-uclibc*)
1510         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"
1511         tmake_file="${tmake_file} bfin/t-bfin-linux"
1512         use_collect2=no
1513         ;;
1514 bfin*-rtems*)
1515         tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1516         tmake_file="${tmake_file} bfin/t-rtems"
1517         ;;
1518 bfin*-*)
1519         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1520         use_collect2=no
1521         use_gcc_stdint=wrap
1522         ;;
1523 bpf-*-*)
1524         tm_file="elfos.h ${tm_file}"
1525         tmake_file="${tmake_file} bpf/t-bpf"
1526         use_collect2=no
1527         extra_headers="bpf-helpers.h"
1528         use_gcc_stdint=provide
1529         extra_objs="coreout.o"
1530         target_gtfiles="$target_gtfiles \$(srcdir)/config/bpf/coreout.c"
1531         ;;
1532 cr16-*-elf)
1533         tm_file="elfos.h ${tm_file} newlib-stdint.h"
1534         tmake_file="${tmake_file} cr16/t-cr16 "
1535         use_collect2=no
1536         ;;
1537 cris-*-elf | cris-*-none)
1538         tm_file="elfos.h newlib-stdint.h ${tm_file}"
1539         tmake_file="cris/t-cris cris/t-elfmulti"
1540         gas=yes
1541         extra_options="${extra_options} cris/elf.opt"
1542         use_gcc_stdint=wrap
1543         ;;
1544 csky-*-*)
1545         if test x${with_endian} != x; then
1546             case ${with_endian} in
1547                 big|little)             ;;
1548                 *)
1549                     echo "with_endian=${with_endian} not supported."
1550                     exit 1
1551                     ;;
1552             esac
1553         fi
1554         if test x${with_float} != x; then
1555             case ${with_float} in
1556                 soft | hard) ;;
1557                 *) echo
1558                     "Unknown floating point type used in --with-float=$with_float"
1559                     exit 1
1560                     ;;
1561             esac
1562         fi
1563         tm_file="csky/csky.h"
1564         md_file="csky/csky.md"
1565         out_file="csky/csky.c"
1566         tm_p_file="${tm_p_file} csky/csky-protos.h"
1567         extra_options="${extra_options} csky/csky_tables.opt"
1569         if test x${enable_tpf_debug} = xyes; then
1570             tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1571         fi
1573         case ${target} in
1574             csky-*-elf*)
1575                 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1576                 tmake_file="csky/t-csky csky/t-csky-elf"
1577                 default_use_cxa_atexit=no
1578                 use_gcc_stdint=wrap
1579                 ;;
1580             csky-*-linux*)
1581                 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1582                 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1584                 case ${target} in
1585                     csky-*-linux-gnu*)
1586                         tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
1587                         # Force .init_array support.  The configure script cannot always
1588                         # automatically detect that GAS supports it, yet we require it.
1589                         gcc_cv_initfini_array=yes
1590                         ;;
1591                     csky-*-linux-uclibc*)
1592                         tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1593                         default_use_cxa_atexit=no
1594                         ;;
1595                     *)
1596                         echo "Unknown target $target"
1597                         exit 1
1598                         ;;
1599                 esac
1600                 ;;
1601             *)
1602                 echo "Unknown target $target"
1603                 exit 1
1604                 ;;
1605         esac
1606         ;;
1607 epiphany-*-elf | epiphany-*-rtems*)
1608         tm_file="${tm_file} dbxelf.h elfos.h"
1609         tmake_file="${tmake_file} epiphany/t-epiphany"
1610         case ${target} in
1611         epiphany-*-rtems*)
1612           tm_file="${tm_file} epiphany/rtems.h rtems.h newlib-stdint.h"
1613           ;;
1614         *)
1615           tm_file="${tm_file} newlib-stdint.h"
1616           ;;
1617         esac
1618         extra_options="${extra_options} fused-madd.opt"
1619         extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1620         tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1621         extra_headers="epiphany_intrinsics.h"
1622         ;;
1623 fr30-*-elf)
1624         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1625         ;;
1626 frv-*-elf)
1627         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1628         tmake_file=frv/t-frv
1629         ;;
1630 frv-*-*linux*)
1631         tm_file="dbxelf.h elfos.h ${tm_file} \
1632                  gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1633         tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1634         ;;
1635 ft32-*-elf)
1636         gas=yes
1637         gnu_ld=yes
1638         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1639         tmake_file="${tmake_file} ft32/t-ft32"
1640         ;;
1641 amdgcn-*-amdhsa)
1642         tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1643         tmake_file="gcn/t-gcn-hsa"
1644         native_system_header_dir=/include
1645         extra_modes=gcn/gcn-modes.def
1646         extra_objs="${extra_objs} gcn-tree.o"
1647         extra_gcc_objs="driver-gcn.o"
1648         case "$host" in
1649         x86_64*-*-linux-gnu )
1650                 if test "$ac_cv_search_dlopen" != no; then
1651                         extra_programs="${extra_programs} gcn-run\$(exeext)"
1652                 fi
1653                 ;;
1654         esac
1655         if test x$enable_as_accelerator = xyes; then
1656                 extra_programs="${extra_programs} mkoffload\$(exeext)"
1657                 tm_file="${tm_file} gcn/offload.h"
1658         fi
1659         # Force .init_array support.
1660         gcc_cv_initfini_array=yes
1661         thread_file=gcn
1662         ;;
1663 moxie-*-elf)
1664         gas=yes
1665         gnu_ld=yes
1666         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1667         tmake_file="${tmake_file} moxie/t-moxie"
1668         ;;
1669 moxie-*-uclinux*)
1670         gas=yes
1671         gnu_ld=yes
1672         tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1673         tmake_file="${tmake_file} moxie/t-moxie"
1674         ;;
1675 moxie-*-rtems*)
1676         tmake_file="${tmake_file} moxie/t-moxie"
1677         tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1678         ;;
1679 moxie-*-moxiebox*)
1680         gas=yes
1681         gnu_ld=yes
1682         tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1683         tmake_file="${tmake_file} moxie/t-moxiebox"
1684         ;;
1685 h8300-*-elf*)
1686         tmake_file="h8300/t-h8300"
1687         tm_file="h8300/h8300.h elfos.h newlib-stdint.h h8300/elf.h"
1688         ;;
1689 h8300-*-linux*)
1690         tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1691         tm_file="h8300/h8300.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1692         ;;
1693 hppa*64*-*-linux*)
1694         target_cpu_default="MASK_PA_11|MASK_PA_20"
1695         tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1696                  glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1697                  pa/pa64-linux.h"
1698         tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1699         d_target_objs="${d_target_objs} pa-d.o"
1700         gas=yes gnu_ld=yes
1701         ;;
1702 hppa*-*-linux*)
1703         target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1704         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1705                  pa/pa32-regs.h pa/pa32-linux.h"
1706         tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1707         d_target_objs="${d_target_objs} pa-d.o"
1708         ;;
1709 hppa*-*-openbsd*)
1710         target_cpu_default="MASK_PA_11"
1711         tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1712                  pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1713         extra_options="${extra_options} openbsd.opt"
1714         tmake_file="pa/t-pa"
1715         d_target_objs="${d_target_objs} pa-d.o"
1716         gas=yes
1717         gnu_ld=yes
1718         ;;
1719 hppa*-*-netbsd*)
1720         target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1721         tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} \
1722                  pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1723         tmake_file="${tmake_file}"
1724         tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1725         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1726         ;;
1727 hppa[12]*-*-hpux10*)
1728         case ${target} in
1729         hppa1.1-*-* | hppa2*-*-*)
1730                 target_cpu_default="MASK_PA_11"
1731                 ;;
1732         esac
1733         tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1734                  pa/pa-hpux.h pa/pa-hpux10.h"
1735         extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1736         case ${target} in
1737         *-*-hpux10.[1-9]*)
1738                 tm_file="${tm_file} pa/pa-hpux1010.h"
1739                 extra_options="${extra_options} pa/pa-hpux1010.opt"
1740                 ;;
1741         esac
1742         use_gcc_stdint=provide
1743         tm_file="${tm_file} hpux-stdint.h"
1744         tmake_file="pa/t-pa t-slibgcc"
1745         d_target_objs="${d_target_objs} pa-d.o"
1746         case ${enable_threads} in
1747           "")
1748             if test x$have_pthread_h = xyes ; then
1749               tmake_file="${tmake_file} pa/t-dce-thr"
1750             fi
1751             ;;
1752           yes | dce)
1753             tmake_file="${tmake_file} pa/t-dce-thr"
1754             ;;
1755         esac
1756         use_collect2=yes
1757         gas=yes
1758         if test "x$with_dwarf2" != x; then
1759                 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1760                 dwarf2=no
1761         fi
1762         ;;
1763 hppa*64*-*-hpux11*)
1764         target_cpu_default="MASK_PA_11|MASK_PA_20"
1765         if test x$gnu_ld = xyes
1766         then
1767                 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1768         fi
1769         tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1770                  pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1771                  pa/pa-hpux11.h"
1772         case ${target} in
1773         *-*-hpux11.[12]*)
1774                 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1775                 extra_options="${extra_options} pa/pa-hpux1111.opt"
1776                 ;;
1777         *-*-hpux11.[3-9]*)
1778                 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1779                 extra_options="${extra_options} pa/pa-hpux1131.opt"
1780                 ;;
1781         *)
1782                 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1783                 ;;
1784         esac
1785         extra_options="${extra_options} pa/pa-hpux.opt \
1786                        pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1787         tmake_file="pa/t-pa t-slibgcc"
1788         d_target_objs="${d_target_objs} pa-d.o"
1789         case x${enable_threads} in
1790         x | xyes | xposix )
1791                 thread_file=posix
1792                 ;;
1793         esac
1794         gas=yes
1795         case ${target} in
1796           *-*-hpux11.[01]*)
1797                 use_gcc_stdint=provide
1798                 tm_file="${tm_file} hpux-stdint.h"
1799                 ;;
1800           *-*-hpux11.[23]*)
1801                 use_gcc_stdint=wrap
1802                 tm_file="${tm_file} hpux-stdint.h"
1803                 ;;
1804         esac
1805         ;;
1806 hppa[12]*-*-hpux11*)
1807         case ${target} in
1808         hppa1.1-*-* | hppa2*-*-*)
1809                 target_cpu_default="MASK_PA_11"
1810                 ;;
1811         esac
1812         tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1813                  pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1814         extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1815                        hpux11.opt"
1816         case ${target} in
1817         *-*-hpux11.[12]*)
1818                 tm_file="${tm_file} pa/pa-hpux1111.h"
1819                 extra_options="${extra_options} pa/pa-hpux1111.opt"
1820                 ;;
1821         *-*-hpux11.[3-9]*)
1822                 tm_file="${tm_file} pa/pa-hpux1131.h"
1823                 extra_options="${extra_options} pa/pa-hpux1131.opt"
1824                 ;;
1825         esac
1826         tmake_file="pa/t-pa t-slibgcc"
1827         d_target_objs="${d_target_objs} pa-d.o"
1828         case x${enable_threads} in
1829         x | xyes | xposix )
1830                 thread_file=posix
1831                 ;;
1832         esac
1833         use_collect2=yes
1834         gas=yes
1835         case ${target} in
1836           *-*-hpux11.[01]*)
1837                 use_gcc_stdint=provide
1838                 tm_file="${tm_file} hpux-stdint.h"
1839                 ;;
1840           *-*-hpux11.[23]*)
1841                 use_gcc_stdint=wrap
1842                 tm_file="${tm_file} hpux-stdint.h"
1843                 ;;
1844         esac
1845         if test "x$with_dwarf2" != x; then
1846                 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1847                 dwarf2=no
1848         fi
1849         ;;
1850 i[34567]86-*-darwin1[89]* | i[34567]86-*-darwin2[0-9]*)
1851         echo "Error: 32bit target is not supported after Darwin17" 1>&2
1852         ;;
1853 i[34567]86-*-darwin*)
1854         need_64bit_isa=yes
1855         # Baseline choice for a machine that allows m64 support.
1856         with_cpu=${with_cpu:-core2}
1857         tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1858         tm_file="${cpu_type}/darwin32-biarch.h ${tm_file} "
1859         ;;
1860 x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
1861         # Only 64b from now
1862         tm_defines="${tm_defines} TARGET_64BIT_DEFAULT=(OPTION_MASK_ISA_64BIT|OPTION_MASK_ABI_64)"
1863         tm_defines="${tm_defines} TARGET_BI_ARCH=0"
1864         with_cpu=${with_cpu:-core2}
1865         tmake_file="${tmake_file} t-slibgcc"
1866         ;;
1867 x86_64-*-darwin*)
1868         with_cpu=${with_cpu:-core2}
1869         tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1870         tm_file="${cpu_type}/darwin64-biarch.h ${tm_file} "
1871         ;;
1872 i[34567]86-*-elfiamcu)
1873         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1874         ;;
1875 i[34567]86-*-elf*)
1876         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1877         ;;
1878 x86_64-*-elf*)
1879         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1880         ;;
1881 x86_64-*-rtems*)
1882         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"
1883         ;;
1884 i[34567]86-*-rdos*)
1885     tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1886     ;;
1887 x86_64-*-rdos*)
1888     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"
1889     tmake_file="i386/t-i386elf t-svr4"
1890     ;;
1891 i[34567]86-*-dragonfly*)
1892         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1893         tmake_file="${tmake_file} i386/t-crtstuff"
1894         ;;
1895 x86_64-*-dragonfly*)
1896         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"
1897         tmake_file="${tmake_file} i386/t-crtstuff"
1898         ;;
1899 i[34567]86-*-freebsd*)
1900         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1901         ;;
1902 x86_64-*-freebsd*)
1903         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"
1904         ;;
1905 i[34567]86-*-netbsdelf*)
1906         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1907         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1908         ;;
1909 x86_64-*-netbsd*)
1910         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1911         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1912         ;;
1913 i[34567]86-*-openbsd*)
1914         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1915         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1916         extra_options="${extra_options} openbsd.opt"
1917         gas=yes
1918         gnu_ld=yes
1919         ;;
1920 x86_64-*-openbsd*)
1921         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1922         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1923         extra_options="${extra_options} openbsd.opt"
1924         gas=yes
1925         gnu_ld=yes
1926         ;;
1927 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1928                         # Intel 80386's running GNU/*
1929                         # with ELF format using glibc 2
1930         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1931         case ${target} in
1932         i[34567]86-*-linux*)
1933                 tm_file="${tm_file} linux.h linux-android.h"
1934                 extra_options="${extra_options} linux-android.opt"
1935                 if test x$enable_targets = xall; then
1936                         tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1937                         tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1938                         tmake_file="${tmake_file} i386/t-linux64"
1939                         x86_multilibs="${with_multilib_list}"
1940                         if test "$x86_multilibs" = "default"; then
1941                                 x86_multilibs="m64,m32"
1942                         fi
1943                         x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1944                         for x86_multilib in ${x86_multilibs}; do
1945                                 case ${x86_multilib} in
1946                                 m32 | m64 | mx32)
1947                                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1948                                         ;;
1949                                 *)
1950                                         echo "--with-multilib-list=${x86_with_multilib} not supported."
1951                                         exit 1
1952                                 esac
1953                         done
1954                         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1955                         need_64bit_isa=yes
1956                         if test x$with_cpu = x; then
1957                                 if test x$with_cpu_64 = x; then
1958                                         with_cpu_64=generic
1959                                 fi
1960                         else
1961                                 case " $x86_cpus $x86_archs $x86_64_archs " in
1962                                 *" $with_cpu "*)
1963                                         ;;
1964                                 *)
1965                                         echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1966                                         echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1967                                         exit 1
1968                                         ;;
1969                                 esac
1970                         fi
1971                 else
1972                         tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1973                 fi
1974                 ;;
1975         i[34567]86-*-kfreebsd*-gnu)
1976                 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1977                 ;;
1978         i[34567]86-*-kopensolaris*-gnu)
1979                 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1980                 ;;
1981         i[34567]86-*-gnu*)
1982                 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1983                 ;;
1984         esac
1985         ;;
1986 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1987         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1988                  i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1989         case ${target} in
1990         x86_64-*-linux*)
1991                 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1992                 extra_options="${extra_options} linux-android.opt"
1993                 ;;
1994         x86_64-*-kfreebsd*-gnu)
1995                 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1996                 ;;
1997         esac
1998         tmake_file="${tmake_file} i386/t-linux64"
1999         x86_multilibs="${with_multilib_list}"
2000         if test "$x86_multilibs" = "default"; then
2001                 case ${with_abi} in
2002                 x32 | mx32)
2003                         x86_multilibs="mx32"
2004                         ;;
2005                 *)
2006                         x86_multilibs="m64,m32"
2007                         ;;
2008                 esac
2009         fi
2010         x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
2011         for x86_multilib in ${x86_multilibs}; do
2012                 case ${x86_multilib} in
2013                 m32 | m64 | mx32)
2014                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
2015                         ;;
2016                 *)
2017                         echo "--with-multilib-list=${x86_with_multilib} not supported."
2018                         exit 1
2019                 esac
2020         done
2021         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2022         ;;
2023 i[34567]86-pc-msdosdjgpp*)
2024         xm_file=i386/xm-djgpp.h
2025         tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
2026         native_system_header_dir=/dev/env/DJDIR/include
2027         extra_options="${extra_options} i386/djgpp.opt"
2028         gnu_ld=yes
2029         gas=yes
2030         use_gcc_stdint=wrap
2031         ;;
2032 i[34567]86-*-lynxos*)
2033         xm_defines=POSIX
2034         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
2035         tmake_file="${tmake_file} t-lynx"
2036         extra_options="${extra_options} lynx.opt"
2037         thread_file=lynx
2038         gnu_ld=yes
2039         gas=yes
2040         ;;
2041 i[34567]86-*-nto-qnx*)
2042         tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
2043         extra_options="${extra_options} i386/nto.opt"
2044         gnu_ld=yes
2045         gas=yes
2046         ;;
2047 i[34567]86-*-rtems*)
2048         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"
2049         tmake_file="${tmake_file} i386/t-rtems"
2050         ;;
2051 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
2052         # Set default arch_32 to pentium4, tune_32 to generic like the other
2053         # i386 targets, although config.guess defaults to i386-pc-solaris2*.
2054         with_arch_32=${with_arch_32:-pentium4}
2055         with_tune_32=${with_tune_32:-generic}
2056         tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
2057         tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2058         tmake_file="$tmake_file i386/t-sol2"
2059         need_64bit_isa=yes
2060         if test x$with_cpu = x; then
2061                 if test x$with_cpu_64 = x; then
2062                         with_cpu_64=generic
2063                 fi
2064         else
2065                 case " $x86_cpus $x86_archs $x86_64_archs " in
2066                 *" $with_cpu "*)
2067                         ;;
2068                 *)
2069                         echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2070                         echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2071                         exit 1
2072                         ;;
2073                 esac
2074         fi
2075         ;;
2076 i[4567]86-wrs-vxworks*|x86_64-wrs-vxworks7*)
2077         tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
2078         case ${target} in
2079           x86_64-*)
2080             need_64bit_isa=yes
2081             tm_file="${tm_file} i386/x86-64.h"
2082             ;;
2083         esac
2084         tm_file="${tm_file} vx-common.h"
2085         case ${target} in
2086           *-vxworksae*)
2087             tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2088             tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
2089             ;;
2090           *)
2091             tm_file="${tm_file} vxworks.h i386/vxworks.h"
2092             tmake_file="${tmake_file} i386/t-vxworks"
2093             ;;
2094         esac
2095         ;;
2096 i[34567]86-*-cygwin*)
2097         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"
2098         xm_file=i386/xm-cygwin.h
2099         tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
2100         target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2101         extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2102         extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2103         c_target_objs="${c_target_objs} msformat-c.o"
2104         cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2105         d_target_objs="${d_target_objs} winnt-d.o"
2106         target_has_targetdm="yes"
2107         if test x$enable_threads = xyes; then
2108                 thread_file='posix'
2109         fi
2110         default_use_cxa_atexit=yes
2111         use_gcc_stdint=wrap
2112         ;;
2113 x86_64-*-cygwin*)
2114         need_64bit_isa=yes
2115         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"
2116         xm_file=i386/xm-cygwin.h
2117         tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
2118         target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2119         extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
2120         extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2121         c_target_objs="${c_target_objs} msformat-c.o"
2122         cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2123         d_target_objs="${d_target_objs} winnt-d.o"
2124         target_has_targetdm="yes"
2125         if test x$enable_threads = xyes; then
2126                 thread_file='posix'
2127         fi
2128         default_use_cxa_atexit=yes
2129         use_gcc_stdint=wrap
2130         tm_defines="${tm_defines} TARGET_CYGWIN64=1"
2131         ;;
2132 i[34567]86-*-mingw* | x86_64-*-mingw*)
2133         tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
2134         xm_file=i386/xm-mingw32.h
2135         c_target_objs="${c_target_objs} winnt-c.o"
2136         cxx_target_objs="${cxx_target_objs} winnt-c.o"
2137         d_target_objs="${d_target_objs} winnt-d.o"
2138         target_has_targetcm="yes"
2139         target_has_targetdm="yes"
2140         case ${target} in
2141                 x86_64-*-* | *-w64-*)
2142                         need_64bit_isa=yes
2143                         ;;
2144                 *)
2145                         ;;
2146         esac
2147         if test x$enable_threads = xposix ; then
2148                 tm_file="${tm_file} i386/mingw-pthread.h"
2149         fi
2150         tm_file="${tm_file} i386/mingw32.h"
2151         # This makes the logic if mingw's or the w64 feature set has to be used
2152         case ${target} in
2153                 *-w64-*)
2154                         user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
2155                         user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
2156                         tm_file="${tm_file} i386/mingw-w64.h"
2157                         if test x$enable_targets = xall; then
2158                                 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
2159                                 if test x$with_cpu = x; then
2160                                         if test x$with_cpu_64 = x; then
2161                                                 with_cpu_64=generic
2162                                         fi
2163                                 else
2164                                         case " $x86_cpus $x86_archs $x86_64_archs " in
2165                                         *" $with_cpu "*)
2166                                                 ;;
2167                                         *)
2168                                                 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
2169                                                 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
2170                                                 exit 1
2171                                                 ;;
2172                                         esac
2173                                 fi
2174                         fi
2175                         ;;
2176                 *)
2177                         ;;
2178         esac
2179         tm_file="${tm_file} i386/mingw-stdint.h"
2180         tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
2181         case ${target} in
2182                x86_64-w64-*)
2183                         tmake_file="${tmake_file} i386/t-mingw-w64"
2184                         ;;
2185                i[34567]86-w64-*)
2186                         tmake_file="${tmake_file} i386/t-mingw-w32"
2187                         ;;
2188         esac
2189         native_system_header_dir=/mingw/include
2190         target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
2191         extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
2192         case ${target} in
2193                 *-w64-*)
2194                         extra_options="${extra_options} i386/mingw-w64.opt"
2195                         ;;
2196                 *)
2197                         ;;
2198         esac
2199         extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2200         c_target_objs="${c_target_objs} msformat-c.o"
2201         cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
2202         gas=yes
2203         gnu_ld=yes
2204         default_use_cxa_atexit=yes
2205         use_gcc_stdint=wrap
2206         case ${enable_threads} in
2207           "" | yes | win32)
2208             thread_file='win32'
2209             ;;
2210           posix)
2211             thread_file='posix'
2212             ;;
2213         esac
2214         case ${target} in
2215                 *mingw32crt*)
2216                         tm_file="${tm_file} i386/crtdll.h"
2217                         ;;
2218                 *mingw32msv* | *mingw*)
2219                         ;;
2220         esac
2221         ;;
2222 x86_64-*-fuchsia*)
2223         tmake_file="${tmake_file} i386/t-x86_64-elf"
2224         tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2225         ;;
2226 ia64*-*-elf*)
2227         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
2228         tmake_file="ia64/t-ia64"
2229         target_cpu_default="0"
2230         if test x$gas = xyes
2231         then
2232                 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2233         fi
2234         if test x$gnu_ld = xyes
2235         then
2236                 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2237         fi
2238         ;;
2239 ia64*-*-freebsd*)
2240         tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
2241         target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2242         tmake_file="${tmake_file} ia64/t-ia64"
2243         ;;
2244 ia64*-*-linux*)
2245         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
2246         tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
2247         target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2248         ;;
2249 ia64*-*-hpux*)
2250         tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
2251         tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
2252         target_cpu_default="MASK_GNU_AS"
2253         case x$enable_threads in
2254         x | xyes | xposix )
2255                 thread_file=posix
2256                 ;;
2257         esac
2258         use_collect2=no
2259         c_target_objs="ia64-c.o"
2260         cxx_target_objs="ia64-c.o"
2261         extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
2262         use_gcc_stdint=wrap
2263         tm_file="${tm_file} hpux-stdint.h"
2264         case ${target} in
2265         *-*-hpux11.3*)
2266                 tm_file="${tm_file} ia64/hpux-unix2003.h"
2267                 ;;
2268         esac
2269         ;;
2270 ia64-hp-*vms*)
2271         tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2272         tmake_file="${tmake_file} ia64/t-ia64"
2273         target_cpu_default="0"
2274         if test x$gas = xyes
2275         then
2276                 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2277         fi
2278         extra_options="${extra_options} ia64/vms.opt"
2279         ;;
2280 iq2000*-*-elf*)
2281         tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
2282         out_file=iq2000/iq2000.c
2283         md_file=iq2000/iq2000.md
2284         ;;
2285 lm32-*-elf*)
2286         tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
2287         tmake_file="${tmake_file} lm32/t-lm32"
2288         ;;
2289 lm32-*-rtems*)
2290         tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
2291         tmake_file="${tmake_file} lm32/t-lm32"
2292         tmake_file="${tmake_file} lm32/t-rtems"
2293          ;;
2294 lm32-*-uclinux*)
2295         tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
2296         tmake_file="${tmake_file} lm32/t-lm32"
2297         ;;
2298 m32r-*-elf*)
2299         tm_file="elfos.h newlib-stdint.h ${tm_file}"
2300         ;;
2301 m32rle-*-elf*)
2302         tm_file="elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
2303         ;;
2304 m68k-*-elf* | fido-*-elf*)
2305         case ${target} in
2306         fido-*-elf*)
2307                 # Check that $with_cpu makes sense.
2308                 case $with_cpu in
2309                 "" | "fidoa")
2310                         ;;
2311                 *)
2312                         echo "Cannot accept --with-cpu=$with_cpu"
2313                         exit 1
2314                         ;;
2315                 esac
2316                 with_cpu=fidoa
2317                 ;;
2318         *)
2319                 default_m68k_cpu=68020
2320                 default_cf_cpu=5206
2321                 ;;
2322         esac
2323         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"
2324         tm_defines="${tm_defines} MOTOROLA=1"
2325         tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2326         # Add multilibs for targets other than fido.
2327         case ${target} in
2328         fido-*-elf*)
2329                 ;;
2330         *)
2331                 tmake_file="$tmake_file m68k/t-mlibs"
2332                 ;;
2333         esac
2334         ;;
2335 m68k*-*-netbsdelf*)
2336         default_m68k_cpu=68020
2337         default_cf_cpu=5475
2338         tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
2339         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2340         tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
2341         ;;
2342 m68k-*-uclinux*)                # Motorola m68k/ColdFire running uClinux
2343                                 # with uClibc, using the new GNU/Linux-style
2344                                 # ABI.
2345         default_m68k_cpu=68020
2346         default_cf_cpu=5206
2347         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"
2348         extra_options="${extra_options} m68k/uclinux.opt"
2349         tm_defines="${tm_defines} MOTOROLA=1"
2350         tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
2351         ;;
2352 m68k-*-linux*)                  # Motorola m68k's running GNU/Linux
2353                                 # with ELF format using glibc 2
2354                                 # aka the GNU/Linux C library 6.
2355         default_m68k_cpu=68020
2356         default_cf_cpu=5475
2357         with_arch=${with_arch:-m68k}
2358         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2359         extra_options="${extra_options} m68k/ieee.opt"
2360         tm_defines="${tm_defines} MOTOROLA=1"
2361         tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2362         ;;
2363 m68k-*-rtems*)
2364         default_m68k_cpu=68020
2365         default_cf_cpu=5206
2366         tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2367         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"
2368         tm_defines="${tm_defines} MOTOROLA=1"
2369         ;;
2370 mcore-*-elf)
2371         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2372         tmake_file=mcore/t-mcore
2373         inhibit_libc=true
2374         ;;
2375 microblaze*-linux*)
2376         case $target in
2377                 microblazeel-*)
2378                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2379                         ;;
2380                 microblaze-*)
2381                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2382                         ;;
2383         esac
2384         tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2385         tm_file="${tm_file} glibc-stdint.h"
2386         c_target_objs="${c_target_objs} microblaze-c.o"
2387         cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2388         tmake_file="${tmake_file} microblaze/t-microblaze"
2389         tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2390         ;;
2391 microblaze*-*-rtems*)
2392         case $target in
2393                 microblazeel-*)
2394                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2395                         ;;
2396                 microblaze-*)
2397                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2398                         ;;
2399         esac
2400         tm_file="${tm_file} dbxelf.h"
2401         tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2402         c_target_objs="${c_target_objs} microblaze-c.o"
2403         cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2404         tmake_file="${tmake_file} microblaze/t-microblaze"
2405         tmake_file="${tmake_file} microblaze/t-rtems"
2406         ;;
2407 microblaze*-*-elf)
2408         case $target in
2409                 microblazeel-*)
2410                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2411                         ;;
2412                 microblaze-*)
2413                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2414                         ;;
2415         esac
2416         tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2417         c_target_objs="${c_target_objs} microblaze-c.o"
2418         cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2419         tmake_file="${tmake_file} microblaze/t-microblaze"
2420         ;;
2421 riscv*-*-linux*)
2422         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2423         case "x${enable_multilib}" in
2424         xno) ;;
2425         xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2426         *) echo "Unknown value for enable_multilib"; exit 1
2427         esac
2428         tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2429         gnu_ld=yes
2430         gas=yes
2431         case $target in
2432         riscv32be-*|riscv64be-*)
2433                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2434                 ;;
2435         esac
2436         # Force .init_array support.  The configure script cannot always
2437         # automatically detect that GAS supports it, yet we require it.
2438         gcc_cv_initfini_array=yes
2439         ;;
2440 riscv*-*-elf* | riscv*-*-rtems*)
2441         tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2442         case ${target} in
2443         *-*-rtems*)
2444           tm_file="${tm_file} riscv/rtems.h rtems.h"
2445           tmake_file="${tmake_file} riscv/t-rtems"
2446           ;;
2447         *)
2448           if test "x${with_multilib_generator}" == xdefault; then
2449                   case "x${enable_multilib}" in
2450                   xno) ;;
2451                   xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2452                   *) echo "Unknown value for enable_multilib"; exit 1
2453                   esac
2454           fi
2455         esac
2456         tmake_file="${tmake_file} riscv/t-riscv"
2457         gnu_ld=yes
2458         gas=yes
2459         case $target in
2460         riscv32be-*|riscv64be-*)
2461                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2462                 ;;
2463         esac
2464         # Force .init_array support.  The configure script cannot always
2465         # automatically detect that GAS supports it, yet we require it.
2466         gcc_cv_initfini_array=yes
2467         ;;
2468 riscv*-*-freebsd*)
2469         tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2470         tmake_file="${tmake_file} riscv/t-riscv"
2471         gnu_ld=yes
2472         gas=yes
2473         case $target in
2474         riscv32be-*|riscv64be-*)
2475                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2476                 ;;
2477         esac
2478         # Force .init_array support.  The configure script cannot always
2479         # automatically detect that GAS supports it, yet we require it.
2480         gcc_cv_initfini_array=yes
2481         ;;
2482 mips*-*-netbsd*)                        # NetBSD/mips, either endian.
2483         target_cpu_default="MASK_ABICALLS"
2484         tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2485         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2486         ;;
2487 mips*-img-linux*)
2488         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"
2489         extra_options="${extra_options} linux-android.opt"
2490         tmake_file="${tmake_file} mips/t-img-linux"
2491         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2492         with_arch_32="mips32r6"
2493         with_arch_64="mips64r6"
2494         gnu_ld=yes
2495         gas=yes
2496         ;;
2497 mips*-mti-linux*)
2498         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"
2499         extra_options="${extra_options} linux-android.opt"
2500         tmake_file="${tmake_file} mips/t-mti-linux"
2501         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2502         with_arch_32="mips32r2"
2503         with_arch_64="mips64r2"
2504         gnu_ld=yes
2505         gas=yes
2506         ;;
2507 mips*-*-linux*)                         # Linux MIPS, either endian.
2508         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"
2509         extra_options="${extra_options} linux-android.opt"
2510         case ${target} in
2511                 mipsisa32r6*)
2512                         default_mips_arch=mips32r6
2513                         ;;
2514                 mipsisa32r2*)
2515                         default_mips_arch=mips32r2
2516                         ;;
2517                 mipsisa32*)
2518                         default_mips_arch=mips32
2519                         ;;
2520                 mips64el-st-linux-gnu)
2521                         default_mips_abi=n32
2522                         tm_file="${tm_file} mips/st.h"
2523                         tmake_file="${tmake_file} mips/t-st"
2524                         enable_mips_multilibs="yes"
2525                         ;;
2526                 mips64octeon*-*-linux*)
2527                         default_mips_abi=n32
2528                         tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2529                         target_cpu_default=MASK_SOFT_FLOAT_ABI
2530                         enable_mips_multilibs="yes"
2531                         ;;
2532                 mipsisa64r6*-*-linux-gnuabi64)
2533                         default_mips_abi=64
2534                         default_mips_arch=mips64r6
2535                         enable_mips_multilibs="yes"
2536                         ;;
2537                 mipsisa64r6*-*-linux*)
2538                         default_mips_abi=n32
2539                         default_mips_arch=mips64r6
2540                         enable_mips_multilibs="yes"
2541                         ;;
2542                 mipsisa64r2*-*-linux-gnuabi64)
2543                         default_mips_abi=64
2544                         default_mips_arch=mips64r2
2545                         enable_mips_multilibs="yes"
2546                         ;;
2547                 mipsisa64r2*-*-linux*)
2548                         default_mips_abi=n32
2549                         default_mips_arch=mips64r2
2550                         enable_mips_multilibs="yes"
2551                         ;;
2552                 mips64*-*-linux-gnuabi64 | mipsisa64*-*-linux-gnuabi64)
2553                         default_mips_abi=64
2554                         enable_mips_multilibs="yes"
2555                         ;;
2556                 mips64*-*-linux* | mipsisa64*-*-linux*)
2557                         default_mips_abi=n32
2558                         enable_mips_multilibs="yes"
2559                         ;;
2560         esac
2561         if test x$enable_targets = xall; then
2562                 enable_mips_multilibs="yes"
2563         fi
2564         if test x$enable_mips_multilibs = xyes; then
2565                 tmake_file="${tmake_file} mips/t-linux64"
2566         fi
2567         ;;
2568 mips*-mti-elf*)
2569         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2570         tmake_file="mips/t-mti-elf"
2571         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2572         with_arch_32="mips32r2"
2573         with_arch_64="mips64r2"
2574         ;;
2575 mips*-img-elf*)
2576         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2577         tmake_file="mips/t-img-elf"
2578         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2579         with_arch_32="mips32r6"
2580         with_arch_64="mips64r6"
2581         ;;
2582 mips*-sde-elf*)
2583         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2584         tmake_file="mips/t-sde"
2585         extra_options="${extra_options} mips/sde.opt"
2586         case "${with_newlib}" in
2587           yes)
2588             # newlib / libgloss.
2589             ;;
2590           *)
2591             # MIPS toolkit libraries.
2592             tm_file="$tm_file mips/sdemtk.h"
2593             tmake_file="$tmake_file mips/t-sdemtk"
2594             case ${enable_threads} in
2595               "" | yes | mipssde)
2596                 thread_file='mipssde'
2597                 ;;
2598             esac
2599             ;;
2600         esac
2601         case ${target} in
2602           mipsisa32r6*)
2603             tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6 MIPS_ABI_DEFAULT=ABI_32"
2604             ;;
2605           mipsisa32r2*)
2606             tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2 MIPS_ABI_DEFAULT=ABI_32"
2607             ;;
2608           mipsisa32*)
2609             tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32 MIPS_ABI_DEFAULT=ABI_32"
2610             ;;
2611           mipsisa64r6*)
2612             tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6 MIPS_ABI_DEFAULT=ABI_N32"
2613             ;;
2614           mipsisa64r2*)
2615             tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2 MIPS_ABI_DEFAULT=ABI_N32"
2616             ;;
2617           mipsisa64*)
2618             tm_defines="MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_ABI_DEFAULT=ABI_N32"
2619             ;;
2620         esac
2621         ;;
2622 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2623 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2624 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2625 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2626 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2627 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2628         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2629         tmake_file="mips/t-isa3264"
2630         case ${target} in
2631           mipsisa32r6*)
2632             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6"
2633             ;;
2634           mipsisa32r2*)
2635             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2"
2636             ;;
2637           mipsisa32*)
2638             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32"
2639             ;;
2640           mipsisa64r6*)
2641             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6"
2642             ;;
2643           mipsisa64r2*)
2644             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2"
2645             ;;
2646           mipsisa64*)
2647             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64"
2648             ;;
2649         esac
2650         case ${target} in
2651           mipsisa32*-*-elfoabi*)
2652             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2653             tm_file="${tm_file} mips/elfoabi.h"
2654             ;;
2655           mipsisa64*-*-elfoabi*)
2656             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2657             tm_file="${tm_file} mips/elfoabi.h"
2658             ;;
2659           *-*-elf*)
2660             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2661             ;;
2662         esac
2663         ;;
2664 mipsisa64sr71k-*-elf*)
2665         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2666         tmake_file=mips/t-sr71k
2667         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2668         ;;
2669 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2670         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2671         tmake_file="mips/t-elf mips/t-sb1"
2672         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2673         ;;
2674 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2675         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2676         tmake_file="mips/t-elf"
2677         ;;
2678 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2679         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2680         tmake_file="mips/t-elf"
2681         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_N32"
2682         ;;
2683 mips64-*-elf* | mips64el-*-elf*)
2684         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2685         tmake_file="mips/t-elf"
2686         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2687         ;;
2688 mips64vr-*-elf* | mips64vrel-*-elf*)
2689         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2690         tmake_file=mips/t-vr
2691         tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2692         ;;
2693 mips64orion-*-elf* | mips64orionel-*-elf*)
2694         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2695         tmake_file="mips/t-elf"
2696         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3 MIPS_ABI_DEFAULT=ABI_O64"
2697         ;;
2698 mips*-*-rtems*)
2699         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2700         tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2701         ;;
2702 mips-wrs-vxworks)
2703         tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2704         tmake_file="${tmake_file} mips/t-vxworks"
2705         ;;
2706 mipstx39-*-elf* | mipstx39el-*-elf*)
2707         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2708         tmake_file="mips/t-r3900"
2709         ;;
2710 mmix-knuth-mmixware)
2711         tm_file="${tm_file} newlib-stdint.h"
2712         use_gcc_stdint=wrap
2713         ;;
2714 mn10300-*-*)
2715         tm_file="elfos.h newlib-stdint.h ${tm_file}"
2716         use_collect2=no
2717         use_gcc_stdint=wrap
2718         ;;
2719 msp430-*-*)
2720         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2721         c_target_objs="msp430-c.o"
2722         cxx_target_objs="msp430-c.o"
2723         tmake_file="${tmake_file} msp430/t-msp430"
2724         extra_objs="${extra_objs} msp430-devices.o"
2725         extra_gcc_objs="driver-msp430.o msp430-devices.o"
2726         # Enable .init_array unless it has been explicitly disabled.
2727         # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2728         # code since mid-2019 expects it.
2729         if test x${disable_initfini_array} != xyes; then
2730                 gcc_cv_initfini_array=yes
2731         fi
2732         case ${target} in
2733           msp430-*-elfbare)
2734             # __cxa_atexit increases code size, and we don't need to support
2735             # dynamic shared objects on MSP430, so regular Newlib atexit is a
2736             # fine replacement as it also supports registration of more than 32
2737             # functions.
2738             default_use_cxa_atexit=no
2739             # This target does not match the generic *-*-elf case above which
2740             # sets use_gcc_stdint=wrap, so explicitly set it here.
2741             use_gcc_stdint=wrap
2742             ;;
2743         esac
2744         ;;
2745 nds32*-*-*)
2746         target_cpu_default="0"
2747         tm_defines="${tm_defines}"
2748         case ${target} in
2749           nds32le*-*-*)
2750             ;;
2751           nds32be-*-*)
2752             target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2753             tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2754             ;;
2755         esac
2756         case ${target} in
2757           nds32*-*-elf*)
2758             tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2759             tmake_file="nds32/t-nds32 nds32/t-elf"
2760             ;;
2761           nds32*-*-linux*)
2762             tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2763             tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2764             gcc_cv_initfini_array=yes
2765             ;;
2766         esac
2768         # Handle --enable-default-relax setting.
2769         if test x${enable_default_relax} = xyes; then
2770                 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2771         fi
2772         # Handle --with-ext-dsp
2773         if test x${with_ext_dsp} = xyes; then
2774                 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2775         fi
2776         ;;
2777 nios2-*-*)
2778         tm_file="elfos.h ${tm_file}"
2779         tmake_file="${tmake_file} nios2/t-nios2"
2780         case ${target} in
2781         nios2-*-linux*)
2782                 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2783                 ;;
2784         nios2-*-elf*)
2785                 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2786                 extra_options="${extra_options} nios2/elf.opt"
2787                 ;;
2788         nios2-*-rtems*)
2789                 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2790                 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2791                 ;;
2792         esac
2793         ;;
2794 nvptx-*)
2795         tm_file="${tm_file} newlib-stdint.h"
2796         use_gcc_stdint=wrap
2797         tmake_file="nvptx/t-nvptx"
2798         if test x$enable_as_accelerator = xyes; then
2799                 extra_programs="${extra_programs} mkoffload\$(exeext)"
2800                 tm_file="${tm_file} nvptx/offload.h"
2801         fi
2802         ;;
2803 or1k*-*-*)
2804         tm_file="elfos.h ${tm_file}"
2805         tmake_file="${tmake_file} or1k/t-or1k"
2806         # Force .init_array support.  The configure script cannot always
2807         # automatically detect that GAS supports it, yet we require it.
2808         gcc_cv_initfini_array=yes
2810         # Handle --with-multilib-list=...
2811         or1k_multilibs="${with_multilib_list}"
2812         if test "$or1k_multilibs" = "default"; then
2813                 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2814         fi
2815         or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2816         for or1k_multilib in ${or1k_multilibs}; do
2817                 case ${or1k_multilib} in
2818                 mcmov | msext | msfimm | \
2819                 mror | mrori | \
2820                 mhard-float | mdouble-float | munordered-float | msoft-float | \
2821                 mhard-div | mhard-mul | \
2822                 msoft-div | msoft-mul )
2823                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2824                         ;;
2825                 *)
2826                         echo "--with-multilib-list=${with_multilib_list} not supported."
2827                         exit 1
2828                 esac
2829         done
2830         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2832         case ${target} in
2833         or1k*-*-linux*)
2834                 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2835                 tm_file="${tm_file} or1k/linux.h"
2836                 ;;
2837         or1k*-*-elf*)
2838                 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2839                 extra_options="${extra_options} or1k/elf.opt"
2840                 ;;
2841         or1k*-*-rtems*)
2842                 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2843                 tmake_file="${tmake_file} or1k/t-rtems"
2844                 ;;
2845         esac
2846         ;;
2847 pdp11-*-*)
2848         tm_file="${tm_file} newlib-stdint.h"
2849         use_gcc_stdint=wrap
2850         ;;
2851 # port not yet contributed
2852 #powerpc-*-openbsd*)
2853 #       tmake_file="${tmake_file} rs6000/t-fprules"
2854 #       extra_headers=
2855 #       ;;
2856 powerpc-*-darwin*)
2857         extra_options="${extra_options} ${cpu_type}/darwin.opt"
2858         case ${target} in
2859           *-darwin1[0-9]* | *-darwin9*)
2860             tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2861             tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2862             ;;
2863           *-darwin8*)
2864             tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2865             tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2866             ;;
2867           *-darwin7*)
2868             tm_file="${tm_file} ${cpu_type}/darwin7.h"
2869             ;;
2870           *-darwin[456]*)
2871             # Earlier - ingle arch, with 32b only
2872             # OS X 10.0, the first edition is Darwin4
2873             ;;
2874         esac
2875         tmake_file="${tmake_file} t-slibgcc"
2876         ;;
2877 powerpc64-*-darwin*)
2878         extra_options="${extra_options} ${cpu_type}/darwin.opt"
2879         tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2880         tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2881         ;;
2882 powerpc*-*-freebsd*)
2883         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2884         extra_options="${extra_options} rs6000/sysv4.opt"
2885         tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2886         case ${target} in
2887             powerpc*le-*-*)
2888                 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2889         esac
2890         case ${target} in
2891              powerpc64*)
2892                 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2893                 tmake_file="${tmake_file} rs6000/t-freebsd64"
2894                 extra_options="${extra_options} rs6000/linux64.opt"
2895                 if test $fbsd_major -ge 13; then
2896                     tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2897                 fi
2898                 ;;
2899              *)
2900                 if test $fbsd_major -ge 13; then
2901                     tm_file="rs6000/secureplt.h ${tm_file}"
2902                 fi
2903                 tm_file="${tm_file} rs6000/freebsd.h"
2904                 ;;
2905         esac
2906         ;;
2907 powerpc-*-netbsd*)
2908         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2909         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2910         tmake_file="${tmake_file} rs6000/t-netbsd"
2911         extra_options="${extra_options} rs6000/sysv4.opt"
2912         ;;
2913 powerpc-*-eabisimaltivec*)
2914         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"
2915         extra_options="${extra_options} rs6000/sysv4.opt"
2916         tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2917         use_gcc_stdint=wrap
2918         ;;
2919 powerpc-*-eabisim*)
2920         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"
2921         extra_options="${extra_options} rs6000/sysv4.opt"
2922         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2923         use_gcc_stdint=wrap
2924         ;;
2925 powerpc-*-elf*)
2926         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2927         extra_options="${extra_options} rs6000/sysv4.opt"
2928         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2929         ;;
2930 powerpc-*-eabialtivec*)
2931         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"
2932         extra_options="${extra_options} rs6000/sysv4.opt"
2933         tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2934         use_gcc_stdint=wrap
2935         ;;
2936 powerpc-*-eabi*)
2937         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"
2938         extra_options="${extra_options} rs6000/sysv4.opt"
2939         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2940         use_gcc_stdint=wrap
2941         ;;
2942 powerpc-*-rtems*)
2943         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"
2944         extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2945         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2946         ;;
2947 powerpc*-*-linux*)
2948         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2949         extra_options="${extra_options} rs6000/sysv4.opt"
2950         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2951         extra_objs="$extra_objs rs6000-linux.o"
2952         case ${target} in
2953             powerpc*le-*-*)
2954                 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2955         esac
2956         case ${target}:${with_cpu} in
2957             powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2958         esac
2959         maybe_biarch=${cpu_is_64bit}
2960         case ${enable_targets} in
2961             *powerpc64*) maybe_biarch=yes ;;
2962             all) maybe_biarch=yes ;;
2963         esac
2964         case ${target}:${enable_targets}:${maybe_biarch} in
2965             powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2966             | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2967             | powerpcle-*:*powerpc64le*:yes)
2968                 if test x$cpu_is_64bit = xyes; then
2969                     tm_file="${tm_file} rs6000/default64.h"
2970                 fi
2971                 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2972                 tmake_file="$tmake_file rs6000/t-linux64"
2973                 case ${target} in
2974                     powerpc*le-*-*)
2975                         tmake_file="$tmake_file rs6000/t-linux64le"
2976                         case ${enable_targets} in
2977                             all | *powerpc64-* | *powerpc-*)
2978                                 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2979                         esac ;;
2980                     *)
2981                         case ${enable_targets} in
2982                             all | *powerpc64le-* | *powerpcle-*)
2983                                 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2984                         esac ;;
2985                 esac
2986                 extra_options="${extra_options} rs6000/linux64.opt"
2987                 ;;
2988             powerpc64*)
2989                 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2990                 extra_options="${extra_options} rs6000/linux64.opt"
2991                 tmake_file="${tmake_file} rs6000/t-linux"
2992                 ;;
2993             *)
2994                 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2995                 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2996                 ;;
2997         esac
2998         case ${target} in
2999             powerpc*-*-linux*ppc476*)
3000                 tm_file="${tm_file} rs6000/476.h"
3001                 extra_options="${extra_options} rs6000/476.opt" ;;
3002             powerpc*-*-linux*altivec*)
3003                 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
3004         esac
3005         case ${target} in
3006             *-linux*-musl*)
3007                 enable_secureplt=yes ;;
3008         esac
3009         if test x${enable_secureplt} = xyes; then
3010                 tm_file="rs6000/secureplt.h ${tm_file}"
3011         fi
3012         ;;
3013 powerpc*-wrs-vxworks7r*)
3015         # Wind River 7 post SR0600 is mostly like Linux so we setup
3016         # our config in a very similar fashion and adjust to a few
3017         # specificities.
3019         # The system compiler is configured with secureplt by default.
3020         tm_file="${tm_file} rs6000/secureplt.h"
3022         tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h"
3023         tm_file="${tm_file} rs6000/sysv4.h rs6000/biarch64.h rs6000/default64.h rs6000/linux64.h"
3024         tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3026         extra_options="${extra_options} rs6000/sysv4.opt linux.opt rs6000/linux64.opt"
3028         tmake_file="${tmake_file} t-linux rs6000/t-linux64 rs6000/t-fprules rs6000/t-ppccomm"
3029         tmake_file="${tmake_file} rs6000/t-vxworks"
3031         tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
3032         extra_objs="$extra_objs linux.o rs6000-linux.o"
3033         ;;
3034 powerpc-wrs-vxworks*)
3035         tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
3036         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
3037         extra_options="${extra_options} rs6000/sysv4.opt"
3038         extra_headers="${extra_headers} ppc-asm.h"
3039         case ${target} in
3040           *-vxworksmils*)
3041             tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
3042             tmake_file="${tmake_file} rs6000/t-vxworksmils"
3043             ;;
3044           *-vxworksae*)
3045             tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
3046             tmake_file="${tmake_file} rs6000/t-vxworksae"
3047             ;;
3048           *-vxworks*)
3049             tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3050             ;;
3051         esac
3052         ;;
3053 powerpc-*-lynxos*)
3054         xm_defines=POSIX
3055         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3056         tmake_file="t-lynx rs6000/t-lynx"
3057         extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3058         thread_file=lynx
3059         gnu_ld=yes
3060         gas=yes
3061         ;;
3062 powerpcle-*-elf*)
3063         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"
3064         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3065         extra_options="${extra_options} rs6000/sysv4.opt"
3066         ;;
3067 powerpcle-*-eabisim*)
3068         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"
3069         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3070         extra_options="${extra_options} rs6000/sysv4.opt"
3071         use_gcc_stdint=wrap
3072         ;;
3073 powerpcle-*-eabi*)
3074         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"
3075         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3076         extra_options="${extra_options} rs6000/sysv4.opt"
3077         use_gcc_stdint=wrap
3078         ;;
3079 pru*-*-*)
3080         tm_file="elfos.h newlib-stdint.h ${tm_file}"
3081         tmake_file="${tmake_file} pru/t-pru"
3082         extra_objs="pru-pragma.o pru-passes.o"
3083         use_gcc_stdint=wrap
3084         ;;
3085 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3086         tmake_file="rs6000/t-aix52 t-slibgcc"
3087         if test x$cpu_is_64bit = xyes; then
3088             tm_file="${tm_file} rs6000/biarch64.h"
3089             tmake_file="rs6000/t-aix64 t-slibgcc"
3090         fi
3091         tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3092         extra_options="${extra_options} rs6000/aix64.opt"
3093         use_collect2=yes
3094         thread_file='aix'
3095         use_gcc_stdint=wrap
3096         default_use_cxa_atexit=yes
3097         ;;
3098 rs6000-ibm-aix7.2.* | powerpc-ibm-aix7.2.*)
3099         tmake_file="rs6000/t-aix52 t-slibgcc"
3100         if test x$cpu_is_64bit = xyes; then
3101             tm_file="${tm_file} rs6000/biarch64.h"
3102             tmake_file="rs6000/t-aix64 t-slibgcc"
3103         fi
3104         tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3105         extra_options="${extra_options} rs6000/aix64.opt"
3106         use_collect2=yes
3107         thread_file='aix'
3108         use_gcc_stdint=wrap
3109         default_use_cxa_atexit=yes
3110         ;;
3111 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3112         tmake_file="rs6000/t-aix52 t-slibgcc"
3113         if test x$cpu_is_64bit = xyes; then
3114             tm_file="${tm_file} rs6000/biarch64.h"
3115             tmake_file="rs6000/t-aix64 t-slibgcc"
3116         fi
3117         tm_file="${tm_file} rs6000/aix.h rs6000/aix73.h rs6000/xcoff.h rs6000/aix-stdint.h"
3118         extra_options="${extra_options} rs6000/aix64.opt"
3119         use_collect2=yes
3120         thread_file='aix'
3121         use_gcc_stdint=wrap
3122         default_use_cxa_atexit=yes
3123         ;;
3124 rl78-*-elf*)
3125         tm_file="elfos.h newlib-stdint.h ${tm_file}"
3126         target_has_targetm_common=no
3127         c_target_objs="rl78-c.o"
3128         cxx_target_objs="rl78-c.o"
3129         tmake_file="${tmake_file} rl78/t-rl78"
3130         ;;
3131 rx-*-elf*)
3132         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3133         tmake_file="${tmake_file} rx/t-rx"
3134         extra_options="${extra_options} rx/elf.opt"
3135         ;;
3136 rx-*-linux*)
3137         tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3138         tmake_file="${tmake_file} rx/t-linux"
3139         ;;
3140 s390-*-linux*)
3141         tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3142         c_target_objs="${c_target_objs} s390-c.o"
3143         cxx_target_objs="${cxx_target_objs} s390-c.o"
3144         if test x$enable_targets = xall; then
3145                 tmake_file="${tmake_file} s390/t-linux64"
3146         fi
3147         tmake_file="${tmake_file} s390/t-s390"
3148         ;;
3149 s390x-*-linux*)
3150         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3151         tm_p_file="linux-protos.h s390/s390-protos.h"
3152         c_target_objs="${c_target_objs} s390-c.o"
3153         cxx_target_objs="${cxx_target_objs} s390-c.o"
3154         md_file=s390/s390.md
3155         extra_modes=s390/s390-modes.def
3156         out_file=s390/s390.c
3157         tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3158         ;;
3159 s390x-ibm-tpf*)
3160         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h glibc-stdint.h s390/tpf.h"
3161         tm_p_file=s390/s390-protos.h
3162         c_target_objs="${c_target_objs} s390-c.o"
3163         cxx_target_objs="${cxx_target_objs} s390-c.o"
3164         md_file=s390/s390.md
3165         extra_modes=s390/s390-modes.def
3166         out_file=s390/s390.c
3167         thread_file='tpf'
3168         extra_options="${extra_options} s390/tpf.opt"
3169         tmake_file="${tmake_file} s390/t-s390"
3170         ;;
3171 sh-*-elf* | sh[12346l]*-*-elf* | \
3172   sh-*-linux* | sh[2346lbe]*-*-linux* | \
3173   sh-*-netbsdelf* | shl*-*-netbsdelf*)
3174         tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3175         if test x${with_endian} = x; then
3176                 case ${target} in
3177                 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3178                 shbe-*-* | sheb-*-*)               with_endian=big,little ;;
3179                 sh[1234]l* | sh[34]*-*-linux*)     with_endian=little ;;
3180                 shl* | sh*-*-linux* | \
3181                   sh-superh-elf)                   with_endian=little,big ;;
3182                 sh[1234]*-*-*)                     with_endian=big ;;
3183                 *)                                 with_endian=big,little ;;
3184                 esac
3185         fi
3186         # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3187         #  First word : the default endian.
3188         #  Second word: the secondary endian (optional).
3189         case ${with_endian} in
3190         big)            TM_ENDIAN_CONFIG=mb ;;
3191         little)         TM_ENDIAN_CONFIG=ml ;;
3192         big,little)     TM_ENDIAN_CONFIG="mb ml" ;;
3193         little,big)     TM_ENDIAN_CONFIG="ml mb" ;;
3194         *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
3195         esac
3196         case ${with_endian} in
3197         little*)        tm_file="sh/little.h ${tm_file}" ;;
3198         esac
3199         tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
3200         case ${target} in
3201         sh*-*-linux*)   tmake_file="${tmake_file} sh/t-linux"
3202                         if test x$enable_fdpic = xyes; then
3203                                 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3204                         fi
3205                         tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3206         sh*-*-netbsd*)
3207                         tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3208                         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3210                         ;;
3211         sh*-superh-elf) if test x$with_libgloss != xno; then
3212                                 with_libgloss=yes
3213                                 tm_file="${tm_file} sh/newlib.h"
3214                         fi
3215                         tm_file="${tm_file} sh/embed-elf.h"
3216                         tm_file="${tm_file} sh/superh.h"
3217                         extra_options="${extra_options} sh/superh.opt" ;;
3218         *)              if test x$with_newlib = xyes \
3219                            && test x$with_libgloss = xyes; then
3220                                 tm_file="${tm_file} sh/newlib.h"
3221                         fi
3222                         tm_file="${tm_file} sh/embed-elf.h" ;;
3223         esac
3224         case ${target} in
3225         *-*-netbsd)
3226                 ;;
3227         *-*-elf*)
3228                 tm_file="${tm_file} newlib-stdint.h"
3229                 ;;
3230         esac
3231         # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3232         case `echo ${target} | sed 's/e[lb]-/-/'` in
3233         sh4a_single_only*)      sh_cpu_target=sh4a-single-only ;;
3234         sh4a_single*)           sh_cpu_target=sh4a-single ;;
3235         sh4a_nofpu*)            sh_cpu_target=sh4a-nofpu ;;
3236         sh4al)                  sh_cpu_target=sh4al ;;
3237         sh4a*)                  sh_cpu_target=sh4a ;;
3238         sh4_single_only*)       sh_cpu_target=sh4-single-only ;;
3239         sh4_single*)            sh_cpu_target=sh4-single ;;
3240         sh4_nofpu*)             sh_cpu_target=sh4-nofpu ;;
3241         sh4* | sh-superh-*)     sh_cpu_target=sh4 ;;
3242         sh3e*)                  sh_cpu_target=sh3e ;;
3243         sh*-*-netbsd* | sh3*)   sh_cpu_target=sh3 ;;
3244         sh2a_single_only*)      sh_cpu_target=sh2a-single-only ;;
3245         sh2a_single*)           sh_cpu_target=sh2a-single ;;
3246         sh2a_nofpu*)            sh_cpu_target=sh2a-nofpu ;;
3247         sh2a*)                  sh_cpu_target=sh2a ;;
3248         sh2e*)                  sh_cpu_target=sh2e ;;
3249         sh2*)                   sh_cpu_target=sh2 ;;
3250         *)                      sh_cpu_target=sh1 ;;
3251         esac
3252         # did the user say --without-fp ?
3253         if test x$with_fp = xno; then
3254                 case ${sh_cpu_target} in
3255                 sh4al | sh1)    ;;
3256                 sh4a* )         sh_cpu_target=sh4a-nofpu ;;
3257                 sh4*)           sh_cpu_target=sh4-nofpu ;;
3258                 sh3*)           sh_cpu_target=sh3 ;;
3259                 sh2a*)          sh_cpu_target=sh2a-nofpu ;;
3260                 sh2*)           sh_cpu_target=sh2 ;;
3261                 *)      echo --without-fp not available for $target: ignored
3262                 esac
3263                 tm_defines="$tm_defines STRICT_NOFPU=1"
3264         fi
3265         sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3266         case $sh_cpu_default in
3267           sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3268           sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3269           sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3270           sh3e | sh3 | sh2e | sh2 | sh1) ;;
3271         "")     sh_cpu_default=${sh_cpu_target} ;;
3272         *)      echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3273         esac
3274         sh_multilibs=${with_multilib_list}
3275         if test "$sh_multilibs" = "default" ; then
3276                 case ${target} in
3277                 sh[1234]*)      sh_multilibs=${sh_cpu_target} ;;
3278                 sh-superh-*)    sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3279                 sh*-*-linux*)   sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3280                 sh*-*-netbsd*)  sh_multilibs=m3,m3e,m4 ;;
3281                 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3282                 esac
3283                 if test x$with_fp = xno; then
3284                         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`"
3285                 fi
3286         fi
3287         target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3288         tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3289         tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3290         sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3291         for sh_multilib in ${sh_multilibs}; do
3292                 case ${sh_multilib} in
3293                 m1 | m2 | m2e | m3 | m3e | \
3294                 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3295                 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3296                 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3297                         # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3298                         # It is passed to MULTIILIB_OPTIONS verbatim.
3299                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3300                         tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3301                         ;;
3302                 \!*)    # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3303                         # It is passed the MULTILIB_EXCEPTIONS verbatim.
3304                         TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3305                 *)
3306                         echo "with_multilib_list=${sh_multilib} not supported."
3307                         exit 1
3308                         ;;
3309                 esac
3310         done
3311         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3312         if test x${enable_incomplete_targets} = xyes ; then
3313                 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3314         fi
3315         tm_file="$tm_file ./sysroot-suffix.h"
3316         tmake_file="$tmake_file t-sysroot-suffix"
3317         ;;
3318 sh-*-rtems*)
3319         tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3320         tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3321         ;;
3322 sh-wrs-vxworks)
3323         tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3324         tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3325         ;;
3326 sparc-*-elf*)
3327         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3328         case ${target} in
3329             *-leon-*)
3330                 tmake_file="sparc/t-sparc sparc/t-leon"
3331                 ;;
3332             *-leon[3-9]*)
3333                 tmake_file="sparc/t-sparc sparc/t-leon3"
3334                 ;;
3335             *)
3336                 tmake_file="sparc/t-sparc sparc/t-elf"
3337                 ;;
3338         esac
3339         ;;
3340 sparc-*-rtems*)
3341         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3342         tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3343         ;;
3344 sparc-*-linux*)
3345         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3346         extra_options="${extra_options} sparc/long-double-switch.opt"
3347         case ${target} in
3348             *-leon-*)
3349                 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3350                 ;;
3351             *-leon[3-9]*)
3352                 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3353                 ;;
3354             *)
3355                 tmake_file="${tmake_file} sparc/t-sparc"
3356                 ;;
3357         esac
3358         if test x$enable_targets = xall; then
3359                 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3360                 tmake_file="${tmake_file} sparc/t-linux64"
3361         else
3362                 tm_file="${tm_file} sparc/linux.h"
3363                 tmake_file="${tmake_file} sparc/t-linux"
3364         fi
3365         ;;
3366 sparc-*-netbsdelf*)
3367         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3368         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3369         extra_options="${extra_options} sparc/long-double-switch.opt"
3370         tmake_file="${tmake_file} sparc/t-sparc"
3371         ;;
3372 sparc*-*-solaris2*)
3373         tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3374         case ${target} in
3375             sparc64-*-* | sparcv9-*-*)
3376                 tm_file="sparc/default64.h ${tm_file}"
3377                 ;;
3378             *)
3379                 test x$with_cpu != x || with_cpu=v9
3380                 ;;
3381         esac
3382         tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3383         ;;
3384 sparc-wrs-vxworks)
3385         tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3386         tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3387         ;;
3388 sparc64-*-elf*)
3389         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3390         extra_options="${extra_options}"
3391         tmake_file="${tmake_file} sparc/t-sparc"
3392         ;;
3393 sparc64-*-rtems*)
3394         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3395         extra_options="${extra_options}"
3396         tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3397         ;;
3398 sparc64-*-linux*)
3399         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"
3400         extra_options="${extra_options} sparc/long-double-switch.opt"
3401         tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3402         ;;
3403 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3404         tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3405         extra_options="${extra_options} sparc/long-double-switch.opt"
3406         case "x$with_cpu" in
3407                 xultrasparc) ;;
3408                 x) with_cpu=ultrasparc ;;
3409                 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3410         esac
3411         tmake_file="${tmake_file} sparc/t-sparc"
3412         ;;
3413 sparc64-*-netbsd*)
3414         tm_file="sparc/biarch64.h ${tm_file}"
3415         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3416         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3417         extra_options="${extra_options} sparc/long-double-switch.opt"
3418         tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3419         ;;
3420 sparc64-*-openbsd*)
3421         tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3422         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3423         extra_options="${extra_options} openbsd.opt"
3424         extra_options="${extra_options}"
3425         gas=yes gnu_ld=yes
3426         with_cpu=ultrasparc
3427         tmake_file="${tmake_file} sparc/t-sparc"
3428         ;;
3429 tic6x-*-elf)
3430         tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3431         tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3432         tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3433         use_collect2=no
3434         ;;
3435 tic6x-*-uclinux)
3436         tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3437         tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3438         tm_file="${tm_file} ./sysroot-suffix.h"
3439         tmake_file="t-sysroot-suffix t-slibgcc"
3440         tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3441         use_collect2=no
3442         ;;
3443 tilegx*-*-linux*)
3444         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3445         tmake_file="${tmake_file} tilegx/t-tilegx"
3446         extra_objs="${extra_objs} mul-tables.o"
3447         c_target_objs="${c_target_objs} tilegx-c.o"
3448         cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3449         extra_headers="feedback.h"
3450         case $target in
3451         tilegxbe-*)
3452                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3453                 ;;
3454         esac
3455         ;;
3456 tilepro*-*-linux*)
3457         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3458         tmake_file="${tmake_file} tilepro/t-tilepro"
3459         extra_objs="${extra_objs} mul-tables.o"
3460         c_target_objs="${c_target_objs} tilepro-c.o"
3461         cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3462         extra_headers="feedback.h"
3463         ;;
3464 v850-*-rtems*)
3465         target_cpu_default="TARGET_CPU_generic"
3466         tm_file="elfos.h v850/v850.h"
3467         tm_file="${tm_file} v850/rtems.h rtems.h newlib-stdint.h"
3468         tmake_file="${tmake_file} v850/t-v850"
3469         tmake_file="${tmake_file} v850/t-rtems"
3470         use_collect2=no
3471         c_target_objs="v850-c.o"
3472         cxx_target_objs="v850-c.o"
3473         ;;
3474 v850*-*-*)
3475         case ${target} in
3476         v850e3v5-*-*)
3477                 target_cpu_default="TARGET_CPU_v850e3v5"
3478                 ;;
3479         v850e2v3-*-*)
3480                 target_cpu_default="TARGET_CPU_v850e2v3"
3481                 ;;
3482         v850e2-*-*)
3483                 target_cpu_default="TARGET_CPU_v850e2"
3484                 ;;
3485         v850e1-*-* | v850es-*-*)
3486                 target_cpu_default="TARGET_CPU_v850e1"
3487                 ;;
3488         v850e-*-*)
3489                 target_cpu_default="TARGET_CPU_v850e"
3490                 ;;
3491         v850-*-*)
3492                 target_cpu_default="TARGET_CPU_generic"
3493                 ;;
3494         esac
3495         tm_file="elfos.h newlib-stdint.h v850/v850.h"
3496         use_collect2=no
3497         c_target_objs="v850-c.o"
3498         cxx_target_objs="v850-c.o"
3499         use_gcc_stdint=wrap
3500         ;;
3501 vax-*-linux*)
3502         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3503         extra_options="${extra_options} vax/elf.opt"
3504         ;;
3505 vax-*-netbsdelf*)
3506         tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3507         extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3508         tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3509         ;;
3510 visium-*-elf*)
3511         tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3512         tmake_file="visium/t-visium visium/t-crtstuff"
3513         ;;
3514 xstormy16-*-elf)
3515         # For historical reasons, the target files omit the 'x'.
3516         tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3517         tm_p_file=stormy16/stormy16-protos.h
3518         tm_d_file="elfos.h stormy16/stormy16.h"
3519         md_file=stormy16/stormy16.md
3520         out_file=stormy16/stormy16.c
3521         extra_options=stormy16/stormy16.opt
3522         tmake_file="stormy16/t-stormy16"
3523         ;;
3524 xtensa*-*-elf*)
3525         tm_file="${tm_file} elfos.h newlib-stdint.h xtensa/elf.h"
3526         extra_options="${extra_options} xtensa/elf.opt"
3527         ;;
3528 xtensa*-*-linux*)
3529         tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3530         tmake_file="${tmake_file} xtensa/t-xtensa"
3531         ;;
3532 xtensa*-*-uclinux*)
3533         tm_file="${tm_file} elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3534         tmake_file="${tmake_file} xtensa/t-xtensa"
3535         extra_options="${extra_options} xtensa/uclinux.opt"
3536         ;;
3537 am33_2.0-*-linux*)
3538         tm_file="mn10300/mn10300.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3539         gas=yes gnu_ld=yes
3540         use_collect2=no
3541         ;;
3542 m32c-*-rtems*)
3543         tm_file="elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3544         c_target_objs="m32c-pragma.o"
3545         cxx_target_objs="m32c-pragma.o"
3546         ;;
3547 m32c-*-elf*)
3548         tm_file="elfos.h newlib-stdint.h ${tm_file}"
3549         c_target_objs="m32c-pragma.o"
3550         cxx_target_objs="m32c-pragma.o"
3551         ;;
3553         echo "*** Configuration ${target} not supported" 1>&2
3554         exit 1
3555         ;;
3556 esac
3558 case ${target} in
3559 i[34567]86-*-linux* | x86_64-*-linux*)
3560         tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3561         ;;
3562 i[34567]86-*-* | x86_64-*-*)
3563         tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3564         ;;
3565 powerpc*-*-* | rs6000-*-*)
3566         tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3567 esac
3569 # non-glibc systems
3570 case ${target} in
3571 *-linux-musl*)
3572         tmake_file="${tmake_file} t-musl"
3573         ;;
3574 *-linux-uclibc*)
3575         tmake_file="${tmake_file} t-uclibc"
3576         ;;
3577 esac
3579 # Assume the existence of indirect function support and allow the use of the
3580 # resolver attribute.
3581 case ${target} in
3582 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3583         ;;
3584 *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
3585         ;;
3586 *-*-linux* | *-*-gnu*)
3587         case ${target} in
3588         aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3589                 default_gnu_indirect_function=yes
3590                 ;;
3591         esac
3592         ;;
3593 esac
3595 # Build mkoffload tool
3596 case ${target} in
3597 *-intelmic-* | *-intelmicemul-*)
3598         tmake_file="${tmake_file} i386/t-intelmic"
3599         tm_file="${tm_file} i386/intelmic-offload.h"
3600         ;;
3601 esac
3603 if [ "$target_has_targetcm" = "no" ]; then
3604   c_target_objs="$c_target_objs default-c.o"
3605   cxx_target_objs="$cxx_target_objs default-c.o"
3608 if [ "$common_out_file" = "" ]; then
3609   if [ "$target_has_targetm_common" = "yes" ]; then
3610     common_out_file="$cpu_type/$cpu_type-common.c"
3611   else
3612     common_out_file="default-common.c"
3613   fi
3616 if [ "$target_has_targetdm" = "no" ]; then
3617   d_target_objs="$d_target_objs default-d.o"
3620 # Support for --with-cpu and related options (and a few unrelated options,
3621 # too).
3622 case ${with_cpu} in
3623   yes | no)
3624     echo "--with-cpu must be passed a value" 1>&2
3625     exit 1
3626     ;;
3627 esac
3629 # Set arch and cpu from ${target} and ${target_noncanonical}.  Set cpu
3630 # to generic if there is no processor scheduler model for the target.
3631 arch=
3632 cpu=
3633 arch_without_sse2=no
3634 arch_without_64bit=no
3635 case ${target} in
3636   i386-*-freebsd*)
3637     if test $fbsd_major -ge 6; then
3638       arch=i486
3639     else
3640       arch=i386
3641     fi
3642     cpu=generic
3643     arch_without_sse2=yes
3644     arch_without_64bit=yes
3645     ;;
3646   i386-*-netbsd*)
3647     arch=i486
3648     cpu=generic
3649     arch_without_sse2=yes
3650     arch_without_64bit=yes
3651     ;;
3652   i386-*-*)
3653     arch=i386
3654     cpu=i386
3655     arch_without_sse2=yes
3656     arch_without_64bit=yes
3657     ;;
3658   i486-*-*)
3659     arch=i486
3660     cpu=i486
3661     arch_without_sse2=yes
3662     arch_without_64bit=yes
3663     ;;
3664   i586-*-*)
3665     arch_without_sse2=yes
3666     arch_without_64bit=yes
3667     case ${target_noncanonical} in
3668       k6_2-*)
3669         arch=k6-2
3670         cpu=k6-2
3671         ;;
3672       k6_3-*)
3673         arch=k6-3
3674         cpu=k6-3
3675         ;;
3676       k6-*)
3677         arch=k6
3678         cpu=k6
3679         ;;
3680       pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3681         arch=pentium-mmx
3682         cpu=pentium-mmx
3683         ;;
3684       *)
3685         arch=pentium
3686         cpu=pentium
3687         ;;
3688     esac
3689     ;;
3690   i686-*-* | i786-*-*)
3691     case ${target_noncanonical} in
3692       znver1-*)
3693         arch=znver1
3694         cpu=znver1
3695         ;;
3696       znver2-*)
3697         arch=znver2
3698         cpu=znver2
3699         ;;
3700       znver3-*)
3701         arch=znver3
3702         cpu=znver3
3703         ;;
3704       bdver4-*)
3705         arch=bdver4
3706         cpu=bdver4
3707         ;;
3708       bdver3-*)
3709         arch=bdver3
3710         cpu=bdver3
3711         ;;
3712       bdver2-*)
3713         arch=bdver2
3714         cpu=bdver2
3715         ;;
3716       bdver1-*)
3717         arch=bdver1
3718         cpu=bdver1
3719         ;;
3720       btver1-*)
3721         arch=btver1
3722         cpu=btver1
3723         ;;
3724       btver2-*)
3725         arch=btver2
3726         cpu=btver2
3727         ;;
3728       amdfam10-*|barcelona-*)
3729         arch=amdfam10
3730         cpu=amdfam10
3731         ;;
3732       k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3733         arch=k8-sse3
3734         cpu=k8-sse3
3735         ;;
3736       k8-*|opteron-*|athlon64-*|athlon_fx-*)
3737         arch=k8
3738         cpu=k8
3739         ;;
3740       athlon_xp-*|athlon_mp-*|athlon_4-*)
3741         arch=athlon-4
3742         cpu=athlon-4
3743         arch_without_sse2=yes
3744         arch_without_64bit=yes
3745         ;;
3746       athlon_tbird-*|athlon-*)
3747         arch=athlon
3748         cpu=athlon
3749         arch_without_sse2=yes
3750         ;;
3751       geode-*)
3752         arch=geode
3753         cpu=geode
3754         arch_without_sse2=yes
3755         ;;
3756       pentium2-*)
3757         arch=pentium2
3758         cpu=pentium2
3759         arch_without_sse2=yes
3760         ;;
3761       pentium3-*|pentium3m-*)
3762         arch=pentium3
3763         cpu=pentium3
3764         arch_without_sse2=yes
3765         ;;
3766       pentium4-*|pentium4m-*)
3767         arch=pentium4
3768         cpu=pentium4
3769         ;;
3770       prescott-*)
3771         arch=prescott
3772         cpu=prescott
3773         ;;
3774       nocona-*)
3775         arch=nocona
3776         cpu=nocona
3777         ;;
3778       atom-*)
3779         arch=atom
3780         cpu=atom
3781         ;;
3782       slm-*)
3783         arch=slm
3784         cpu=slm
3785         ;;
3786       core2-*)
3787         arch=core2
3788         cpu=core2
3789         ;;
3790       corei7-*)
3791         arch=corei7
3792         cpu=corei7
3793         ;;
3794       corei7_avx-*)
3795         arch=corei7-avx
3796         cpu=corei7-avx
3797         ;;
3798       pentium_m-*)
3799         arch=pentium-m
3800         cpu=pentium-m
3801         ;;
3802       pentiumpro-*)
3803         arch=pentiumpro
3804         cpu=pentiumpro
3805         arch_without_sse2=yes
3806         ;;
3807       *)
3808         arch=pentiumpro
3809         cpu=generic
3810         arch_without_sse2=yes
3811         arch_without_64bit=yes
3812         ;;
3813     esac
3814     ;;
3815   x86_64-*-*)
3816     case ${target_noncanonical} in
3817       znver1-*)
3818         arch=znver1
3819         cpu=znver1
3820         ;;
3821       znver2-*)
3822         arch=znver2
3823         cpu=znver2
3824         ;;
3825       znver3-*)
3826         arch=znver3
3827         cpu=znver3
3828         ;;
3829       bdver4-*)
3830         arch=bdver4
3831         cpu=bdver4
3832         ;;
3833       bdver3-*)
3834         arch=bdver3
3835         cpu=bdver3
3836         ;;
3837       bdver2-*)
3838         arch=bdver2
3839         cpu=bdver2
3840         ;;
3841       bdver1-*)
3842         arch=bdver1
3843         cpu=bdver1
3844         ;;
3845       btver1-*)
3846         arch=btver1
3847         cpu=btver1
3848         ;;
3849       btver2-*)
3850         arch=btver2
3851         cpu=btver2
3852         ;;
3853       amdfam10-*|barcelona-*)
3854         arch=amdfam10
3855         cpu=amdfam10
3856         ;;
3857       k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3858         arch=k8-sse3
3859         cpu=k8-sse3
3860         ;;
3861       k8-*|opteron-*|athlon_64-*)
3862         arch=k8
3863         cpu=k8
3864         ;;
3865       nocona-*)
3866         arch=nocona
3867         cpu=nocona
3868         ;;
3869       atom-*)
3870         arch=atom
3871         cpu=atom
3872         ;;
3873       slm-*)
3874         arch=slm
3875         cpu=slm
3876         ;;
3877       core2-*)
3878         arch=core2
3879         cpu=core2
3880         ;;
3881       corei7-*)
3882         arch=corei7
3883         cpu=corei7
3884         ;;
3885       *)
3886         arch=x86-64
3887         cpu=generic
3888         ;;
3889     esac
3890     ;;
3891 esac
3893 # If there is no $with_cpu option, try to infer one from ${target}.
3894 # This block sets nothing except for with_cpu.
3895 if test x$with_cpu = x ; then
3896   case ${target} in
3897     i[34567]86-*-elfiamcu)
3898       with_cpu=lakemont
3899       ;;
3900     i[34567]86-*-*|x86_64-*-*)
3901       with_cpu=$cpu
3902       ;;
3903     alphaev6[78]*-*-*)
3904       with_cpu=ev67
3905       ;;
3906     alphaev6*-*-*)
3907       with_cpu=ev6
3908       ;;
3909     alphapca56*-*-*)
3910       with_cpu=pca56
3911       ;;
3912     alphaev56*-*-*)
3913       with_cpu=ev56
3914       ;;
3915     alphaev5*-*-*)
3916       with_cpu=ev5
3917       ;;
3918     frv-*-*linux* | frv400-*-*linux*)
3919       with_cpu=fr400
3920       ;;
3921     frv550-*-*linux*)
3922       with_cpu=fr550
3923       ;;
3924     m68k*-*-*)
3925       case "$with_arch" in
3926         "cf")
3927           with_cpu=${default_cf_cpu}
3928           ;;
3929         "" | "m68k")
3930           with_cpu=m${default_m68k_cpu}
3931           ;;
3932       esac
3933       ;;
3934     sparc*-*-*)
3935       case ${target} in
3936         *-leon-*)
3937           with_cpu=leon
3938           ;;
3939         *-leon[3-9]*)
3940           with_cpu=leon3
3941           ;;
3942         *-leon[3-9]v7*)
3943           with_cpu=leon3v7
3944           ;;
3945         *)
3946           with_cpu="`echo ${target} | sed 's/-.*$//'`"
3947           ;;
3948       esac
3949       ;;
3950     visium-*-*)
3951       with_cpu=gr5
3952       ;;
3953   esac
3955   # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3956   case ${target} in
3957     i[34567]86-*-*|x86_64-*-*)
3958       if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3959         if test x$with_cpu_32 = x; then
3960           with_cpu_32=$with_cpu
3961         fi
3962         if test x$with_cpu_64 = x; then
3963           with_cpu_64=$with_cpu
3964         fi
3965         with_cpu=
3966       fi
3967       ;;
3968   esac
3971 # Support for --with-arch and related options (and a few unrelated options,
3972 # too).
3973 case ${with_arch} in
3974   yes | no)
3975     echo "--with-arch must be passed a value" 1>&2
3976     exit 1
3977     ;;
3978 esac
3980 # If there is no $with_arch option, try to infer one from ${target}.
3981 # This block sets nothing except for with_arch.
3982 if test x$with_arch = x ; then
3983   case ${target} in
3984     i[34567]86-*-darwin*|x86_64-*-darwin*)
3985       # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3986       # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3987       ;;
3988     i[34567]86-*-elfiamcu)
3989       with_arch=lakemont
3990       ;;
3991     i[34567]86-*-*)
3992       # --with-fpmath sets the default ISA to SSE2, which is the same
3993       # ISA supported by Pentium 4.
3994       if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3995         with_arch=$arch
3996       else
3997         with_arch=pentium4
3998       fi
3999       ;;
4000     x86_64-*-*)
4001       with_arch=$arch
4002       ;;
4003     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4004       with_arch=r5900
4005       ;;
4006     mips*-*-vxworks)
4007       with_arch=mips2
4008       ;;
4009   esac
4011   # Avoid overriding --with-arch-32 and --with-arch-64 values.
4012   case ${target} in
4013     i[34567]86-*-darwin*|x86_64-*-darwin*)
4014       # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4015       # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4016       ;;
4017     i[34567]86-*-*|x86_64-*-*)
4018       if test x$with_arch_32 != x || test x$with_arch_64 != x; then
4019         if test x$with_arch_32 = x; then
4020           with_arch_32=$with_arch
4021         fi
4022         if test x$with_arch_64 = x; then
4023           if test $arch_without_64bit = yes; then
4024             # Set the default 64bit arch to x86-64 if the default arch
4025             # doesn't support 64bit.
4026             with_arch_64=x86-64
4027           else
4028             with_arch_64=$with_arch
4029           fi
4030         fi
4031         with_arch=
4032       elif test $arch_without_64bit$need_64bit_isa = yesyes; then
4033         # Set the default 64bit arch to x86-64 if the default arch
4034         # doesn't support 64bit and we need 64bit ISA.
4035         with_arch_32=$with_arch
4036         with_arch_64=x86-64
4037         with_arch=
4038       fi
4039       ;;
4040   esac
4043 # Infer a default setting for --with-float.
4044 if test x$with_float = x; then
4045   case ${target} in
4046     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4047       # The R5900 doesn't support 64-bit float.  32-bit float doesn't
4048       # comply with IEEE 754.
4049       with_float=soft
4050       ;;
4051   esac
4054 # Infer a default setting for --with-fpu.
4055 if test x$with_fpu = x; then
4056   case ${target} in
4057     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4058       # The R5900 FPU only supports single precision.
4059       with_fpu=single
4060       ;;
4061   esac
4064 # Support --with-fpmath.
4065 if test x$with_fpmath != x; then
4066   case ${target} in
4067     i[34567]86-*-* | x86_64-*-*)
4068       case ${with_fpmath} in
4069       avx)
4070         tm_file="${tm_file} i386/avxmath.h"
4071         ;;
4072       sse)
4073         tm_file="${tm_file} i386/ssemath.h"
4074         ;;
4075       *)
4076         echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4077         exit 1
4078         ;;
4079       esac
4080       ;;
4081     *)
4082       echo "--with-fpmath isn't supported for $target." 1>&2
4083       exit 1
4084       ;;
4085   esac
4088 # Similarly for --with-schedule.
4089 if test x$with_schedule = x; then
4090         case ${target} in
4091         hppa1*)
4092                 # Override default PA8000 scheduling model.
4093                 with_schedule=7100LC
4094                 ;;
4095         esac
4098 # Infer a default setting for --with-llsc.
4099 if test x$with_llsc = x; then
4100   case ${target} in
4101     mips*-*-linux*)
4102       # The kernel emulates LL and SC where necessary.
4103       with_llsc=yes
4104       ;;
4105     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4106       # The R5900 doesn't support LL(D) and SC(D).
4107       with_llsc=no
4108       ;;
4109   esac
4112 # Validate and mark as valid any --with options supported
4113 # by this target.  In order to use a particular --with option
4114 # you must list it in supported_defaults; validating the value
4115 # is optional.  This case statement should set nothing besides
4116 # supported_defaults.
4118 supported_defaults=
4119 case "${target}" in
4120         aarch64*-*-*)
4121                 supported_defaults="abi cpu cpu_64 arch arch_64 tune tune_64"
4122                 if test x$with_cpu_64 != x && test x$with_cpu = x; then
4123                         with_cpu=$with_cpu_64
4124                 fi
4125                 if test x$with_arch_64 != x && test x$with_arch = x; then
4126                         with_arch=$with_arch_64
4127                 fi
4128                 if test x$with_tune_64 != x && test x$with_tune = x; then
4129                         with_tune=$with_tune_64
4130                 fi
4131                 for which in cpu arch tune; do
4132                         eval "val=\$with_$which"
4133                         base_val=`echo $val | sed -e 's/\+.*//'`
4134                         ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4136                         if [ $which = arch ]; then
4137                           def=aarch64-arches.def
4138                           pattern=AARCH64_ARCH
4139                         else
4140                           def=aarch64-cores.def
4141                           pattern=AARCH64_CORE
4142                         fi
4144                         ext_mask=AARCH64_CPU_DEFAULT_FLAGS
4146                         # Find the base CPU or ARCH id in aarch64-cores.def or
4147                         # aarch64-arches.def
4148                         if [ x"$base_val" = x ] \
4149                             || grep "^$pattern(\"$base_val\"," \
4150                                     ${srcdir}/config/aarch64/$def \
4151                                     > /dev/null; then
4153                           if [ $which = arch ]; then
4154                                 base_id=`grep "^$pattern(\"$base_val\"," \
4155                                   ${srcdir}/config/aarch64/$def | \
4156                                   sed -e 's/^[^,]*,[    ]*//' | \
4157                                   sed -e 's/,.*$//'`
4158                                 # Extract the architecture flags from aarch64-arches.def
4159                                 ext_mask=`grep "^$pattern(\"$base_val\"," \
4160                                    ${srcdir}/config/aarch64/$def | \
4161                                    sed -e 's/)$//' | \
4162                                    sed -e 's/^.*,//'`
4163                           else
4164                                 base_id=`grep "^$pattern(\"$base_val\"," \
4165                                   ${srcdir}/config/aarch64/$def | \
4166                                   sed -e 's/^[^,]*,[    ]*//' | \
4167                                   sed -e 's/,.*$//'`
4168                           fi
4170                           # Disallow extensions in --with-tune=cortex-a53+crc.
4171                           if [ $which = tune ] && [ x"$ext_val" != x ]; then
4172                             echo "Architecture extensions not supported in --with-$which=$val" 1>&2
4173                             exit 1
4174                           fi
4176                           # Use the pre-processor to strip flatten the options.
4177                           # This makes the format less rigid than if we use
4178                           # grep and sed directly here.
4179                           opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4180                           options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4181                                 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4183                           # Match one element inside AARCH64_OPT_EXTENSION, we
4184                           # consume anything that's not a ,.
4185                           elem="[       ]*\([^,]\+\)[   ]*"
4187                           # Repeat the pattern for the number of entries in the
4188                           # AARCH64_OPT_EXTENSION, currently 6 times.
4189                           sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
4191                           while [ x"$ext_val" != x ]
4192                           do
4193                                 ext_val=`echo $ext_val | sed -e 's/\+//'`
4194                                 ext=`echo $ext_val | sed -e 's/\+.*//'`
4195                                 base_ext=`echo $ext | sed -e 's/^no//'`
4196                                 opt_line=`echo -e "$options_parsed" | \
4197                                         grep "^\"$base_ext\""`
4199                                 if [ x"$base_ext" = x ] \
4200                                     || [[ -n $opt_line ]]; then
4202                                   # These regexp extract the elements based on
4203                                   # their group match index in the regexp.
4204                                   ext_canon=`echo -e "$opt_line" | \
4205                                         sed -e "s/$sed_patt/\2/"`
4206                                   ext_on=`echo -e "$opt_line" | \
4207                                         sed -e "s/$sed_patt/\3/"`
4208                                   ext_off=`echo -e "$opt_line" | \
4209                                         sed -e "s/$sed_patt/\4/"`
4211                                   if [ $ext = $base_ext ]; then
4212                                         # Adding extension
4213                                         ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
4214                                   else
4215                                         # Removing extension
4216                                         ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
4217                                   fi
4219                                   true
4220                                 else
4221                                   echo "Unknown extension used in --with-$which=$val" 1>&2
4222                                   exit 1
4223                                 fi
4224                                 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4225                           done
4227                           ext_mask="(("$ext_mask") << 6)"
4228                           if [ x"$base_id" != x ]; then
4229                                 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
4230                           fi
4231                           true
4232                         else
4233                           # Allow --with-$which=native.
4234                           if [ "$val" = native ]; then
4235                             true
4236                           else
4237                             echo "Unknown $which used in --with-$which=$val" 1>&2
4238                             exit 1
4239                           fi
4240                         fi
4241                 done
4242                 ;;
4244         alpha*-*-*)
4245                 supported_defaults="cpu tune"
4246                 for which in cpu tune; do
4247                         eval "val=\$with_$which"
4248                         case "$val" in
4249                         "" \
4250                         | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4251                         | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4252                         | 21264a)
4253                                 ;;
4254                         *)
4255                                 echo "Unknown CPU used in --with-$which=$val" 1>&2
4256                                 exit 1
4257                                 ;;
4258                         esac
4259                 done
4260                 ;;
4262         arc*-*-*)
4263                 supported_defaults="cpu fpu"
4265                 new_cpu=hs38_linux
4266                 if [ x"$with_cpu" = x ] \
4267                     || grep -q -E "^ARC_CPU[[:blank:]]*\($with_cpu," \
4268                        ${srcdir}/config/arc/arc-cpus.def
4269                 then
4270                  # Ok
4271                  new_cpu=$with_cpu
4272                 else
4273                  echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4274                  exit 1
4275                 fi
4277                 # see if --with-fpu matches any of the supported FPUs
4278                 case "$with_fpu" in
4279                 "")
4280                         # OK
4281                         ;;
4282                 fpus | fpus_div | fpus_fma | fpus_all)
4283                         # OK if em or hs
4284                         flags_ok="[emhs]+"
4285                         ;;
4286                 fpuda | fpuda_div | fpuda_fma | fpuda_all)
4287                         # OK only em
4288                         flags_ok="em"
4289                         ;;
4290                 fpud | fpud_div | fpud_fma | fpud_all)
4291                         # OK only hs
4292                         flags_ok="hs"
4293                         ;;
4294                 *)
4295                         echo "Unknown floating point type used in "\
4296                              "--with-fpu=$with_fpu" 1>&2
4297                         exit 1
4298                         ;;
4299                 esac
4301                 if [ -n "$flags_ok" ] \
4302                    && ! grep -q -E "^ARC_CPU[[:blank:]]*\($new_cpu,[[:blank:]]*$flags_ok," \
4303                    ${srcdir}/config/arc/arc-cpus.def
4304                 then
4305                    echo "Unknown floating point type used in "\
4306                          "--with-fpu=$with_fpu for cpu $new_cpu" 1>&2
4307                          exit 1
4308                 fi
4309                 ;;
4311         avr-*-*)
4312                 # Handle --with-multilib-list.
4313                 if test "x${with_multilib_list}" != xdefault; then
4314                         TM_MULTILIB_CONFIG="${with_multilib_list}"
4315                 fi
4316         ;;
4318     csky-*-*)
4319         supported_defaults="cpu endian float"
4320         ;;
4322         arm*-*-*)
4323                 supported_defaults="arch cpu float tune fpu abi mode tls"
4324                 for which in cpu tune arch; do
4325                         # See if it matches a supported value
4326                         eval "val=\$with_$which"
4327                         if [ x"$val" != x ]; then
4328                           cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4329                                 -v cmd="chk$which $val" \
4330                                 ${srcdir}/config/arm/arm-cpus.in`
4331                           if [ "$cpu" = "error" ]; then
4332                             echo "Unknown target in --with-$which=$val" 1>&2
4333                             exit 1
4334                           else
4335                             new_val=$cpu
4336                             eval "target_${which}_cname=$new_val"
4337                             echo "For $val real value is $new_val"
4338                           fi
4339                         fi
4340                 done
4342                 case "$with_float" in
4343                 "" \
4344                 | soft | hard | softfp)
4345                         # OK
4346                         ;;
4347                 *)
4348                         echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4349                         exit 1
4350                         ;;
4351                 esac
4353                 # see if --with-fpu matches any of the supported FPUs
4354                 if [ x"$with_fpu" != x ] ; then
4355                   val=$with_fpu
4356                   fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4357                         -v cmd="chkfpu $val" \
4358                         ${srcdir}/config/arm/arm-cpus.in`
4359                   if [ "$fpu" = "error" ]
4360                   then
4361                     echo "Unknown target in --with-fpu=$val" 1>&2
4362                     exit 1
4363                   fi
4364                 fi
4366                 case "$with_abi" in
4367                 "" \
4368                 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4369                         #OK
4370                         ;;
4371                 *)
4372                         echo "Unknown ABI used in --with-abi=$with_abi"
4373                         exit 1
4374                         ;;
4375                 esac
4377                 case "$with_mode" in
4378                 "" \
4379                 | arm | thumb )
4380                         #OK
4381                         ;;
4382                 *)
4383                         echo "Unknown mode used in --with-mode=$with_mode"
4384                         exit 1
4385                         ;;
4386                 esac
4388                 case "$with_tls" in
4389                 "" \
4390                 | gnu | gnu2)
4391                         # OK
4392                         ;;
4393                 *)
4394                         echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4395                         exit 1
4396                         ;;
4397                 esac
4399                 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4400                         echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\""  1>&2
4401                         exit 1
4402                 fi
4404                 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4405                         echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\""  1>&2
4406                         exit 1
4407                 fi
4409                 # Add extra multilibs
4410                 if test "x$with_multilib_list" != x; then
4411                         ml=
4412                         arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4413                         if test "x${arm_multilibs}" != xdefault ; then
4414                                 for arm_multilib in ${arm_multilibs}; do
4415                                         case ${arm_multilib} in
4416                                         aprofile|rmprofile)
4417                                                 tmake_profile_file="arm/t-multilib"
4418                                                 ;;
4419                                         @*)
4420                                                 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4421                                                 if test -f "${srcdir}/config/arm/${ml}"; then
4422                                                         tmake_file="${tmake_file} arm/${ml}"
4423                                                 else
4424                                                         echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4425                                                         exit 1
4426                                                 fi
4427                                                 ;;
4428                                         *)
4429                                                 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4430                                                 exit 1
4431                                                 ;;
4432                                         esac
4433                                 done
4434                         fi
4436                         if test "x${tmake_profile_file}" != x ; then
4437                                 # arm/t-aprofile and arm/t-rmprofile are only
4438                                 # designed to work without any with-cpu,
4439                                 # with-arch, with-mode, with-fpu or with-float
4440                                 # options.
4441                                 if test "x$with_arch" != x \
4442                                     || test "x$with_cpu" != x \
4443                                     || test "x$with_float" != x \
4444                                     || test "x$with_fpu" != x \
4445                                     || test "x$with_mode" != x ; then
4446                                     echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4447                                     exit 1
4448                                 elif test "x$ml" != x ; then
4449                                     echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4450                                     exit 1
4451                                 fi
4452                                 # But pass the default value for float-abi
4453                                 # through to the multilib selector
4454                                 with_float="soft"
4455                                 tmake_file="${tmake_file} ${tmake_profile_file}"
4456                                 TM_MULTILIB_CONFIG="$with_multilib_list"
4457                         fi
4458                 fi
4459                 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4460                 with_cpu=${with_cpu:-$target_cpu_cname}
4461                 ;;
4463         fr*-*-*linux*)
4464                 supported_defaults=cpu
4465                 case "$with_cpu" in
4466                 fr400) ;;
4467                 fr550) ;;
4468                 *)
4469                         echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4470                         exit 1
4471                         ;;
4472                 esac
4473                 ;;
4475         fido-*-* | m68k*-*-*)
4476                 supported_defaults="arch cpu"
4477                 case "$with_arch" in
4478                 "" | "m68k"| "cf")
4479                         m68k_arch_family="$with_arch"
4480                         ;;
4481                 *)
4482                         echo "Invalid --with-arch=$with_arch" 1>&2
4483                         exit 1
4484                         ;;
4485                 esac
4487                 # We always have a $with_cpu setting here.
4488                 case "$with_cpu" in
4489                 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4490                         m68k_cpu_ident=$with_cpu
4491                         ;;
4492                 "m68020-40")
4493                         m68k_cpu_ident=m68020
4494                         tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4495                         ;;
4496                 "m68020-60")
4497                         m68k_cpu_ident=m68020
4498                         tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4499                         ;;
4500                 *)
4501                         # We need the C identifier rather than the string.
4502                         m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4503                            'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4504                             $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4505                                  ${srcdir}/config/m68k/m68k-devices.def`
4506                         if [ x"$m68k_cpu_ident" = x ] ; then
4507                                 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4508                                 exit 1
4509                         fi
4510                         with_cpu="mcpu=$with_cpu"
4511                         ;;
4512                 esac
4513                 ;;
4515         amdgcn-*-*)
4516                 supported_defaults="arch tune"
4518                 for which in arch tune; do
4519                         eval "val=\$with_$which"
4520                         case ${val} in
4521                         "" | fiji | gfx900 | gfx906 )
4522                                 # OK
4523                                 ;;
4524                         *)
4525                                 echo "Unknown cpu used in --with-$which=$val." 1>&2
4526                                 exit 1
4527                                 ;;
4528                         esac
4529                 done
4530                 [ "x$with_arch" = x ] && with_arch=fiji
4531                 ;;
4533         hppa*-*-*)
4534                 supported_defaults="arch schedule"
4536                 case "$with_arch" in
4537                 "" | 1.0 | 1.1 | 2.0)
4538                         # OK
4539                         ;;
4540                 *)
4541                         echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4542                         exit 1
4543                         ;;
4544                 esac
4546                 case "$with_schedule" in
4547                 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4548                         # OK
4549                         ;;
4550                 *)
4551                         echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4552                         exit 1
4553                         ;;
4554                 esac
4555                 ;;
4557         i[34567]86-*-* | x86_64-*-*)
4558                 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4559                 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4560                         eval "val=\$with_$which"
4561                         case " $x86_archs " in
4562                         *" ${val} "*)
4563                                 case "${target}" in
4564                                   x86_64-*-*)
4565                                       case "x$which" in
4566                                         *_32)
4567                                                 ;;
4568                                         *)
4569                                                 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4570                                                 exit 1
4571                                                 ;;
4572                                       esac
4573                                       ;;
4574                                 esac
4575                                 # OK
4576                                 ;;
4577                         *)
4578                                 if test x${val} != x; then
4579                                         case " $x86_64_archs " in
4580                                         *" ${val} "*)
4581                                                 # Disallow x86-64-v* for --with-cpu=/--with-tune=
4582                                                 case "x$which$val" in
4583                                                 xcpu*x86-64-v*|xtune*x86-64-v*)
4584                                                         echo "Unknown CPU given in --with-$which=$val." 1>&2
4585                                                         exit 1
4586                                                         ;;
4587                                                 *)
4588                                                         ;;
4589                                                 esac
4590                                                 # OK
4591                                                 ;;
4592                                         *)
4593                                                 # Allow $x86_cpus --with-cpu=/--with-tune=
4594                                                 case "x$which" in
4595                                                 xcpu*|xtune*)
4596                                                         case " $x86_cpus " in
4597                                                         *" ${val} "*)
4598                                                                 # OK
4599                                                                 ;;
4600                                                         *)
4601                                                                 echo "Unknown CPU given in --with-$which=$val." 1>&2
4602                                                                 exit 1
4603                                                                 ;;
4604                                                         esac
4605                                                         ;;
4606                                                 *)
4607                                                         echo "Unknown CPU given in --with-$which=$val." 1>&2
4608                                                         exit 1
4609                                                         ;;
4610                                                 esac
4611                                         ;;
4612                                         esac
4613                                 fi
4614                                 ;;
4615                         esac
4616                 done
4617                 ;;
4619         riscv*-*-*)
4620                 supported_defaults="abi arch tune riscv_attribute isa_spec"
4622                 case "${target}" in
4623                 riscv-* | riscv32*) xlen=32 ;;
4624                 riscv64*) xlen=64 ;;
4625                 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4626                 esac
4628                 case "${with_isa_spec}" in
4629                 ""|default|2.2)
4630                         tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_2P2"
4631                         ;;
4632                 20191213 | 201912)
4633                         tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20191213"
4634                         ;;
4635                 20190608 | 201906)
4636                         tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20190608"
4637                         ;;
4638                 *)
4639                         echo "--with-isa-spec only accept 2.2, 20191213, 201912, 20190608 or 201906" 1>&2
4640                         exit 1
4641                 esac
4643                 case "${with_riscv_attribute}" in
4644                 yes)
4645                         tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4646                         ;;
4647                 no)
4648                         tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4649                         ;;
4650                 ""|default)
4651                         tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4652                         ;;
4653                 *)
4654                         echo "--with-riscv-attribute=${with_riscv_attribute} is not supported.  The argument must begin with yes, no or default." 1>&2
4655                         exit 1
4656                         ;;
4657                 esac
4660                 # Infer arch from --with-arch, --target, and --with-abi.
4661                 case "${with_arch}" in
4662                 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4663                         # OK.
4664                         ;;
4665                 "")
4666                         # Infer XLEN, but otherwise assume GC.
4667                         case "${with_abi}" in
4668                         ilp32e) with_arch="rv32e" ;;
4669                         ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4670                         lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4671                         *) with_arch="rv${xlen}gc" ;;
4672                         esac
4673                         ;;
4674                 *)
4675                         echo "--with-arch=${with_arch} is not supported.  The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4676                         exit 1
4677                         ;;
4678                 esac
4679                 PYTHON=`which python || which python3 || which python2`
4680                 if test "x${PYTHON}" != x; then
4681                         with_arch=`${PYTHON} ${srcdir}/config/riscv/arch-canonicalize ${with_arch}`
4682                 fi
4683                 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ARCH=${with_arch}"
4685                 # Make sure --with-abi is valid.  If it was not specified,
4686                 # pick a default based on the ISA, preferring soft-float
4687                 # unless the D extension is present.
4688                 case "${with_abi}" in
4689                 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4690                         ;;
4691                 "")
4692                         case "${with_arch}" in
4693                         rv32*d* | rv32g*) with_abi=ilp32d ;;
4694                         rv32e*) with_abi=ilp32e ;;
4695                         rv32*) with_abi=ilp32 ;;
4696                         rv64*d* | rv64g*) with_abi=lp64d ;;
4697                         rv64*) with_abi=lp64 ;;
4698                         esac
4699                         ;;
4700                 *)
4701                         echo "--with-abi=${with_abi} is not supported" 1>&2
4702                         exit 1
4703                         ;;
4704                 esac
4705                 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ABI=${with_abi}"
4707                 # Make sure ABI and ISA are compatible.
4708                 case "${with_abi},${with_arch}" in
4709                 ilp32,rv32* | ilp32e,rv32e* \
4710                 | ilp32f,rv32*f* | ilp32f,rv32g* \
4711                 | ilp32d,rv32*d* | ilp32d,rv32g* \
4712                 | lp64,rv64* \
4713                 | lp64f,rv64*f* | lp64f,rv64g* \
4714                 | lp64d,rv64*d* | lp64d,rv64g*)
4715                         ;;
4716                 *)
4717                         echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4718                         exit 1
4719                         ;;
4720                 esac
4721                 # Handle --with-multilib-generator.
4722                 if test "x${with_multilib_generator}" != xdefault; then
4723                         if test "x${with_multilib_list}" != xdefault; then
4724                                 echo "--with-multilib-list= can't used with --with-multilib-generator= at same time" 1>&2
4725                                 exit 1
4726                         fi
4727                         case "${target}" in
4728                         riscv*-*-elf*)
4729                                 if ${srcdir}/config/riscv/multilib-generator \
4730                                         `echo ${with_multilib_generator} | sed 's/;/ /g'`\
4731                                         > t-multilib-config;
4732                                 then
4733                                         tmake_file="${tmake_file} riscv/t-withmultilib-generator"
4734                                 else
4735                                         echo "invalid option for --with-multilib-generator" 1>&2
4736                                         exit 1
4737                                 fi
4738                                 ;;
4739                         *)
4740                                 echo "--with-multilib-generator= is not supported for ${target}, only supported for riscv*-*-elf*" 1>&2
4741                                 exit 1
4742                                 ;;
4743                         esac
4744                 fi
4746                 # Handle --with-multilib-list.
4747                 if test "x${with_multilib_list}" != xdefault; then
4748                         tmake_file="${tmake_file} riscv/t-withmultilib"
4750                         case ${with_multilib_list} in
4751                         ilp32 | ilp32f | ilp32d \
4752                         | lp64 | lp64f | lp64d )
4753                                 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4754                                 ;;
4755                         *)
4756                                 echo "--with-multilib-list=${with_multilib_list} not supported."
4757                                 exit 1
4758                         esac
4759                 fi
4760                 ;;
4762         mips*-*-*)
4763                 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"
4765                 case ${with_float} in
4766                 "" | soft | hard)
4767                         # OK
4768                         ;;
4769                 *)
4770                         echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4771                         exit 1
4772                         ;;
4773                 esac
4775                 case ${with_fpu} in
4776                 "" | single | double)
4777                         # OK
4778                         ;;
4779                 *)
4780                         echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4781                         exit 1
4782                         ;;
4783                 esac
4785                 case ${with_nan} in
4786                 "" | 2008 | legacy)
4787                         # OK
4788                         ;;
4789                 *)
4790                         echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4791                         exit 1
4792                         ;;
4793                 esac
4795                 case ${with_fp_32} in
4796                 "" | 32 | xx | 64)
4797                         # OK
4798                         ;;
4799                 *)
4800                         echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4801                         exit 1
4802                         ;;
4803                 esac
4805                 case ${with_odd_spreg_32} in
4806                 yes)
4807                         with_odd_spreg_32="odd-spreg"
4808                         ;;
4809                 no)
4810                         with_odd_spreg_32="no-odd-spreg"
4811                         ;;
4812                 "")
4813                         # OK
4814                         ;;
4815                 *)
4816                         echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4817                         exit 1
4818                         ;;
4819                 esac
4821                 case ${with_abi} in
4822                 "" | 32 | o64 | n32 | 64 | eabi)
4823                         # OK
4824                         ;;
4825                 *)
4826                         echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4827                         exit 1
4828                         ;;
4829                 esac
4831                 case ${with_divide} in
4832                 "" | breaks | traps)
4833                         # OK
4834                         ;;
4835                 *)
4836                         echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4837                         exit 1
4838                         ;;
4839                 esac
4841                 case ${with_llsc} in
4842                 yes)
4843                         with_llsc=llsc
4844                         ;;
4845                 no)
4846                         with_llsc="no-llsc"
4847                         ;;
4848                 "")
4849                         # OK
4850                         ;;
4851                 *)
4852                         echo "Unknown llsc type used in --with-llsc" 1>&2
4853                         exit 1
4854                         ;;
4855                 esac
4857                 case ${with_mips_plt} in
4858                 yes)
4859                         with_mips_plt=plt
4860                         ;;
4861                 no)
4862                         with_mips_plt=no-plt
4863                         ;;
4864                 "")
4865                         ;;
4866                 *)
4867                         echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4868                         exit 1
4869                         ;;
4870                 esac
4872                 case ${with_synci} in
4873                 yes)
4874                         with_synci=synci
4875                         ;;
4876                 no)
4877                         with_synci=no-synci
4878                         ;;
4879                 "")
4880                         ;;
4881                 *)
4882                         echo "Unknown synci type used in --with-synci" 1>&2
4883                         exit 1
4884                         ;;
4885                 esac
4887                 case ${with_lxc1_sxc1} in
4888                 yes)
4889                         with_lxc1_sxc1=lxc1-sxc1
4890                         ;;
4891                 no)
4892                         with_lxc1_sxc1=no-lxc1-sxc1
4893                         ;;
4894                 "")
4895                         ;;
4896                 *)
4897                         echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4898                         exit 1
4899                         ;;
4900                 esac
4902                 case ${with_madd4} in
4903                 yes)
4904                         with_madd4=madd4
4905                         ;;
4906                 no)
4907                         with_madd4=no-madd4
4908                         ;;
4909                 "")
4910                         ;;
4911                 *)
4912                         echo "Unknown madd4 type used in --with-madd4" 1>&2
4913                         exit 1
4914                         ;;
4915                 esac
4916                 ;;
4918         nds32*-*-*)
4919                 supported_defaults="arch cpu nds32_lib float fpu_config"
4921                 # process --with-arch
4922                 case "${with_arch}" in
4923                 "" | v3 )
4924                         tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4925                         ;;
4926                 v2 | v2j | v3m)
4927                         # OK
4928                         tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4929                         ;;
4930                 v3f)
4931                         tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4932                         ;;
4933                 v3s)
4934                         tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4936                         ;;
4937                 *)
4938                         echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4939                         exit 1
4940                         ;;
4941                 esac
4943                 case "${with_cpu}" in
4944                 "")
4945                         with_cpu=n9
4946                         ;;
4947                 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4948                         # OK
4949                         ;;
4950                 *)
4951                         echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4952                         exit 1
4953                         ;;
4954                 esac
4956                 # process --with-nds32-lib
4957                 case "${with_nds32_lib}" in
4958                 "")
4959                         case ${target} in
4960                         *-*-*uclibc*)
4961                                 with_nds32_lib=ulibc
4962                                 ;;
4963                         *-*-linux*)
4964                                 with_nds32_lib=glibc
4965                                 ;;
4966                         *)
4967                                 with_nds32_lib=newlib
4968                                 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4969                                 ;;
4970                         esac
4971                         ;;
4972                 newlib)
4973                         # OK
4974                         tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4975                         ;;
4976                 mculib)
4977                         # OK
4978                         # for the arch=v3f or arch=v3s under mculib toolchain,
4979                         # we would like to set -fno-math-errno as default
4980                         case "${with_arch}" in
4981                         v3f | v3s)
4982                                 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4983                                 ;;
4984                         esac
4985                         ;;
4986                 glibc | uclibc)
4987                         # OK
4988                         ;;
4989                 *)
4990                         echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4991                         exit 1
4992                         ;;
4993                 esac
4995                 # process --with-float
4996                 case "${with_float}" in
4997                 "" | soft | hard)
4998                         # OK
4999                         ;;
5000                 *)
5001                         echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
5002                         exit 1
5003                         ;;
5004                 esac
5006                 # process --with-config-fpu
5007                 case "${with_config_fpu}" in
5008                 "" | 0 | 1 | 2 | 3)
5009                         # OK
5010                         ;;
5011                 *)
5012                         echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
5013                         exit 1
5014                         ;;
5015                 esac
5018                 ;;
5019         nios2*-*-*)
5020                 supported_defaults="arch"
5021                         case "$with_arch" in
5022                         "" | r1 | r2)
5023                                 # OK
5024                                 ;;
5025                         *)
5026                                 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
5027                                 exit 1
5028                                 ;;
5029                         esac
5030                 ;;
5032         powerpc*-*-* | rs6000-*-*)
5033                 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
5035                 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5036                         eval "val=\$with_$which"
5037                         case ${val} in
5038                         default32 | default64)
5039                                 case $which in
5040                                 cpu | tune)
5041                                         ;;
5042                                 *)
5043                                         echo "$val only valid for --with-cpu and --with-tune." 1>&2
5044                                         exit 1
5045                                         ;;
5046                                 esac
5047                                 with_which="with_$which"
5048                                 eval $with_which=
5049                                 ;;
5050                         405cr)
5051                                 tm_defines="${tm_defines} CONFIG_PPC405CR"
5052                                 eval "with_$which=405"
5053                                 ;;
5054                         "" | common | native \
5055                         | power[3456789] | power10 | power5+ | power6x \
5056                         | powerpc | powerpc64 | powerpc64le \
5057                         | rs64 \
5058                         | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
5059                         | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
5060                         | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
5061                         | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
5062                         | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
5063                                 # OK
5064                                 ;;
5065                         *)
5066                                 echo "Unknown cpu used in --with-$which=$val." 1>&2
5067                                 exit 1
5068                                 ;;
5069                         esac
5070                 done
5072                 case "$with_abi" in
5073                 "" | elfv1 | elfv2 )
5074                         #OK
5075                         ;;
5076                 *)
5077                         echo "Unknown ABI used in --with-abi=$with_abi"
5078                         exit 1
5079                         ;;
5080                 esac
5082                 if test "x$with_advance_toolchain" != x; then
5083                     if test -d "/opt/$with_advance_toolchain/." -a \
5084                         -d "/opt/$with_advance_toolchain/bin/." -a \
5085                         -d "/opt/$with_advance_toolchain/include/."; then
5087                         tm_file="$tm_file ./advance-toolchain.h"
5088                         (at="/opt/$with_advance_toolchain"
5089                          echo "/* Use Advance Toolchain $at */"
5090                          echo
5091                          echo "#undef  LINK_OS_NEW_DTAGS_SPEC"
5092                          echo "#define LINK_OS_NEW_DTAGS_SPEC" \
5093                               "\"--enable-new-dtags\""
5094                          echo
5095                          echo "#undef  DYNAMIC_LINKER_PREFIX"
5096                          echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
5097                          echo
5098                          echo "#undef  MD_EXEC_PREFIX"
5099                          echo "#define MD_EXEC_PREFIX \"$at/bin/\""
5100                          echo
5101                          echo "#undef  MD_STARTFILE_PREFIX"
5102                          echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
5103                          echo
5104                          echo "#undef  MD_STARTFILE_PREFIX_1"
5105                          echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
5106                             > advance-toolchain.h
5107                     else
5108                         echo "Unknown advance-toolchain $with_advance_toolchain"
5109                         exit 1
5110                     fi
5111                 fi
5113                 # Set up the default long double format if the user changed it.
5114                 if test x$with_long_double_format = xieee; then
5115                     tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
5117                 elif test x$with_long_double_format = xibm; then
5118                     tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5119                 fi
5120                 ;;
5122         s390*-*-*)
5123                 supported_defaults="arch mode tune"
5125                 for which in arch tune; do
5126                         eval "val=\$with_$which"
5127                         case ${val} in
5128                         "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 | arch14 )
5129                                 # OK
5130                                 ;;
5131                         *)
5132                                 echo "Unknown cpu used in --with-$which=$val." 1>&2
5133                                 exit 1
5134                                 ;;
5135                         esac
5136                 done
5138                 case ${with_mode} in
5139                 "" | esa | zarch)
5140                         # OK
5141                         ;;
5142                 *)
5143                         echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5144                         exit 1
5145                         ;;
5146                 esac
5147                 ;;
5149         sh[123456ble]*-*-* | sh-*-*)
5150                 supported_defaults="cpu"
5151                 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5152                 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5153                         # OK
5154                         ;;
5155                 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5156                         ;;
5157                 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5158                         ;;
5159                 *)
5160                         echo "Unknown CPU used in --with-cpu=$with_cpu, known values:"  1>&2
5161                         echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5162                         echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5163                         echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5164                         exit 1
5165                         ;;
5166                 esac
5167                 ;;
5168         sparc*-*-*)
5169                 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5171                 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5172                         eval "val=\$with_$which"
5173                         case ${val} in
5174                         "" | sparc | sparcv9 | sparc64 \
5175                         | v7 | cypress \
5176                         | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5177                         | sparclite | f930 | f934 | sparclite86x \
5178                         | sparclet | tsc701 \
5179                         | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5180                         | niagara3 | niagara4 | niagara7 | m8)
5181                                 # OK
5182                                 ;;
5183                         *)
5184                                 echo "Unknown cpu used in --with-$which=$val" 1>&2
5185                                 exit 1
5186                                 ;;
5187                         esac
5188                 done
5190                 case ${with_float} in
5191                 "" | soft | hard)
5192                         # OK
5193                         ;;
5194                 *)
5195                         echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5196                         exit 1
5197                         ;;
5198                 esac
5199                 ;;
5201         tic6x-*-*)
5202                 supported_defaults="arch"
5204                 case ${with_arch} in
5205                 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5206                         # OK
5207                         ;;
5208                 *)
5209                         echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5210                         exit 1
5211                         ;;
5212                 esac
5213                 ;;
5215         v850*-*-*)
5216                 supported_defaults=cpu
5217                 case ${with_cpu} in
5218                 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5219                         # OK
5220                         ;;
5221                 *)
5222                         echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5223                         exit 1
5224                         ;;
5225                 esac
5226                 ;;
5227         visium-*-*)
5228                 supported_defaults="cpu"
5229                 case $with_cpu in
5230                   "" | gr5 | gr6)
5231                         ;;
5232                   *)    echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5233                         exit 1
5234                         ;;
5235                 esac
5236                 ;;
5237 esac
5239 # Targets for which there is at least one VxWorks port should include
5240 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5241 # of markers from other files in the port, including the vxworks*.h files to
5242 # distinguish VxWorks variants such as VxWorks 7 or 64).
5244 case ${target} in
5245 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5246 | sparc*-*-* | x86_64-*-*)
5247         tm_file="vxworks-dummy.h ${tm_file}"
5248         ;;
5249 esac
5251 # Set some miscellaneous flags for particular targets.
5252 target_cpu_default2=
5253 case ${target} in
5254         aarch64*-*-*)
5255                 if test x"$target_cpu_cname" != x
5256                 then
5257                         target_cpu_default2=$target_cpu_cname
5258                 fi
5259                 ;;
5261         arm*-*-*)
5262                 if test x$with_cpu = x
5263                 then
5264                         echo "Don't know the target cpu" 1>&2
5265                         exit 1
5266                 else
5267                         target_cpu_default2="\\\"$with_cpu\\\""
5268                 fi
5269                 ;;
5271         hppa*-*-*)
5272                 if test x$gas = xyes
5273                 then
5274                         target_cpu_default2="MASK_GAS"
5275                 fi
5276                 ;;
5278         fido*-*-* | m68k*-*-*)
5279                 target_cpu_default2=$m68k_cpu_ident
5280                 tmake_file="m68k/t-opts $tmake_file"
5281                 if [ x"$m68k_arch_family" != x ]; then
5282                         tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5283                 fi
5284                 ;;
5286         i[34567]86-*-darwin* | x86_64-*-darwin*)
5287                 ;;
5288         i[34567]86-*-linux* | x86_64-*-linux*)
5289                 extra_objs="${extra_objs} gnu-property.o"
5290                 tmake_file="$tmake_file i386/t-linux i386/t-gnu-property"
5291                 ;;
5292         i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5293                 tmake_file="$tmake_file i386/t-kfreebsd"
5294                 ;;
5295         i[34567]86-*-gnu*)
5296                 tmake_file="$tmake_file i386/t-gnu"
5297                 ;;
5298         i[34567]86-*-msdosdjgpp*)
5299                 tmake_file="${tmake_file} i386/t-djgpp"
5300                 ;;
5301         i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5302                 ;;
5303         i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5304                 ;;
5305         i[34567]86-*-mingw* | x86_64-*-mingw*)
5306                 ;;
5307         i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5308                 ;;
5309         i[34567]86-*-freebsd*)
5310                 ;;
5311         x86_64-*-freebsd*)
5312                 tmake_file="${tmake_file} i386/t-freebsd64"
5313                 ;;
5314         ia64*-*-linux*)
5315                 ;;
5317         mips*-*-*)
5318                 if test x$gnu_ld = xyes
5319                 then
5320                         target_cpu_default2="MASK_SPLIT_ADDRESSES"
5321                 fi
5322                 case ${target} in
5323                         mips*el-*-*)
5324                                 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5325                                 ;;
5326                 esac
5327                 if test x$with_arch != x; then
5328                         default_mips_arch=$with_arch
5329                 fi
5330                 if test x$with_abi != x; then
5331                         default_mips_abi=$with_abi
5332                 fi
5333                 case ${default_mips_arch} in
5334                     mips1)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS1" ;;
5335                     mips2)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS2" ;;
5336                     mips3)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS3" ;;
5337                     mips4)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS4" ;;
5338                     mips32)   tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32" ;;
5339                     mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R2" ;;
5340                     mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS32R6" ;;
5341                     mips64)   tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64" ;;
5342                     mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R2" ;;
5343                     mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=MIPS_ISA_MIPS64R6" ;;
5344                 esac
5345                 case ${default_mips_abi} in
5346                     32)   tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5347                     o64)  tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5348                     n32)  tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5349                     64)   tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5350                     eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5351                 esac
5352                 tmake_file="mips/t-mips $tmake_file"
5353                 ;;
5355         powerpc*-*-* | rs6000-*-*)
5356                 # FIXME: The PowerPC port uses the value set at compile time,
5357                 # although it's only cosmetic.
5358                 if test "x$with_cpu" != x
5359                 then
5360                         target_cpu_default2="\\\"$with_cpu\\\""
5361                 fi
5362                 out_file="${cpu_type}/${cpu_type}.c"
5363                 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5364                 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5365                 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5366                 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5367                 ;;
5369         sh[123456ble]*-*-* | sh-*-*)
5370                 c_target_objs="${c_target_objs} sh-c.o"
5371                 cxx_target_objs="${cxx_target_objs} sh-c.o"
5372                 ;;
5374         sparc*-*-*)
5375                 # Some standard aliases.
5376                 case x$with_cpu in
5377                 xsparc)
5378                         with_cpu=v7
5379                         ;;
5380                 xsparcv9 | xsparc64)
5381                         with_cpu=v9
5382                         ;;
5383                 esac
5385                 if test x$with_tune = x ; then
5386                       case ${target} in
5387                       *-leon-*)
5388                           with_tune=leon
5389                           ;;
5390                       *-leon[3-9]*)
5391                           with_tune=leon3
5392                           ;;
5393                       esac
5394                 fi
5396                 # The SPARC port checks this value at compile-time.
5397                 target_cpu_default2="TARGET_CPU_$with_cpu"
5398                 ;;
5400         v850*-*-*)
5401                 case "x$with_cpu" in
5402                 x)
5403                         ;;
5404                 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5405                         target_cpu_default2="TARGET_CPU_$with_cpu"
5406                         ;;
5407                 xv850es)
5408                         target_cpu_default2="TARGET_CPU_v850e1"
5409                         ;;
5410                 esac
5411                 ;;
5412         visium-*-*)
5413                 target_cpu_default2="TARGET_CPU_$with_cpu"
5414                 ;;
5415 esac
5418 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"
5419 for option in $all_defaults
5421         eval "val=\$with_"`echo $option | sed s/-/_/g`
5422         if test -n "$val"; then
5423                 case " $supported_defaults " in
5424                 *" $option "*)
5425                         ;;
5426                 *)
5427                         echo "This target does not support --with-$option." 2>&1
5428                         echo "Valid --with options are: $supported_defaults" 2>&1
5429                         exit 1
5430                         ;;
5431                 esac
5433                 if test "x$t" = x
5434                 then
5435                         t="{ \"$option\", \"$val\" }"
5436                 else
5437                         t="${t}, { \"$option\", \"$val\" }"
5438                 fi
5439         fi
5440 done
5442 if test "x$t" = x
5443 then
5444         configure_default_options="{ { NULL, NULL} }"
5445 else
5446         configure_default_options="{ ${t} }"
5449 if test "$target_cpu_default2" != ""
5450 then
5451         if test "$target_cpu_default" != ""
5452         then
5453                 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5454         else
5455                 target_cpu_default=$target_cpu_default2
5456         fi
5459 case ${target} in
5460 i[34567]86-*-* | x86_64-*-*)
5461         if test x$enable_as_accelerator = xyes; then
5462                 extra_programs="mkoffload\$(exeext)"
5463         fi
5464         ;;
5465 esac