libiberty: Add support for demangling D function literals as template value parameters
[official-gcc.git] / gcc / config.gcc
blob0c91be6f35b159f212f71bc5f57274edb26d44e4
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-gnuabi64)
2557                         default_mips_abi=64
2558                         default_mips_arch=mips64r6
2559                         enable_mips_multilibs="yes"
2560                         ;;
2561                 mipsisa64r6*-*-linux*)
2562                         default_mips_abi=n32
2563                         default_mips_arch=mips64r6
2564                         enable_mips_multilibs="yes"
2565                         ;;
2566                 mipsisa64r2*-*-linux-gnuabi64)
2567                         default_mips_abi=64
2568                         default_mips_arch=mips64r2
2569                         enable_mips_multilibs="yes"
2570                         ;;
2571                 mipsisa64r2*-*-linux*)
2572                         default_mips_abi=n32
2573                         default_mips_arch=mips64r2
2574                         enable_mips_multilibs="yes"
2575                         ;;
2576                 mips64*-*-linux-gnuabi64 | mipsisa64*-*-linux-gnuabi64)
2577                         default_mips_abi=64
2578                         enable_mips_multilibs="yes"
2579                         ;;
2580                 mips64*-*-linux* | mipsisa64*-*-linux*)
2581                         default_mips_abi=n32
2582                         enable_mips_multilibs="yes"
2583                         ;;
2584         esac
2585         if test x$enable_targets = xall; then
2586                 enable_mips_multilibs="yes"
2587         fi
2588         if test x$enable_mips_multilibs = xyes; then
2589                 tmake_file="${tmake_file} mips/t-linux64"
2590         fi
2591         ;;
2592 mips*-mti-elf*)
2593         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2594         tmake_file="mips/t-mti-elf"
2595         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2596         with_arch_32="mips32r2"
2597         with_arch_64="mips64r2"
2598         ;;
2599 mips*-img-elf*)
2600         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2601         tmake_file="mips/t-img-elf"
2602         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2603         with_arch_32="mips32r6"
2604         with_arch_64="mips64r6"
2605         ;;
2606 mips*-sde-elf*)
2607         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2608         tmake_file="mips/t-sde"
2609         extra_options="${extra_options} mips/sde.opt"
2610         case "${with_newlib}" in
2611           yes)
2612             # newlib / libgloss.
2613             ;;
2614           *)
2615             # MIPS toolkit libraries.
2616             tm_file="$tm_file mips/sdemtk.h"
2617             tmake_file="$tmake_file mips/t-sdemtk"
2618             case ${enable_threads} in
2619               "" | yes | mipssde)
2620                 thread_file='mipssde'
2621                 ;;
2622             esac
2623             ;;
2624         esac
2625         case ${target} in
2626           mipsisa32r6*)
2627             tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2628             ;;
2629           mipsisa32r2*)
2630             tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2631             ;;
2632           mipsisa32*)
2633             tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2634             ;;
2635           mipsisa64r6*)
2636             tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2637             ;;
2638           mipsisa64r2*)
2639             tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2640             ;;
2641           mipsisa64*)
2642             tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2643             ;;
2644         esac
2645         ;;
2646 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2647 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2648 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2649 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2650 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2651 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2652         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2653         tmake_file="mips/t-isa3264"
2654         case ${target} in
2655           mipsisa32r6*)
2656             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2657             ;;
2658           mipsisa32r2*)
2659             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2660             ;;
2661           mipsisa32*)
2662             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2663             ;;
2664           mipsisa64r6*)
2665             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2666             ;;
2667           mipsisa64r2*)
2668             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2669             ;;
2670           mipsisa64*)
2671             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2672             ;;
2673         esac
2674         case ${target} in
2675           mipsisa32*-*-elfoabi*)
2676             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2677             tm_file="${tm_file} mips/elfoabi.h"
2678             ;;
2679           mipsisa64*-*-elfoabi*)
2680             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2681             tm_file="${tm_file} mips/elfoabi.h"
2682             ;;
2683           *-*-elf*)
2684             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2685             ;;
2686         esac
2687         ;;
2688 mipsisa64sr71k-*-elf*)
2689         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2690         tmake_file=mips/t-sr71k
2691         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2692         ;;
2693 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2694         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2695         tmake_file="mips/t-elf mips/t-sb1"
2696         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2697         ;;
2698 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2699         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2700         tmake_file="mips/t-elf"
2701         ;;
2702 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2703         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2704         tmake_file="mips/t-elf"
2705         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2706         ;;
2707 mips64-*-elf* | mips64el-*-elf*)
2708         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2709         tmake_file="mips/t-elf"
2710         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2711         ;;
2712 mips64vr-*-elf* | mips64vrel-*-elf*)
2713         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2714         tmake_file=mips/t-vr
2715         tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2716         ;;
2717 mips64orion-*-elf* | mips64orionel-*-elf*)
2718         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2719         tmake_file="mips/t-elf"
2720         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2721         ;;
2722 mips*-*-rtems*)
2723         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2724         tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2725         ;;
2726 mips-wrs-vxworks)
2727         tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2728         tmake_file="${tmake_file} mips/t-vxworks"
2729         ;;
2730 mipstx39-*-elf* | mipstx39el-*-elf*)
2731         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2732         tmake_file="mips/t-r3900"
2733         ;;
2734 mmix-knuth-mmixware)
2735         tm_file="${tm_file} newlib-stdint.h"
2736         use_gcc_stdint=wrap
2737         ;;
2738 mn10300-*-*)
2739         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2740         if test x$stabs = xyes
2741         then
2742                 tm_file="${tm_file} dbx.h"
2743         fi
2744         use_collect2=no
2745         use_gcc_stdint=wrap
2746         ;;
2747 msp430-*-*)
2748         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2749         c_target_objs="msp430-c.o"
2750         cxx_target_objs="msp430-c.o"
2751         tmake_file="${tmake_file} msp430/t-msp430"
2752         extra_objs="${extra_objs} msp430-devices.o"
2753         extra_gcc_objs="driver-msp430.o msp430-devices.o"
2754         # Enable .init_array unless it has been explicitly disabled.
2755         # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2756         # code since mid-2019 expects it.
2757         if test x${disable_initfini_array} != xyes; then
2758                 gcc_cv_initfini_array=yes
2759         fi
2760         case ${target} in
2761           msp430-*-elfbare)
2762             # __cxa_atexit increases code size, and we don't need to support
2763             # dynamic shared objects on MSP430, so regular Newlib atexit is a
2764             # fine replacement as it also supports registration of more than 32
2765             # functions.
2766             default_use_cxa_atexit=no
2767             # This target does not match the generic *-*-elf case above which
2768             # sets use_gcc_stdint=wrap, so explicitly set it here.
2769             use_gcc_stdint=wrap
2770             ;;
2771         esac
2772         ;;
2773 nds32*-*-*)
2774         target_cpu_default="0"
2775         tm_defines="${tm_defines}"
2776         case ${target} in
2777           nds32le*-*-*)
2778             ;;
2779           nds32be-*-*)
2780             target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2781             tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2782             ;;
2783         esac
2784         case ${target} in
2785           nds32*-*-elf*)
2786             tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2787             tmake_file="nds32/t-nds32 nds32/t-elf"
2788             ;;
2789           nds32*-*-linux*)
2790             tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2791             tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2792             gcc_cv_initfini_array=yes
2793             ;;
2794         esac
2796         # Handle --enable-default-relax setting.
2797         if test x${enable_default_relax} = xyes; then
2798                 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2799         fi
2800         # Handle --with-ext-dsp
2801         if test x${with_ext_dsp} = xyes; then
2802                 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2803         fi
2804         ;;
2805 nios2-*-*)
2806         tm_file="elfos.h ${tm_file}"
2807         tmake_file="${tmake_file} nios2/t-nios2"
2808         case ${target} in
2809         nios2-*-linux*)
2810                 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2811                 ;;
2812         nios2-*-elf*)
2813                 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2814                 extra_options="${extra_options} nios2/elf.opt"
2815                 ;;
2816         nios2-*-rtems*)
2817                 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2818                 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2819                 ;;
2820         esac
2821         ;;
2822 nvptx-*)
2823         tm_file="${tm_file} newlib-stdint.h"
2824         use_gcc_stdint=wrap
2825         tmake_file="nvptx/t-nvptx"
2826         if test x$enable_as_accelerator = xyes; then
2827                 extra_programs="${extra_programs} mkoffload\$(exeext)"
2828                 tm_file="${tm_file} nvptx/offload.h"
2829         fi
2830         ;;
2831 or1k*-*-*)
2832         tm_file="elfos.h ${tm_file}"
2833         tmake_file="${tmake_file} or1k/t-or1k"
2834         # Force .init_array support.  The configure script cannot always
2835         # automatically detect that GAS supports it, yet we require it.
2836         gcc_cv_initfini_array=yes
2838         # Handle --with-multilib-list=...
2839         or1k_multilibs="${with_multilib_list}"
2840         if test "$or1k_multilibs" = "default"; then
2841                 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2842         fi
2843         or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2844         for or1k_multilib in ${or1k_multilibs}; do
2845                 case ${or1k_multilib} in
2846                 mcmov | msext | msfimm | \
2847                 mror | mrori | \
2848                 mhard-float | mdouble-float | munordered-float | msoft-float | \
2849                 mhard-div | mhard-mul | \
2850                 msoft-div | msoft-mul )
2851                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2852                         ;;
2853                 *)
2854                         echo "--with-multilib-list=${with_multilib_list} not supported."
2855                         exit 1
2856                 esac
2857         done
2858         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2860         case ${target} in
2861         or1k*-*-linux*)
2862                 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2863                 tm_file="${tm_file} or1k/linux.h"
2864                 ;;
2865         or1k*-*-elf*)
2866                 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2867                 extra_options="${extra_options} or1k/elf.opt"
2868                 ;;
2869         or1k*-*-rtems*)
2870                 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2871                 tmake_file="${tmake_file} or1k/t-rtems"
2872                 ;;
2873         esac
2874         ;;
2875 pdp11-*-*)
2876         tm_file="${tm_file} newlib-stdint.h"
2877         use_gcc_stdint=wrap
2878         ;;
2879 # port not yet contributed
2880 #powerpc-*-openbsd*)
2881 #       tmake_file="${tmake_file} rs6000/t-fprules"
2882 #       extra_headers=
2883 #       ;;
2884 powerpc-*-darwin*)
2885         extra_options="${extra_options} ${cpu_type}/darwin.opt"
2886         case ${target} in
2887           *-darwin1[0-9]* | *-darwin9*)
2888             tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2889             tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2890             ;;
2891           *-darwin8*)
2892             tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2893             tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2894             ;;
2895           *-darwin7*)
2896             tm_file="${tm_file} ${cpu_type}/darwin7.h"
2897             ;;
2898           *-darwin[456]*)
2899             # Earlier - ingle arch, with 32b only
2900             # OS X 10.0, the first edition is Darwin4
2901             ;;
2902         esac
2903         tmake_file="${tmake_file} t-slibgcc"
2904         ;;
2905 powerpc64-*-darwin*)
2906         extra_options="${extra_options} ${cpu_type}/darwin.opt"
2907         tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2908         tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2909         ;;
2910 powerpc*-*-freebsd*)
2911         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2912         extra_options="${extra_options} rs6000/sysv4.opt"
2913         tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2914         case ${target} in
2915             powerpc*le-*-*)
2916                 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2917         esac
2918         case ${target} in
2919              powerpc64*)
2920                 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2921                 tmake_file="${tmake_file} rs6000/t-freebsd64"
2922                 extra_options="${extra_options} rs6000/linux64.opt"
2923                 if test $fbsd_major -ge 13; then
2924                     tm_defines="${tm_defines} TARGET_FREEBSD32_SECURE_PLT=1"
2925                 fi
2926                 ;;
2927              *)
2928                 if test $fbsd_major -ge 13; then
2929                     tm_file="rs6000/secureplt.h ${tm_file}"
2930                 fi
2931                 tm_file="${tm_file} rs6000/freebsd.h"
2932                 ;;
2933         esac
2934         ;;
2935 powerpc-*-netbsd*)
2936         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2937         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2938         tmake_file="${tmake_file} rs6000/t-netbsd"
2939         extra_options="${extra_options} rs6000/sysv4.opt"
2940         ;;
2941 powerpc-*-eabisimaltivec*)
2942         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"
2943         extra_options="${extra_options} rs6000/sysv4.opt"
2944         tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2945         use_gcc_stdint=wrap
2946         ;;
2947 powerpc-*-eabisim*)
2948         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"
2949         extra_options="${extra_options} rs6000/sysv4.opt"
2950         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2951         use_gcc_stdint=wrap
2952         ;;
2953 powerpc-*-elf*)
2954         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2955         extra_options="${extra_options} rs6000/sysv4.opt"
2956         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2957         ;;
2958 powerpc-*-eabialtivec*)
2959         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"
2960         extra_options="${extra_options} rs6000/sysv4.opt"
2961         tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2962         use_gcc_stdint=wrap
2963         ;;
2964 powerpc-*-eabi*)
2965         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"
2966         extra_options="${extra_options} rs6000/sysv4.opt"
2967         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2968         use_gcc_stdint=wrap
2969         ;;
2970 powerpc-*-rtems*)
2971         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"
2972         extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2973         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2974         ;;
2975 powerpc*-*-linux*)
2976         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2977         extra_options="${extra_options} rs6000/sysv4.opt"
2978         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2979         extra_objs="$extra_objs rs6000-linux.o"
2980         case ${target} in
2981             powerpc*le-*-*)
2982                 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2983         esac
2984         case ${target}:${with_cpu} in
2985             powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2986         esac
2987         maybe_biarch=${cpu_is_64bit}
2988         case ${enable_targets} in
2989             *powerpc64*) maybe_biarch=yes ;;
2990             all) maybe_biarch=yes ;;
2991         esac
2992         case ${target}:${enable_targets}:${maybe_biarch} in
2993             powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2994             | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2995             | powerpcle-*:*powerpc64le*:yes)
2996                 if test x$cpu_is_64bit = xyes; then
2997                     tm_file="${tm_file} rs6000/default64.h"
2998                 fi
2999                 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
3000                 tmake_file="$tmake_file rs6000/t-linux64"
3001                 case ${target} in
3002                     powerpc*le-*-*)
3003                         tmake_file="$tmake_file rs6000/t-linux64le"
3004                         case ${enable_targets} in
3005                             all | *powerpc64-* | *powerpc-*)
3006                                 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
3007                         esac ;;
3008                     *)
3009                         case ${enable_targets} in
3010                             all | *powerpc64le-* | *powerpcle-*)
3011                                 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
3012                         esac ;;
3013                 esac
3014                 extra_options="${extra_options} rs6000/linux64.opt"
3015                 ;;
3016             powerpc64*)
3017                 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
3018                 extra_options="${extra_options} rs6000/linux64.opt"
3019                 tmake_file="${tmake_file} rs6000/t-linux"
3020                 ;;
3021             *)
3022                 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
3023                 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
3024                 ;;
3025         esac
3026         case ${target} in
3027             powerpc*-*-linux*ppc476*)
3028                 tm_file="${tm_file} rs6000/476.h"
3029                 extra_options="${extra_options} rs6000/476.opt" ;;
3030             powerpc*-*-linux*altivec*)
3031                 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
3032         esac
3033         case ${target} in
3034             *-linux*-musl*)
3035                 enable_secureplt=yes ;;
3036         esac
3037         if test x${enable_secureplt} = xyes; then
3038                 tm_file="rs6000/secureplt.h ${tm_file}"
3039         fi
3040         ;;
3041 powerpc*-wrs-vxworks7r*)
3043         # Wind River 7 post SR0600 is mostly like Linux so we setup
3044         # our config in a very similar fashion and adjust to a few
3045         # specificities.
3047         # The system compiler is configured with secureplt by default.
3048         tm_file="${tm_file} rs6000/secureplt.h"
3050         tm_file="${tm_file} elfos.h gnu-user.h linux.h freebsd-spec.h"
3051         tm_file="${tm_file} rs6000/sysv4.h rs6000/biarch64.h rs6000/default64.h rs6000/linux64.h"
3052         tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3054         extra_options="${extra_options} rs6000/sysv4.opt linux.opt rs6000/linux64.opt"
3056         tmake_file="${tmake_file} t-linux rs6000/t-linux64 rs6000/t-fprules rs6000/t-ppccomm"
3057         tmake_file="${tmake_file} rs6000/t-vxworks"
3059         tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
3060         extra_objs="$extra_objs linux.o rs6000-linux.o"
3061         ;;
3062 powerpc-wrs-vxworks*)
3063         tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
3064         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
3065         extra_options="${extra_options} rs6000/sysv4.opt"
3066         extra_headers="${extra_headers} ppc-asm.h"
3067         case ${target} in
3068           *-vxworksmils*)
3069             tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
3070             tmake_file="${tmake_file} rs6000/t-vxworksmils"
3071             ;;
3072           *-vxworksae*)
3073             tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
3074             tmake_file="${tmake_file} rs6000/t-vxworksae"
3075             ;;
3076           *-vxworks*)
3077             tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
3078             ;;
3079         esac
3080         ;;
3081 powerpc-*-lynxos*)
3082         xm_defines=POSIX
3083         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
3084         tmake_file="t-lynx rs6000/t-lynx"
3085         extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
3086         thread_file=lynx
3087         gnu_ld=yes
3088         gas=yes
3089         ;;
3090 powerpcle-*-elf*)
3091         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"
3092         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3093         extra_options="${extra_options} rs6000/sysv4.opt"
3094         ;;
3095 powerpcle-*-eabisim*)
3096         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"
3097         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3098         extra_options="${extra_options} rs6000/sysv4.opt"
3099         use_gcc_stdint=wrap
3100         ;;
3101 powerpcle-*-eabi*)
3102         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"
3103         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
3104         extra_options="${extra_options} rs6000/sysv4.opt"
3105         use_gcc_stdint=wrap
3106         ;;
3107 pru*-*-*)
3108         tm_file="elfos.h newlib-stdint.h ${tm_file}"
3109         tmake_file="${tmake_file} pru/t-pru"
3110         extra_objs="pru-pragma.o pru-passes.o"
3111         use_gcc_stdint=wrap
3112         ;;
3113 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
3114         tmake_file="rs6000/t-aix52 t-slibgcc"
3115         if test x$cpu_is_64bit = xyes; then
3116             tm_file="${tm_file} rs6000/biarch64.h"
3117             tmake_file="rs6000/t-aix64 t-slibgcc"
3118         fi
3119         tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
3120         extra_options="${extra_options} rs6000/aix64.opt"
3121         use_collect2=yes
3122         thread_file='aix'
3123         use_gcc_stdint=wrap
3124         default_use_cxa_atexit=yes
3125         ;;
3126 rs6000-ibm-aix7.2.* | powerpc-ibm-aix7.2.*)
3127         tmake_file="rs6000/t-aix52 t-slibgcc"
3128         if test x$cpu_is_64bit = xyes; then
3129             tm_file="${tm_file} rs6000/biarch64.h"
3130             tmake_file="rs6000/t-aix64 t-slibgcc"
3131         fi
3132         tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
3133         extra_options="${extra_options} rs6000/aix64.opt"
3134         use_collect2=yes
3135         thread_file='aix'
3136         use_gcc_stdint=wrap
3137         default_use_cxa_atexit=yes
3138         ;;
3139 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
3140         tmake_file="rs6000/t-aix52 t-slibgcc"
3141         if test x$cpu_is_64bit = xyes; then
3142             tm_file="${tm_file} rs6000/biarch64.h"
3143             tmake_file="rs6000/t-aix64 t-slibgcc"
3144         fi
3145         tm_file="${tm_file} rs6000/aix.h rs6000/aix73.h rs6000/xcoff.h rs6000/aix-stdint.h"
3146         extra_options="${extra_options} rs6000/aix64.opt"
3147         use_collect2=yes
3148         thread_file='aix'
3149         use_gcc_stdint=wrap
3150         default_use_cxa_atexit=yes
3151         ;;
3152 rl78-*-elf*)
3153         tm_file="elfos.h newlib-stdint.h ${tm_file}"
3154         target_has_targetm_common=no
3155         c_target_objs="rl78-c.o"
3156         cxx_target_objs="rl78-c.o"
3157         tmake_file="${tmake_file} rl78/t-rl78"
3158         ;;
3159 rx-*-elf*)
3160         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3161         tmake_file="${tmake_file} rx/t-rx"
3162         extra_options="${extra_options} rx/elf.opt"
3163         ;;
3164 rx-*-linux*)
3165         tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
3166         tmake_file="${tmake_file} rx/t-linux"
3167         ;;
3168 s390-*-linux*)
3169         tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3170         c_target_objs="${c_target_objs} s390-c.o"
3171         cxx_target_objs="${cxx_target_objs} s390-c.o"
3172         if test x$enable_targets = xall; then
3173                 tmake_file="${tmake_file} s390/t-linux64"
3174         fi
3175         tmake_file="${tmake_file} s390/t-s390"
3176         ;;
3177 s390x-*-linux*)
3178         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
3179         tm_p_file="linux-protos.h s390/s390-protos.h"
3180         c_target_objs="${c_target_objs} s390-c.o"
3181         cxx_target_objs="${cxx_target_objs} s390-c.o"
3182         md_file=s390/s390.md
3183         extra_modes=s390/s390-modes.def
3184         out_file=s390/s390.c
3185         tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
3186         ;;
3187 s390x-ibm-tpf*)
3188         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h glibc-stdint.h s390/tpf.h"
3189         tm_p_file=s390/s390-protos.h
3190         c_target_objs="${c_target_objs} s390-c.o"
3191         cxx_target_objs="${cxx_target_objs} s390-c.o"
3192         md_file=s390/s390.md
3193         extra_modes=s390/s390-modes.def
3194         out_file=s390/s390.c
3195         thread_file='tpf'
3196         extra_options="${extra_options} s390/tpf.opt"
3197         tmake_file="${tmake_file} s390/t-s390"
3198         ;;
3199 sh-*-elf* | sh[12346l]*-*-elf* | \
3200   sh-*-linux* | sh[2346lbe]*-*-linux* | \
3201   sh-*-netbsdelf* | shl*-*-netbsdelf*)
3202         tmake_file="${tmake_file} sh/t-sh sh/t-elf"
3203         if test x${with_endian} = x; then
3204                 case ${target} in
3205                 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
3206                 shbe-*-* | sheb-*-*)               with_endian=big,little ;;
3207                 sh[1234]l* | sh[34]*-*-linux*)     with_endian=little ;;
3208                 shl* | sh*-*-linux* | \
3209                   sh-superh-elf)                   with_endian=little,big ;;
3210                 sh[1234]*-*-*)                     with_endian=big ;;
3211                 *)                                 with_endian=big,little ;;
3212                 esac
3213         fi
3214         # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
3215         #  First word : the default endian.
3216         #  Second word: the secondary endian (optional).
3217         case ${with_endian} in
3218         big)            TM_ENDIAN_CONFIG=mb ;;
3219         little)         TM_ENDIAN_CONFIG=ml ;;
3220         big,little)     TM_ENDIAN_CONFIG="mb ml" ;;
3221         little,big)     TM_ENDIAN_CONFIG="ml mb" ;;
3222         *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
3223         esac
3224         case ${with_endian} in
3225         little*)        tm_file="sh/little.h ${tm_file}" ;;
3226         esac
3227         tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
3228         case ${target} in
3229         sh*-*-linux*)   tmake_file="${tmake_file} sh/t-linux"
3230                         if test x$enable_fdpic = xyes; then
3231                                 tm_defines="$tm_defines FDPIC_DEFAULT=1"
3232                         fi
3233                         tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
3234         sh*-*-netbsd*)
3235                         tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
3236                         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3238                         ;;
3239         sh*-superh-elf) if test x$with_libgloss != xno; then
3240                                 with_libgloss=yes
3241                                 tm_file="${tm_file} sh/newlib.h"
3242                         fi
3243                         tm_file="${tm_file} sh/embed-elf.h"
3244                         tm_file="${tm_file} sh/superh.h"
3245                         extra_options="${extra_options} sh/superh.opt" ;;
3246         *)              if test x$with_newlib = xyes \
3247                            && test x$with_libgloss = xyes; then
3248                                 tm_file="${tm_file} sh/newlib.h"
3249                         fi
3250                         tm_file="${tm_file} sh/embed-elf.h" ;;
3251         esac
3252         case ${target} in
3253         *-*-netbsd)
3254                 ;;
3255         *-*-elf*)
3256                 tm_file="${tm_file} newlib-stdint.h"
3257                 ;;
3258         esac
3259         # sed el/eb endian suffixes away to avoid confusion with sh[23]e
3260         case `echo ${target} | sed 's/e[lb]-/-/'` in
3261         sh4a_single_only*)      sh_cpu_target=sh4a-single-only ;;
3262         sh4a_single*)           sh_cpu_target=sh4a-single ;;
3263         sh4a_nofpu*)            sh_cpu_target=sh4a-nofpu ;;
3264         sh4al)                  sh_cpu_target=sh4al ;;
3265         sh4a*)                  sh_cpu_target=sh4a ;;
3266         sh4_single_only*)       sh_cpu_target=sh4-single-only ;;
3267         sh4_single*)            sh_cpu_target=sh4-single ;;
3268         sh4_nofpu*)             sh_cpu_target=sh4-nofpu ;;
3269         sh4* | sh-superh-*)     sh_cpu_target=sh4 ;;
3270         sh3e*)                  sh_cpu_target=sh3e ;;
3271         sh*-*-netbsd* | sh3*)   sh_cpu_target=sh3 ;;
3272         sh2a_single_only*)      sh_cpu_target=sh2a-single-only ;;
3273         sh2a_single*)           sh_cpu_target=sh2a-single ;;
3274         sh2a_nofpu*)            sh_cpu_target=sh2a-nofpu ;;
3275         sh2a*)                  sh_cpu_target=sh2a ;;
3276         sh2e*)                  sh_cpu_target=sh2e ;;
3277         sh2*)                   sh_cpu_target=sh2 ;;
3278         *)                      sh_cpu_target=sh1 ;;
3279         esac
3280         # did the user say --without-fp ?
3281         if test x$with_fp = xno; then
3282                 case ${sh_cpu_target} in
3283                 sh4al | sh1)    ;;
3284                 sh4a* )         sh_cpu_target=sh4a-nofpu ;;
3285                 sh4*)           sh_cpu_target=sh4-nofpu ;;
3286                 sh3*)           sh_cpu_target=sh3 ;;
3287                 sh2a*)          sh_cpu_target=sh2a-nofpu ;;
3288                 sh2*)           sh_cpu_target=sh2 ;;
3289                 *)      echo --without-fp not available for $target: ignored
3290                 esac
3291                 tm_defines="$tm_defines STRICT_NOFPU=1"
3292         fi
3293         sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3294         case $sh_cpu_default in
3295           sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
3296           sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
3297           sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
3298           sh3e | sh3 | sh2e | sh2 | sh1) ;;
3299         "")     sh_cpu_default=${sh_cpu_target} ;;
3300         *)      echo "with_cpu=$with_cpu not supported"; exit 1 ;;
3301         esac
3302         sh_multilibs=${with_multilib_list}
3303         if test "$sh_multilibs" = "default" ; then
3304                 case ${target} in
3305                 sh[1234]*)      sh_multilibs=${sh_cpu_target} ;;
3306                 sh-superh-*)    sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
3307                 sh*-*-linux*)   sh_multilibs=m1,m2,m2a,m3e,m4 ;;
3308                 sh*-*-netbsd*)  sh_multilibs=m3,m3e,m4 ;;
3309                 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
3310                 esac
3311                 if test x$with_fp = xno; then
3312                         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`"
3313                 fi
3314         fi
3315         target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
3316         tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
3317         tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3318         sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
3319         for sh_multilib in ${sh_multilibs}; do
3320                 case ${sh_multilib} in
3321                 m1 | m2 | m2e | m3 | m3e | \
3322                 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3323                 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
3324                 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3325                         # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3326                         # It is passed to MULTIILIB_OPTIONS verbatim.
3327                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3328                         tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
3329                         ;;
3330                 \!*)    # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3331                         # It is passed the MULTILIB_EXCEPTIONS verbatim.
3332                         TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
3333                 *)
3334                         echo "with_multilib_list=${sh_multilib} not supported."
3335                         exit 1
3336                         ;;
3337                 esac
3338         done
3339         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3340         if test x${enable_incomplete_targets} = xyes ; then
3341                 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
3342         fi
3343         tm_file="$tm_file ./sysroot-suffix.h"
3344         tmake_file="$tmake_file t-sysroot-suffix"
3345         ;;
3346 sh-*-rtems*)
3347         tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
3348         tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
3349         ;;
3350 sh-wrs-vxworks)
3351         tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
3352         tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
3353         ;;
3354 sparc-*-elf*)
3355         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
3356         case ${target} in
3357             *-leon-*)
3358                 tmake_file="sparc/t-sparc sparc/t-leon"
3359                 ;;
3360             *-leon[3-9]*)
3361                 tmake_file="sparc/t-sparc sparc/t-leon3"
3362                 ;;
3363             *)
3364                 tmake_file="sparc/t-sparc sparc/t-elf"
3365                 ;;
3366         esac
3367         ;;
3368 sparc-*-rtems*)
3369         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
3370         tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
3371         ;;
3372 sparc-*-linux*)
3373         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
3374         extra_options="${extra_options} sparc/long-double-switch.opt"
3375         case ${target} in
3376             *-leon-*)
3377                 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
3378                 ;;
3379             *-leon[3-9]*)
3380                 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
3381                 ;;
3382             *)
3383                 tmake_file="${tmake_file} sparc/t-sparc"
3384                 ;;
3385         esac
3386         if test x$enable_targets = xall; then
3387                 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
3388                 tmake_file="${tmake_file} sparc/t-linux64"
3389         else
3390                 tm_file="${tm_file} sparc/linux.h"
3391                 tmake_file="${tmake_file} sparc/t-linux"
3392         fi
3393         ;;
3394 sparc-*-netbsdelf*)
3395         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3396         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3397         extra_options="${extra_options} sparc/long-double-switch.opt"
3398         tmake_file="${tmake_file} sparc/t-sparc"
3399         ;;
3400 sparc*-*-solaris2*)
3401         tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
3402         case ${target} in
3403             sparc64-*-* | sparcv9-*-*)
3404                 tm_file="sparc/default64.h ${tm_file}"
3405                 ;;
3406             *)
3407                 test x$with_cpu != x || with_cpu=v9
3408                 ;;
3409         esac
3410         tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
3411         ;;
3412 sparc-wrs-vxworks)
3413         tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
3414         tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
3415         ;;
3416 sparc64-*-elf*)
3417         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
3418         extra_options="${extra_options}"
3419         tmake_file="${tmake_file} sparc/t-sparc"
3420         ;;
3421 sparc64-*-rtems*)
3422         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
3423         extra_options="${extra_options}"
3424         tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
3425         ;;
3426 sparc64-*-linux*)
3427         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"
3428         extra_options="${extra_options} sparc/long-double-switch.opt"
3429         tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
3430         ;;
3431 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3432         tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
3433         extra_options="${extra_options} sparc/long-double-switch.opt"
3434         case "x$with_cpu" in
3435                 xultrasparc) ;;
3436                 x) with_cpu=ultrasparc ;;
3437                 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3438         esac
3439         tmake_file="${tmake_file} sparc/t-sparc"
3440         ;;
3441 sparc64-*-netbsd*)
3442         tm_file="sparc/biarch64.h ${tm_file}"
3443         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
3444         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3445         extra_options="${extra_options} sparc/long-double-switch.opt"
3446         tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
3447         ;;
3448 sparc64-*-openbsd*)
3449         tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
3450         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
3451         extra_options="${extra_options} openbsd.opt"
3452         extra_options="${extra_options}"
3453         gas=yes gnu_ld=yes
3454         with_cpu=ultrasparc
3455         tmake_file="${tmake_file} sparc/t-sparc"
3456         ;;
3457 tic6x-*-elf)
3458         tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3459         tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3460         tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3461         use_collect2=no
3462         ;;
3463 tic6x-*-uclinux)
3464         tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3465         tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3466         tm_file="${tm_file} ./sysroot-suffix.h"
3467         tmake_file="t-sysroot-suffix t-slibgcc"
3468         tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3469         use_collect2=no
3470         ;;
3471 tilegx*-*-linux*)
3472         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3473         tmake_file="${tmake_file} tilegx/t-tilegx"
3474         extra_objs="${extra_objs} mul-tables.o"
3475         c_target_objs="${c_target_objs} tilegx-c.o"
3476         cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3477         extra_headers="feedback.h"
3478         case $target in
3479         tilegxbe-*)
3480                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3481                 ;;
3482         esac
3483         ;;
3484 tilepro*-*-linux*)
3485         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3486         tmake_file="${tmake_file} tilepro/t-tilepro"
3487         extra_objs="${extra_objs} mul-tables.o"
3488         c_target_objs="${c_target_objs} tilepro-c.o"
3489         cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3490         extra_headers="feedback.h"
3491         ;;
3492 v850-*-rtems*)
3493         target_cpu_default="TARGET_CPU_generic"
3494         tm_file="elfos.h v850/v850.h"
3495         tm_file="${tm_file} v850/rtems.h rtems.h newlib-stdint.h"
3496         tmake_file="${tmake_file} v850/t-v850"
3497         tmake_file="${tmake_file} v850/t-rtems"
3498         use_collect2=no
3499         c_target_objs="v850-c.o"
3500         cxx_target_objs="v850-c.o"
3501         ;;
3502 v850*-*-*)
3503         case ${target} in
3504         v850e3v5-*-*)
3505                 target_cpu_default="TARGET_CPU_v850e3v5"
3506                 ;;
3507         v850e2v3-*-*)
3508                 target_cpu_default="TARGET_CPU_v850e2v3"
3509                 ;;
3510         v850e2-*-*)
3511                 target_cpu_default="TARGET_CPU_v850e2"
3512                 ;;
3513         v850e1-*-* | v850es-*-*)
3514                 target_cpu_default="TARGET_CPU_v850e1"
3515                 ;;
3516         v850e-*-*)
3517                 target_cpu_default="TARGET_CPU_v850e"
3518                 ;;
3519         v850-*-*)
3520                 target_cpu_default="TARGET_CPU_generic"
3521                 ;;
3522         esac
3523         tm_file="elfos.h newlib-stdint.h v850/v850.h"
3524         use_collect2=no
3525         c_target_objs="v850-c.o"
3526         cxx_target_objs="v850-c.o"
3527         use_gcc_stdint=wrap
3528         ;;
3529 vax-*-linux*)
3530         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3531         extra_options="${extra_options} vax/elf.opt"
3532         ;;
3533 vax-*-netbsdelf*)
3534         tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3535         extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3536         tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3537         ;;
3538 vax-*-openbsd*)
3539         tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3540         extra_options="${extra_options} openbsd.opt"
3541         use_collect2=yes
3542         ;;
3543 visium-*-elf*)
3544         tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3545         tmake_file="visium/t-visium visium/t-crtstuff"
3546         ;;
3547 xstormy16-*-elf)
3548         # For historical reasons, the target files omit the 'x'.
3549         tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3550         tm_p_file=stormy16/stormy16-protos.h
3551         tm_d_file="elfos.h stormy16/stormy16.h"
3552         md_file=stormy16/stormy16.md
3553         out_file=stormy16/stormy16.c
3554         extra_options=stormy16/stormy16.opt
3555         tmake_file="stormy16/t-stormy16"
3556         ;;
3557 xtensa*-*-elf*)
3558         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3559         extra_options="${extra_options} xtensa/elf.opt"
3560         ;;
3561 xtensa*-*-linux*)
3562         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3563         tmake_file="${tmake_file} xtensa/t-xtensa"
3564         ;;
3565 xtensa*-*-uclinux*)
3566         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3567         tmake_file="${tmake_file} xtensa/t-xtensa"
3568         extra_options="${extra_options} xtensa/uclinux.opt"
3569         ;;
3570 am33_2.0-*-linux*)
3571         tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3572         gas=yes gnu_ld=yes
3573         use_collect2=no
3574         ;;
3575 m32c-*-rtems*)
3576         tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3577         c_target_objs="m32c-pragma.o"
3578         cxx_target_objs="m32c-pragma.o"
3579         ;;
3580 m32c-*-elf*)
3581         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3582         c_target_objs="m32c-pragma.o"
3583         cxx_target_objs="m32c-pragma.o"
3584         ;;
3586         echo "*** Configuration ${target} not supported" 1>&2
3587         exit 1
3588         ;;
3589 esac
3591 case ${target} in
3592 i[34567]86-*-linux* | x86_64-*-linux*)
3593         tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3594         ;;
3595 i[34567]86-*-* | x86_64-*-*)
3596         tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3597         ;;
3598 powerpc*-*-* | rs6000-*-*)
3599         tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3600 esac
3602 # non-glibc systems
3603 case ${target} in
3604 *-linux-musl*)
3605         tmake_file="${tmake_file} t-musl"
3606         ;;
3607 *-linux-uclibc*)
3608         tmake_file="${tmake_file} t-uclibc"
3609         ;;
3610 esac
3612 # Assume the existence of indirect function support and allow the use of the
3613 # resolver attribute.
3614 case ${target} in
3615 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3616         ;;
3617 *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
3618         ;;
3619 *-*-linux* | *-*-gnu*)
3620         case ${target} in
3621         aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3622                 default_gnu_indirect_function=yes
3623                 ;;
3624         esac
3625         ;;
3626 esac
3628 # Build mkoffload tool
3629 case ${target} in
3630 *-intelmic-* | *-intelmicemul-*)
3631         tmake_file="${tmake_file} i386/t-intelmic"
3632         tm_file="${tm_file} i386/intelmic-offload.h"
3633         ;;
3634 esac
3636 if [ "$target_has_targetcm" = "no" ]; then
3637   c_target_objs="$c_target_objs default-c.o"
3638   cxx_target_objs="$cxx_target_objs default-c.o"
3641 if [ "$common_out_file" = "" ]; then
3642   if [ "$target_has_targetm_common" = "yes" ]; then
3643     common_out_file="$cpu_type/$cpu_type-common.c"
3644   else
3645     common_out_file="default-common.c"
3646   fi
3649 if [ "$target_has_targetdm" = "no" ]; then
3650   d_target_objs="$d_target_objs default-d.o"
3653 # Support for --with-cpu and related options (and a few unrelated options,
3654 # too).
3655 case ${with_cpu} in
3656   yes | no)
3657     echo "--with-cpu must be passed a value" 1>&2
3658     exit 1
3659     ;;
3660 esac
3662 # Set arch and cpu from ${target} and ${target_noncanonical}.  Set cpu
3663 # to generic if there is no processor scheduler model for the target.
3664 arch=
3665 cpu=
3666 arch_without_sse2=no
3667 arch_without_64bit=no
3668 case ${target} in
3669   i386-*-freebsd*)
3670     if test $fbsd_major -ge 6; then
3671       arch=i486
3672     else
3673       arch=i386
3674     fi
3675     cpu=generic
3676     arch_without_sse2=yes
3677     arch_without_64bit=yes
3678     ;;
3679   i386-*-netbsd*)
3680     arch=i486
3681     cpu=generic
3682     arch_without_sse2=yes
3683     arch_without_64bit=yes
3684     ;;
3685   i386-*-*)
3686     arch=i386
3687     cpu=i386
3688     arch_without_sse2=yes
3689     arch_without_64bit=yes
3690     ;;
3691   i486-*-*)
3692     arch=i486
3693     cpu=i486
3694     arch_without_sse2=yes
3695     arch_without_64bit=yes
3696     ;;
3697   i586-*-*)
3698     arch_without_sse2=yes
3699     arch_without_64bit=yes
3700     case ${target_noncanonical} in
3701       k6_2-*)
3702         arch=k6-2
3703         cpu=k6-2
3704         ;;
3705       k6_3-*)
3706         arch=k6-3
3707         cpu=k6-3
3708         ;;
3709       k6-*)
3710         arch=k6
3711         cpu=k6
3712         ;;
3713       pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3714         arch=pentium-mmx
3715         cpu=pentium-mmx
3716         ;;
3717       *)
3718         arch=pentium
3719         cpu=pentium
3720         ;;
3721     esac
3722     ;;
3723   i686-*-* | i786-*-*)
3724     case ${target_noncanonical} in
3725       znver1-*)
3726         arch=znver1
3727         cpu=znver1
3728         ;;
3729       znver2-*)
3730         arch=znver2
3731         cpu=znver2
3732         ;;
3733       znver3-*)
3734         arch=znver3
3735         cpu=znver3
3736         ;;
3737       bdver4-*)
3738         arch=bdver4
3739         cpu=bdver4
3740         ;;
3741       bdver3-*)
3742         arch=bdver3
3743         cpu=bdver3
3744         ;;
3745       bdver2-*)
3746         arch=bdver2
3747         cpu=bdver2
3748         ;;
3749       bdver1-*)
3750         arch=bdver1
3751         cpu=bdver1
3752         ;;
3753       btver1-*)
3754         arch=btver1
3755         cpu=btver1
3756         ;;
3757       btver2-*)
3758         arch=btver2
3759         cpu=btver2
3760         ;;
3761       amdfam10-*|barcelona-*)
3762         arch=amdfam10
3763         cpu=amdfam10
3764         ;;
3765       k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3766         arch=k8-sse3
3767         cpu=k8-sse3
3768         ;;
3769       k8-*|opteron-*|athlon64-*|athlon_fx-*)
3770         arch=k8
3771         cpu=k8
3772         ;;
3773       athlon_xp-*|athlon_mp-*|athlon_4-*)
3774         arch=athlon-4
3775         cpu=athlon-4
3776         arch_without_sse2=yes
3777         arch_without_64bit=yes
3778         ;;
3779       athlon_tbird-*|athlon-*)
3780         arch=athlon
3781         cpu=athlon
3782         arch_without_sse2=yes
3783         ;;
3784       geode-*)
3785         arch=geode
3786         cpu=geode
3787         arch_without_sse2=yes
3788         ;;
3789       pentium2-*)
3790         arch=pentium2
3791         cpu=pentium2
3792         arch_without_sse2=yes
3793         ;;
3794       pentium3-*|pentium3m-*)
3795         arch=pentium3
3796         cpu=pentium3
3797         arch_without_sse2=yes
3798         ;;
3799       pentium4-*|pentium4m-*)
3800         arch=pentium4
3801         cpu=pentium4
3802         ;;
3803       prescott-*)
3804         arch=prescott
3805         cpu=prescott
3806         ;;
3807       nocona-*)
3808         arch=nocona
3809         cpu=nocona
3810         ;;
3811       atom-*)
3812         arch=atom
3813         cpu=atom
3814         ;;
3815       slm-*)
3816         arch=slm
3817         cpu=slm
3818         ;;
3819       core2-*)
3820         arch=core2
3821         cpu=core2
3822         ;;
3823       corei7-*)
3824         arch=corei7
3825         cpu=corei7
3826         ;;
3827       corei7_avx-*)
3828         arch=corei7-avx
3829         cpu=corei7-avx
3830         ;;
3831       pentium_m-*)
3832         arch=pentium-m
3833         cpu=pentium-m
3834         ;;
3835       pentiumpro-*)
3836         arch=pentiumpro
3837         cpu=pentiumpro
3838         arch_without_sse2=yes
3839         ;;
3840       *)
3841         arch=pentiumpro
3842         cpu=generic
3843         arch_without_sse2=yes
3844         arch_without_64bit=yes
3845         ;;
3846     esac
3847     ;;
3848   x86_64-*-*)
3849     case ${target_noncanonical} in
3850       znver1-*)
3851         arch=znver1
3852         cpu=znver1
3853         ;;
3854       znver2-*)
3855         arch=znver2
3856         cpu=znver2
3857         ;;
3858       znver3-*)
3859         arch=znver3
3860         cpu=znver3
3861         ;;
3862       bdver4-*)
3863         arch=bdver4
3864         cpu=bdver4
3865         ;;
3866       bdver3-*)
3867         arch=bdver3
3868         cpu=bdver3
3869         ;;
3870       bdver2-*)
3871         arch=bdver2
3872         cpu=bdver2
3873         ;;
3874       bdver1-*)
3875         arch=bdver1
3876         cpu=bdver1
3877         ;;
3878       btver1-*)
3879         arch=btver1
3880         cpu=btver1
3881         ;;
3882       btver2-*)
3883         arch=btver2
3884         cpu=btver2
3885         ;;
3886       amdfam10-*|barcelona-*)
3887         arch=amdfam10
3888         cpu=amdfam10
3889         ;;
3890       k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3891         arch=k8-sse3
3892         cpu=k8-sse3
3893         ;;
3894       k8-*|opteron-*|athlon_64-*)
3895         arch=k8
3896         cpu=k8
3897         ;;
3898       nocona-*)
3899         arch=nocona
3900         cpu=nocona
3901         ;;
3902       atom-*)
3903         arch=atom
3904         cpu=atom
3905         ;;
3906       slm-*)
3907         arch=slm
3908         cpu=slm
3909         ;;
3910       core2-*)
3911         arch=core2
3912         cpu=core2
3913         ;;
3914       corei7-*)
3915         arch=corei7
3916         cpu=corei7
3917         ;;
3918       *)
3919         arch=x86-64
3920         cpu=generic
3921         ;;
3922     esac
3923     ;;
3924 esac
3926 # If there is no $with_cpu option, try to infer one from ${target}.
3927 # This block sets nothing except for with_cpu.
3928 if test x$with_cpu = x ; then
3929   case ${target} in
3930     i[34567]86-*-elfiamcu)
3931       with_cpu=lakemont
3932       ;;
3933     i[34567]86-*-*|x86_64-*-*)
3934       with_cpu=$cpu
3935       ;;
3936     alphaev6[78]*-*-*)
3937       with_cpu=ev67
3938       ;;
3939     alphaev6*-*-*)
3940       with_cpu=ev6
3941       ;;
3942     alphapca56*-*-*)
3943       with_cpu=pca56
3944       ;;
3945     alphaev56*-*-*)
3946       with_cpu=ev56
3947       ;;
3948     alphaev5*-*-*)
3949       with_cpu=ev5
3950       ;;
3951     frv-*-*linux* | frv400-*-*linux*)
3952       with_cpu=fr400
3953       ;;
3954     frv550-*-*linux*)
3955       with_cpu=fr550
3956       ;;
3957     m68k*-*-*)
3958       case "$with_arch" in
3959         "cf")
3960           with_cpu=${default_cf_cpu}
3961           ;;
3962         "" | "m68k")
3963           with_cpu=m${default_m68k_cpu}
3964           ;;
3965       esac
3966       ;;
3967     sparc*-*-*)
3968       case ${target} in
3969         *-leon-*)
3970           with_cpu=leon
3971           ;;
3972         *-leon[3-9]*)
3973           with_cpu=leon3
3974           ;;
3975         *-leon[3-9]v7*)
3976           with_cpu=leon3v7
3977           ;;
3978         *)
3979           with_cpu="`echo ${target} | sed 's/-.*$//'`"
3980           ;;
3981       esac
3982       ;;
3983     visium-*-*)
3984       with_cpu=gr5
3985       ;;
3986   esac
3988   # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3989   case ${target} in
3990     i[34567]86-*-*|x86_64-*-*)
3991       if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3992         if test x$with_cpu_32 = x; then
3993           with_cpu_32=$with_cpu
3994         fi
3995         if test x$with_cpu_64 = x; then
3996           with_cpu_64=$with_cpu
3997         fi
3998         with_cpu=
3999       fi
4000       ;;
4001   esac
4004 # Support for --with-arch and related options (and a few unrelated options,
4005 # too).
4006 case ${with_arch} in
4007   yes | no)
4008     echo "--with-arch must be passed a value" 1>&2
4009     exit 1
4010     ;;
4011 esac
4013 # If there is no $with_arch option, try to infer one from ${target}.
4014 # This block sets nothing except for with_arch.
4015 if test x$with_arch = x ; then
4016   case ${target} in
4017     i[34567]86-*-darwin*|x86_64-*-darwin*)
4018       # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4019       # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4020       ;;
4021     i[34567]86-*-elfiamcu)
4022       with_arch=lakemont
4023       ;;
4024     i[34567]86-*-*)
4025       # --with-fpmath sets the default ISA to SSE2, which is the same
4026       # ISA supported by Pentium 4.
4027       if test x$with_fpmath = x || test $arch_without_sse2 = no; then
4028         with_arch=$arch
4029       else
4030         with_arch=pentium4
4031       fi
4032       ;;
4033     x86_64-*-*)
4034       with_arch=$arch
4035       ;;
4036     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4037       with_arch=r5900
4038       ;;
4039     mips*-*-vxworks)
4040       with_arch=mips2
4041       ;;
4042   esac
4044   # Avoid overriding --with-arch-32 and --with-arch-64 values.
4045   case ${target} in
4046     i[34567]86-*-darwin*|x86_64-*-darwin*)
4047       # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
4048       # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
4049       ;;
4050     i[34567]86-*-*|x86_64-*-*)
4051       if test x$with_arch_32 != x || test x$with_arch_64 != x; then
4052         if test x$with_arch_32 = x; then
4053           with_arch_32=$with_arch
4054         fi
4055         if test x$with_arch_64 = x; then
4056           if test $arch_without_64bit = yes; then
4057             # Set the default 64bit arch to x86-64 if the default arch
4058             # doesn't support 64bit.
4059             with_arch_64=x86-64
4060           else
4061             with_arch_64=$with_arch
4062           fi
4063         fi
4064         with_arch=
4065       elif test $arch_without_64bit$need_64bit_isa = yesyes; then
4066         # Set the default 64bit arch to x86-64 if the default arch
4067         # doesn't support 64bit and we need 64bit ISA.
4068         with_arch_32=$with_arch
4069         with_arch_64=x86-64
4070         with_arch=
4071       fi
4072       ;;
4073   esac
4076 # Infer a default setting for --with-float.
4077 if test x$with_float = x; then
4078   case ${target} in
4079     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4080       # The R5900 doesn't support 64-bit float.  32-bit float doesn't
4081       # comply with IEEE 754.
4082       with_float=soft
4083       ;;
4084   esac
4087 # Infer a default setting for --with-fpu.
4088 if test x$with_fpu = x; then
4089   case ${target} in
4090     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4091       # The R5900 FPU only supports single precision.
4092       with_fpu=single
4093       ;;
4094   esac
4097 # Support --with-fpmath.
4098 if test x$with_fpmath != x; then
4099   case ${target} in
4100     i[34567]86-*-* | x86_64-*-*)
4101       case ${with_fpmath} in
4102       avx)
4103         tm_file="${tm_file} i386/avxmath.h"
4104         ;;
4105       sse)
4106         tm_file="${tm_file} i386/ssemath.h"
4107         ;;
4108       *)
4109         echo "Invalid --with-fpmath=$with_fpmath" 1>&2
4110         exit 1
4111         ;;
4112       esac
4113       ;;
4114     *)
4115       echo "--with-fpmath isn't supported for $target." 1>&2
4116       exit 1
4117       ;;
4118   esac
4121 # Similarly for --with-schedule.
4122 if test x$with_schedule = x; then
4123         case ${target} in
4124         hppa1*)
4125                 # Override default PA8000 scheduling model.
4126                 with_schedule=7100LC
4127                 ;;
4128         esac
4131 # Infer a default setting for --with-llsc.
4132 if test x$with_llsc = x; then
4133   case ${target} in
4134     mips*-*-linux*)
4135       # The kernel emulates LL and SC where necessary.
4136       with_llsc=yes
4137       ;;
4138     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
4139       # The R5900 doesn't support LL(D) and SC(D).
4140       with_llsc=no
4141       ;;
4142   esac
4145 # Validate and mark as valid any --with options supported
4146 # by this target.  In order to use a particular --with option
4147 # you must list it in supported_defaults; validating the value
4148 # is optional.  This case statement should set nothing besides
4149 # supported_defaults.
4151 supported_defaults=
4152 case "${target}" in
4153         aarch64*-*-*)
4154                 supported_defaults="abi cpu cpu_64 arch arch_64 tune tune_64"
4155                 if test x$with_cpu_64 != x && test x$with_cpu = x; then
4156                         with_cpu=$with_cpu_64
4157                 fi
4158                 if test x$with_arch_64 != x && test x$with_arch = x; then
4159                         with_arch=$with_arch_64
4160                 fi
4161                 if test x$with_tune_64 != x && test x$with_tune = x; then
4162                         with_tune=$with_tune_64
4163                 fi
4164                 for which in cpu arch tune; do
4165                         eval "val=\$with_$which"
4166                         base_val=`echo $val | sed -e 's/\+.*//'`
4167                         ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
4169                         if [ $which = arch ]; then
4170                           def=aarch64-arches.def
4171                           pattern=AARCH64_ARCH
4172                         else
4173                           def=aarch64-cores.def
4174                           pattern=AARCH64_CORE
4175                         fi
4177                         ext_mask=AARCH64_CPU_DEFAULT_FLAGS
4179                         # Find the base CPU or ARCH id in aarch64-cores.def or
4180                         # aarch64-arches.def
4181                         if [ x"$base_val" = x ] \
4182                             || grep "^$pattern(\"$base_val\"," \
4183                                     ${srcdir}/config/aarch64/$def \
4184                                     > /dev/null; then
4186                           if [ $which = arch ]; then
4187                                 base_id=`grep "^$pattern(\"$base_val\"," \
4188                                   ${srcdir}/config/aarch64/$def | \
4189                                   sed -e 's/^[^,]*,[    ]*//' | \
4190                                   sed -e 's/,.*$//'`
4191                                 # Extract the architecture flags from aarch64-arches.def
4192                                 ext_mask=`grep "^$pattern(\"$base_val\"," \
4193                                    ${srcdir}/config/aarch64/$def | \
4194                                    sed -e 's/)$//' | \
4195                                    sed -e 's/^.*,//'`
4196                           else
4197                                 base_id=`grep "^$pattern(\"$base_val\"," \
4198                                   ${srcdir}/config/aarch64/$def | \
4199                                   sed -e 's/^[^,]*,[    ]*//' | \
4200                                   sed -e 's/,.*$//'`
4201                           fi
4203                           # Disallow extensions in --with-tune=cortex-a53+crc.
4204                           if [ $which = tune ] && [ x"$ext_val" != x ]; then
4205                             echo "Architecture extensions not supported in --with-$which=$val" 1>&2
4206                             exit 1
4207                           fi
4209                           # Use the pre-processor to strip flatten the options.
4210                           # This makes the format less rigid than if we use
4211                           # grep and sed directly here.
4212                           opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
4213                           options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
4214                                 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
4216                           # Match one element inside AARCH64_OPT_EXTENSION, we
4217                           # consume anything that's not a ,.
4218                           elem="[       ]*\([^,]\+\)[   ]*"
4220                           # Repeat the pattern for the number of entries in the
4221                           # AARCH64_OPT_EXTENSION, currently 6 times.
4222                           sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
4224                           while [ x"$ext_val" != x ]
4225                           do
4226                                 ext_val=`echo $ext_val | sed -e 's/\+//'`
4227                                 ext=`echo $ext_val | sed -e 's/\+.*//'`
4228                                 base_ext=`echo $ext | sed -e 's/^no//'`
4229                                 opt_line=`echo -e "$options_parsed" | \
4230                                         grep "^\"$base_ext\""`
4232                                 if [ x"$base_ext" = x ] \
4233                                     || [[ -n $opt_line ]]; then
4235                                   # These regexp extract the elements based on
4236                                   # their group match index in the regexp.
4237                                   ext_canon=`echo -e "$opt_line" | \
4238                                         sed -e "s/$sed_patt/\2/"`
4239                                   ext_on=`echo -e "$opt_line" | \
4240                                         sed -e "s/$sed_patt/\3/"`
4241                                   ext_off=`echo -e "$opt_line" | \
4242                                         sed -e "s/$sed_patt/\4/"`
4244                                   if [ $ext = $base_ext ]; then
4245                                         # Adding extension
4246                                         ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
4247                                   else
4248                                         # Removing extension
4249                                         ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
4250                                   fi
4252                                   true
4253                                 else
4254                                   echo "Unknown extension used in --with-$which=$val" 1>&2
4255                                   exit 1
4256                                 fi
4257                                 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
4258                           done
4260                           ext_mask="(("$ext_mask") << 6)"
4261                           if [ x"$base_id" != x ]; then
4262                                 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
4263                           fi
4264                           true
4265                         else
4266                           # Allow --with-$which=native.
4267                           if [ "$val" = native ]; then
4268                             true
4269                           else
4270                             echo "Unknown $which used in --with-$which=$val" 1>&2
4271                             exit 1
4272                           fi
4273                         fi
4274                 done
4275                 ;;
4277         alpha*-*-*)
4278                 supported_defaults="cpu tune"
4279                 for which in cpu tune; do
4280                         eval "val=\$with_$which"
4281                         case "$val" in
4282                         "" \
4283                         | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
4284                         | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
4285                         | 21264a)
4286                                 ;;
4287                         *)
4288                                 echo "Unknown CPU used in --with-$which=$val" 1>&2
4289                                 exit 1
4290                                 ;;
4291                         esac
4292                 done
4293                 ;;
4295         arc*-*-*)
4296                 supported_defaults="cpu fpu"
4298                 new_cpu=hs38_linux
4299                 if [ x"$with_cpu" = x ] \
4300                     || grep -q -E "^ARC_CPU[[:blank:]]*\($with_cpu," \
4301                        ${srcdir}/config/arc/arc-cpus.def
4302                 then
4303                  # Ok
4304                  new_cpu=$with_cpu
4305                 else
4306                  echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4307                  exit 1
4308                 fi
4310                 # see if --with-fpu matches any of the supported FPUs
4311                 case "$with_fpu" in
4312                 "")
4313                         # OK
4314                         ;;
4315                 fpus | fpus_div | fpus_fma | fpus_all)
4316                         # OK if em or hs
4317                         flags_ok="[emhs]+"
4318                         ;;
4319                 fpuda | fpuda_div | fpuda_fma | fpuda_all)
4320                         # OK only em
4321                         flags_ok="em"
4322                         ;;
4323                 fpud | fpud_div | fpud_fma | fpud_all)
4324                         # OK only hs
4325                         flags_ok="hs"
4326                         ;;
4327                 *)
4328                         echo "Unknown floating point type used in "\
4329                              "--with-fpu=$with_fpu" 1>&2
4330                         exit 1
4331                         ;;
4332                 esac
4334                 if [ -n "$flags_ok" ] \
4335                    && ! grep -q -E "^ARC_CPU[[:blank:]]*\($new_cpu,[[:blank:]]*$flags_ok," \
4336                    ${srcdir}/config/arc/arc-cpus.def
4337                 then
4338                    echo "Unknown floating point type used in "\
4339                          "--with-fpu=$with_fpu for cpu $new_cpu" 1>&2
4340                          exit 1
4341                 fi
4342                 ;;
4344     csky-*-*)
4345         supported_defaults="cpu endian float"
4346         ;;
4348         arm*-*-*)
4349                 supported_defaults="arch cpu float tune fpu abi mode tls"
4350                 for which in cpu tune arch; do
4351                         # See if it matches a supported value
4352                         eval "val=\$with_$which"
4353                         if [ x"$val" != x ]; then
4354                           cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4355                                 -v cmd="chk$which $val" \
4356                                 ${srcdir}/config/arm/arm-cpus.in`
4357                           if [ "$cpu" = "error" ]; then
4358                             echo "Unknown target in --with-$which=$val" 1>&2
4359                             exit 1
4360                           else
4361                             new_val=$cpu
4362                             eval "target_${which}_cname=$new_val"
4363                             echo "For $val real value is $new_val"
4364                           fi
4365                         fi
4366                 done
4368                 case "$with_float" in
4369                 "" \
4370                 | soft | hard | softfp)
4371                         # OK
4372                         ;;
4373                 *)
4374                         echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4375                         exit 1
4376                         ;;
4377                 esac
4379                 # see if --with-fpu matches any of the supported FPUs
4380                 if [ x"$with_fpu" != x ] ; then
4381                   val=$with_fpu
4382                   fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4383                         -v cmd="chkfpu $val" \
4384                         ${srcdir}/config/arm/arm-cpus.in`
4385                   if [ "$fpu" = "error" ]
4386                   then
4387                     echo "Unknown target in --with-fpu=$val" 1>&2
4388                     exit 1
4389                   fi
4390                 fi
4392                 case "$with_abi" in
4393                 "" \
4394                 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
4395                         #OK
4396                         ;;
4397                 *)
4398                         echo "Unknown ABI used in --with-abi=$with_abi"
4399                         exit 1
4400                         ;;
4401                 esac
4403                 case "$with_mode" in
4404                 "" \
4405                 | arm | thumb )
4406                         #OK
4407                         ;;
4408                 *)
4409                         echo "Unknown mode used in --with-mode=$with_mode"
4410                         exit 1
4411                         ;;
4412                 esac
4414                 case "$with_tls" in
4415                 "" \
4416                 | gnu | gnu2)
4417                         # OK
4418                         ;;
4419                 *)
4420                         echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4421                         exit 1
4422                         ;;
4423                 esac
4425                 if test "x$with_arch" != x && test "x$with_cpu" != x; then
4426                         echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\""  1>&2
4427                         exit 1
4428                 fi
4430                 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4431                         echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\""  1>&2
4432                         exit 1
4433                 fi
4435                 # Add extra multilibs
4436                 if test "x$with_multilib_list" != x; then
4437                         ml=
4438                         arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
4439                         if test "x${arm_multilibs}" != xdefault ; then
4440                                 for arm_multilib in ${arm_multilibs}; do
4441                                         case ${arm_multilib} in
4442                                         aprofile|rmprofile)
4443                                                 tmake_profile_file="arm/t-multilib"
4444                                                 ;;
4445                                         @*)
4446                                                 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4447                                                 if test -f "${srcdir}/config/arm/${ml}"; then
4448                                                         tmake_file="${tmake_file} arm/${ml}"
4449                                                 else
4450                                                         echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4451                                                         exit 1
4452                                                 fi
4453                                                 ;;
4454                                         *)
4455                                                 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4456                                                 exit 1
4457                                                 ;;
4458                                         esac
4459                                 done
4460                         fi
4462                         if test "x${tmake_profile_file}" != x ; then
4463                                 # arm/t-aprofile and arm/t-rmprofile are only
4464                                 # designed to work without any with-cpu,
4465                                 # with-arch, with-mode, with-fpu or with-float
4466                                 # options.
4467                                 if test "x$with_arch" != x \
4468                                     || test "x$with_cpu" != x \
4469                                     || test "x$with_float" != x \
4470                                     || test "x$with_fpu" != x \
4471                                     || test "x$with_mode" != x ; then
4472                                     echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4473                                     exit 1
4474                                 elif test "x$ml" != x ; then
4475                                     echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4476                                     exit 1
4477                                 fi
4478                                 # But pass the default value for float-abi
4479                                 # through to the multilib selector
4480                                 with_float="soft"
4481                                 tmake_file="${tmake_file} ${tmake_profile_file}"
4482                                 TM_MULTILIB_CONFIG="$with_multilib_list"
4483                         fi
4484                 fi
4485                 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
4486                 with_cpu=${with_cpu:-$target_cpu_cname}
4487                 ;;
4489         fr*-*-*linux*)
4490                 supported_defaults=cpu
4491                 case "$with_cpu" in
4492                 fr400) ;;
4493                 fr550) ;;
4494                 *)
4495                         echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4496                         exit 1
4497                         ;;
4498                 esac
4499                 ;;
4501         fido-*-* | m68k*-*-*)
4502                 supported_defaults="arch cpu"
4503                 case "$with_arch" in
4504                 "" | "m68k"| "cf")
4505                         m68k_arch_family="$with_arch"
4506                         ;;
4507                 *)
4508                         echo "Invalid --with-arch=$with_arch" 1>&2
4509                         exit 1
4510                         ;;
4511                 esac
4513                 # We always have a $with_cpu setting here.
4514                 case "$with_cpu" in
4515                 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4516                         m68k_cpu_ident=$with_cpu
4517                         ;;
4518                 "m68020-40")
4519                         m68k_cpu_ident=m68020
4520                         tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4521                         ;;
4522                 "m68020-60")
4523                         m68k_cpu_ident=m68020
4524                         tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
4525                         ;;
4526                 *)
4527                         # We need the C identifier rather than the string.
4528                         m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4529                            'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4530                             $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4531                                  ${srcdir}/config/m68k/m68k-devices.def`
4532                         if [ x"$m68k_cpu_ident" = x ] ; then
4533                                 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4534                                 exit 1
4535                         fi
4536                         with_cpu="mcpu=$with_cpu"
4537                         ;;
4538                 esac
4539                 ;;
4541         amdgcn-*-*)
4542                 supported_defaults="arch tune"
4544                 for which in arch tune; do
4545                         eval "val=\$with_$which"
4546                         case ${val} in
4547                         "" | fiji | gfx900 | gfx906 )
4548                                 # OK
4549                                 ;;
4550                         *)
4551                                 echo "Unknown cpu used in --with-$which=$val." 1>&2
4552                                 exit 1
4553                                 ;;
4554                         esac
4555                 done
4556                 [ "x$with_arch" = x ] && with_arch=fiji
4557                 ;;
4559         hppa*-*-*)
4560                 supported_defaults="arch schedule"
4562                 case "$with_arch" in
4563                 "" | 1.0 | 1.1 | 2.0)
4564                         # OK
4565                         ;;
4566                 *)
4567                         echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4568                         exit 1
4569                         ;;
4570                 esac
4572                 case "$with_schedule" in
4573                 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4574                         # OK
4575                         ;;
4576                 *)
4577                         echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4578                         exit 1
4579                         ;;
4580                 esac
4581                 ;;
4583         i[34567]86-*-* | x86_64-*-*)
4584                 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4585                 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4586                         eval "val=\$with_$which"
4587                         case " $x86_archs " in
4588                         *" ${val} "*)
4589                                 case "${target}" in
4590                                   x86_64-*-*)
4591                                       case "x$which" in
4592                                         *_32)
4593                                                 ;;
4594                                         *)
4595                                                 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4596                                                 exit 1
4597                                                 ;;
4598                                       esac
4599                                       ;;
4600                                 esac
4601                                 # OK
4602                                 ;;
4603                         *)
4604                                 if test x${val} != x; then
4605                                         case " $x86_64_archs " in
4606                                         *" ${val} "*)
4607                                                 # Disallow x86-64-v* for --with-cpu=/--with-tune=
4608                                                 case "x$which$val" in
4609                                                 xcpu*x86-64-v*|xtune*x86-64-v*)
4610                                                         echo "Unknown CPU given in --with-$which=$val." 1>&2
4611                                                         exit 1
4612                                                         ;;
4613                                                 *)
4614                                                         ;;
4615                                                 esac
4616                                                 # OK
4617                                                 ;;
4618                                         *)
4619                                                 # Allow $x86_cpus --with-cpu=/--with-tune=
4620                                                 case "x$which" in
4621                                                 xcpu*|xtune*)
4622                                                         case " $x86_cpus " in
4623                                                         *" ${val} "*)
4624                                                                 # OK
4625                                                                 ;;
4626                                                         *)
4627                                                                 echo "Unknown CPU given in --with-$which=$val." 1>&2
4628                                                                 exit 1
4629                                                                 ;;
4630                                                         esac
4631                                                         ;;
4632                                                 *)
4633                                                         echo "Unknown CPU given in --with-$which=$val." 1>&2
4634                                                         exit 1
4635                                                         ;;
4636                                                 esac
4637                                         ;;
4638                                         esac
4639                                 fi
4640                                 ;;
4641                         esac
4642                 done
4643                 ;;
4645         riscv*-*-*)
4646                 supported_defaults="abi arch tune riscv_attribute isa_spec"
4648                 case "${target}" in
4649                 riscv-* | riscv32*) xlen=32 ;;
4650                 riscv64*) xlen=64 ;;
4651                 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4652                 esac
4654                 case "${with_isa_spec}" in
4655                 ""|default|2.2)
4656                         tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_2P2"
4657                         ;;
4658                 20191213 | 201912)
4659                         tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20191213"
4660                         ;;
4661                 20190608 | 201906)
4662                         tm_defines="${tm_defines} TARGET_DEFAULT_ISA_SPEC=ISA_SPEC_CLASS_20190608"
4663                         ;;
4664                 *)
4665                         echo "--with-isa-spec only accept 2.2, 20191213, 201912, 20190608 or 201906" 1>&2
4666                         exit 1
4667                 esac
4669                 case "${with_riscv_attribute}" in
4670                 yes)
4671                         tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4672                         ;;
4673                 no)
4674                         tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4675                         ;;
4676                 ""|default)
4677                         tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4678                         ;;
4679                 *)
4680                         echo "--with-riscv-attribute=${with_riscv_attribute} is not supported.  The argument must begin with yes, no or default." 1>&2
4681                         exit 1
4682                         ;;
4683                 esac
4686                 # Infer arch from --with-arch, --target, and --with-abi.
4687                 case "${with_arch}" in
4688                 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4689                         # OK.
4690                         ;;
4691                 "")
4692                         # Infer XLEN, but otherwise assume GC.
4693                         case "${with_abi}" in
4694                         ilp32e) with_arch="rv32e" ;;
4695                         ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4696                         lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4697                         *) with_arch="rv${xlen}gc" ;;
4698                         esac
4699                         ;;
4700                 *)
4701                         echo "--with-arch=${with_arch} is not supported.  The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4702                         exit 1
4703                         ;;
4704                 esac
4705                 PYTHON=`which python || which python3 || which python2`
4706                 if test "x${PYTHON}" != x; then
4707                         with_arch=`${PYTHON} ${srcdir}/config/riscv/arch-canonicalize ${with_arch}`
4708                 fi
4709                 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ARCH=${with_arch}"
4711                 # Make sure --with-abi is valid.  If it was not specified,
4712                 # pick a default based on the ISA, preferring soft-float
4713                 # unless the D extension is present.
4714                 case "${with_abi}" in
4715                 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4716                         ;;
4717                 "")
4718                         case "${with_arch}" in
4719                         rv32*d* | rv32g*) with_abi=ilp32d ;;
4720                         rv32e*) with_abi=ilp32e ;;
4721                         rv32*) with_abi=ilp32 ;;
4722                         rv64*d* | rv64g*) with_abi=lp64d ;;
4723                         rv64*) with_abi=lp64 ;;
4724                         esac
4725                         ;;
4726                 *)
4727                         echo "--with-abi=${with_abi} is not supported" 1>&2
4728                         exit 1
4729                         ;;
4730                 esac
4731                 tm_defines="${tm_defines} TARGET_RISCV_DEFAULT_ABI=${with_abi}"
4733                 # Make sure ABI and ISA are compatible.
4734                 case "${with_abi},${with_arch}" in
4735                 ilp32,rv32* | ilp32e,rv32e* \
4736                 | ilp32f,rv32*f* | ilp32f,rv32g* \
4737                 | ilp32d,rv32*d* | ilp32d,rv32g* \
4738                 | lp64,rv64* \
4739                 | lp64f,rv64*f* | lp64f,rv64g* \
4740                 | lp64d,rv64*d* | lp64d,rv64g*)
4741                         ;;
4742                 *)
4743                         echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4744                         exit 1
4745                         ;;
4746                 esac
4747                 # Handle --with-multilib-generator.
4748                 if test "x${with_multilib_generator}" != xdefault; then
4749                         if test "x${with_multilib_list}" != xdefault; then
4750                                 echo "--with-multilib-list= can't used with --with-multilib-generator= at same time" 1>&2
4751                                 exit 1
4752                         fi
4753                         case "${target}" in
4754                         riscv*-*-elf*)
4755                                 if ${srcdir}/config/riscv/multilib-generator \
4756                                         `echo ${with_multilib_generator} | sed 's/;/ /g'`\
4757                                         > t-multilib-config;
4758                                 then
4759                                         tmake_file="${tmake_file} riscv/t-withmultilib-generator"
4760                                 else
4761                                         echo "invalid option for --with-multilib-generator" 1>&2
4762                                         exit 1
4763                                 fi
4764                                 ;;
4765                         *)
4766                                 echo "--with-multilib-generator= is not supported for ${target}, only supported for riscv*-*-elf*" 1>&2
4767                                 exit 1
4768                                 ;;
4769                         esac
4770                 fi
4772                 # Handle --with-multilib-list.
4773                 if test "x${with_multilib_list}" != xdefault; then
4774                         tmake_file="${tmake_file} riscv/t-withmultilib"
4776                         case ${with_multilib_list} in
4777                         ilp32 | ilp32f | ilp32d \
4778                         | lp64 | lp64f | lp64d )
4779                                 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4780                                 ;;
4781                         *)
4782                                 echo "--with-multilib-list=${with_multilib_list} not supported."
4783                                 exit 1
4784                         esac
4785                 fi
4786                 ;;
4788         mips*-*-*)
4789                 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"
4791                 case ${with_float} in
4792                 "" | soft | hard)
4793                         # OK
4794                         ;;
4795                 *)
4796                         echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4797                         exit 1
4798                         ;;
4799                 esac
4801                 case ${with_fpu} in
4802                 "" | single | double)
4803                         # OK
4804                         ;;
4805                 *)
4806                         echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4807                         exit 1
4808                         ;;
4809                 esac
4811                 case ${with_nan} in
4812                 "" | 2008 | legacy)
4813                         # OK
4814                         ;;
4815                 *)
4816                         echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4817                         exit 1
4818                         ;;
4819                 esac
4821                 case ${with_fp_32} in
4822                 "" | 32 | xx | 64)
4823                         # OK
4824                         ;;
4825                 *)
4826                         echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4827                         exit 1
4828                         ;;
4829                 esac
4831                 case ${with_odd_spreg_32} in
4832                 yes)
4833                         with_odd_spreg_32="odd-spreg"
4834                         ;;
4835                 no)
4836                         with_odd_spreg_32="no-odd-spreg"
4837                         ;;
4838                 "")
4839                         # OK
4840                         ;;
4841                 *)
4842                         echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4843                         exit 1
4844                         ;;
4845                 esac
4847                 case ${with_abi} in
4848                 "" | 32 | o64 | n32 | 64 | eabi)
4849                         # OK
4850                         ;;
4851                 *)
4852                         echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4853                         exit 1
4854                         ;;
4855                 esac
4857                 case ${with_divide} in
4858                 "" | breaks | traps)
4859                         # OK
4860                         ;;
4861                 *)
4862                         echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4863                         exit 1
4864                         ;;
4865                 esac
4867                 case ${with_llsc} in
4868                 yes)
4869                         with_llsc=llsc
4870                         ;;
4871                 no)
4872                         with_llsc="no-llsc"
4873                         ;;
4874                 "")
4875                         # OK
4876                         ;;
4877                 *)
4878                         echo "Unknown llsc type used in --with-llsc" 1>&2
4879                         exit 1
4880                         ;;
4881                 esac
4883                 case ${with_mips_plt} in
4884                 yes)
4885                         with_mips_plt=plt
4886                         ;;
4887                 no)
4888                         with_mips_plt=no-plt
4889                         ;;
4890                 "")
4891                         ;;
4892                 *)
4893                         echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4894                         exit 1
4895                         ;;
4896                 esac
4898                 case ${with_synci} in
4899                 yes)
4900                         with_synci=synci
4901                         ;;
4902                 no)
4903                         with_synci=no-synci
4904                         ;;
4905                 "")
4906                         ;;
4907                 *)
4908                         echo "Unknown synci type used in --with-synci" 1>&2
4909                         exit 1
4910                         ;;
4911                 esac
4913                 case ${with_lxc1_sxc1} in
4914                 yes)
4915                         with_lxc1_sxc1=lxc1-sxc1
4916                         ;;
4917                 no)
4918                         with_lxc1_sxc1=no-lxc1-sxc1
4919                         ;;
4920                 "")
4921                         ;;
4922                 *)
4923                         echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4924                         exit 1
4925                         ;;
4926                 esac
4928                 case ${with_madd4} in
4929                 yes)
4930                         with_madd4=madd4
4931                         ;;
4932                 no)
4933                         with_madd4=no-madd4
4934                         ;;
4935                 "")
4936                         ;;
4937                 *)
4938                         echo "Unknown madd4 type used in --with-madd4" 1>&2
4939                         exit 1
4940                         ;;
4941                 esac
4942                 ;;
4944         nds32*-*-*)
4945                 supported_defaults="arch cpu nds32_lib float fpu_config"
4947                 # process --with-arch
4948                 case "${with_arch}" in
4949                 "" | v3 )
4950                         tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4951                         ;;
4952                 v2 | v2j | v3m)
4953                         # OK
4954                         tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4955                         ;;
4956                 v3f)
4957                         tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4958                         ;;
4959                 v3s)
4960                         tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4962                         ;;
4963                 *)
4964                         echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4965                         exit 1
4966                         ;;
4967                 esac
4969                 case "${with_cpu}" in
4970                 "")
4971                         with_cpu=n9
4972                         ;;
4973                 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4974                         # OK
4975                         ;;
4976                 *)
4977                         echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4978                         exit 1
4979                         ;;
4980                 esac
4982                 # process --with-nds32-lib
4983                 case "${with_nds32_lib}" in
4984                 "")
4985                         case ${target} in
4986                         *-*-*uclibc*)
4987                                 with_nds32_lib=ulibc
4988                                 ;;
4989                         *-*-linux*)
4990                                 with_nds32_lib=glibc
4991                                 ;;
4992                         *)
4993                                 with_nds32_lib=newlib
4994                                 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4995                                 ;;
4996                         esac
4997                         ;;
4998                 newlib)
4999                         # OK
5000                         tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
5001                         ;;
5002                 mculib)
5003                         # OK
5004                         # for the arch=v3f or arch=v3s under mculib toolchain,
5005                         # we would like to set -fno-math-errno as default
5006                         case "${with_arch}" in
5007                         v3f | v3s)
5008                                 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
5009                                 ;;
5010                         esac
5011                         ;;
5012                 glibc | uclibc)
5013                         # OK
5014                         ;;
5015                 *)
5016                         echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
5017                         exit 1
5018                         ;;
5019                 esac
5021                 # process --with-float
5022                 case "${with_float}" in
5023                 "" | soft | hard)
5024                         # OK
5025                         ;;
5026                 *)
5027                         echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
5028                         exit 1
5029                         ;;
5030                 esac
5032                 # process --with-config-fpu
5033                 case "${with_config_fpu}" in
5034                 "" | 0 | 1 | 2 | 3)
5035                         # OK
5036                         ;;
5037                 *)
5038                         echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
5039                         exit 1
5040                         ;;
5041                 esac
5044                 ;;
5045         nios2*-*-*)
5046                 supported_defaults="arch"
5047                         case "$with_arch" in
5048                         "" | r1 | r2)
5049                                 # OK
5050                                 ;;
5051                         *)
5052                                 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
5053                                 exit 1
5054                                 ;;
5055                         esac
5056                 ;;
5058         powerpc*-*-* | rs6000-*-*)
5059                 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
5061                 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5062                         eval "val=\$with_$which"
5063                         case ${val} in
5064                         default32 | default64)
5065                                 case $which in
5066                                 cpu | tune)
5067                                         ;;
5068                                 *)
5069                                         echo "$val only valid for --with-cpu and --with-tune." 1>&2
5070                                         exit 1
5071                                         ;;
5072                                 esac
5073                                 with_which="with_$which"
5074                                 eval $with_which=
5075                                 ;;
5076                         405cr)
5077                                 tm_defines="${tm_defines} CONFIG_PPC405CR"
5078                                 eval "with_$which=405"
5079                                 ;;
5080                         "" | common | native \
5081                         | power[3456789] | power10 | power5+ | power6x \
5082                         | powerpc | powerpc64 | powerpc64le \
5083                         | rs64 \
5084                         | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
5085                         | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
5086                         | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
5087                         | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
5088                         | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
5089                                 # OK
5090                                 ;;
5091                         *)
5092                                 echo "Unknown cpu used in --with-$which=$val." 1>&2
5093                                 exit 1
5094                                 ;;
5095                         esac
5096                 done
5098                 case "$with_abi" in
5099                 "" | elfv1 | elfv2 )
5100                         #OK
5101                         ;;
5102                 *)
5103                         echo "Unknown ABI used in --with-abi=$with_abi"
5104                         exit 1
5105                         ;;
5106                 esac
5108                 if test "x$with_advance_toolchain" != x; then
5109                     if test -d "/opt/$with_advance_toolchain/." -a \
5110                         -d "/opt/$with_advance_toolchain/bin/." -a \
5111                         -d "/opt/$with_advance_toolchain/include/."; then
5113                         tm_file="$tm_file ./advance-toolchain.h"
5114                         (at="/opt/$with_advance_toolchain"
5115                          echo "/* Use Advance Toolchain $at */"
5116                          echo
5117                          echo "#undef  LINK_OS_EXTRA_SPEC32"
5118                          echo "#define LINK_OS_EXTRA_SPEC32" \
5119                               "\"%(link_os_new_dtags)" \
5120                               "-rpath $prefix/lib -rpath $at/lib\""
5121                          echo
5122                          echo "#undef  LINK_OS_EXTRA_SPEC64"
5123                          echo "#define LINK_OS_EXTRA_SPEC64" \
5124                               "\"%(link_os_new_dtags)" \
5125                               "-rpath $prefix/lib64 -rpath $at/lib64\""
5126                          echo
5127                          echo "#undef  LINK_OS_NEW_DTAGS_SPEC"
5128                          echo "#define LINK_OS_NEW_DTAGS_SPEC" \
5129                               "\"--enable-new-dtags\""
5130                          echo
5131                          echo "#undef  DYNAMIC_LINKER_PREFIX"
5132                          echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
5133                          echo
5134                          echo "#undef  MD_EXEC_PREFIX"
5135                          echo "#define MD_EXEC_PREFIX \"$at/bin/\""
5136                          echo
5137                          echo "#undef  MD_STARTFILE_PREFIX"
5138                          echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
5139                          echo
5140                          echo "#undef  MD_STARTFILE_PREFIX_1"
5141                          echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
5142                             > advance-toolchain.h
5143                     else
5144                         echo "Unknown advance-toolchain $with_advance_toolchain"
5145                         exit 1
5146                     fi
5147                 fi
5149                 # Set up the default long double format if the user changed it.
5150                 if test x$with_long_double_format = xieee; then
5151                     tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
5153                 elif test x$with_long_double_format = xibm; then
5154                     tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
5155                 fi
5156                 ;;
5158         s390*-*-*)
5159                 supported_defaults="arch mode tune"
5161                 for which in arch tune; do
5162                         eval "val=\$with_$which"
5163                         case ${val} in
5164                         "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 | arch14 )
5165                                 # OK
5166                                 ;;
5167                         *)
5168                                 echo "Unknown cpu used in --with-$which=$val." 1>&2
5169                                 exit 1
5170                                 ;;
5171                         esac
5172                 done
5174                 case ${with_mode} in
5175                 "" | esa | zarch)
5176                         # OK
5177                         ;;
5178                 *)
5179                         echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
5180                         exit 1
5181                         ;;
5182                 esac
5183                 ;;
5185         sh[123456ble]*-*-* | sh-*-*)
5186                 supported_defaults="cpu"
5187                 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
5188                 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
5189                         # OK
5190                         ;;
5191                 m2a | m2a-single | m2a-single-only | m2a-nofpu)
5192                         ;;
5193                 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
5194                         ;;
5195                 *)
5196                         echo "Unknown CPU used in --with-cpu=$with_cpu, known values:"  1>&2
5197                         echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
5198                         echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
5199                         echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
5200                         exit 1
5201                         ;;
5202                 esac
5203                 ;;
5204         sparc*-*-*)
5205                 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
5207                 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
5208                         eval "val=\$with_$which"
5209                         case ${val} in
5210                         "" | sparc | sparcv9 | sparc64 \
5211                         | v7 | cypress \
5212                         | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
5213                         | sparclite | f930 | f934 | sparclite86x \
5214                         | sparclet | tsc701 \
5215                         | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
5216                         | niagara3 | niagara4 | niagara7 | m8)
5217                                 # OK
5218                                 ;;
5219                         *)
5220                                 echo "Unknown cpu used in --with-$which=$val" 1>&2
5221                                 exit 1
5222                                 ;;
5223                         esac
5224                 done
5226                 case ${with_float} in
5227                 "" | soft | hard)
5228                         # OK
5229                         ;;
5230                 *)
5231                         echo "Unknown floating point type used in --with-float=$with_float" 1>&2
5232                         exit 1
5233                         ;;
5234                 esac
5235                 ;;
5237         tic6x-*-*)
5238                 supported_defaults="arch"
5240                 case ${with_arch} in
5241                 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
5242                         # OK
5243                         ;;
5244                 *)
5245                         echo "Unknown arch used in --with-arch=$with_arch." 1>&2
5246                         exit 1
5247                         ;;
5248                 esac
5249                 ;;
5251         v850*-*-*)
5252                 supported_defaults=cpu
5253                 case ${with_cpu} in
5254                 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
5255                         # OK
5256                         ;;
5257                 *)
5258                         echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5259                         exit 1
5260                         ;;
5261                 esac
5262                 ;;
5263         visium-*-*)
5264                 supported_defaults="cpu"
5265                 case $with_cpu in
5266                   "" | gr5 | gr6)
5267                         ;;
5268                   *)    echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
5269                         exit 1
5270                         ;;
5271                 esac
5272                 ;;
5273 esac
5275 # Targets for which there is at least one VxWorks port should include
5276 # vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
5277 # of markers from other files in the port, including the vxworks*.h files to
5278 # distinguish VxWorks variants such as VxWorks 7 or 64).
5280 case ${target} in
5281 arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
5282 | sparc*-*-* | x86_64-*-*)
5283         tm_file="vxworks-dummy.h ${tm_file}"
5284         ;;
5285 esac
5287 # Set some miscellaneous flags for particular targets.
5288 target_cpu_default2=
5289 case ${target} in
5290         aarch64*-*-*)
5291                 if test x"$target_cpu_cname" != x
5292                 then
5293                         target_cpu_default2=$target_cpu_cname
5294                 fi
5295                 ;;
5297         arm*-*-*)
5298                 if test x$with_cpu = x
5299                 then
5300                         echo "Don't know the target cpu" 1>&2
5301                         exit 1
5302                 else
5303                         target_cpu_default2="\\\"$with_cpu\\\""
5304                 fi
5305                 ;;
5307         hppa*-*-*)
5308                 if test x$gas = xyes
5309                 then
5310                         target_cpu_default2="MASK_GAS"
5311                 fi
5312                 ;;
5314         fido*-*-* | m68k*-*-*)
5315                 target_cpu_default2=$m68k_cpu_ident
5316                 tmake_file="m68k/t-opts $tmake_file"
5317                 if [ x"$m68k_arch_family" != x ]; then
5318                         tmake_file="m68k/t-$m68k_arch_family $tmake_file"
5319                 fi
5320                 ;;
5322         i[34567]86-*-darwin* | x86_64-*-darwin*)
5323                 ;;
5324         i[34567]86-*-linux* | x86_64-*-linux*)
5325                 extra_objs="${extra_objs} gnu-property.o"
5326                 tmake_file="$tmake_file i386/t-linux i386/t-gnu-property"
5327                 ;;
5328         i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5329                 tmake_file="$tmake_file i386/t-kfreebsd"
5330                 ;;
5331         i[34567]86-*-gnu*)
5332                 tmake_file="$tmake_file i386/t-gnu"
5333                 ;;
5334         i[34567]86-*-msdosdjgpp*)
5335                 tmake_file="${tmake_file} i386/t-djgpp"
5336                 ;;
5337         i[34567]86-*-solaris2* | x86_64-*-solaris2*)
5338                 ;;
5339         i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5340                 ;;
5341         i[34567]86-*-mingw* | x86_64-*-mingw*)
5342                 ;;
5343         i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5344                 ;;
5345         i[34567]86-*-freebsd*)
5346                 ;;
5347         x86_64-*-freebsd*)
5348                 tmake_file="${tmake_file} i386/t-freebsd64"
5349                 ;;
5350         ia64*-*-linux*)
5351                 ;;
5353         mips*-*-*)
5354                 if test x$gnu_ld = xyes
5355                 then
5356                         target_cpu_default2="MASK_SPLIT_ADDRESSES"
5357                 fi
5358                 case ${target} in
5359                         mips*el-*-*)
5360                                 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5361                                 ;;
5362                 esac
5363                 if test x$with_arch != x; then
5364                         default_mips_arch=$with_arch
5365                 fi
5366                 if test x$with_abi != x; then
5367                         default_mips_abi=$with_abi
5368                 fi
5369                 case ${default_mips_arch} in
5370                     mips1)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
5371                     mips2)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
5372                     mips3)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
5373                     mips4)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
5374                     mips32)   tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
5375                     mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
5376                     mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
5377                     mips64)   tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
5378                     mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
5379                     mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
5380                 esac
5381                 case ${default_mips_abi} in
5382                     32)   tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5383                     o64)  tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5384                     n32)  tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5385                     64)   tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5386                     eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5387                 esac
5388                 tmake_file="mips/t-mips $tmake_file"
5389                 ;;
5391         powerpc*-*-* | rs6000-*-*)
5392                 # FIXME: The PowerPC port uses the value set at compile time,
5393                 # although it's only cosmetic.
5394                 if test "x$with_cpu" != x
5395                 then
5396                         target_cpu_default2="\\\"$with_cpu\\\""
5397                 fi
5398                 out_file="${cpu_type}/${cpu_type}.c"
5399                 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5400                 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
5401                 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
5402                 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
5403                 ;;
5405         sh[123456ble]*-*-* | sh-*-*)
5406                 c_target_objs="${c_target_objs} sh-c.o"
5407                 cxx_target_objs="${cxx_target_objs} sh-c.o"
5408                 ;;
5410         sparc*-*-*)
5411                 # Some standard aliases.
5412                 case x$with_cpu in
5413                 xsparc)
5414                         with_cpu=v7
5415                         ;;
5416                 xsparcv9 | xsparc64)
5417                         with_cpu=v9
5418                         ;;
5419                 esac
5421                 if test x$with_tune = x ; then
5422                       case ${target} in
5423                       *-leon-*)
5424                           with_tune=leon
5425                           ;;
5426                       *-leon[3-9]*)
5427                           with_tune=leon3
5428                           ;;
5429                       esac
5430                 fi
5432                 # The SPARC port checks this value at compile-time.
5433                 target_cpu_default2="TARGET_CPU_$with_cpu"
5434                 ;;
5436         v850*-*-*)
5437                 case "x$with_cpu" in
5438                 x)
5439                         ;;
5440                 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
5441                         target_cpu_default2="TARGET_CPU_$with_cpu"
5442                         ;;
5443                 xv850es)
5444                         target_cpu_default2="TARGET_CPU_v850e1"
5445                         ;;
5446                 esac
5447                 ;;
5448         visium-*-*)
5449                 target_cpu_default2="TARGET_CPU_$with_cpu"
5450                 ;;
5451 esac
5454 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"
5455 for option in $all_defaults
5457         eval "val=\$with_"`echo $option | sed s/-/_/g`
5458         if test -n "$val"; then
5459                 case " $supported_defaults " in
5460                 *" $option "*)
5461                         ;;
5462                 *)
5463                         echo "This target does not support --with-$option." 2>&1
5464                         echo "Valid --with options are: $supported_defaults" 2>&1
5465                         exit 1
5466                         ;;
5467                 esac
5469                 if test "x$t" = x
5470                 then
5471                         t="{ \"$option\", \"$val\" }"
5472                 else
5473                         t="${t}, { \"$option\", \"$val\" }"
5474                 fi
5475         fi
5476 done
5478 if test "x$t" = x
5479 then
5480         configure_default_options="{ { NULL, NULL} }"
5481 else
5482         configure_default_options="{ ${t} }"
5485 if test "$target_cpu_default2" != ""
5486 then
5487         if test "$target_cpu_default" != ""
5488         then
5489                 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5490         else
5491                 target_cpu_default=$target_cpu_default2
5492         fi
5495 case ${target} in
5496 i[34567]86-*-* | x86_64-*-*)
5497         if test x$enable_as_accelerator = xyes; then
5498                 extra_programs="mkoffload\$(exeext)"
5499         fi
5500         ;;
5501 esac