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