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