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