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