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