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