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