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