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