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