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