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