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