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