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