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