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