final.c: Use rtx_sequence
[official-gcc.git] / gcc / config.gcc
blob7434a0863562f52e77e79c4be9bad11b7a711720
1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2014 Free Software Foundation, Inc.
4 #This file is part of GCC.
6 #GCC is free software; you can redistribute it and/or modify it under
7 #the terms of the GNU General Public License as published by the Free
8 #Software Foundation; either version 3, or (at your option) any later
9 #version.
11 #GCC is distributed in the hope that it will be useful, but WITHOUT
12 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 #FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 #for more details.
16 #You should have received a copy of the GNU General Public License
17 #along with GCC; see the file COPYING3.  If not see
18 #<http://www.gnu.org/licenses/>.
20 # This is the GCC target-specific configuration file
21 # where a configuration type is mapped to different system-specific
22 # definitions and files.  This is invoked by the autoconf-generated
23 # configure script.  Putting it in a separate shell file lets us skip
24 # running autoconf when modifying target-specific information.
26 # When you change the cases in the OS or target switches, consider
27 # updating ../libgcc/config.host also.
29 # This file switches on the shell variable ${target}, and also uses the
30 # following shell variables:
32 #  with_*               Various variables as set by configure.
34 #  enable_threads       Either the name, yes or no depending on whether
35 #                       threads support was requested.
37 #  default_use_cxa_atexit
38 #                         The default value for the $enable___cxa_atexit
39 #                       variable.  enable___cxa_atexit needs to be set to
40 #                       "yes" for the correct operation of C++ destructors
41 #                       but it relies upon the presence of a non-standard C
42 #                       library function called __cxa_atexit.
43 #                         Since not all C libraries provide __cxa_atexit the
44 #                       default value of $default_use_cxa_atexit is set to
45 #                       "no" except for targets which are known to be OK.
47 #  default_gnu_indirect_function
48 #                       The default value for the $enable_gnu_indirect_function
49 #                       variable.  enable_gnu_indirect_function relies
50 #                       upon the presence of a non-standard gnu ifunc support
51 #                       in the assembler, linker and dynamic linker.
52 #                       Since not all libraries provide the dynamic linking
53 #                       support, the default value of
54 #                       $default_gnu_indirect_function is set to
55 #                       "no" except for targets which are known to be OK.
57 #  gas_flag             Either yes or no depending on whether GNU as was
58 #                       requested.
60 #  gnu_ld_flag          Either yes or no depending on whether GNU ld was
61 #                       requested.
63 # This file sets the following shell variables for use by the
64 # autoconf-generated configure script:
66 #  cpu_type             The name of the cpu, if different from the first
67 #                       chunk of the canonical target name.
69 #  tm_defines           List of target macros to define for all compilations.
71 #  tm_file              A list of target macro files, if different from
72 #                       "$cpu_type/$cpu_type.h". Usually it's constructed
73 #                       per target in a way like this:
74 #                       tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h"
75 #                       Note that the preferred order is:
76 #                       - specific target header "${cpu_type}/${cpu_type.h}"
77 #                       - generic headers like dbxelf.h elfos.h, etc.
78 #                       - specializing target headers like ${cpu_type.h}/elf.h
79 #                       This helps to keep OS specific stuff out of the CPU
80 #                       defining header ${cpu_type}/${cpu_type.h}.
82 #                       It is possible to include automatically-generated
83 #                       build-directory files by prefixing them with "./".
84 #                       All other files should relative to $srcdir/config.
86 #  tm_p_file            Location of file with declarations for functions
87 #                       in $out_file.
89 #  out_file             The name of the machine description C support
90 #                       file, if different from "$cpu_type/$cpu_type.c".
92 #  common_out_file      The name of the source file for code shared between
93 #                       the compiler proper and the driver.
95 #  md_file              The name of the machine-description file, if
96 #                       different from "$cpu_type/$cpu_type.md".
98 #  tmake_file           A list of machine-description-specific
99 #                       makefile-fragments, if different from
100 #                       "$cpu_type/t-$cpu_type".
102 #  extra_modes          The name of the file containing a list of extra
103 #                       machine modes, if necessary and different from
104 #                       "$cpu_type/$cpu_type-modes.def".
106 #  extra_objs           List of extra objects that should be linked into
107 #                       the compiler proper (cc1, cc1obj, cc1plus)
108 #                       depending on target.
110 #  extra_gcc_objs       List of extra objects that should be linked into
111 #                       the compiler driver (gcc) depending on target.
113 #  extra_headers        List of used header files from the directory
114 #                       config/${cpu_type}.
116 #  user_headers_inc_next_pre
117 #                       List of header file names of internal gcc header
118 #                       files, which should be prefixed by an include_next.
119 #  user_headers_inc_next_post
120 #                       List of header file names of internal gcc header
121 #                       files, which should be postfixed by an include_next.
122 #  use_gcc_tgmath       If set, add tgmath.h to the list of used header
123 #                       files.
125 #  use_gcc_stdint       If "wrap", install a version of stdint.h that
126 #                       wraps the system's copy for hosted compilations;
127 #                       if "provide", provide a version of systems without
128 #                       such a system header; otherwise "none", do not
129 #                       provide such a header at all.
131 #  extra_programs       List of extra executables compiled for this target
132 #                       machine, used when linking.
134 #  extra_options        List of target-dependent .opt files.
136 #  c_target_objs        List of extra target-dependent objects that be
137 #                       linked into the C compiler only.
139 #  cxx_target_objs      List of extra target-dependent objects that be
140 #                       linked into the C++ compiler only.
142 #  fortran_target_objs  List of extra target-dependent objects that be
143 #                       linked into the fortran compiler only.
145 #  target_gtfiles       List of extra source files with type information.
147 #  xm_defines           List of macros to define when compiling for the
148 #                       target machine.
150 #  xm_file              List of files to include when compiling for the
151 #                       target machine.
153 #  use_collect2         Set to yes or no, depending on whether collect2
154 #                       will be used.
156 #  target_cpu_default   Set to override the default target model.
158 #  gdb_needs_out_file_path
159 #                       Set to yes if gdb needs a dir command with
160 #                       `dirname $out_file`.
162 #  thread_file          Set to control which thread package to use.
164 #  gas                  Set to yes or no depending on whether the target
165 #                       system normally uses GNU as.
167 #  configure_default_options
168 #                       Set to an initializer for configure_default_options
169 #                       in configargs.h, based on --with-cpu et cetera.
171 #  native_system_header_dir
172 #                       Where system header files are found for this
173 #                       target.  This defaults to /usr/include.  If
174 #                       the --with-sysroot configure option or the
175 #                       --sysroot command line option is used this
176 #                       will be relative to the sysroot.
177 # target_type_format_char 
178 #                       The default character to be used for formatting
179 #                       the attribute in a
180 #                       .type symbol_name, ${t_t_f_c}<property>
181 #                       directive.
183 # The following variables are used in each case-construct to build up the
184 # outgoing variables:
186 #  gnu_ld               Set to yes or no depending on whether the target
187 #                       system normally uses GNU ld.
189 #  target_has_targetcm  Set to yes or no depending on whether the target
190 #                       has its own definition of targetcm.
192 #  target_has_targetm_common    Set to yes or no depending on whether the
193 #                       target has its own definition of targetm_common.
195 out_file=
196 common_out_file=
197 tmake_file=
198 extra_headers=
199 user_headers_inc_next_pre=
200 user_headers_inc_next_post=
201 use_gcc_tgmath=yes
202 use_gcc_stdint=none
203 extra_programs=
204 extra_objs=
205 extra_gcc_objs=
206 extra_options=
207 c_target_objs=
208 cxx_target_objs=
209 fortran_target_objs=
210 target_has_targetcm=no
211 target_has_targetm_common=yes
212 tm_defines=
213 xm_defines=
214 # Set this to force installation and use of collect2.
215 use_collect2=
216 # Set this to override the default target model.
217 target_cpu_default=
218 # Set this if gdb needs a dir command with `dirname $out_file`
219 gdb_needs_out_file_path=
220 # Set this to control which thread package will be used.
221 thread_file=
222 # Reinitialize these from the flag values every loop pass, since some
223 # configure entries modify them.
224 gas="$gas_flag"
225 gnu_ld="$gnu_ld_flag"
226 default_use_cxa_atexit=no
227 default_gnu_indirect_function=no
228 target_gtfiles=
229 need_64bit_isa=
230 native_system_header_dir=/usr/include
231 target_type_format_char='@'
233 # Don't carry these over build->host->target.  Please.
234 xm_file=
235 md_file=
237 # Obsolete configurations.
238 case ${target} in
239    picochip-*                           \
240  | score-*                              \
242     if test "x$enable_obsolete" != xyes; then
243       echo "*** Configuration ${target} is obsolete." >&2
244       echo "*** Specify --enable-obsolete to build it anyway." >&2
245       echo "*** Support will be REMOVED in the next major release of GCC," >&2
246       echo "*** unless a maintainer comes forward." >&2
247       exit 1
248     fi;;
249 esac
251 # Unsupported targets list.  Do not put an entry in this list unless
252 # it would otherwise be caught by a more permissive pattern.  The list
253 # should be in alphabetical order.
254 case ${target} in
255  # Avoid special cases that are not obsolete
256    arm*-*-*eabi*                        \
258         ;;
259    arm*-wince-pe*                       \
260  | arm*-*-ecos-elf                      \
261  | arm*-*-elf                           \
262  | arm*-*-freebsd*                      \
263  | arm*-*-linux*                        \
264  | arm*-*-uclinux*                      \
265  | i[34567]86-go32-*                    \
266  | i[34567]86-*-go32*                   \
267  | m68k-*-uclinuxoldabi*                \
268  | mips64orion*-*-rtems*                \
269  | pdp11-*-bsd                          \
270  | sparc-hal-solaris2*                  \
271  | thumb-*-*                            \
272  | *-*-freebsd[12] | *-*-freebsd[12].*  \
273  | *-*-freebsd*aout*                    \
274  | *-*-linux*aout*                      \
275  | *-*-linux*coff*                      \
276  | *-*-linux*libc1*                     \
277  | *-*-linux*oldld*                     \
278  | *-*-rtemsaout*                       \
279  | *-*-rtemscoff*                       \
280  | *-*-solaris2                         \
281  | *-*-solaris2.[0-9]                   \
282  | *-*-solaris2.[0-9].*                 \
283  | *-*-sysv*                            \
284  | vax-*-vms*                           \
286         echo "*** Configuration ${target} not supported" 1>&2
287         exit 1
288         ;;
289 esac
291 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
292 # updated in each machine entry.  Also set default extra_headers for some
293 # machines.
294 tm_p_file=
295 cpu_type=`echo ${target} | sed 's/-.*$//'`
296 cpu_is_64bit=
297 case ${target} in
298 m32c*-*-*)
299         cpu_type=m32c
300         tmake_file=m32c/t-m32c
301         target_has_targetm_common=no
302         ;;
303 aarch64*-*-*)
304         cpu_type=aarch64
305         extra_headers="arm_neon.h arm_acle.h"
306         extra_objs="aarch64-builtins.o aarch-common.o"
307         target_has_targetm_common=yes
308         ;;
309 alpha*-*-*)
310         cpu_type=alpha
311         extra_options="${extra_options} g.opt"
312         ;;
313 am33_2.0-*-linux*)
314         cpu_type=mn10300
315         ;;
316 arc*-*-*)
317         cpu_type=arc
318         ;;
319 arm*-*-*)
320         cpu_type=arm
321         extra_objs="aarch-common.o"
322         extra_headers="mmintrin.h arm_neon.h arm_acle.h"
323         target_type_format_char='%'
324         c_target_objs="arm-c.o"
325         cxx_target_objs="arm-c.o"
326         extra_options="${extra_options} arm/arm-tables.opt"
327         ;;
328 avr-*-*)
329         cpu_type=avr
330         c_target_objs="avr-c.o"
331         cxx_target_objs="avr-c.o"
332         extra_options="${extra_options} avr/avr-tables.opt"
333         ;;
334 bfin*-*)
335         cpu_type=bfin
336         ;;
337 crisv32-*)
338         cpu_type=cris
339         ;;
340 frv*)   cpu_type=frv
341         extra_options="${extra_options} g.opt"
342         ;;
343 moxie*) cpu_type=moxie
344         target_has_targetm_common=no
345         ;;
346 fido-*-*)
347         cpu_type=m68k
348         extra_headers=math-68881.h
349         extra_options="${extra_options} m68k/m68k-tables.opt"
350         ;;
351 i[34567]86-*-*)
352         cpu_type=i386
353         c_target_objs="i386-c.o"
354         cxx_target_objs="i386-c.o"
355         extra_options="${extra_options} fused-madd.opt"
356         extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
357                        pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
358                        nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
359                        immintrin.h x86intrin.h avxintrin.h xopintrin.h
360                        ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
361                        lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
362                        avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
363                        rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
364                        adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
365                        avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
366                        shaintrin.h clflushoptintrin.h xsavecintrin.h
367                        xsavesintrin.h"
368         ;;
369 x86_64-*-*)
370         cpu_type=i386
371         c_target_objs="i386-c.o"
372         cxx_target_objs="i386-c.o"
373         extra_options="${extra_options} fused-madd.opt"
374         extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
375                        pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
376                        nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
377                        immintrin.h x86intrin.h avxintrin.h xopintrin.h
378                        ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
379                        lzcntintrin.h bmiintrin.h tbmintrin.h bmi2intrin.h
380                        avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
381                        rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
382                        adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
383                        avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
384                        shaintrin.h clflushoptintrin.h xsavecintrin.h
385                        xsavesintrin.h"
386         ;;
387 ia64-*-*)
388         extra_headers=ia64intrin.h
389         extra_options="${extra_options} g.opt fused-madd.opt"
390         ;;
391 hppa*-*-*)
392         cpu_type=pa
393         ;;
394 lm32*)
395         extra_options="${extra_options} g.opt"
396         ;;
397 m32r*-*-*)
398         cpu_type=m32r
399         extra_options="${extra_options} g.opt"
400         ;;
401 m68k-*-*)
402         extra_headers=math-68881.h
403         extra_options="${extra_options} m68k/m68k-tables.opt"
404         ;;
405 microblaze*-*-*)
406         cpu_type=microblaze
407         extra_options="${extra_options} g.opt"
408         ;;
409 mips*-*-*)
410         cpu_type=mips
411         extra_headers="loongson.h"
412         extra_options="${extra_options} g.opt mips/mips-tables.opt"
413         ;;
414 nds32*)
415         cpu_type=nds32
416         extra_headers="nds32_intrinsic.h"
417         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"
418         ;;
419 nios2-*-*)
420         cpu_type=nios2
421         extra_options="${extra_options} g.opt"
422         ;;
423 picochip-*-*)
424         cpu_type=picochip
425         ;;
426 powerpc*-*-*)
427         cpu_type=rs6000
428         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"
429         case x$with_cpu in
430             xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500)
431                 cpu_is_64bit=yes
432                 ;;
433         esac
434         extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
435         ;;
436 rs6000*-*-*)
437         extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
438         ;;
439 score*-*-*)
440         cpu_type=score
441         extra_options="${extra_options} g.opt"
442         ;;
443 sparc*-*-*)
444         cpu_type=sparc
445         c_target_objs="sparc-c.o"
446         cxx_target_objs="sparc-c.o"
447         extra_headers="visintrin.h"
448         ;;
449 spu*-*-*)
450         cpu_type=spu
451         ;;
452 s390*-*-*)
453         cpu_type=s390
454         extra_options="${extra_options} fused-madd.opt"
455         extra_headers="s390intrin.h htmintrin.h htmxlintrin.h"
456         ;;
457 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
458 sh[123456789lbe]*-*-* | sh-*-*)
459         cpu_type=sh
460         extra_options="${extra_options} fused-madd.opt"
461         extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
462         ;;
463 v850*-*-*)
464         cpu_type=v850
465         ;;
466 tic6x-*-*)
467         cpu_type=c6x
468         extra_headers="c6x_intrinsics.h"
469         extra_options="${extra_options} c6x/c6x-tables.opt"
470         ;;
471 xtensa*-*-*)
472         extra_options="${extra_options} fused-madd.opt"
473         ;;
474 tilegx*-*-*)
475         cpu_type=tilegx
476         ;;
477 tilepro*-*-*)
478         cpu_type=tilepro
479         ;;
480 esac
482 tm_file=${cpu_type}/${cpu_type}.h
483 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
484 then
485         tm_p_file=${cpu_type}/${cpu_type}-protos.h
487 extra_modes=
488 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
489 then
490         extra_modes=${cpu_type}/${cpu_type}-modes.def
492 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
493 then
494         extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
497 case ${target} in
498 aarch64*-*-*)
499         tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
500         case ${with_abi} in
501         "")
502                 if test "x$with_multilib_list" = xilp32; then
503                         tm_file="aarch64/biarchilp32.h ${tm_file}"
504                 else
505                         tm_file="aarch64/biarchlp64.h ${tm_file}"
506                 fi
507                 ;;
508         ilp32)
509                 tm_file="aarch64/biarchilp32.h ${tm_file}"
510                 ;;
511         lp64)
512                 tm_file="aarch64/biarchlp64.h ${tm_file}"
513                 ;;
514         *)
515                 echo "Unknown ABI used in --with-abi=$with_abi"
516                 exit 1
517         esac
518         ;;
519 i[34567]86-*-*)
520         if test "x$with_abi" != x; then
521                 echo "This target does not support --with-abi."
522                 exit 1
523         fi
524         if test "x$enable_cld" = xyes; then
525                 tm_defines="${tm_defines} USE_IX86_CLD=1"
526         fi
527         if test "x$enable_frame_pointer" = xyes; then
528                 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
529         fi
530         tm_file="vxworks-dummy.h ${tm_file}"
531         ;;
532 x86_64-*-*)
533         case ${with_abi} in
534         "")
535                 if test "x$with_multilib_list" = xmx32; then
536                         tm_file="i386/biarchx32.h ${tm_file}"
537                 else
538                         tm_file="i386/biarch64.h ${tm_file}"
539                 fi
540                 ;;
541         64 | m64)
542                 tm_file="i386/biarch64.h ${tm_file}"
543                 ;;
544         x32 | mx32)
545                 tm_file="i386/biarchx32.h ${tm_file}"
546                 ;;
547         *)
548                 echo "Unknown ABI used in --with-abi=$with_abi"
549                 exit 1
550         esac
551         if test "x$enable_cld" = xyes; then
552                 tm_defines="${tm_defines} USE_IX86_CLD=1"
553         fi
554         if test "x$enable_frame_pointer" = xyes; then
555                 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
556         fi
557         tm_file="vxworks-dummy.h ${tm_file}"
558         ;;
559 arm*-*-*)
560         tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
561         tm_file="vxworks-dummy.h ${tm_file}"
562         ;;
563 mips*-*-* | sh*-*-* | sparc*-*-*)
564         tm_file="vxworks-dummy.h ${tm_file}"
565         ;;
566 esac
568 # On a.out targets, we need to use collect2.
569 case ${target} in
570 *-*-*aout*)
571         use_collect2=yes
572         ;;
573 esac
575 # Common C libraries.
576 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3"
578 # 32-bit x86 processors supported by --with-arch=.  Each processor
579 # MUST be separated by exactly one space.
580 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
581 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
582 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
583 pentium4 pentium4m pentiumpro prescott"
585 # 64-bit x86 processors supported by --with-arch=.  Each processor
586 # MUST be separated by exactly one space.
587 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
588 bdver3 bdver4 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \
589 core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \
590 sandybridge ivybridge haswell broadwell bonnell silvermont x86-64 native"
592 # Additional x86 processors supported by --with-cpu=.  Each processor
593 # MUST be separated by exactly one space.
594 x86_cpus="generic intel"
596 # Common parts for widely ported systems.
597 case ${target} in
598 *-*-darwin*)
599   tmake_file="t-darwin ${cpu_type}/t-darwin"
600   tm_file="${tm_file} darwin.h"
601   case ${target} in
602   *-*-darwin9*)
603     tm_file="${tm_file} darwin9.h"
604     ;;
605   *-*-darwin[12][0-9]*)
606     tm_file="${tm_file} darwin9.h darwin10.h"
607     ;;
608   esac
609   tm_file="${tm_file} ${cpu_type}/darwin.h"
610   tm_p_file="${tm_p_file} darwin-protos.h"
611   target_gtfiles="\$(srcdir)/config/darwin.c"
612   extra_options="${extra_options} darwin.opt"
613   c_target_objs="${c_target_objs} darwin-c.o"
614   cxx_target_objs="${cxx_target_objs} darwin-c.o"
615   fortran_target_objs="darwin-f.o"
616   target_has_targetcm=yes
617   extra_objs="darwin.o"
618   extra_gcc_objs="darwin-driver.o"
619   default_use_cxa_atexit=yes
620   use_gcc_stdint=wrap
621   case ${enable_threads} in
622     "" | yes | posix) thread_file='posix' ;;
623   esac
624   ;;
625 *-*-dragonfly*)
626   gas=yes
627   gnu_ld=yes
628   tmake_file="t-slibgcc"
629   case ${enable_threads} in
630     "" | yes | posix)
631       thread_file='posix'
632       ;;
633     no | single)
634       # Let these non-posix thread selections fall through if requested
635       ;;
636     *)
637       echo 'Unknown thread configuration for DragonFly BSD'
638       exit 1
639       ;;
640   esac
641   extra_options="$extra_options rpath.opt dragonfly.opt"
642   default_use_cxa_atexit=yes
643   use_gcc_stdint=wrap
644   ;;
645 *-*-freebsd*)
646   # This is the generic ELF configuration of FreeBSD.  Later
647   # machine-specific sections may refine and add to this
648   # configuration.
649   #
650   # Due to tm_file entry ordering issues that vary between cpu
651   # architectures, we only define fbsd_tm_file to allow the
652   # machine-specific section to dictate the final order of all
653   # entries of tm_file with the minor exception that components
654   # of the tm_file set here will always be of the form:
655   #
656   # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
657   #
658   # The machine-specific section should not tamper with this
659   # ordering but may order all other entries of tm_file as it
660   # pleases around the provided core setting.
661   gas=yes
662   gnu_ld=yes
663   fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
664   tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
665   tmake_file="t-slibgcc"
666   case ${enable_threads} in
667     no)
668       fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
669       ;;
670     "" | yes | posix)
671       thread_file='posix'
672       ;;
673     *)
674       echo 'Unknown thread configuration for FreeBSD'
675       exit 1
676       ;;
677   esac
678   fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
679   extra_options="$extra_options rpath.opt freebsd.opt"
680   case ${target} in
681     *-*-freebsd[345].*)
682       :;;
683     *)
684       default_use_cxa_atexit=yes;;
685   esac
686   use_gcc_stdint=wrap
687   ;;
688 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
689   extra_options="$extra_options gnu-user.opt"
690   gas=yes
691   gnu_ld=yes
692   case ${enable_threads} in
693     "" | yes | posix) thread_file='posix' ;;
694   esac
695   tmake_file="t-slibgcc"
696   case $target in
697     *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu)
698       :;;
699     *-*-gnu*)
700       native_system_header_dir=/include
701       ;;
702   esac
703   # Linux C libraries selection switch: glibc / uclibc / bionic.
704   # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
705   case $target in
706     *linux*)
707       tm_p_file="${tm_p_file} linux-protos.h"
708       tmake_file="${tmake_file} t-linux"
709       extra_objs="${extra_objs} linux.o"
710       extra_options="${extra_options} linux.opt"
711       ;;
712   esac
713   case $target in
714     *-*-*android*)
715       tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
716       ;;
717     *-*-*uclibc*)
718       tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
719       ;;
720     *)
721       tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
722       ;;
723   esac
724   # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
725   # is provided.
726   default_use_cxa_atexit=yes
727   use_gcc_tgmath=no
728   use_gcc_stdint=wrap
729   # Enable compilation for Android by default for *android* targets.
730   case $target in
731     *-*-*android*)
732       tm_defines="$tm_defines ANDROID_DEFAULT=1"
733       ;;
734     *)
735       tm_defines="$tm_defines ANDROID_DEFAULT=0"
736       ;;
737   esac
738   c_target_objs="${c_target_objs} glibc-c.o"
739   cxx_target_objs="${cxx_target_objs} glibc-c.o"
740   tmake_file="${tmake_file} t-glibc"
741   target_has_targetcm=yes
742   ;;
743 *-*-netbsd*)
744   tmake_file="t-slibgcc"
745   gas=yes
746   gnu_ld=yes
748   # NetBSD 2.0 and later get POSIX threads enabled by default.
749   # Allow them to be explicitly enabled on any other version.
750   case ${enable_threads} in
751     "")
752       case ${target} in
753         *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
754           thread_file='posix'
755           tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
756           ;;
757       esac
758       ;;
759     yes | posix)
760       thread_file='posix'
761       tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
762       ;;
763   esac
765   # NetBSD 2.0 and later provide __cxa_atexit(), which we use by
766   # default (unless overridden by --disable-__cxa_atexit).
767   case ${target} in
768     *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
769       default_use_cxa_atexit=yes
770       ;;
771   esac
772   ;;
773 *-*-openbsd*)
774   tmake_file="t-openbsd"
775   case ${enable_threads} in
776     yes)
777       thread_file='posix'
778       ;;
779   esac
780   case ${target} in
781     *-*-openbsd2.*|*-*-openbsd3.[012])
782       tm_defines="${tm_defines} HAS_LIBC_R=1" ;;
783   esac
784   case ${target} in
785     *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
786       default_use_cxa_atexit=yes
787       ;;
788   esac
789   ;;
790 *-*-rtems*)
791   case ${enable_threads} in
792     yes) thread_file='rtems' ;;
793   esac
794   tmake_file="${tmake_file} t-rtems"
795   extra_options="${extra_options} rtems.opt"
796   default_use_cxa_atexit=yes
797   use_gcc_stdint=wrap
798   ;;
799 *-*-uclinux*)
800   extra_options="$extra_options gnu-user.opt"
801   use_gcc_stdint=wrap
802   tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
803   ;;
804 *-*-rdos*)
805   use_gcc_stdint=wrap
806   ;;
807 *-*-solaris2*)
808   # i?86-*-solaris2* needs to insert headers between cpu default and
809   # Solaris 2 specific ones.
810   sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
811   sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
812   sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
813   use_gcc_stdint=wrap
814   if test x$gnu_ld = xyes; then
815     tm_file="usegld.h ${tm_file}"
816   fi
817   if test x$gas = xyes; then
818     tm_file="usegas.h ${tm_file}"
819   fi
820   tm_p_file="${tm_p_file} sol2-protos.h"
821   tmake_file="${tmake_file} t-sol2 t-slibgcc"
822   c_target_objs="${c_target_objs} sol2-c.o"
823   cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
824   extra_objs="sol2.o sol2-stubs.o"
825   extra_options="${extra_options} sol2.opt"
826   case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
827     "":yes:* | yes:yes:* )
828       thread_file=posix
829       ;;
830   esac
831   ;;
832 *-*-*vms*)
833   extra_options="${extra_options} vms/vms.opt"
834   xmake_file=vms/x-vms
835   tmake_file="vms/t-vms t-slibgcc"
836   extra_objs="vms.o"
837   target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
838   tm_p_file="${tm_p_file} vms/vms-protos.h"
839   xm_file="vms/xm-vms.h"
840   c_target_objs="vms-c.o"
841   cxx_target_objs="vms-c.o"
842   fortran_target_objs="vms-f.o"
843   use_gcc_stdint=provide
844   tm_file="${tm_file} vms/vms-stdint.h"
845   if test x$gnu_ld != xyes; then
846     # Build wrappers for native case.
847     extra_programs="ld\$(exeext) ar\$(exeext)"
848     tmake_file="$tmake_file vms/t-vmsnative"
849   fi
850   ;;
851 *-*-vxworks*)
852   tmake_file=t-vxworks
853   xm_defines=POSIX
854   extra_options="${extra_options} vxworks.opt"
855   extra_objs="$extra_objs vxworks.o"
856   case ${enable_threads} in
857     no) ;;
858     "" | yes | vxworks) thread_file='vxworks' ;;
859     *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
860   esac
861   ;;
862 *-*-elf|arc*-*-elf*)
863   # Assume that newlib is being used and so __cxa_atexit is provided.
864   default_use_cxa_atexit=yes
865   use_gcc_stdint=wrap
866   ;;
867 esac
869 case ${target} in
870 aarch64*-*-elf)
871         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
872         tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
873         tmake_file="${tmake_file} aarch64/t-aarch64"
874         use_gcc_stdint=wrap
875         case $target in
876         aarch64_be-*)
877                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
878                 ;;
879         esac
880         aarch64_multilibs="${with_multilib_list}"
881         if test "$aarch64_multilibs" = "default"; then
882                 aarch64_multilibs="lp64,ilp32"
883         fi
884         aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
885         for aarch64_multilib in ${aarch64_multilibs}; do
886                 case ${aarch64_multilib} in
887                 ilp32 | lp64 )
888                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
889                         ;;
890                 *)
891                         echo "--with-multilib-list=${aarch64_multilib} not supported."
892                         exit 1
893                 esac
894         done
895         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
896         ;;
897 aarch64*-*-linux*)
898         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
899         tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
900         tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
901         case $target in
902         aarch64_be-*)
903                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
904                 ;;
905         esac
906         aarch64_multilibs="${with_multilib_list}"
907         if test "$aarch64_multilibs" = "default"; then
908                 # TODO: turn on ILP32 multilib build after its support is mature.
909                 # aarch64_multilibs="lp64,ilp32"
910                 aarch64_multilibs="lp64"
911         fi
912         aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
913         for aarch64_multilib in ${aarch64_multilibs}; do
914                 case ${aarch64_multilib} in
915                 ilp32 | lp64 )
916                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
917                         ;;
918                 *)
919                         echo "--with-multilib-list=${aarch64_multilib} not supported."
920                         exit 1
921                 esac
922         done
923         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
924         ;;
925 alpha*-*-linux*)
926         tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
927         tmake_file="${tmake_file} alpha/t-linux"
928         extra_options="${extra_options} alpha/elf.opt"
929         ;;
930 alpha*-*-freebsd*)
931         tm_file="elfos.h ${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
932         extra_options="${extra_options} alpha/elf.opt"
933         ;;
934 alpha*-*-netbsd*)
935         tm_file="elfos.h ${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h"
936         extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
937                        alpha/elf.opt"
938         ;;
939 alpha*-*-openbsd*)
940         tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
941         tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
942         extra_options="${extra_options} openbsd.opt alpha/elf.opt"
943         # default x-alpha is only appropriate for dec-osf.
944         ;;
945 alpha*-dec-*vms*)
946         tm_file="${tm_file} vms/vms.h alpha/vms.h"
947         tmake_file="${tmake_file} alpha/t-vms"
948         ;;
949 arc*-*-elf*)
950         extra_headers="arc-simd.h"
951         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
952         tmake_file="arc/t-arc-newlib arc/t-arc"
953         case x"${with_cpu}" in
954           xarc600|xarc601|xarc700)
955                 target_cpu_default="TARGET_CPU_$with_cpu"
956                 ;;
957         esac
958         if test x${with_endian} = x; then
959                 case ${target} in
960                 arc*be-*-* | arc*eb-*-*)        with_endian=big ;;
961                 *)                              with_endian=little ;;
962                 esac
963         fi
964         case ${with_endian} in
965         big|little)             ;;
966         *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
967         esac
968         case ${with_endian} in
969         big*)   tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
970         esac
971         ;;
972 arc*-*-linux-uclibc*)
973         extra_headers="arc-simd.h"
974         tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file}"
975         tmake_file="${tmake_file} arc/t-arc-uClibc arc/t-arc"
976         tm_defines="${tm_defines} TARGET_SDATA_DEFAULT=0"
977         tm_defines="${tm_defines} TARGET_MMEDIUM_CALLS_DEFAULT=1"
978         case x"${with_cpu}" in
979           xarc600|xarc601|xarc700)
980                 target_cpu_default="TARGET_CPU_$with_cpu"
981                 ;;
982         esac
983         if test x${with_endian} = x; then
984                 case ${target} in
985                 arc*be-*-* | arc*eb-*-*)        with_endian=big ;;
986                 *)                              with_endian=little ;;
987                 esac
988         fi
989         case ${with_endian} in
990         big|little)             ;;
991         *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
992         esac
993         case ${with_endian} in
994         big*)   tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
995         esac
996         ;;
997 arm-wrs-vxworks)
998         tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
999         extra_options="${extra_options} arm/vxworks.opt"
1000         tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1001         ;;
1002 arm*-*-netbsdelf*)
1003         tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1004         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1005         tmake_file="${tmake_file} arm/t-arm"
1006         ;;
1007 arm*-*-linux-*)                 # ARM GNU/Linux with ELF
1008         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"
1009         extra_options="${extra_options} linux-android.opt"
1010         case $target in
1011         arm*b-*-linux*)
1012             tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1013             ;;
1014         esac
1015         tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1016         tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1017         # Define multilib configuration for arm-linux-androideabi.
1018         case ${target} in
1019         *-androideabi)
1020             tmake_file="$tmake_file arm/t-linux-androideabi"
1021             ;;
1022         esac
1023         # The EABI requires the use of __cxa_atexit.
1024         default_use_cxa_atexit=yes
1025         with_tls=${with_tls:-gnu}
1026         ;;
1027 arm*-*-uclinux*eabi*)           # ARM ucLinux
1028         tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1029         tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1030         tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1031         # The EABI requires the use of __cxa_atexit.
1032         default_use_cxa_atexit=yes
1033         ;;
1034 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
1035         case ${target} in
1036         arm*eb-*-eabi*)
1037           tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1038         esac
1039         default_use_cxa_atexit=yes
1040         tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1041         tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1042         case ${target} in
1043         arm*-*-eabi*)
1044           tm_file="$tm_file newlib-stdint.h"
1045           tmake_file="${tmake_file} arm/t-bpabi"
1046           use_gcc_stdint=wrap
1047           ;;
1048         arm*-*-rtems*)
1049           tm_file="${tm_file} rtems.h arm/rtems-eabi.h newlib-stdint.h"
1050           tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems-eabi"
1051           ;;
1052         arm*-*-symbianelf*)
1053           tm_file="${tm_file} arm/symbian.h"
1054           # We do not include t-bpabi for Symbian OS because the system
1055           # provides its own implementation of the BPABI functions.
1056           tmake_file="${tmake_file} arm/t-symbian"
1057           ;;
1058         esac
1059         tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
1060         ;;
1061 avr-*-rtems*)
1062         tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
1063         tmake_file="${tmake_file} avr/t-avr avr/t-multilib avr/t-rtems"
1064         extra_gcc_objs="driver-avr.o avr-devices.o"
1065         extra_objs="avr-devices.o avr-log.o"
1066         ;;
1067 avr-*-*)
1068         tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/avr-stdint.h"
1069         if test x${with_avrlibc} != xno; then
1070             tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1071             tm_defines="${tm_defines} WITH_AVRLIBC"
1072         fi
1073         tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1074         use_gcc_stdint=wrap
1075         extra_gcc_objs="driver-avr.o avr-devices.o"
1076         extra_objs="avr-devices.o avr-log.o"
1077         ;;
1078 bfin*-elf*)
1079         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1080         tmake_file=bfin/t-bfin-elf
1081         use_collect2=no
1082         ;;
1083 bfin*-uclinux*)
1084         tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1085         tmake_file=bfin/t-bfin-uclinux
1086         use_collect2=no
1087         ;;
1088 bfin*-linux-uclibc*)
1089         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"
1090         tmake_file="bfin/t-bfin-linux t-slibgcc t-linux"
1091         use_collect2=no
1092         ;;
1093 bfin*-rtems*)
1094         tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1095         tmake_file="${tmake_file} bfin/t-rtems"
1096         ;;
1097 bfin*-*)
1098         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1099         use_collect2=no
1100         use_gcc_stdint=wrap
1101         ;;
1102 cr16-*-elf)
1103         tm_file="elfos.h ${tm_file}"
1104         tmake_file="${tmake_file} cr16/t-cr16 "
1105         use_collect2=no
1106         ;;
1107 crisv32-*-elf | crisv32-*-none)
1108         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1109         tmake_file="cris/t-cris"
1110         target_cpu_default=32
1111         gas=yes
1112         extra_options="${extra_options} cris/elf.opt"
1113         use_gcc_stdint=wrap
1114         ;;
1115 cris-*-elf | cris-*-none)
1116         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1117         tmake_file="cris/t-cris cris/t-elfmulti"
1118         gas=yes
1119         extra_options="${extra_options} cris/elf.opt"
1120         use_gcc_stdint=wrap
1121         ;;
1122 crisv32-*-linux* | cris-*-linux*)
1123         tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1124         tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1125         extra_options="${extra_options} cris/linux.opt"
1126         case $target in
1127           cris-*-*)
1128                 target_cpu_default=10
1129                 ;;
1130           crisv32-*-*)
1131                 target_cpu_default=32
1132                 ;;
1133         esac
1134         ;;
1135 epiphany-*-elf )
1136         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1137         tmake_file="epiphany/t-epiphany"
1138         extra_options="${extra_options} fused-madd.opt"
1139         extra_objs="$extra_objs mode-switch-use.o resolve-sw-modes.o"
1140         tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1141         extra_headers="epiphany_intrinsics.h"
1142         ;;
1143 fr30-*-elf)
1144         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1145         ;;
1146 frv-*-elf)
1147         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1148         tmake_file=frv/t-frv
1149         ;;
1150 frv-*-*linux*)
1151         tm_file="dbxelf.h elfos.h ${tm_file} \
1152                  gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1153         tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1154         ;;
1155 moxie-*-elf)
1156         gas=yes
1157         gnu_ld=yes
1158         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1159         tmake_file="${tmake_file} moxie/t-moxie"
1160         ;;
1161 moxie-*-uclinux*)
1162         gas=yes
1163         gnu_ld=yes
1164         tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1165         tmake_file="${tmake_file} moxie/t-moxie"
1166         ;;
1167 moxie-*-rtems*)
1168         tmake_file="${tmake_file} moxie/t-moxie"
1169         tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1170         ;;
1171 moxie-*-moxiebox*)
1172         gas=yes
1173         gnu_ld=yes
1174         tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1175         tmake_file="${tmake_file} moxie/t-moxiebox"
1176         ;;
1177 h8300-*-rtems*)
1178         tmake_file="${tmake_file} h8300/t-h8300 h8300/t-rtems"
1179         tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h"
1180         ;;
1181 h8300-*-elf*)
1182         tmake_file="h8300/t-h8300"
1183         tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1184         ;;
1185 hppa*64*-*-linux*)
1186         target_cpu_default="MASK_PA_11|MASK_PA_20"
1187         tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1188                  glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1189                  pa/pa64-linux.h"
1190         gas=yes gnu_ld=yes
1191         ;;
1192 hppa*-*-linux*)
1193         target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1194         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1195                  pa/pa32-regs.h pa/pa32-linux.h"
1196         tmake_file="${tmake_file} pa/t-linux"
1197         ;;
1198 hppa*-*-openbsd*)
1199         target_cpu_default="MASK_PA_11"
1200         tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1201                  pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1202         extra_options="${extra_options} openbsd.opt"
1203         gas=yes
1204         gnu_ld=yes
1205         ;;
1206 hppa[12]*-*-hpux10*)
1207         case ${target} in
1208         hppa1.1-*-* | hppa2*-*-*)
1209                 target_cpu_default="MASK_PA_11"
1210                 ;;
1211         esac
1212         tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1213                  pa/pa-hpux.h pa/pa-hpux10.h"
1214         extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1215         case ${target} in
1216         *-*-hpux10.[1-9]*)
1217                 tm_file="${tm_file} pa/pa-hpux1010.h"
1218                 extra_options="${extra_options} pa/pa-hpux1010.opt"
1219                 ;;
1220         esac
1221         use_gcc_stdint=provide
1222         tm_file="${tm_file} hpux-stdint.h"
1223         tmake_file="t-slibgcc"
1224         case ${enable_threads} in
1225           "")
1226             if test x$have_pthread_h = xyes ; then
1227               tmake_file="${tmake_file} pa/t-dce-thr"
1228             fi
1229             ;;
1230           yes | dce)
1231             tmake_file="${tmake_file} pa/t-dce-thr"
1232             ;;
1233         esac
1234         use_collect2=yes
1235         gas=yes
1236         if test "x$with_dwarf2" != x; then
1237                 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1238                 dwarf2=no
1239         fi
1240         ;;
1241 hppa*64*-*-hpux11*)
1242         target_cpu_default="MASK_PA_11|MASK_PA_20"
1243         if test x$gnu_ld = xyes
1244         then
1245                 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1246         fi
1247         tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1248                  pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1249                  pa/pa-hpux11.h"
1250         case ${target} in
1251         *-*-hpux11.[12]*)
1252                 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1253                 extra_options="${extra_options} pa/pa-hpux1111.opt"
1254                 ;;
1255         *-*-hpux11.[3-9]*)
1256                 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1257                 extra_options="${extra_options} pa/pa-hpux1131.opt"
1258                 ;;
1259         *)
1260                 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1261                 ;;
1262         esac
1263         extra_options="${extra_options} pa/pa-hpux.opt \
1264                        pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1265         tmake_file="t-slibgcc"
1266         case x${enable_threads} in
1267         x | xyes | xposix )
1268                 thread_file=posix
1269                 ;;
1270         esac
1271         gas=yes
1272         case ${target} in
1273           *-*-hpux11.[01]*)
1274                 use_gcc_stdint=provide
1275                 tm_file="${tm_file} hpux-stdint.h"
1276                 ;;
1277           *-*-hpux11.[23]*)
1278                 use_gcc_stdint=wrap
1279                 tm_file="${tm_file} hpux-stdint.h"
1280                 ;;
1281         esac
1282         ;;
1283 hppa[12]*-*-hpux11*)
1284         case ${target} in
1285         hppa1.1-*-* | hppa2*-*-*)
1286                 target_cpu_default="MASK_PA_11"
1287                 ;;
1288         esac
1289         tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1290                  pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1291         extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1292                        hpux11.opt"
1293         case ${target} in
1294         *-*-hpux11.[12]*)
1295                 tm_file="${tm_file} pa/pa-hpux1111.h"
1296                 extra_options="${extra_options} pa/pa-hpux1111.opt"
1297                 ;;
1298         *-*-hpux11.[3-9]*)
1299                 tm_file="${tm_file} pa/pa-hpux1131.h"
1300                 extra_options="${extra_options} pa/pa-hpux1131.opt"
1301                 ;;
1302         esac
1303         tmake_file="t-slibgcc"
1304         case x${enable_threads} in
1305         x | xyes | xposix )
1306                 thread_file=posix
1307                 ;;
1308         esac
1309         use_collect2=yes
1310         gas=yes
1311         case ${target} in
1312           *-*-hpux11.[01]*)
1313                 use_gcc_stdint=provide
1314                 tm_file="${tm_file} hpux-stdint.h"
1315                 ;;
1316           *-*-hpux11.[23]*)
1317                 use_gcc_stdint=wrap
1318                 tm_file="${tm_file} hpux-stdint.h"
1319                 ;;
1320         esac
1321         if test "x$with_dwarf2" != x; then
1322                 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1323                 dwarf2=no
1324         fi
1325         ;;
1326 i[34567]86-*-darwin*)
1327         need_64bit_isa=yes
1328         # Baseline choice for a machine that allows m64 support.
1329         with_cpu=${with_cpu:-core2}
1330         tmake_file="${tmake_file} t-slibgcc"
1331         ;;
1332 x86_64-*-darwin*)
1333         with_cpu=${with_cpu:-core2}
1334         tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1335         tm_file="${tm_file} ${cpu_type}/darwin64.h"
1336         ;;
1337 i[34567]86-*-elf*)
1338         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1339         ;;
1340 x86_64-*-elf*)
1341         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1342         ;;
1343 i[34567]86-*-rdos*)
1344     tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1345     ;;
1346 x86_64-*-rdos*)
1347     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"
1348     tmake_file="i386/t-i386elf t-svr4"
1349     ;;
1350 i[34567]86-*-dragonfly*)
1351         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1352         tmake_file="${tmake_file} i386/t-crtstuff"
1353         ;;
1354 x86_64-*-dragonfly*)
1355         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"
1356         tmake_file="${tmake_file} i386/t-crtstuff"
1357         ;;
1358 i[34567]86-*-freebsd*)
1359         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1360         ;;
1361 x86_64-*-freebsd*)
1362         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"
1363         ;;
1364 i[34567]86-*-netbsdelf*)
1365         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
1366         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1367         ;;
1368 x86_64-*-netbsd*)
1369         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"
1370         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1371         ;;
1372 i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
1373         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"
1374         extra_options="${extra_options} openbsd.opt"
1375         # needed to unconfuse gdb
1376         tmake_file="${tmake_file} t-openbsd i386/t-openbsd"
1377         # we need collect2 until our bug is fixed...
1378         use_collect2=yes
1379         ;;
1380 i[34567]86-*-openbsd*)
1381         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1382         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1383         extra_options="${extra_options} openbsd.opt"
1384         gas=yes
1385         gnu_ld=yes
1386         ;;
1387 x86_64-*-openbsd*)
1388         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1389         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1390         extra_options="${extra_options} openbsd.opt"
1391         gas=yes
1392         gnu_ld=yes
1393         ;;
1394 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1395                         # Intel 80386's running GNU/*
1396                         # with ELF format using glibc 2
1397         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1398         case ${target} in
1399         i[34567]86-*-linux*)
1400                 tm_file="${tm_file} linux.h linux-android.h"
1401                 extra_options="${extra_options} linux-android.opt"
1402                 # Assume modern glibc
1403                 default_gnu_indirect_function=yes
1404                 if test x$enable_targets = xall; then
1405                         tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1406                         tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1407                         tmake_file="${tmake_file} i386/t-linux64"
1408                         x86_multilibs="${with_multilib_list}"
1409                         if test "$x86_multilibs" = "default"; then
1410                                 x86_multilibs="m64,m32"
1411                         fi
1412                         x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1413                         for x86_multilib in ${x86_multilibs}; do
1414                                 case ${x86_multilib} in
1415                                 m32 | m64 | mx32)
1416                                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1417                                         ;;
1418                                 *)
1419                                         echo "--with-multilib-list=${x86_with_multilib} not supported."
1420                                         exit 1
1421                                 esac
1422                         done
1423                         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1424                         need_64bit_isa=yes
1425                         if test x$with_cpu = x; then
1426                                 if test x$with_cpu_64 = x; then
1427                                         with_cpu_64=generic
1428                                 fi
1429                         else
1430                                 case " $x86_cpus $x86_archs $x86_64_archs " in
1431                                 *" $with_cpu "*)
1432                                         ;;
1433                                 *)
1434                                         echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1435                                         echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1436                                         exit 1
1437                                         ;;
1438                                 esac
1439                         fi
1440                 else
1441                         tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1442                 fi
1443                 ;;
1444         i[34567]86-*-knetbsd*-gnu)
1445                 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h"
1446                 ;;
1447         i[34567]86-*-kfreebsd*-gnu)
1448                 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1449                 ;;
1450         i[34567]86-*-kopensolaris*-gnu)
1451                 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1452                 ;;
1453         i[34567]86-*-gnu*)
1454                 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1455                 ;;
1456         esac
1457         ;;
1458 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
1459         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1460                  i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1461         case ${target} in
1462         x86_64-*-linux*)
1463                 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1464                 extra_options="${extra_options} linux-android.opt"
1465                 # Assume modern glibc
1466                 default_gnu_indirect_function=yes
1467                 ;;
1468         x86_64-*-kfreebsd*-gnu)
1469                 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1470                 ;;
1471         x86_64-*-knetbsd*-gnu)
1472                 tm_file="${tm_file} knetbsd-gnu.h"
1473                 ;;
1474         esac
1475         tmake_file="${tmake_file} i386/t-linux64"
1476         x86_multilibs="${with_multilib_list}"
1477         if test "$x86_multilibs" = "default"; then
1478                 case ${with_abi} in
1479                 x32 | mx32)
1480                         x86_multilibs="mx32"
1481                         ;;
1482                 *)
1483                         x86_multilibs="m64,m32"
1484                         ;;
1485                 esac
1486         fi
1487         x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1488         for x86_multilib in ${x86_multilibs}; do
1489                 case ${x86_multilib} in
1490                 m32 | m64 | mx32)
1491                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1492                         ;;
1493                 *)
1494                         echo "--with-multilib-list=${x86_with_multilib} not supported."
1495                         exit 1
1496                 esac
1497         done
1498         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1499         ;;
1500 i[34567]86-pc-msdosdjgpp*)
1501         xm_file=i386/xm-djgpp.h
1502         tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1503         native_system_header_dir=/dev/env/DJDIR/include
1504         extra_options="${extra_options} i386/djgpp.opt"
1505         gnu_ld=yes
1506         gas=yes
1507         use_gcc_stdint=wrap
1508         ;;
1509 i[34567]86-*-lynxos*)
1510         xm_defines=POSIX
1511         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1512         tmake_file="${tmake_file} t-lynx"
1513         extra_options="${extra_options} lynx.opt"
1514         thread_file=lynx
1515         gnu_ld=yes
1516         gas=yes
1517         ;;
1518 i[34567]86-*-nto-qnx*)
1519         tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1520         extra_options="${extra_options} i386/nto.opt"
1521         gnu_ld=yes
1522         gas=yes
1523         ;;
1524 i[34567]86-*-rtems*)
1525         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"
1526         tmake_file="${tmake_file} i386/t-rtems"
1527         ;;
1528 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1529         # Set default arch_32 to pentium4, tune_32 to generic like the other
1530         # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1531         with_arch_32=${with_arch_32:-pentium4}
1532         with_tune_32=${with_tune_32:-generic}
1533         tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1534         tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1535         tmake_file="$tmake_file i386/t-sol2"
1536         need_64bit_isa=yes
1537         if test x$with_cpu = x; then
1538                 if test x$with_cpu_64 = x; then
1539                         with_cpu_64=generic
1540                 fi
1541         else
1542                 case " $x86_cpus $x86_archs $x86_64_archs " in
1543                 *" $with_cpu "*)
1544                         ;;
1545                 *)
1546                         echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1547                         echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1548                         exit 1
1549                         ;;
1550                 esac
1551         fi
1552         ;;
1553 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
1554         tm_file="${tm_file} i386/unix.h i386/att.h elfos.h vx-common.h"
1555         case ${target} in
1556           *-vxworksae*)
1557             tm_file="${tm_file} vxworksae.h i386/vx-common.h i386/vxworksae.h"
1558             tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1559             ;;
1560           *)
1561             tm_file="${tm_file} vxworks.h i386/vx-common.h i386/vxworks.h"
1562             tmake_file="${tmake_file} i386/t-vxworks"
1563             ;;
1564         esac
1565         ;;
1566 i[34567]86-*-cygwin*)
1567         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"
1568         xm_file=i386/xm-cygwin.h
1569         tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1570         target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1571         extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1572         extra_objs="winnt.o winnt-stubs.o"
1573         c_target_objs="${c_target_objs} msformat-c.o"
1574         cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1575         if test x$enable_threads = xyes; then
1576                 thread_file='posix'
1577         fi
1578         default_use_cxa_atexit=yes
1579         use_gcc_stdint=wrap
1580         ;;
1581 x86_64-*-cygwin*)
1582         need_64bit_isa=yes
1583         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"
1584         xm_file=i386/xm-cygwin.h
1585         tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1586         target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1587         extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1588         extra_objs="winnt.o winnt-stubs.o"
1589         c_target_objs="${c_target_objs} msformat-c.o"
1590         cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1591         if test x$enable_threads = xyes; then
1592                 thread_file='posix'
1593         fi
1594         default_use_cxa_atexit=yes
1595         use_gcc_stdint=wrap
1596         tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1597         ;;
1598 i[34567]86-*-mingw* | x86_64-*-mingw*)
1599         tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1600         xm_file=i386/xm-mingw32.h
1601         c_target_objs="${c_target_objs} winnt-c.o"
1602         cxx_target_objs="${cxx_target_objs} winnt-c.o"
1603         target_has_targetcm="yes"
1604         case ${target} in
1605                 x86_64-*-* | *-w64-*)
1606                         need_64bit_isa=yes
1607                         ;;
1608                 *)
1609                         ;;
1610         esac
1611         if test x$enable_threads = xposix ; then
1612                 tm_file="${tm_file} i386/mingw-pthread.h"
1613         fi
1614         tm_file="${tm_file} i386/mingw32.h"
1615         # This makes the logic if mingw's or the w64 feature set has to be used
1616         case ${target} in
1617                 *-w64-*)
1618                         user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1619                         user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1620                         tm_file="${tm_file} i386/mingw-w64.h"
1621                         if test x$enable_targets = xall; then
1622                                 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1623                                 if test x$with_cpu = x; then
1624                                         if test x$with_cpu_64 = x; then
1625                                                 with_cpu_64=generic
1626                                         fi
1627                                 else
1628                                         case " $x86_cpus $x86_archs $x86_64_archs " in
1629                                         *" $with_cpu "*)
1630                                                 ;;
1631                                         *)
1632                                                 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1633                                                 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1634                                                 exit 1
1635                                                 ;;
1636                                         esac
1637                                 fi
1638                         fi
1639                         ;;
1640                 *)
1641                         ;;
1642         esac
1643         tm_file="${tm_file} i386/mingw-stdint.h"
1644         tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1645         case ${target} in
1646                x86_64-w64-*)
1647                         tmake_file="${tmake_file} i386/t-mingw-w64"
1648                         ;;
1649                i[34567]86-w64-*)
1650                         tmake_file="${tmake_file} i386/t-mingw-w32"
1651                         ;;
1652         esac
1653         native_system_header_dir=/mingw/include
1654         target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1655         extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1656         case ${target} in
1657                 *-w64-*)
1658                         extra_options="${extra_options} i386/mingw-w64.opt"
1659                         ;;
1660                 *)
1661                         ;;
1662         esac
1663         extra_objs="winnt.o winnt-stubs.o"
1664         c_target_objs="${c_target_objs} msformat-c.o"
1665         cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1666         gas=yes
1667         gnu_ld=yes
1668         default_use_cxa_atexit=yes
1669         use_gcc_stdint=wrap
1670         case ${enable_threads} in
1671           "" | yes | win32)
1672             thread_file='win32'
1673             ;;
1674           posix)
1675             thread_file='posix'
1676             ;;
1677         esac
1678         case ${target} in
1679                 *mingw32crt*)
1680                         tm_file="${tm_file} i386/crtdll.h"
1681                         ;;
1682                 *mingw32msv* | *mingw*)
1683                         ;;
1684         esac
1685         ;;
1686 i[34567]86-*-interix[3-9]*)
1687         tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h"
1688         tmake_file="${tmake_file} i386/t-interix"
1689         extra_options="${extra_options} rpath.opt i386/interix.opt"
1690         extra_objs="winnt.o winnt-stubs.o"
1691         target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1692         if test x$enable_threads = xyes ; then
1693                 thread_file='posix'
1694         fi
1695         if test x$stabs = xyes ; then
1696                 tm_file="${tm_file} dbxcoff.h"
1697         fi
1698         ;;
1699 ia64*-*-elf*)
1700         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1701         tmake_file="ia64/t-ia64"
1702         target_cpu_default="0"
1703         if test x$gas = xyes
1704         then
1705                 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1706         fi
1707         if test x$gnu_ld = xyes
1708         then
1709                 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1710         fi
1711         ;;
1712 ia64*-*-freebsd*)
1713         tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1714         target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1715         tmake_file="${tmake_file} ia64/t-ia64"
1716         ;;
1717 ia64*-*-linux*)
1718         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1719         tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1720         target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1721         ;;
1722 ia64*-*-hpux*)
1723         tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1724         tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1725         target_cpu_default="MASK_GNU_AS"
1726         case x$enable_threads in
1727         x | xyes | xposix )
1728                 thread_file=posix
1729                 ;;
1730         esac
1731         use_collect2=no
1732         c_target_objs="ia64-c.o"
1733         cxx_target_objs="ia64-c.o"
1734         extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1735         use_gcc_stdint=wrap
1736         tm_file="${tm_file} hpux-stdint.h"
1737         case ${target} in
1738         *-*-hpux11.3*)
1739                 tm_file="${tm_file} ia64/hpux-unix2003.h"
1740                 ;;
1741         esac
1742         ;;
1743 ia64-hp-*vms*)
1744         tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1745         tmake_file="${tmake_file} ia64/t-ia64"
1746         target_cpu_default="0"
1747         if test x$gas = xyes
1748         then
1749                 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1750         fi
1751         extra_options="${extra_options} ia64/vms.opt"
1752         ;;
1753 iq2000*-*-elf*)
1754         tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1755         out_file=iq2000/iq2000.c
1756         md_file=iq2000/iq2000.md
1757         ;;
1758 lm32-*-elf*)
1759         tm_file="dbxelf.h elfos.h ${tm_file}"
1760         tmake_file="${tmake_file} lm32/t-lm32"
1761         ;;
1762 lm32-*-rtems*)
1763         tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1764         tmake_file="${tmake_file} lm32/t-lm32"
1765         tmake_file="${tmake_file} lm32/t-rtems"
1766          ;;
1767 lm32-*-uclinux*)
1768         tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1769         tmake_file="${tmake_file} lm32/t-lm32"
1770         ;;
1771 m32r-*-elf*)
1772         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1773         ;;
1774 m32rle-*-elf*)
1775         tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1776         ;;
1777 m32r-*-rtems*)
1778         tm_file="dbxelf.h elfos.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h"
1779         tmake_file="${tmake_file} m32r/t-m32r"
1780         ;;
1781 m32r-*-linux*)
1782         tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1783         tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1784         gnu_ld=yes
1785         if test x$enable_threads = xyes; then
1786                 thread_file='posix'
1787         fi
1788         ;;
1789 m32rle-*-linux*)
1790         tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1791         tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1792         gnu_ld=yes
1793         if test x$enable_threads = xyes; then
1794                 thread_file='posix'
1795         fi
1796         ;;
1797 m68k-*-elf* | fido-*-elf*)
1798         case ${target} in
1799         fido-*-elf*)
1800                 # Check that $with_cpu makes sense.
1801                 case $with_cpu in
1802                 "" | "fidoa")
1803                         ;;
1804                 *)
1805                         echo "Cannot accept --with-cpu=$with_cpu"
1806                         exit 1
1807                         ;;
1808                 esac
1809                 with_cpu=fidoa
1810                 ;;
1811         *)
1812                 default_m68k_cpu=68020
1813                 default_cf_cpu=5206
1814                 ;;
1815         esac
1816         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"
1817         tm_defines="${tm_defines} MOTOROLA=1"
1818         tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1819         # Add multilibs for targets other than fido.
1820         case ${target} in
1821         fido-*-elf*)
1822                 ;;
1823         *)
1824                 tmake_file="$tmake_file m68k/t-mlibs"
1825                 ;;
1826         esac
1827         ;;
1828 m68k*-*-netbsdelf*)
1829         default_m68k_cpu=68020
1830         default_cf_cpu=5475
1831         tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
1832         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1833         tm_defines="${tm_defines} MOTOROLA=1"
1834         ;;
1835 m68k*-*-openbsd*)
1836         default_m68k_cpu=68020
1837         default_cf_cpu=5475
1838         # needed to unconfuse gdb
1839         tm_defines="${tm_defines} OBSD_OLD_GAS"
1840         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1841         extra_options="${extra_options} openbsd.opt"
1842         tmake_file="t-openbsd m68k/t-openbsd"
1843         # we need collect2 until our bug is fixed...
1844         use_collect2=yes
1845         ;;
1846 m68k-*-uclinux*)                # Motorola m68k/ColdFire running uClinux
1847                                 # with uClibc, using the new GNU/Linux-style
1848                                 # ABI.
1849         default_m68k_cpu=68020
1850         default_cf_cpu=5206
1851         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"
1852         extra_options="${extra_options} m68k/uclinux.opt"
1853         tm_defines="${tm_defines} MOTOROLA=1"
1854         tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1855         ;;
1856 m68k-*-linux*)                  # Motorola m68k's running GNU/Linux
1857                                 # with ELF format using glibc 2
1858                                 # aka the GNU/Linux C library 6.
1859         default_m68k_cpu=68020
1860         default_cf_cpu=5475
1861         with_arch=${with_arch:-m68k}
1862         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
1863         extra_options="${extra_options} m68k/ieee.opt"
1864         tm_defines="${tm_defines} MOTOROLA=1"
1865         tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
1866         ;;
1867 m68k-*-rtems*)
1868         default_m68k_cpu=68020
1869         default_cf_cpu=5206
1870         tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
1871         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"
1872         tm_defines="${tm_defines} MOTOROLA=1"
1873         ;;
1874 mcore-*-elf)
1875         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
1876         tmake_file=mcore/t-mcore
1877         inhibit_libc=true
1878         ;;
1879 mep-*-*)
1880         tm_file="dbxelf.h elfos.h ${tm_file}"
1881         tmake_file=mep/t-mep
1882         c_target_objs="mep-pragma.o"
1883         cxx_target_objs="mep-pragma.o"
1884         if test -d "${srcdir}/../newlib/libc/include" &&
1885            test "x$with_headers" = x; then
1886                 with_headers=yes
1887         fi
1888         use_gcc_stdint=wrap
1889         ;;
1890 microblaze*-linux*)
1891         case $target in
1892                 microblazeel-*)
1893                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1894                         ;;
1895                 microblaze-*)
1896                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1897                         ;;
1898         esac
1899         tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
1900         tm_file="${tm_file} glibc-stdint.h"
1901         c_target_objs="${c_target_objs} microblaze-c.o"
1902         cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1903         tmake_file="${tmake_file} microblaze/t-microblaze"
1904         tmake_file="${tmake_file} microblaze/t-microblaze-linux"
1905         ;;
1906 microblaze*-*-rtems*)
1907         case $target in
1908                 microblazeel-*)
1909                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1910                         ;;
1911                 microblaze-*)
1912                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1913                         ;;
1914         esac
1915         tm_file="${tm_file} dbxelf.h"
1916         tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
1917         c_target_objs="${c_target_objs} microblaze-c.o"
1918         cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1919         tmake_file="${tmake_file} microblaze/t-microblaze"
1920         tmake_file="${tmake_file} microblaze/t-rtems"
1921         ;;
1922 microblaze*-*-elf)
1923         case $target in
1924                 microblazeel-*)
1925                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1926                         ;;
1927                 microblaze-*)
1928                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1929                         ;;
1930         esac
1931         tm_file="${tm_file} dbxelf.h newlib-stdint.h"
1932         c_target_objs="${c_target_objs} microblaze-c.o"
1933         cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1934         tmake_file="${tmake_file} microblaze/t-microblaze"
1935         ;;
1936 mips*-*-netbsd*)                        # NetBSD/mips, either endian.
1937         target_cpu_default="MASK_ABICALLS"
1938         tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
1939         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1940         ;;
1941 mips*-mti-linux*)
1942         tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/gnu-user64.h mips/linux64.h mips/linux-common.h mips/mti-linux.h"
1943         extra_options="${extra_options} linux-android.opt"
1944         tmake_file="${tmake_file} mips/t-mti-linux"
1945         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
1946         gnu_ld=yes
1947         gas=yes
1948         ;;
1949 mips64*-*-linux* | mipsisa64*-*-linux*)
1950         tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/gnu-user64.h mips/linux64.h mips/linux-common.h"
1951         extra_options="${extra_options} linux-android.opt"
1952         tmake_file="${tmake_file} mips/t-linux64"
1953         tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
1954         case ${target} in
1955                 mips64el-st-linux-gnu)
1956                         tm_file="${tm_file} mips/st.h"
1957                         tmake_file="${tmake_file} mips/t-st"
1958                         ;;
1959                 mips64octeon*-*-linux*)
1960                         tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
1961                         target_cpu_default=MASK_SOFT_FLOAT_ABI
1962                         ;;
1963                 mipsisa64r2*-*-linux*)
1964                         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
1965                         ;;
1966         esac
1967         gnu_ld=yes
1968         gas=yes
1969         ;;
1970 mips*-*-linux*)                         # Linux MIPS, either endian.
1971         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"
1972         extra_options="${extra_options} linux-android.opt"
1973         if test x$enable_targets = xall; then
1974                 tm_file="${tm_file} mips/gnu-user64.h mips/linux64.h"
1975                 tmake_file="${tmake_file} mips/t-linux64"
1976         fi
1977         tm_file="${tm_file} mips/linux-common.h"
1978         case ${target} in
1979         mipsisa32r2*)
1980                 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
1981                 ;;
1982         mipsisa32*)
1983                 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
1984         esac
1985         ;;
1986 mips*-mti-elf*)
1987         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
1988         tmake_file="mips/t-mti-elf"
1989         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
1990         ;;
1991 mips*-sde-elf*)
1992         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
1993         tmake_file="mips/t-sde"
1994         extra_options="${extra_options} mips/sde.opt"
1995         case "${with_newlib}" in
1996           yes)
1997             # newlib / libgloss.
1998             ;;
1999           *)
2000             # MIPS toolkit libraries.
2001             tm_file="$tm_file mips/sdemtk.h"
2002             tmake_file="$tmake_file mips/t-sdemtk"
2003             case ${enable_threads} in
2004               "" | yes | mipssde)
2005                 thread_file='mipssde'
2006                 ;;
2007             esac
2008             ;;
2009         esac
2010         case ${target} in
2011           mipsisa32r2*)
2012             tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2013             ;;
2014           mipsisa32*)
2015             tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2016             ;;
2017           mipsisa64r2*)
2018             tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2019             ;;
2020           mipsisa64*)
2021             tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2022             ;;
2023         esac
2024         ;;
2025 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2026 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2027 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2028 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*)
2029         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2030         tmake_file="mips/t-isa3264"
2031         case ${target} in
2032           mipsisa32r2*)
2033             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2034             ;;
2035           mipsisa32*)
2036             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2037             ;;
2038           mipsisa64r2*)
2039             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2040             ;;
2041           mipsisa64*)
2042             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2043             ;;
2044         esac
2045         case ${target} in
2046           mipsisa32*-*-elfoabi*)
2047             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2048             tm_file="${tm_file} mips/elfoabi.h"
2049             ;;
2050           mipsisa64*-*-elfoabi*)
2051             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2052             tm_file="${tm_file} mips/elfoabi.h"
2053             ;;
2054           *-*-elf*)
2055             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2056             ;;
2057         esac
2058         ;;
2059 mipsisa64sr71k-*-elf*)
2060         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2061         tmake_file=mips/t-sr71k
2062         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2063         ;;
2064 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2065         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2066         tmake_file="mips/t-elf mips/t-sb1"
2067         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2068         ;;
2069 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2070         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2071         tmake_file="mips/t-elf"
2072         ;;
2073 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2074         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2075         tmake_file="mips/t-elf"
2076         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2077         ;;
2078 mips64-*-elf* | mips64el-*-elf*)
2079         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2080         tmake_file="mips/t-elf"
2081         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2082         ;;
2083 mips64vr-*-elf* | mips64vrel-*-elf*)
2084         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2085         tmake_file=mips/t-vr
2086         tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2087         ;;
2088 mips64orion-*-elf* | mips64orionel-*-elf*)
2089         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2090         tmake_file="mips/t-elf"
2091         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2092         ;;
2093 mips*-*-rtems*)
2094         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2095         tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2096         ;;
2097 mips-wrs-vxworks)
2098         tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2099         tmake_file="${tmake_file} mips/t-vxworks"
2100         ;;
2101 mipstx39-*-elf* | mipstx39el-*-elf*)
2102         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2103         tmake_file="mips/t-r3900"
2104         ;;
2105 mmix-knuth-mmixware)
2106         tm_file="${tm_file} newlib-stdint.h"
2107         use_gcc_stdint=wrap
2108         ;;
2109 mn10300-*-*)
2110         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2111         if test x$stabs = xyes
2112         then
2113                 tm_file="${tm_file} dbx.h"
2114         fi
2115         use_collect2=no
2116         use_gcc_stdint=wrap
2117         ;;
2118 msp430*-*-*)
2119         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2120         c_target_objs="msp430-c.o"
2121         cxx_target_objs="msp430-c.o"
2122         tmake_file="${tmake_file} msp430/t-msp430"
2123         ;;
2124 nds32le-*-*)
2125         target_cpu_default="0"
2126         tm_defines="${tm_defines}"
2127         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2128         tmake_file="nds32/t-nds32 nds32/t-mlibs"
2129         ;;
2130 nds32be-*-*)
2131         target_cpu_default="0|MASK_BIG_ENDIAN"
2132         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2133         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2134         tmake_file="nds32/t-nds32 nds32/t-mlibs"
2135         ;;
2136 nios2-*-*)
2137         tm_file="elfos.h ${tm_file}"
2138         tmake_file="${tmake_file} nios2/t-nios2"
2139         case ${target} in
2140         nios2-*-linux*)
2141                 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2142                 ;;
2143         nios2-*-elf*)
2144                 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2145                 extra_options="${extra_options} nios2/elf.opt"
2146                 ;;
2147         nios2-*-rtems*)
2148                 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2149                 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2150                 ;;
2151         esac
2152         ;;
2153 pdp11-*-*)
2154         tm_file="${tm_file} newlib-stdint.h"
2155         use_gcc_stdint=wrap
2156         ;;
2157 picochip-*)
2158         tm_file="${tm_file} newlib-stdint.h"
2159         use_gcc_stdint=wrap
2160         tmake_file="picochip/t-picochip t-pnt16-warn"
2161         ;;
2162 # port not yet contributed
2163 #powerpc-*-openbsd*)
2164 #       tmake_file="${tmake_file} rs6000/t-fprules"
2165 #       extra_headers=
2166 #       ;;
2167 powerpc-*-darwin*)
2168         extra_options="${extra_options} rs6000/darwin.opt"
2169         case ${target} in
2170           *-darwin1[0-9]* | *-darwin[8-9]*)
2171             tmake_file="${tmake_file} rs6000/t-darwin8"
2172             tm_file="${tm_file} rs6000/darwin8.h"
2173             ;;
2174           *-darwin7*)
2175             tm_file="${tm_file} rs6000/darwin7.h"
2176             ;;
2177           *-darwin[0-6]*)
2178             ;;
2179         esac
2180         tmake_file="${tmake_file} t-slibgcc"
2181         extra_headers=altivec.h
2182         ;;
2183 powerpc64-*-darwin*)
2184         extra_options="${extra_options} ${cpu_type}/darwin.opt"
2185         tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2186         tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2187         extra_headers=altivec.h
2188         ;;
2189 powerpc*-*-freebsd*)
2190         tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2191         extra_options="${extra_options} rs6000/sysv4.opt"
2192         tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2193         case ${target} in
2194              powerpc64*)
2195                 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2196                 tmake_file="${tmake_file} rs6000/t-freebsd64"
2197                 extra_options="${extra_options} rs6000/linux64.opt"
2198                 ;;
2199              *)
2200                 tm_file="${tm_file} rs6000/freebsd.h"
2201                 ;;
2202         esac
2203         ;;
2204 powerpc-*-netbsd*)
2205         tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2206         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2207         tmake_file="${tmake_file} rs6000/t-netbsd"
2208         extra_options="${extra_options} rs6000/sysv4.opt"
2209         ;;
2210 powerpc-*-eabispe*)
2211         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"
2212         extra_options="${extra_options} rs6000/sysv4.opt"
2213         tmake_file="rs6000/t-spe rs6000/t-ppccomm"
2214         use_gcc_stdint=wrap
2215         ;;
2216 powerpc-*-eabisimaltivec*)
2217         tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h rs6000/eabialtivec.h"
2218         extra_options="${extra_options} rs6000/sysv4.opt"
2219         tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2220         use_gcc_stdint=wrap
2221         ;;
2222 powerpc-*-eabisim*)
2223         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"
2224         extra_options="${extra_options} rs6000/sysv4.opt"
2225         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2226         use_gcc_stdint=wrap
2227         ;;
2228 powerpc-*-elf*)
2229         tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2230         extra_options="${extra_options} rs6000/sysv4.opt"
2231         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2232         ;;
2233 powerpc-*-eabialtivec*)
2234         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"
2235         extra_options="${extra_options} rs6000/sysv4.opt"
2236         tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2237         use_gcc_stdint=wrap
2238         ;;
2239 powerpc-xilinx-eabi*)
2240         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"
2241         extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
2242         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2243         use_gcc_stdint=wrap
2244         ;;
2245 powerpc-*-eabi*)
2246         tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h"
2247         extra_options="${extra_options} rs6000/sysv4.opt"
2248         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2249         use_gcc_stdint=wrap
2250         ;;
2251 powerpc-*-rtems*)
2252         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"
2253         extra_options="${extra_options} rs6000/sysv4.opt"
2254         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2255         ;;
2256 powerpc*-*-linux*)
2257         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2258         extra_options="${extra_options} rs6000/sysv4.opt"
2259         tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2260         extra_objs="$extra_objs rs6000-linux.o"
2261         case ${target} in
2262             powerpc*le-*-*)
2263                 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2264         esac
2265         maybe_biarch=yes
2266         case ${target} in
2267             powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
2268                 echo "*** Configuration ${target} not supported" 1>&2
2269                 exit 1
2270                 ;;
2271             powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
2272                 maybe_biarch=
2273                 ;;
2274             powerpc64*-*-linux*)
2275                 test x$with_cpu != x || cpu_is_64bit=yes
2276                 maybe_biarch=always
2277                 ;;
2278         esac
2279         case ${maybe_biarch}:${enable_targets}:${cpu_is_64bit} in
2280             always:* | yes:*powerpc64* | yes:all:* | yes:*:yes)
2281                 if test x$cpu_is_64bit = xyes; then
2282                     tm_file="${tm_file} rs6000/default64.h"
2283                 fi
2284                 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2285                 tmake_file="$tmake_file rs6000/t-linux64"
2286                 case ${target} in
2287                     powerpc*le-*-*)
2288                         tmake_file="$tmake_file rs6000/t-linux64le"
2289                         case ${enable_targets} in
2290                             all | *powerpc64-* | *powerpc-*)
2291                                 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2292                         esac ;;
2293                     *)
2294                         case ${enable_targets} in
2295                             all | *powerpc64le-* | *powerpcle-*)
2296                                 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2297                         esac ;;
2298                 esac
2299                 extra_options="${extra_options} rs6000/linux64.opt"
2300                 ;;
2301             *)
2302                 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2303                 tmake_file="$tmake_file rs6000/t-linux"
2304                 ;;
2305         esac
2306         case ${target} in
2307             powerpc*-*-linux*ppc476*)
2308                 tm_file="${tm_file} rs6000/476.h"
2309                 extra_options="${extra_options} rs6000/476.opt" ;;
2310             powerpc*-*-linux*altivec*)
2311                 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2312             powerpc*-*-linux*spe*)
2313                 tm_file="${tm_file} rs6000/linuxspe.h rs6000/e500.h" ;;
2314             powerpc*-*-linux*paired*)
2315                 tm_file="${tm_file} rs6000/750cl.h" ;;
2316         esac
2317         if test x${enable_secureplt} = xyes; then
2318                 tm_file="rs6000/secureplt.h ${tm_file}"
2319         fi
2320         ;;
2321 powerpc-wrs-vxworks|powerpc-wrs-vxworksae)
2322         tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2323         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2324         extra_options="${extra_options} rs6000/sysv4.opt"
2325         extra_headers=ppc-asm.h
2326         case ${target} in
2327           *-vxworksae*)
2328             tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h"
2329             tmake_file="${tmake_file} rs6000/t-vxworksae"
2330             ;;
2331           *-vxworks*)
2332             tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h"
2333             ;;
2334         esac
2335         ;;
2336 powerpc-*-lynxos*)
2337         xm_defines=POSIX
2338         tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2339         tmake_file="t-lynx rs6000/t-lynx"
2340         extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2341         thread_file=lynx
2342         gnu_ld=yes
2343         gas=yes
2344         ;;
2345 powerpcle-*-elf*)
2346         tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2347         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2348         extra_options="${extra_options} rs6000/sysv4.opt"
2349         ;;
2350 powerpcle-*-eabisim*)
2351         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"
2352         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2353         extra_options="${extra_options} rs6000/sysv4.opt"
2354         use_gcc_stdint=wrap
2355         ;;
2356 powerpcle-*-eabi*)
2357         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"
2358         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2359         extra_options="${extra_options} rs6000/sysv4.opt"
2360         use_gcc_stdint=wrap
2361         ;;
2362 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2363         tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2364         tmake_file="rs6000/t-aix43 t-slibgcc"
2365         extra_options="${extra_options} rs6000/aix64.opt"
2366         use_collect2=yes
2367         thread_file='aix'
2368         use_gcc_stdint=provide
2369         extra_headers=
2370         ;;
2371 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2372         tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2373         extra_options="${extra_options} rs6000/aix64.opt"
2374         tmake_file="rs6000/t-aix43 t-slibgcc"
2375         use_collect2=yes
2376         thread_file='aix'
2377         use_gcc_stdint=wrap
2378         extra_headers=
2379         ;;
2380 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2381         tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2382         tmake_file="rs6000/t-aix52 t-slibgcc"
2383         extra_options="${extra_options} rs6000/aix64.opt"
2384         use_collect2=yes
2385         thread_file='aix'
2386         use_gcc_stdint=wrap
2387         extra_headers=
2388         ;;
2389 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2390         tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2391         tmake_file="rs6000/t-aix52 t-slibgcc"
2392         extra_options="${extra_options} rs6000/aix64.opt"
2393         use_collect2=yes
2394         thread_file='aix'
2395         use_gcc_stdint=wrap
2396         extra_headers=altivec.h
2397         ;;
2398 rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
2399         tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2400         tmake_file="rs6000/t-aix52 t-slibgcc"
2401         extra_options="${extra_options} rs6000/aix64.opt"
2402         use_collect2=yes
2403         thread_file='aix'
2404         use_gcc_stdint=wrap
2405         extra_headers=altivec.h
2406         ;;
2407 rl78-*-elf*)
2408         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2409         target_has_targetm_common=no
2410         c_target_objs="rl78-c.o"
2411         cxx_target_objs="rl78-c.o"
2412         tmake_file="${tmake_file} rl78/t-rl78"
2413         ;;
2414 rx-*-elf*)
2415         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2416         tmake_file="${tmake_file} rx/t-rx"
2417         ;;
2418 s390-*-linux*)
2419         default_gnu_indirect_function=yes
2420         tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2421         if test x$enable_targets = xall; then
2422                 tmake_file="${tmake_file} s390/t-linux64"
2423         fi
2424         ;;
2425 s390x-*-linux*)
2426         default_gnu_indirect_function=yes
2427         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2428         tm_p_file="linux-protos.h s390/s390-protos.h"
2429         md_file=s390/s390.md
2430         extra_modes=s390/s390-modes.def
2431         out_file=s390/s390.c
2432         tmake_file="${tmake_file} s390/t-linux64"
2433         ;;
2434 s390x-ibm-tpf*)
2435         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2436         tm_p_file=s390/s390-protos.h
2437         md_file=s390/s390.md
2438         extra_modes=s390/s390-modes.def
2439         out_file=s390/s390.c
2440         thread_file='tpf'
2441         extra_options="${extra_options} s390/tpf.opt"
2442         ;;
2443 score-*-elf)
2444         gas=yes
2445         gnu_ld=yes
2446         tm_file="dbxelf.h elfos.h score/elf.h score/score.h newlib-stdint.h"
2447         ;;
2448 sh-*-elf* | sh[12346l]*-*-elf* | \
2449   sh-*-linux* | sh[2346lbe]*-*-linux* | \
2450   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
2451   sh64-*-netbsd* | sh64l*-*-netbsd*)
2452         tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2453         if test x${with_endian} = x; then
2454                 case ${target} in
2455                 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2456                 shbe-*-* | sheb-*-*)               with_endian=big,little ;;
2457                 sh[1234]l* | sh[34]*-*-linux*)     with_endian=little ;;
2458                 shl* | sh64l* | sh*-*-linux* | \
2459                   sh5l* | sh-superh-elf)           with_endian=little,big ;;
2460                 sh[1234]*-*-*)                     with_endian=big ;;
2461                 *)                                 with_endian=big,little ;;
2462                 esac
2463         fi
2464         # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2465         #  First word : the default endian.
2466         #  Second word: the secondary endian (optional).
2467         case ${with_endian} in
2468         big)            TM_ENDIAN_CONFIG=mb ;;
2469         little)         TM_ENDIAN_CONFIG=ml ;;
2470         big,little)     TM_ENDIAN_CONFIG="mb ml" ;;
2471         little,big)     TM_ENDIAN_CONFIG="ml mb" ;;
2472         *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
2473         esac
2474         case ${with_endian} in
2475         little*)        tm_file="sh/little.h ${tm_file}" ;;
2476         esac
2477         tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2478         case ${target} in
2479         sh*-*-linux*)   tmake_file="${tmake_file} sh/t-linux"
2480                         tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2481         sh*-*-netbsd*)
2482                         tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h"
2483                         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2485                         ;;
2486         sh*-superh-elf) if test x$with_libgloss != xno; then
2487                                 with_libgloss=yes
2488                                 tm_file="${tm_file} sh/newlib.h"
2489                         fi
2490                         tm_file="${tm_file} sh/embed-elf.h"
2491                         tm_file="${tm_file} sh/superh.h"
2492                         extra_options="${extra_options} sh/superh.opt" ;;
2493         *)              if test x$with_newlib = xyes \
2494                            && test x$with_libgloss = xyes; then
2495                                 tm_file="${tm_file} sh/newlib.h"
2496                         fi
2497                         tm_file="${tm_file} sh/embed-elf.h" ;;
2498         esac
2499         case ${target} in
2500         sh5*-*-netbsd*)
2501                 # SHmedia, 32-bit ABI
2502                 tmake_file="${tmake_file} sh/t-sh64"
2503                 ;;
2504         sh64*-netbsd*)
2505                 # SHmedia, 64-bit ABI
2506                 tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5-64"
2507                 ;;
2508         *-*-netbsd)
2509                 ;;
2510         sh64*-*-linux*)
2511                 tmake_file="${tmake_file} sh/t-sh64"
2512                 tm_file="${tm_file} sh/sh64.h"
2513                 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2514                 ;;
2515         sh64*)
2516                 tmake_file="${tmake_file} sh/t-sh64"
2517                 tm_file="${tm_file} sh/sh64.h"
2518                 if test x$with_newlib = xyes; then
2519                         tm_file="${tm_file} newlib-stdint.h"
2520                 fi
2521                 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2522                 ;;
2523         *-*-elf*)
2524                 tm_file="${tm_file} newlib-stdint.h"
2525                 ;;
2526         esac
2527         # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2528         case `echo ${target} | sed 's/e[lb]-/-/'` in
2529         sh64*-*-netbsd*)        sh_cpu_target=sh5-64media ;;
2530         sh64* | sh5*-*-netbsd*) sh_cpu_target=sh5-32media ;;
2531         sh4a_single_only*)      sh_cpu_target=sh4a-single-only ;;
2532         sh4a_single*)           sh_cpu_target=sh4a-single ;;
2533         sh4a_nofpu*)            sh_cpu_target=sh4a-nofpu ;;
2534         sh4al)                  sh_cpu_target=sh4al ;;
2535         sh4a*)                  sh_cpu_target=sh4a ;;
2536         sh4_single_only*)       sh_cpu_target=sh4-single-only ;;
2537         sh4_single*)            sh_cpu_target=sh4-single ;;
2538         sh4_nofpu*)             sh_cpu_target=sh4-nofpu ;;
2539         sh4* | sh-superh-*)     sh_cpu_target=sh4 ;;
2540         sh3e*)                  sh_cpu_target=sh3e ;;
2541         sh*-*-netbsd* | sh3*)   sh_cpu_target=sh3 ;;
2542         sh2a_single_only*)      sh_cpu_target=sh2a-single-only ;;
2543         sh2a_single*)           sh_cpu_target=sh2a-single ;;
2544         sh2a_nofpu*)            sh_cpu_target=sh2a-nofpu ;;
2545         sh2a*)                  sh_cpu_target=sh2a ;;
2546         sh2e*)                  sh_cpu_target=sh2e ;;
2547         sh2*)                   sh_cpu_target=sh2 ;;
2548         *)                      sh_cpu_target=sh1 ;;
2549         esac
2550         # did the user say --without-fp ?
2551         if test x$with_fp = xno; then
2552                 case ${sh_cpu_target} in
2553                 sh5-*media)     sh_cpu_target=${sh_cpu_target}-nofpu ;;
2554                 sh4al | sh1)    ;;
2555                 sh4a* )         sh_cpu_target=sh4a-nofpu ;;
2556                 sh4*)           sh_cpu_target=sh4-nofpu ;;
2557                 sh3*)           sh_cpu_target=sh3 ;;
2558                 sh2a*)          sh_cpu_target=sh2a-nofpu ;;
2559                 sh2*)           sh_cpu_target=sh2 ;;
2560                 *)      echo --without-fp not available for $target: ignored
2561                 esac
2562                 tm_defines="$tm_defines STRICT_NOFPU=1"
2563         fi
2564         sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2565         case $sh_cpu_default in
2566         sh5-64media-nofpu | sh5-64media | \
2567           sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
2568           sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2569           sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2570           sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2571           sh3e | sh3 | sh2e | sh2 | sh1) ;;
2572         "")     sh_cpu_default=${sh_cpu_target} ;;
2573         *)      echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2574         esac
2575         sh_multilibs=${with_multilib_list}
2576         if test "$sh_multilibs" = "default" ; then
2577                 case ${target} in
2578                 sh64-superh-linux* | \
2579                 sh[1234]*)      sh_multilibs=${sh_cpu_target} ;;
2580                 sh64* | sh5*)   sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
2581                 sh-superh-*)    sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2582                 sh*-*-linux*)   sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2583                 sh*-*-netbsd*)  sh_multilibs=m3,m3e,m4 ;;
2584                 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2585                 esac
2586                 if test x$with_fp = xno; then
2587                         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`"
2588                 fi
2589         fi
2590         target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2591         tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2592         tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2593         sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2594         for sh_multilib in ${sh_multilibs}; do
2595                 case ${sh_multilib} in
2596                 m1 | m2 | m2e | m3 | m3e | \
2597                 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2598                 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2599                 m2a | m2a-single | m2a-single-only | m2a-nofpu | \
2600                 m5-64media | m5-64media-nofpu | \
2601                 m5-32media | m5-32media-nofpu | \
2602                 m5-compact | m5-compact-nofpu)
2603                         # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2604                         # It is passed to MULTIILIB_OPTIONS verbatim.
2605                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2606                         tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2607                         ;;
2608                 \!*)    # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2609                         # It is passed the MULTILIB_EXCEPTIONS verbatim.
2610                         TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2611                 *)
2612                         echo "with_multilib_list=${sh_multilib} not supported."
2613                         exit 1
2614                         ;;
2615                 esac
2616         done
2617         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2618         if test x${enable_incomplete_targets} = xyes ; then
2619                 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"
2620         fi
2621         tm_file="$tm_file ./sysroot-suffix.h"
2622         tmake_file="$tmake_file t-sysroot-suffix"
2623         ;;
2624 sh-*-rtems*)
2625         tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2626         tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2627         ;;
2628 sh-wrs-vxworks)
2629         tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2630         tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2631         ;;
2632 sparc-*-elf*)
2633         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2634         case ${target} in
2635             *-leon-*)
2636                 tmake_file="sparc/t-sparc sparc/t-leon"
2637                 ;;
2638             *-leon[3-9]*)
2639                 tmake_file="sparc/t-sparc sparc/t-leon3"
2640                 ;;
2641             *)
2642                 tmake_file="sparc/t-sparc sparc/t-elf"
2643                 ;;
2644         esac
2645         ;;
2646 sparc-*-rtems*)
2647         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2648         tmake_file="${tmake_file} sparc/t-sparc sparc/t-elf sparc/t-rtems"
2649         ;;
2650 sparc-*-linux*)
2651         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2652         extra_options="${extra_options} sparc/long-double-switch.opt"
2653         case ${target} in
2654             *-leon-*)
2655                 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2656                 ;;
2657             *-leon[3-9]*)
2658                 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2659                 ;;
2660             *)
2661                 tmake_file="${tmake_file} sparc/t-sparc"
2662                 ;;
2663         esac
2664         if test x$enable_targets = xall; then
2665                 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2666                 tmake_file="${tmake_file} sparc/t-linux64"
2667         else
2668                 tm_file="${tm_file} sparc/linux.h"
2669                 tmake_file="${tmake_file} sparc/t-linux"
2670         fi
2671         ;;
2672 sparc-*-netbsdelf*)
2673         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2674         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2675         extra_options="${extra_options} sparc/long-double-switch.opt"
2676         tmake_file="${tmake_file} sparc/t-sparc"
2677         ;;
2678 sparc*-*-solaris2*)
2679         tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2680         case ${target} in
2681             sparc64-*-* | sparcv9-*-*)
2682                 tm_file="sparc/default-64.h ${tm_file}"
2683                 ;;
2684             *)
2685                 test x$with_cpu != x || with_cpu=v9
2686                 ;;
2687         esac
2688         tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2689         ;;
2690 sparc-wrs-vxworks)
2691         tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2692         tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2693         ;;
2694 sparc64-*-elf*)
2695         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2696         extra_options="${extra_options}"
2697         tmake_file="${tmake_file} sparc/t-sparc"
2698         ;;
2699 sparc64-*-rtems*)
2700         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2701         extra_options="${extra_options}"
2702         tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2703         ;;
2704 sparc64-*-linux*)
2705         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"
2706         extra_options="${extra_options} sparc/long-double-switch.opt"
2707         tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2708         ;;
2709 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2710         tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2711         extra_options="${extra_options} sparc/long-double-switch.opt"
2712         case "x$with_cpu" in
2713                 xultrasparc) ;;
2714                 x) with_cpu=ultrasparc ;;
2715                 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2716         esac
2717         tmake_file="${tmake_file} sparc/t-sparc"
2718         ;;
2719 sparc64-*-netbsd*)
2720         tm_file="sparc/biarch64.h ${tm_file}"
2721         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2722         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2723         extra_options="${extra_options} sparc/long-double-switch.opt"
2724         tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2725         ;;
2726 sparc64-*-openbsd*)
2727         tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2728         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2729         extra_options="${extra_options} openbsd.opt"
2730         extra_options="${extra_options}"
2731         gas=yes gnu_ld=yes
2732         with_cpu=ultrasparc
2733         tmake_file="${tmake_file} sparc/t-sparc"
2734         ;;
2735 spu-*-elf*)
2736         tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2737         tmake_file="spu/t-spu-elf"
2738         native_system_header_dir=/include
2739         extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2740         extra_modes=spu/spu-modes.def
2741         c_target_objs="${c_target_objs} spu-c.o"
2742         cxx_target_objs="${cxx_target_objs} spu-c.o"
2743         ;;
2744 tic6x-*-elf)
2745         tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
2746         tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
2747         tmake_file="c6x/t-c6x c6x/t-c6x-elf"
2748         use_collect2=no
2749         ;;
2750 tic6x-*-uclinux)
2751         tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
2752         tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
2753         tm_file="${tm_file} ./sysroot-suffix.h"
2754         tmake_file="t-sysroot-suffix t-slibgcc"
2755         tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
2756         use_collect2=no
2757         ;;
2758 tilegx*-*-linux*)
2759         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
2760         tmake_file="${tmake_file} tilegx/t-tilegx"
2761         extra_objs="${extra_objs} mul-tables.o"
2762         c_target_objs="${c_target_objs} tilegx-c.o"
2763         cxx_target_objs="${cxx_target_objs} tilegx-c.o"
2764         extra_headers="feedback.h"
2765         case $target in
2766         tilegxbe-*)
2767                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2768                 ;;
2769         esac
2770         ;;
2771 tilepro*-*-linux*)
2772         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
2773         tmake_file="${tmake_file} tilepro/t-tilepro"
2774         extra_objs="${extra_objs} mul-tables.o"
2775         c_target_objs="${c_target_objs} tilepro-c.o"
2776         cxx_target_objs="${cxx_target_objs} tilepro-c.o"
2777         extra_headers="feedback.h"
2778         ;;
2779 v850-*-rtems*)
2780         target_cpu_default="TARGET_CPU_generic"
2781         tm_file="dbxelf.h elfos.h v850/v850.h"
2782         tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
2783         tmake_file="${tmake_file} v850/t-v850"
2784         tmake_file="${tmake_file} v850/t-rtems"
2785         use_collect2=no
2786         c_target_objs="v850-c.o"
2787         cxx_target_objs="v850-c.o"
2788         ;;
2789 v850*-*-*)
2790         case ${target} in
2791         v850e3v5-*-*)
2792                 target_cpu_default="TARGET_CPU_v850e3v5"
2793                 ;;
2794         v850e2v3-*-*)
2795                 target_cpu_default="TARGET_CPU_v850e2v3"
2796                 ;;
2797         v850e2-*-*)
2798                 target_cpu_default="TARGET_CPU_v850e2"
2799                 ;;
2800         v850e1-*-* | v850es-*-*)
2801                 target_cpu_default="TARGET_CPU_v850e1"
2802                 ;;
2803         v850e-*-*)
2804                 target_cpu_default="TARGET_CPU_v850e"
2805                 ;;
2806         v850-*-*)
2807                 target_cpu_default="TARGET_CPU_generic"
2808                 ;;
2809         esac
2810         tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
2811         if test x$stabs = xyes
2812         then
2813                 tm_file="${tm_file} dbx.h"
2814         fi
2815         use_collect2=no
2816         c_target_objs="v850-c.o"
2817         cxx_target_objs="v850-c.o"
2818         use_gcc_stdint=wrap
2819         ;;
2820 vax-*-linux*)
2821         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
2822         extra_options="${extra_options} vax/elf.opt"
2823         ;;
2824 vax-*-netbsdelf*)
2825         tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
2826         extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
2827         ;;
2828 vax-*-openbsd*)
2829         tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-pthread.h vax/openbsd.h"
2830         extra_options="${extra_options} openbsd.opt"
2831         use_collect2=yes
2832         ;;
2833 xstormy16-*-elf)
2834         # For historical reasons, the target files omit the 'x'.
2835         tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
2836         tm_p_file=stormy16/stormy16-protos.h
2837         md_file=stormy16/stormy16.md
2838         out_file=stormy16/stormy16.c
2839         extra_options=stormy16/stormy16.opt
2840         tmake_file="stormy16/t-stormy16"
2841         ;;
2842 xtensa*-*-elf*)
2843         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
2844         extra_options="${extra_options} xtensa/elf.opt"
2845         ;;
2846 xtensa*-*-linux*)
2847         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
2848         tmake_file="${tmake_file} xtensa/t-xtensa"
2849         ;;
2850 am33_2.0-*-linux*)
2851         tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
2852         gas=yes gnu_ld=yes
2853         use_collect2=no
2854         ;;
2855 m32c-*-rtems*)
2856         tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
2857         c_target_objs="m32c-pragma.o"
2858         cxx_target_objs="m32c-pragma.o"
2859         ;;
2860 m32c-*-elf*)
2861         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2862         c_target_objs="m32c-pragma.o"
2863         cxx_target_objs="m32c-pragma.o"
2864         ;;
2866         echo "*** Configuration ${target} not supported" 1>&2
2867         exit 1
2868         ;;
2869 esac
2871 case ${target} in
2872 i[34567]86-*-linux* | x86_64-*-linux*)
2873         tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
2874         ;;
2875 i[34567]86-*-* | x86_64-*-*)
2876         tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
2877         ;;
2878 powerpc*-*-* | rs6000-*-*)
2879         tm_file="${tm_file} rs6000/option-defaults.h"
2880 esac
2882 if [ "$target_has_targetcm" = "no" ]; then
2883   c_target_objs="$c_target_objs default-c.o"
2884   cxx_target_objs="$cxx_target_objs default-c.o"
2887 if [ "$common_out_file" = "" ]; then
2888   if [ "$target_has_targetm_common" = "yes" ]; then
2889     common_out_file="$cpu_type/$cpu_type-common.c"
2890   else
2891     common_out_file="default-common.c"
2892   fi
2895 # Support for --with-cpu and related options (and a few unrelated options,
2896 # too).
2897 case ${with_cpu} in
2898   yes | no)
2899     echo "--with-cpu must be passed a value" 1>&2
2900     exit 1
2901     ;;
2902 esac
2904 # Set arch and cpu from ${target} and ${target_noncanonical}.  Set cpu
2905 # to generic if there is no processor scheduler model for the target.
2906 arch=
2907 cpu=
2908 arch_without_sse2=no
2909 arch_without_64bit=no
2910 case ${target} in
2911   i386-*-freebsd*)
2912     if test $fbsd_major -ge 6; then
2913       arch=i486
2914     else
2915       arch=i386
2916     fi
2917     cpu=generic
2918     arch_without_sse2=yes
2919     arch_without_64bit=yes
2920     ;;
2921   i386-*-*)
2922     arch=i386
2923     cpu=i386
2924     arch_without_sse2=yes
2925     arch_without_64bit=yes
2926     ;;
2927   i486-*-*)
2928     arch=i486
2929     cpu=i486
2930     arch_without_sse2=yes
2931     arch_without_64bit=yes
2932     ;;
2933   i586-*-*)
2934     arch_without_sse2=yes
2935     arch_without_64bit=yes
2936     case ${target_noncanonical} in
2937       k6_2-*)
2938         arch=k6-2
2939         cpu=k6-2
2940         ;;
2941       k6_3-*)
2942         arch=k6-3
2943         cpu=k6-3
2944         ;;
2945       k6-*)
2946         arch=k6
2947         cpu=k6
2948         ;;
2949       pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
2950         arch=pentium-mmx
2951         cpu=pentium-mmx
2952         ;;
2953       *)
2954         arch=pentium
2955         cpu=pentium
2956         ;;
2957     esac
2958     ;;
2959   i686-*-* | i786-*-*)
2960     case ${target_noncanonical} in
2961       bdver4-*)
2962         arch=bdver4
2963         cpu=bdver4
2964         ;;
2965       bdver3-*)
2966         arch=bdver3
2967         cpu=bdver3
2968         ;;
2969       bdver2-*)
2970         arch=bdver2
2971         cpu=bdver2
2972         ;;
2973       bdver1-*)
2974         arch=bdver1
2975         cpu=bdver1
2976         ;;
2977       btver1-*)
2978         arch=btver1
2979         cpu=btver1
2980         ;;
2981       btver2-*)
2982         arch=btver2
2983         cpu=btver2
2984         ;;
2985       amdfam10-*|barcelona-*)
2986         arch=amdfam10
2987         cpu=amdfam10
2988         ;;
2989       k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
2990         arch=k8-sse3
2991         cpu=k8-sse3
2992         ;;
2993       k8-*|opteron-*|athlon64-*|athlon_fx-*)
2994         arch=k8
2995         cpu=k8
2996         ;;
2997       athlon_xp-*|athlon_mp-*|athlon_4-*)
2998         arch=athlon-4
2999         cpu=athlon-4
3000         arch_without_sse2=yes
3001         arch_without_64bit=yes
3002         ;;
3003       athlon_tbird-*|athlon-*)
3004         arch=athlon
3005         cpu=athlon
3006         arch_without_sse2=yes
3007         ;;
3008       geode-*)
3009         arch=geode
3010         cpu=geode
3011         arch_without_sse2=yes
3012         ;;
3013       pentium2-*)
3014         arch=pentium2
3015         cpu=pentium2
3016         arch_without_sse2=yes
3017         ;;
3018       pentium3-*|pentium3m-*)
3019         arch=pentium3
3020         cpu=pentium3
3021         arch_without_sse2=yes
3022         ;;
3023       pentium4-*|pentium4m-*)
3024         arch=pentium4
3025         cpu=pentium4
3026         ;;
3027       prescott-*)
3028         arch=prescott
3029         cpu=prescott
3030         ;;
3031       nocona-*)
3032         arch=nocona
3033         cpu=nocona
3034         ;;
3035       atom-*)
3036         arch=atom
3037         cpu=atom
3038         ;;
3039       slm-*)
3040         arch=slm
3041         cpu=slm
3042         ;;
3043       core2-*)
3044         arch=core2
3045         cpu=core2
3046         ;;
3047       corei7-*)
3048         arch=corei7
3049         cpu=corei7
3050         ;;
3051       corei7_avx-*)
3052         arch=corei7-avx
3053         cpu=corei7-avx
3054         ;;
3055       pentium_m-*)
3056         arch=pentium-m
3057         cpu=pentium-m
3058         ;;
3059       pentiumpro-*)
3060         arch=pentiumpro
3061         cpu=pentiumpro
3062         arch_without_sse2=yes
3063         ;;
3064       *)
3065         arch=pentiumpro
3066         cpu=generic
3067         arch_without_sse2=yes
3068         arch_without_64bit=yes
3069         ;;
3070     esac
3071     ;;
3072   x86_64-*-*)
3073     case ${target_noncanonical} in
3074       bdver4-*)
3075         arch=bdver4
3076         cpu=bdver4
3077         ;;
3078       bdver3-*)
3079         arch=bdver3
3080         cpu=bdver3
3081         ;;
3082       bdver2-*)
3083         arch=bdver2
3084         cpu=bdver2
3085         ;;
3086       bdver1-*)
3087         arch=bdver1
3088         cpu=bdver1
3089         ;;
3090       btver1-*)
3091         arch=btver1
3092         cpu=btver1
3093         ;;
3094       btver2-*)
3095         arch=btver2
3096         cpu=btver2
3097         ;;
3098       amdfam10-*|barcelona-*)
3099         arch=amdfam10
3100         cpu=amdfam10
3101         ;;
3102       k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3103         arch=k8-sse3
3104         cpu=k8-sse3
3105         ;;
3106       k8-*|opteron-*|athlon_64-*)
3107         arch=k8
3108         cpu=k8
3109         ;;
3110       nocona-*)
3111         arch=nocona
3112         cpu=nocona
3113         ;;
3114       atom-*)
3115         arch=atom
3116         cpu=atom
3117         ;;
3118       slm-*)
3119         arch=slm
3120         cpu=slm
3121         ;;
3122       core2-*)
3123         arch=core2
3124         cpu=core2
3125         ;;
3126       corei7-*)
3127         arch=corei7
3128         cpu=corei7
3129         ;;
3130       *)
3131         arch=x86-64
3132         cpu=generic
3133         ;;
3134     esac
3135     ;;
3136 esac
3138 # If there is no $with_cpu option, try to infer one from ${target}.
3139 # This block sets nothing except for with_cpu.
3140 if test x$with_cpu = x ; then
3141   case ${target} in
3142     i[34567]86-*-*|x86_64-*-*)
3143       with_cpu=$cpu
3144       ;;
3145     alphaev6[78]*-*-*)
3146       with_cpu=ev67
3147       ;;
3148     alphaev6*-*-*)
3149       with_cpu=ev6
3150       ;;
3151     alphapca56*-*-*)
3152       with_cpu=pca56
3153       ;;
3154     alphaev56*-*-*)
3155       with_cpu=ev56
3156       ;;
3157     alphaev5*-*-*)
3158       with_cpu=ev5
3159       ;;
3160     frv-*-*linux* | frv400-*-*linux*)
3161       with_cpu=fr400
3162       ;;
3163     frv550-*-*linux*)
3164       with_cpu=fr550
3165       ;;
3166     m68k*-*-*)
3167       case "$with_arch" in
3168         "cf")
3169           with_cpu=${default_cf_cpu}
3170           ;;
3171         "" | "m68k")
3172           with_cpu=m${default_m68k_cpu}
3173           ;;
3174       esac
3175       ;;
3176     powerpc*-*-*spe*)
3177       if test x$enable_e500_double = xyes; then
3178          with_cpu=8548
3179       else
3180          with_cpu=8540
3181       fi       
3182       ;;
3183     sparc*-*-*)
3184       case ${target} in
3185         *-leon-*)
3186           with_cpu=leon
3187           ;;
3188         *-leon[3-9]*)
3189           with_cpu=leon3
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 \
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|MASK_JUMP_IN_DELAY"
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