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