AVX-512. Branch to hold overall changes introduced by 20140717 EAS.
[official-gcc.git] / gcc / config.gcc
blobaa2d1a97897104f4d79df4e960bec08c7a58e40f
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         esac
2140         ;;
2141 pdp11-*-*)
2142         tm_file="${tm_file} newlib-stdint.h"
2143         use_gcc_stdint=wrap
2144         ;;
2145 picochip-*)
2146         tm_file="${tm_file} newlib-stdint.h"
2147         use_gcc_stdint=wrap
2148         tmake_file="picochip/t-picochip t-pnt16-warn"
2149         ;;
2150 # port not yet contributed
2151 #powerpc-*-openbsd*)
2152 #       tmake_file="${tmake_file} rs6000/t-fprules"
2153 #       extra_headers=
2154 #       ;;
2155 powerpc-*-darwin*)
2156         extra_options="${extra_options} rs6000/darwin.opt"
2157         case ${target} in
2158           *-darwin1[0-9]* | *-darwin[8-9]*)
2159             tmake_file="${tmake_file} rs6000/t-darwin8"
2160             tm_file="${tm_file} rs6000/darwin8.h"
2161             ;;
2162           *-darwin7*)
2163             tm_file="${tm_file} rs6000/darwin7.h"
2164             ;;
2165           *-darwin[0-6]*)
2166             ;;
2167         esac
2168         tmake_file="${tmake_file} t-slibgcc"
2169         extra_headers=altivec.h
2170         ;;
2171 powerpc64-*-darwin*)
2172         extra_options="${extra_options} ${cpu_type}/darwin.opt"
2173         tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2174         tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2175         extra_headers=altivec.h
2176         ;;
2177 powerpc*-*-freebsd*)
2178         tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2179         extra_options="${extra_options} rs6000/sysv4.opt"
2180         tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2181         case ${target} in
2182              powerpc64*)
2183                 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2184                 tmake_file="${tmake_file} rs6000/t-freebsd64"
2185                 extra_options="${extra_options} rs6000/linux64.opt"
2186                 ;;
2187              *)
2188                 tm_file="${tm_file} rs6000/freebsd.h"
2189                 ;;
2190         esac
2191         ;;
2192 powerpc-*-netbsd*)
2193         tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2194         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2195         tmake_file="${tmake_file} rs6000/t-netbsd"
2196         extra_options="${extra_options} rs6000/sysv4.opt"
2197         ;;
2198 powerpc-*-eabispe*)
2199         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"
2200         extra_options="${extra_options} rs6000/sysv4.opt"
2201         tmake_file="rs6000/t-spe rs6000/t-ppccomm"
2202         use_gcc_stdint=wrap
2203         ;;
2204 powerpc-*-eabisimaltivec*)
2205         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"
2206         extra_options="${extra_options} rs6000/sysv4.opt"
2207         tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2208         use_gcc_stdint=wrap
2209         ;;
2210 powerpc-*-eabisim*)
2211         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"
2212         extra_options="${extra_options} rs6000/sysv4.opt"
2213         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2214         use_gcc_stdint=wrap
2215         ;;
2216 powerpc-*-elf*)
2217         tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2218         extra_options="${extra_options} rs6000/sysv4.opt"
2219         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2220         ;;
2221 powerpc-*-eabialtivec*)
2222         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"
2223         extra_options="${extra_options} rs6000/sysv4.opt"
2224         tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2225         use_gcc_stdint=wrap
2226         ;;
2227 powerpc-xilinx-eabi*)
2228         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"
2229         extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
2230         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2231         use_gcc_stdint=wrap
2232         ;;
2233 powerpc-*-eabi*)
2234         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"
2235         extra_options="${extra_options} rs6000/sysv4.opt"
2236         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2237         use_gcc_stdint=wrap
2238         ;;
2239 powerpc-*-rtems*)
2240         tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/rtems.h rtems.h"
2241         extra_options="${extra_options} rs6000/sysv4.opt"
2242         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2243         ;;
2244 powerpc*-*-linux*)
2245         tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h rs6000/sysv4.h"
2246         extra_options="${extra_options} rs6000/sysv4.opt"
2247         tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2248         extra_objs="$extra_objs rs6000-linux.o"
2249         case ${target} in
2250             powerpc*le-*-*)
2251                 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2252         esac
2253         maybe_biarch=yes
2254         case ${target} in
2255             powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
2256                 echo "*** Configuration ${target} not supported" 1>&2
2257                 exit 1
2258                 ;;
2259             powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
2260                 maybe_biarch=
2261                 ;;
2262             powerpc64*-*-linux*)
2263                 test x$with_cpu != x || cpu_is_64bit=yes
2264                 maybe_biarch=always
2265                 ;;
2266         esac
2267         case ${maybe_biarch}:${enable_targets}:${cpu_is_64bit} in
2268             always:* | yes:*powerpc64* | yes:all:* | yes:*:yes)
2269                 if test x$cpu_is_64bit = xyes; then
2270                     tm_file="${tm_file} rs6000/default64.h"
2271                 fi
2272                 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2273                 tmake_file="$tmake_file rs6000/t-linux64"
2274                 case ${target} in
2275                     powerpc*le-*-*)
2276                         tmake_file="$tmake_file rs6000/t-linux64le"
2277                         case ${enable_targets} in
2278                             all | *powerpc64-* | *powerpc-*)
2279                                 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2280                         esac ;;
2281                     *)
2282                         case ${enable_targets} in
2283                             all | *powerpc64le-* | *powerpcle-*)
2284                                 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2285                         esac ;;
2286                 esac
2287                 extra_options="${extra_options} rs6000/linux64.opt"
2288                 ;;
2289             *)
2290                 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2291                 tmake_file="$tmake_file rs6000/t-linux"
2292                 ;;
2293         esac
2294         case ${target} in
2295             powerpc*-*-linux*ppc476*)
2296                 tm_file="${tm_file} rs6000/476.h"
2297                 extra_options="${extra_options} rs6000/476.opt" ;;
2298             powerpc*-*-linux*altivec*)
2299                 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2300             powerpc*-*-linux*spe*)
2301                 tm_file="${tm_file} rs6000/linuxspe.h rs6000/e500.h" ;;
2302             powerpc*-*-linux*paired*)
2303                 tm_file="${tm_file} rs6000/750cl.h" ;;
2304         esac
2305         if test x${enable_secureplt} = xyes; then
2306                 tm_file="rs6000/secureplt.h ${tm_file}"
2307         fi
2308         ;;
2309 powerpc-wrs-vxworks|powerpc-wrs-vxworksae)
2310         tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2311         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2312         extra_options="${extra_options} rs6000/sysv4.opt"
2313         extra_headers=ppc-asm.h
2314         case ${target} in
2315           *-vxworksae*)
2316             tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h"
2317             tmake_file="${tmake_file} rs6000/t-vxworksae"
2318             ;;
2319           *-vxworks*)
2320             tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h"
2321             ;;
2322         esac
2323         ;;
2324 powerpc-*-lynxos*)
2325         xm_defines=POSIX
2326         tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2327         tmake_file="t-lynx rs6000/t-lynx"
2328         extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2329         thread_file=lynx
2330         gnu_ld=yes
2331         gas=yes
2332         ;;
2333 powerpcle-*-elf*)
2334         tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2335         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2336         extra_options="${extra_options} rs6000/sysv4.opt"
2337         ;;
2338 powerpcle-*-eabisim*)
2339         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"
2340         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2341         extra_options="${extra_options} rs6000/sysv4.opt"
2342         use_gcc_stdint=wrap
2343         ;;
2344 powerpcle-*-eabi*)
2345         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"
2346         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2347         extra_options="${extra_options} rs6000/sysv4.opt"
2348         use_gcc_stdint=wrap
2349         ;;
2350 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2351         tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2352         tmake_file="rs6000/t-aix43 t-slibgcc"
2353         extra_options="${extra_options} rs6000/aix64.opt"
2354         use_collect2=yes
2355         thread_file='aix'
2356         use_gcc_stdint=provide
2357         extra_headers=
2358         ;;
2359 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2360         tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2361         extra_options="${extra_options} rs6000/aix64.opt"
2362         tmake_file="rs6000/t-aix43 t-slibgcc"
2363         use_collect2=yes
2364         thread_file='aix'
2365         use_gcc_stdint=wrap
2366         extra_headers=
2367         ;;
2368 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2369         tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2370         tmake_file="rs6000/t-aix52 t-slibgcc"
2371         extra_options="${extra_options} rs6000/aix64.opt"
2372         use_collect2=yes
2373         thread_file='aix'
2374         use_gcc_stdint=wrap
2375         extra_headers=
2376         ;;
2377 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2378         tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2379         tmake_file="rs6000/t-aix52 t-slibgcc"
2380         extra_options="${extra_options} rs6000/aix64.opt"
2381         use_collect2=yes
2382         thread_file='aix'
2383         use_gcc_stdint=wrap
2384         extra_headers=altivec.h
2385         ;;
2386 rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
2387         tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2388         tmake_file="rs6000/t-aix52 t-slibgcc"
2389         extra_options="${extra_options} rs6000/aix64.opt"
2390         use_collect2=yes
2391         thread_file='aix'
2392         use_gcc_stdint=wrap
2393         extra_headers=altivec.h
2394         ;;
2395 rl78-*-elf*)
2396         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2397         target_has_targetm_common=no
2398         c_target_objs="rl78-c.o"
2399         cxx_target_objs="rl78-c.o"
2400         tmake_file="${tmake_file} rl78/t-rl78"
2401         ;;
2402 rx-*-elf*)
2403         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2404         tmake_file="${tmake_file} rx/t-rx"
2405         ;;
2406 s390-*-linux*)
2407         default_gnu_indirect_function=yes
2408         tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2409         if test x$enable_targets = xall; then
2410                 tmake_file="${tmake_file} s390/t-linux64"
2411         fi
2412         ;;
2413 s390x-*-linux*)
2414         default_gnu_indirect_function=yes
2415         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2416         tm_p_file="linux-protos.h s390/s390-protos.h"
2417         md_file=s390/s390.md
2418         extra_modes=s390/s390-modes.def
2419         out_file=s390/s390.c
2420         tmake_file="${tmake_file} s390/t-linux64"
2421         ;;
2422 s390x-ibm-tpf*)
2423         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2424         tm_p_file=s390/s390-protos.h
2425         md_file=s390/s390.md
2426         extra_modes=s390/s390-modes.def
2427         out_file=s390/s390.c
2428         thread_file='tpf'
2429         extra_options="${extra_options} s390/tpf.opt"
2430         ;;
2431 score-*-elf)
2432         gas=yes
2433         gnu_ld=yes
2434         tm_file="dbxelf.h elfos.h score/elf.h score/score.h newlib-stdint.h"
2435         ;;
2436 sh-*-elf* | sh[12346l]*-*-elf* | \
2437   sh-*-linux* | sh[2346lbe]*-*-linux* | \
2438   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
2439   sh64-*-netbsd* | sh64l*-*-netbsd*)
2440         tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2441         if test x${with_endian} = x; then
2442                 case ${target} in
2443                 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2444                 shbe-*-* | sheb-*-*)               with_endian=big,little ;;
2445                 sh[1234]l* | sh[34]*-*-linux*)     with_endian=little ;;
2446                 shl* | sh64l* | sh*-*-linux* | \
2447                   sh5l* | sh-superh-elf)           with_endian=little,big ;;
2448                 sh[1234]*-*-*)                     with_endian=big ;;
2449                 *)                                 with_endian=big,little ;;
2450                 esac
2451         fi
2452         # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2453         #  First word : the default endian.
2454         #  Second word: the secondary endian (optional).
2455         case ${with_endian} in
2456         big)            TM_ENDIAN_CONFIG=mb ;;
2457         little)         TM_ENDIAN_CONFIG=ml ;;
2458         big,little)     TM_ENDIAN_CONFIG="mb ml" ;;
2459         little,big)     TM_ENDIAN_CONFIG="ml mb" ;;
2460         *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
2461         esac
2462         case ${with_endian} in
2463         little*)        tm_file="sh/little.h ${tm_file}" ;;
2464         esac
2465         tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2466         case ${target} in
2467         sh*-*-linux*)   tmake_file="${tmake_file} sh/t-linux"
2468                         tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2469         sh*-*-netbsd*)
2470                         tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h"
2471                         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2473                         ;;
2474         sh*-superh-elf) if test x$with_libgloss != xno; then
2475                                 with_libgloss=yes
2476                                 tm_file="${tm_file} sh/newlib.h"
2477                         fi
2478                         tm_file="${tm_file} sh/embed-elf.h"
2479                         tm_file="${tm_file} sh/superh.h"
2480                         extra_options="${extra_options} sh/superh.opt" ;;
2481         *)              if test x$with_newlib = xyes \
2482                            && test x$with_libgloss = xyes; then
2483                                 tm_file="${tm_file} sh/newlib.h"
2484                         fi
2485                         tm_file="${tm_file} sh/embed-elf.h" ;;
2486         esac
2487         case ${target} in
2488         sh5*-*-netbsd*)
2489                 # SHmedia, 32-bit ABI
2490                 tmake_file="${tmake_file} sh/t-sh64"
2491                 ;;
2492         sh64*-netbsd*)
2493                 # SHmedia, 64-bit ABI
2494                 tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5-64"
2495                 ;;
2496         *-*-netbsd)
2497                 ;;
2498         sh64*-*-linux*)
2499                 tmake_file="${tmake_file} sh/t-sh64"
2500                 tm_file="${tm_file} sh/sh64.h"
2501                 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2502                 ;;
2503         sh64*)
2504                 tmake_file="${tmake_file} sh/t-sh64"
2505                 tm_file="${tm_file} sh/sh64.h"
2506                 if test x$with_newlib = xyes; then
2507                         tm_file="${tm_file} newlib-stdint.h"
2508                 fi
2509                 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2510                 ;;
2511         *-*-elf*)
2512                 tm_file="${tm_file} newlib-stdint.h"
2513                 ;;
2514         esac
2515         # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2516         case `echo ${target} | sed 's/e[lb]-/-/'` in
2517         sh64*-*-netbsd*)        sh_cpu_target=sh5-64media ;;
2518         sh64* | sh5*-*-netbsd*) sh_cpu_target=sh5-32media ;;
2519         sh4a_single_only*)      sh_cpu_target=sh4a-single-only ;;
2520         sh4a_single*)           sh_cpu_target=sh4a-single ;;
2521         sh4a_nofpu*)            sh_cpu_target=sh4a-nofpu ;;
2522         sh4al)                  sh_cpu_target=sh4al ;;
2523         sh4a*)                  sh_cpu_target=sh4a ;;
2524         sh4_single_only*)       sh_cpu_target=sh4-single-only ;;
2525         sh4_single*)            sh_cpu_target=sh4-single ;;
2526         sh4_nofpu*)             sh_cpu_target=sh4-nofpu ;;
2527         sh4* | sh-superh-*)     sh_cpu_target=sh4 ;;
2528         sh3e*)                  sh_cpu_target=sh3e ;;
2529         sh*-*-netbsd* | sh3*)   sh_cpu_target=sh3 ;;
2530         sh2a_single_only*)      sh_cpu_target=sh2a-single-only ;;
2531         sh2a_single*)           sh_cpu_target=sh2a-single ;;
2532         sh2a_nofpu*)            sh_cpu_target=sh2a-nofpu ;;
2533         sh2a*)                  sh_cpu_target=sh2a ;;
2534         sh2e*)                  sh_cpu_target=sh2e ;;
2535         sh2*)                   sh_cpu_target=sh2 ;;
2536         *)                      sh_cpu_target=sh1 ;;
2537         esac
2538         # did the user say --without-fp ?
2539         if test x$with_fp = xno; then
2540                 case ${sh_cpu_target} in
2541                 sh5-*media)     sh_cpu_target=${sh_cpu_target}-nofpu ;;
2542                 sh4al | sh1)    ;;
2543                 sh4a* )         sh_cpu_target=sh4a-nofpu ;;
2544                 sh4*)           sh_cpu_target=sh4-nofpu ;;
2545                 sh3*)           sh_cpu_target=sh3 ;;
2546                 sh2a*)          sh_cpu_target=sh2a-nofpu ;;
2547                 sh2*)           sh_cpu_target=sh2 ;;
2548                 *)      echo --without-fp not available for $target: ignored
2549                 esac
2550                 tm_defines="$tm_defines STRICT_NOFPU=1"
2551         fi
2552         sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2553         case $sh_cpu_default in
2554         sh5-64media-nofpu | sh5-64media | \
2555           sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
2556           sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2557           sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2558           sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2559           sh3e | sh3 | sh2e | sh2 | sh1) ;;
2560         "")     sh_cpu_default=${sh_cpu_target} ;;
2561         *)      echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2562         esac
2563         sh_multilibs=${with_multilib_list}
2564         if test "$sh_multilibs" = "default" ; then
2565                 case ${target} in
2566                 sh64-superh-linux* | \
2567                 sh[1234]*)      sh_multilibs=${sh_cpu_target} ;;
2568                 sh64* | sh5*)   sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
2569                 sh-superh-*)    sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2570                 sh*-*-linux*)   sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2571                 sh*-*-netbsd*)  sh_multilibs=m3,m3e,m4 ;;
2572                 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2573                 esac
2574                 if test x$with_fp = xno; then
2575                         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`"
2576                 fi
2577         fi
2578         target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2579         tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2580         tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2581         sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2582         for sh_multilib in ${sh_multilibs}; do
2583                 case ${sh_multilib} in
2584                 m1 | m2 | m2e | m3 | m3e | \
2585                 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2586                 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2587                 m2a | m2a-single | m2a-single-only | m2a-nofpu | \
2588                 m5-64media | m5-64media-nofpu | \
2589                 m5-32media | m5-32media-nofpu | \
2590                 m5-compact | m5-compact-nofpu)
2591                         # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2592                         # It is passed to MULTIILIB_OPTIONS verbatim.
2593                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2594                         tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2595                         ;;
2596                 \!*)    # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2597                         # It is passed the MULTILIB_EXCEPTIONS verbatim.
2598                         TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2599                 *)
2600                         echo "with_multilib_list=${sh_multilib} not supported."
2601                         exit 1
2602                         ;;
2603                 esac
2604         done
2605         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2606         if test x${enable_incomplete_targets} = xyes ; then
2607                 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"
2608         fi
2609         tm_file="$tm_file ./sysroot-suffix.h"
2610         tmake_file="$tmake_file t-sysroot-suffix"
2611         ;;
2612 sh-*-rtems*)
2613         tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2614         tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2615         ;;
2616 sh-wrs-vxworks)
2617         tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2618         tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2619         ;;
2620 sparc-*-elf*)
2621         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2622         case ${target} in
2623             *-leon-*)
2624                 tmake_file="sparc/t-sparc sparc/t-leon"
2625                 ;;
2626             *-leon[3-9]*)
2627                 tmake_file="sparc/t-sparc sparc/t-leon3"
2628                 ;;
2629             *)
2630                 tmake_file="sparc/t-sparc sparc/t-elf"
2631                 ;;
2632         esac
2633         ;;
2634 sparc-*-rtems*)
2635         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2636         tmake_file="${tmake_file} sparc/t-sparc sparc/t-elf sparc/t-rtems"
2637         ;;
2638 sparc-*-linux*)
2639         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2640         extra_options="${extra_options} sparc/long-double-switch.opt"
2641         case ${target} in
2642             *-leon-*)
2643                 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2644                 ;;
2645             *-leon[3-9]*)
2646                 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2647                 ;;
2648             *)
2649                 tmake_file="${tmake_file} sparc/t-sparc"
2650                 ;;
2651         esac
2652         if test x$enable_targets = xall; then
2653                 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2654                 tmake_file="${tmake_file} sparc/t-linux64"
2655         else
2656                 tm_file="${tm_file} sparc/linux.h"
2657                 tmake_file="${tmake_file} sparc/t-linux"
2658         fi
2659         ;;
2660 sparc-*-netbsdelf*)
2661         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2662         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2663         extra_options="${extra_options} sparc/long-double-switch.opt"
2664         tmake_file="${tmake_file} sparc/t-sparc"
2665         ;;
2666 sparc*-*-solaris2*)
2667         tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2668         case ${target} in
2669             sparc64-*-* | sparcv9-*-*)
2670                 tm_file="sparc/default-64.h ${tm_file}"
2671                 ;;
2672             *)
2673                 test x$with_cpu != x || with_cpu=v9
2674                 ;;
2675         esac
2676         tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2677         ;;
2678 sparc-wrs-vxworks)
2679         tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2680         tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2681         ;;
2682 sparc64-*-elf*)
2683         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2684         extra_options="${extra_options}"
2685         tmake_file="${tmake_file} sparc/t-sparc"
2686         ;;
2687 sparc64-*-rtems*)
2688         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2689         extra_options="${extra_options}"
2690         tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2691         ;;
2692 sparc64-*-linux*)
2693         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"
2694         extra_options="${extra_options} sparc/long-double-switch.opt"
2695         tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2696         ;;
2697 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2698         tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2699         extra_options="${extra_options} sparc/long-double-switch.opt"
2700         case "x$with_cpu" in
2701                 xultrasparc) ;;
2702                 x) with_cpu=ultrasparc ;;
2703                 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2704         esac
2705         tmake_file="${tmake_file} sparc/t-sparc"
2706         ;;
2707 sparc64-*-netbsd*)
2708         tm_file="sparc/biarch64.h ${tm_file}"
2709         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2710         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2711         extra_options="${extra_options} sparc/long-double-switch.opt"
2712         tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2713         ;;
2714 sparc64-*-openbsd*)
2715         tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2716         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2717         extra_options="${extra_options} openbsd.opt"
2718         extra_options="${extra_options}"
2719         gas=yes gnu_ld=yes
2720         with_cpu=ultrasparc
2721         tmake_file="${tmake_file} sparc/t-sparc"
2722         ;;
2723 spu-*-elf*)
2724         tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2725         tmake_file="spu/t-spu-elf"
2726         native_system_header_dir=/include
2727         extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2728         extra_modes=spu/spu-modes.def
2729         c_target_objs="${c_target_objs} spu-c.o"
2730         cxx_target_objs="${cxx_target_objs} spu-c.o"
2731         ;;
2732 tic6x-*-elf)
2733         tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
2734         tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
2735         tmake_file="c6x/t-c6x c6x/t-c6x-elf"
2736         use_collect2=no
2737         ;;
2738 tic6x-*-uclinux)
2739         tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
2740         tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
2741         tm_file="${tm_file} ./sysroot-suffix.h"
2742         tmake_file="t-sysroot-suffix t-slibgcc"
2743         tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
2744         use_collect2=no
2745         ;;
2746 tilegx*-*-linux*)
2747         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
2748         tmake_file="${tmake_file} tilegx/t-tilegx"
2749         extra_objs="${extra_objs} mul-tables.o"
2750         c_target_objs="${c_target_objs} tilegx-c.o"
2751         cxx_target_objs="${cxx_target_objs} tilegx-c.o"
2752         extra_headers="feedback.h"
2753         case $target in
2754         tilegxbe-*)
2755                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2756                 ;;
2757         esac
2758         ;;
2759 tilepro*-*-linux*)
2760         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
2761         tmake_file="${tmake_file} tilepro/t-tilepro"
2762         extra_objs="${extra_objs} mul-tables.o"
2763         c_target_objs="${c_target_objs} tilepro-c.o"
2764         cxx_target_objs="${cxx_target_objs} tilepro-c.o"
2765         extra_headers="feedback.h"
2766         ;;
2767 v850-*-rtems*)
2768         target_cpu_default="TARGET_CPU_generic"
2769         tm_file="dbxelf.h elfos.h v850/v850.h"
2770         tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
2771         tmake_file="${tmake_file} v850/t-v850"
2772         tmake_file="${tmake_file} v850/t-rtems"
2773         use_collect2=no
2774         c_target_objs="v850-c.o"
2775         cxx_target_objs="v850-c.o"
2776         ;;
2777 v850*-*-*)
2778         case ${target} in
2779         v850e3v5-*-*)
2780                 target_cpu_default="TARGET_CPU_v850e3v5"
2781                 ;;
2782         v850e2v3-*-*)
2783                 target_cpu_default="TARGET_CPU_v850e2v3"
2784                 ;;
2785         v850e2-*-*)
2786                 target_cpu_default="TARGET_CPU_v850e2"
2787                 ;;
2788         v850e1-*-* | v850es-*-*)
2789                 target_cpu_default="TARGET_CPU_v850e1"
2790                 ;;
2791         v850e-*-*)
2792                 target_cpu_default="TARGET_CPU_v850e"
2793                 ;;
2794         v850-*-*)
2795                 target_cpu_default="TARGET_CPU_generic"
2796                 ;;
2797         esac
2798         tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
2799         if test x$stabs = xyes
2800         then
2801                 tm_file="${tm_file} dbx.h"
2802         fi
2803         use_collect2=no
2804         c_target_objs="v850-c.o"
2805         cxx_target_objs="v850-c.o"
2806         use_gcc_stdint=wrap
2807         ;;
2808 vax-*-linux*)
2809         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
2810         extra_options="${extra_options} vax/elf.opt"
2811         ;;
2812 vax-*-netbsdelf*)
2813         tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
2814         extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
2815         ;;
2816 vax-*-openbsd*)
2817         tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-pthread.h vax/openbsd.h"
2818         extra_options="${extra_options} openbsd.opt"
2819         use_collect2=yes
2820         ;;
2821 xstormy16-*-elf)
2822         # For historical reasons, the target files omit the 'x'.
2823         tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
2824         tm_p_file=stormy16/stormy16-protos.h
2825         md_file=stormy16/stormy16.md
2826         out_file=stormy16/stormy16.c
2827         extra_options=stormy16/stormy16.opt
2828         tmake_file="stormy16/t-stormy16"
2829         ;;
2830 xtensa*-*-elf*)
2831         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
2832         extra_options="${extra_options} xtensa/elf.opt"
2833         ;;
2834 xtensa*-*-linux*)
2835         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
2836         tmake_file="${tmake_file} xtensa/t-xtensa"
2837         ;;
2838 am33_2.0-*-linux*)
2839         tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
2840         gas=yes gnu_ld=yes
2841         use_collect2=no
2842         ;;
2843 m32c-*-rtems*)
2844         tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
2845         c_target_objs="m32c-pragma.o"
2846         cxx_target_objs="m32c-pragma.o"
2847         ;;
2848 m32c-*-elf*)
2849         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2850         c_target_objs="m32c-pragma.o"
2851         cxx_target_objs="m32c-pragma.o"
2852         ;;
2854         echo "*** Configuration ${target} not supported" 1>&2
2855         exit 1
2856         ;;
2857 esac
2859 case ${target} in
2860 i[34567]86-*-linux* | x86_64-*-linux*)
2861         tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
2862         ;;
2863 i[34567]86-*-* | x86_64-*-*)
2864         tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
2865         ;;
2866 powerpc*-*-* | rs6000-*-*)
2867         tm_file="${tm_file} rs6000/option-defaults.h"
2868 esac
2870 if [ "$target_has_targetcm" = "no" ]; then
2871   c_target_objs="$c_target_objs default-c.o"
2872   cxx_target_objs="$cxx_target_objs default-c.o"
2875 if [ "$common_out_file" = "" ]; then
2876   if [ "$target_has_targetm_common" = "yes" ]; then
2877     common_out_file="$cpu_type/$cpu_type-common.c"
2878   else
2879     common_out_file="default-common.c"
2880   fi
2883 # Support for --with-cpu and related options (and a few unrelated options,
2884 # too).
2885 case ${with_cpu} in
2886   yes | no)
2887     echo "--with-cpu must be passed a value" 1>&2
2888     exit 1
2889     ;;
2890 esac
2892 # Set arch and cpu from ${target} and ${target_noncanonical}.  Set cpu
2893 # to generic if there is no processor scheduler model for the target.
2894 arch=
2895 cpu=
2896 arch_without_sse2=no
2897 arch_without_64bit=no
2898 case ${target} in
2899   i386-*-freebsd*)
2900     if test $fbsd_major -ge 6; then
2901       arch=i486
2902     else
2903       arch=i386
2904     fi
2905     cpu=generic
2906     arch_without_sse2=yes
2907     arch_without_64bit=yes
2908     ;;
2909   i386-*-*)
2910     arch=i386
2911     cpu=i386
2912     arch_without_sse2=yes
2913     arch_without_64bit=yes
2914     ;;
2915   i486-*-*)
2916     arch=i486
2917     cpu=i486
2918     arch_without_sse2=yes
2919     arch_without_64bit=yes
2920     ;;
2921   i586-*-*)
2922     arch_without_sse2=yes
2923     arch_without_64bit=yes
2924     case ${target_noncanonical} in
2925       k6_2-*)
2926         arch=k6-2
2927         cpu=k6-2
2928         ;;
2929       k6_3-*)
2930         arch=k6-3
2931         cpu=k6-3
2932         ;;
2933       k6-*)
2934         arch=k6
2935         cpu=k6
2936         ;;
2937       pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
2938         arch=pentium-mmx
2939         cpu=pentium-mmx
2940         ;;
2941       *)
2942         arch=pentium
2943         cpu=pentium
2944         ;;
2945     esac
2946     ;;
2947   i686-*-* | i786-*-*)
2948     case ${target_noncanonical} in
2949       bdver4-*)
2950         arch=bdver4
2951         cpu=bdver4
2952         ;;
2953       bdver3-*)
2954         arch=bdver3
2955         cpu=bdver3
2956         ;;
2957       bdver2-*)
2958         arch=bdver2
2959         cpu=bdver2
2960         ;;
2961       bdver1-*)
2962         arch=bdver1
2963         cpu=bdver1
2964         ;;
2965       btver1-*)
2966         arch=btver1
2967         cpu=btver1
2968         ;;
2969       btver2-*)
2970         arch=btver2
2971         cpu=btver2
2972         ;;
2973       amdfam10-*|barcelona-*)
2974         arch=amdfam10
2975         cpu=amdfam10
2976         ;;
2977       k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
2978         arch=k8-sse3
2979         cpu=k8-sse3
2980         ;;
2981       k8-*|opteron-*|athlon64-*|athlon_fx-*)
2982         arch=k8
2983         cpu=k8
2984         ;;
2985       athlon_xp-*|athlon_mp-*|athlon_4-*)
2986         arch=athlon-4
2987         cpu=athlon-4
2988         arch_without_sse2=yes
2989         arch_without_64bit=yes
2990         ;;
2991       athlon_tbird-*|athlon-*)
2992         arch=athlon
2993         cpu=athlon
2994         arch_without_sse2=yes
2995         ;;
2996       geode-*)
2997         arch=geode
2998         cpu=geode
2999         arch_without_sse2=yes
3000         ;;
3001       pentium2-*)
3002         arch=pentium2
3003         cpu=pentium2
3004         arch_without_sse2=yes
3005         ;;
3006       pentium3-*|pentium3m-*)
3007         arch=pentium3
3008         cpu=pentium3
3009         arch_without_sse2=yes
3010         ;;
3011       pentium4-*|pentium4m-*)
3012         arch=pentium4
3013         cpu=pentium4
3014         ;;
3015       prescott-*)
3016         arch=prescott
3017         cpu=prescott
3018         ;;
3019       nocona-*)
3020         arch=nocona
3021         cpu=nocona
3022         ;;
3023       atom-*)
3024         arch=atom
3025         cpu=atom
3026         ;;
3027       slm-*)
3028         arch=slm
3029         cpu=slm
3030         ;;
3031       core2-*)
3032         arch=core2
3033         cpu=core2
3034         ;;
3035       corei7-*)
3036         arch=corei7
3037         cpu=corei7
3038         ;;
3039       corei7_avx-*)
3040         arch=corei7-avx
3041         cpu=corei7-avx
3042         ;;
3043       pentium_m-*)
3044         arch=pentium-m
3045         cpu=pentium-m
3046         ;;
3047       pentiumpro-*)
3048         arch=pentiumpro
3049         cpu=pentiumpro
3050         arch_without_sse2=yes
3051         ;;
3052       *)
3053         arch=pentiumpro
3054         cpu=generic
3055         arch_without_sse2=yes
3056         arch_without_64bit=yes
3057         ;;
3058     esac
3059     ;;
3060   x86_64-*-*)
3061     case ${target_noncanonical} in
3062       bdver4-*)
3063         arch=bdver4
3064         cpu=bdver4
3065         ;;
3066       bdver3-*)
3067         arch=bdver3
3068         cpu=bdver3
3069         ;;
3070       bdver2-*)
3071         arch=bdver2
3072         cpu=bdver2
3073         ;;
3074       bdver1-*)
3075         arch=bdver1
3076         cpu=bdver1
3077         ;;
3078       btver1-*)
3079         arch=btver1
3080         cpu=btver1
3081         ;;
3082       btver2-*)
3083         arch=btver2
3084         cpu=btver2
3085         ;;
3086       amdfam10-*|barcelona-*)
3087         arch=amdfam10
3088         cpu=amdfam10
3089         ;;
3090       k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3091         arch=k8-sse3
3092         cpu=k8-sse3
3093         ;;
3094       k8-*|opteron-*|athlon_64-*)
3095         arch=k8
3096         cpu=k8
3097         ;;
3098       nocona-*)
3099         arch=nocona
3100         cpu=nocona
3101         ;;
3102       atom-*)
3103         arch=atom
3104         cpu=atom
3105         ;;
3106       slm-*)
3107         arch=slm
3108         cpu=slm
3109         ;;
3110       core2-*)
3111         arch=core2
3112         cpu=core2
3113         ;;
3114       corei7-*)
3115         arch=corei7
3116         cpu=corei7
3117         ;;
3118       *)
3119         arch=x86-64
3120         cpu=generic
3121         ;;
3122     esac
3123     ;;
3124 esac
3126 # If there is no $with_cpu option, try to infer one from ${target}.
3127 # This block sets nothing except for with_cpu.
3128 if test x$with_cpu = x ; then
3129   case ${target} in
3130     i[34567]86-*-*|x86_64-*-*)
3131       with_cpu=$cpu
3132       ;;
3133     alphaev6[78]*-*-*)
3134       with_cpu=ev67
3135       ;;
3136     alphaev6*-*-*)
3137       with_cpu=ev6
3138       ;;
3139     alphapca56*-*-*)
3140       with_cpu=pca56
3141       ;;
3142     alphaev56*-*-*)
3143       with_cpu=ev56
3144       ;;
3145     alphaev5*-*-*)
3146       with_cpu=ev5
3147       ;;
3148     frv-*-*linux* | frv400-*-*linux*)
3149       with_cpu=fr400
3150       ;;
3151     frv550-*-*linux*)
3152       with_cpu=fr550
3153       ;;
3154     m68k*-*-*)
3155       case "$with_arch" in
3156         "cf")
3157           with_cpu=${default_cf_cpu}
3158           ;;
3159         "" | "m68k")
3160           with_cpu=m${default_m68k_cpu}
3161           ;;
3162       esac
3163       ;;
3164     powerpc*-*-*spe*)
3165       if test x$enable_e500_double = xyes; then
3166          with_cpu=8548
3167       else
3168          with_cpu=8540
3169       fi       
3170       ;;
3171     sparc*-*-*)
3172       case ${target} in
3173         *-leon-*)
3174           with_cpu=leon
3175           ;;
3176         *-leon[3-9]*)
3177           with_cpu=leon3
3178           ;;
3179         *)
3180           with_cpu="`echo ${target} | sed 's/-.*$//'`"
3181           ;;
3182       esac
3183       ;;
3184   esac
3186   # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3187   case ${target} in
3188     i[34567]86-*-*|x86_64-*-*)
3189       if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3190         if test x$with_cpu_32 = x; then
3191           with_cpu_32=$with_cpu
3192         fi
3193         if test x$with_cpu_64 = x; then
3194           with_cpu_64=$with_cpu
3195         fi
3196         with_cpu=
3197       fi
3198       ;;
3199   esac
3202 # Support for --with-arch and related options (and a few unrelated options,
3203 # too).
3204 case ${with_arch} in
3205   yes | no)
3206     echo "--with-arch must be passed a value" 1>&2
3207     exit 1
3208     ;;
3209 esac
3211 # If there is no $with_arch option, try to infer one from ${target}.
3212 # This block sets nothing except for with_arch.
3213 if test x$with_arch = x ; then
3214   case ${target} in
3215     i[34567]86-*-darwin*|x86_64-*-darwin*)
3216       # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3217       # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3218       ;;
3219     i[34567]86-*-*)
3220       # --with-fpmath sets the default ISA to SSE2, which is the same
3221       # ISA supported by Pentium 4.
3222       if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3223         with_arch=$arch
3224       else
3225         with_arch=pentium4
3226       fi
3227       ;;
3228     x86_64-*-*)
3229       with_arch=$arch
3230       ;;
3231     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3232       with_arch=r5900
3233       ;;
3234     mips*-*-vxworks)
3235       with_arch=mips2
3236       ;;
3237   esac
3239   # Avoid overriding --with-arch-32 and --with-arch-64 values.
3240   case ${target} in
3241     i[34567]86-*-darwin*|x86_64-*-darwin*)
3242       # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3243       # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3244       ;;
3245     i[34567]86-*-*|x86_64-*-*)
3246       if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3247         if test x$with_arch_32 = x; then
3248           with_arch_32=$with_arch
3249         fi
3250         if test x$with_arch_64 = x; then
3251           if test $arch_without_64bit = yes; then
3252             # Set the default 64bit arch to x86-64 if the default arch
3253             # doesn't support 64bit.
3254             with_arch_64=x86-64
3255           else
3256             with_arch_64=$with_arch
3257           fi
3258         fi
3259         with_arch=
3260       elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3261         # Set the default 64bit arch to x86-64 if the default arch
3262         # doesn't support 64bit and we need 64bit ISA.
3263         with_arch_32=$with_arch
3264         with_arch_64=x86-64
3265         with_arch=
3266       fi
3267       ;;
3268   esac
3271 # Infer a default setting for --with-float.
3272 if test x$with_float = x; then
3273   case ${target} in
3274     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3275       # The R5900 doesn't support 64-bit float.  32-bit float doesn't
3276       # comply with IEEE 754.
3277       with_float=soft
3278       ;;
3279   esac
3282 # Infer a default setting for --with-fpu.
3283 if test x$with_fpu = x; then
3284   case ${target} in
3285     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3286       # The R5900 FPU only supports single precision.
3287       with_fpu=single
3288       ;;
3289   esac
3292 # Support --with-fpmath.
3293 if test x$with_fpmath != x; then
3294   case ${target} in
3295     i[34567]86-*-* | x86_64-*-*)
3296       case ${with_fpmath} in
3297       avx)
3298         tm_file="${tm_file} i386/avxmath.h"
3299         ;;
3300       sse)
3301         tm_file="${tm_file} i386/ssemath.h"
3302         ;;
3303       *)
3304         echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3305         exit 1
3306         ;;
3307       esac
3308       ;;
3309     *)
3310       echo "--with-fpmath isn't supported for $target." 1>&2
3311       exit 1
3312       ;;
3313   esac
3316 # Similarly for --with-schedule.
3317 if test x$with_schedule = x; then
3318         case ${target} in
3319         hppa1*)
3320                 # Override default PA8000 scheduling model.
3321                 with_schedule=7100LC
3322                 ;;
3323         esac
3326 # Infer a default setting for --with-llsc.
3327 if test x$with_llsc = x; then
3328   case ${target} in
3329     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3330       # The R5900 doesn't support LL(D) and SC(D).
3331       with_llsc=no
3332       ;;
3333     mips*-*-linux*)
3334       # The kernel emulates LL and SC where necessary.
3335       with_llsc=yes
3336       ;;
3337   esac
3340 # Validate and mark as valid any --with options supported
3341 # by this target.  In order to use a particular --with option
3342 # you must list it in supported_defaults; validating the value
3343 # is optional.  This case statement should set nothing besides
3344 # supported_defaults.
3346 supported_defaults=
3347 case "${target}" in
3348         aarch64*-*-*)
3349                 supported_defaults="abi cpu arch"
3350                 for which in cpu arch; do
3352                         eval "val=\$with_$which"
3353                         base_val=`echo $val | sed -e 's/\+.*//'`
3354                         ext_val=`echo $val | sed -e 's/[a-z0-9\-]\+//'`
3356                         if [ $which = arch ]; then
3357                           def=aarch64-arches.def
3358                           pattern=AARCH64_ARCH
3359                         else
3360                           def=aarch64-cores.def
3361                           pattern=AARCH64_CORE
3362                         fi
3364                         ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3366                         # Find the base CPU or ARCH id in aarch64-cores.def or
3367                         # aarch64-arches.def
3368                         if [ x"$base_val" = x ] \
3369                             || grep "^$pattern(\"$base_val\"," \
3370                                     ${srcdir}/config/aarch64/$def \
3371                                     > /dev/null; then
3373                           if [ $which = arch ]; then
3374                                 base_id=`grep "^$pattern(\"$base_val\"," \
3375                                   ${srcdir}/config/aarch64/$def | \
3376                                   sed -e 's/^[^,]*,[    ]*//' | \
3377                                   sed -e 's/,.*$//'`
3378                                 # Extract the architecture flags from aarch64-arches.def
3379                                 ext_mask=`grep "^$pattern(\"$base_val\"," \
3380                                    ${srcdir}/config/aarch64/$def | \
3381                                    sed -e 's/)$//' | \
3382                                    sed -e 's/^.*,//'`
3383                           else
3384                                 base_id=`grep "^$pattern(\"$base_val\"," \
3385                                   ${srcdir}/config/aarch64/$def | \
3386                                   sed -e 's/^[^,]*,[    ]*//' | \
3387                                   sed -e 's/,.*$//'`
3388                           fi
3390                           while [ x"$ext_val" != x ]
3391                           do
3392                                 ext_val=`echo $ext_val | sed -e 's/\+//'`
3393                                 ext=`echo $ext_val | sed -e 's/\+.*//'`
3394                                 base_ext=`echo $ext | sed -e 's/^no//'`
3396                                 if [ x"$base_ext" = x ] \
3397                                     || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3398                                     ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3399                                     > /dev/null; then
3401                                   ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3402                                         ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3403                                         sed -e 's/^[^,]*,[      ]*//' | \
3404                                         sed -e 's/,.*$//'`
3405                                   ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3406                                         ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3407                                         sed -e 's/^[^,]*,[      ]*[^,]*,[       ]*//' | \
3408                                         sed -e 's/,.*$//' | \
3409                                         sed -e 's/).*$//'`
3411                                   if [ $ext = $base_ext ]; then
3412                                         # Adding extension
3413                                         ext_mask="("$ext_mask") | ("$ext_on")"
3414                                   else
3415                                         # Removing extension
3416                                         ext_mask="("$ext_mask") & ~("$ext_off")"
3417                                   fi
3419                                   true
3420                                 else
3421                                   echo "Unknown extension used in --with-$which=$val" 1>&2
3422                                   exit 1
3423                                 fi
3424                                 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3425                           done
3427                           ext_mask="(("$ext_mask") << 6)"
3428                           if [ x"$base_id" != x ]; then
3429                                 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3430                           fi
3431                           true
3432                         else
3433                           echo "Unknown $which used in --with-$which=$val" 1>&2
3434                           exit 1
3435                         fi
3436                 done
3437                 ;;
3439         alpha*-*-*)
3440                 supported_defaults="cpu tune"
3441                 for which in cpu tune; do
3442                         eval "val=\$with_$which"
3443                         case "$val" in
3444                         "" \
3445                         | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3446                         | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3447                         | 21264a)
3448                                 ;;
3449                         *)
3450                                 echo "Unknown CPU used in --with-$which=$val" 1>&2
3451                                 exit 1
3452                                 ;;
3453                         esac
3454                 done
3455                 ;;
3457         arc*-*-*) # was:        arc*-*-linux-uclibc)
3458                 supported_defaults="cpu"
3459                 case $with_cpu in
3460                   arc600|arc601|arc700)
3461                         ;;
3462                   *) echo "Unknown cpu type"
3463                         exit 1
3464                         ;;
3465                 esac
3466                 ;;
3468         arm*-*-*)
3469                 supported_defaults="arch cpu float tune fpu abi mode tls"
3470                 for which in cpu tune; do
3471                         # See if it matches any of the entries in arm-cores.def
3472                         eval "val=\$with_$which"
3473                         if [ x"$val" = x ] \
3474                             || grep "^ARM_CORE(\"$val\"," \
3475                                     ${srcdir}/config/arm/arm-cores.def \
3476                                     > /dev/null; then
3477                           # Ok
3478                           new_val=`grep "^ARM_CORE(\"$val\"," \
3479                                 ${srcdir}/config/arm/arm-cores.def | \
3480                                 sed -e 's/^[^,]*,[      ]*//' | \
3481                                 sed -e 's/,.*$//'`
3482                           eval "target_${which}_cname=$new_val"
3483                         echo "For $val real value is $new_val"
3484                           true
3485                         else
3486                           echo "Unknown CPU used in --with-$which=$val" 1>&2
3487                           exit 1
3488                         fi
3489                 done
3491                 # See if it matches any of the entries in arm-arches.def
3492                 if [ x"$with_arch" = x ] \
3493                     || grep "^ARM_ARCH(\"$with_arch\"," \
3494                             ${srcdir}/config/arm/arm-arches.def \
3495                             > /dev/null; then
3496                   # OK
3497                   true
3498                 else
3499                   echo "Unknown arch used in --with-arch=$with_arch" 1>&2
3500                   exit 1
3501                 fi
3503                 case "$with_float" in
3504                 "" \
3505                 | soft | hard | softfp)
3506                         # OK
3507                         ;;
3508                 *)
3509                         echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3510                         exit 1
3511                         ;;
3512                 esac
3514                 case "$with_fpu" in
3515                 "" \
3516                 | vfp | vfp3 | vfpv3 \
3517                 | vfpv3-fp16 | vfpv3-d16 | vfpv3-d16-fp16 | vfpv3xd \
3518                 | vfpv3xd-fp16 | neon | neon-fp16 | vfpv4 | vfpv4-d16 \
3519                 | fpv4-sp-d16 | neon-vfpv4 | fp-arm-v8 | neon-fp-armv8 \
3520                 | crypto-neon-fp-armv8)
3521                         # OK
3522                         ;;
3523                 *)
3524                         echo "Unknown fpu used in --with-fpu=$with_fpu" 2>&1
3525                         exit 1
3526                         ;;
3527                 esac
3529                 case "$with_abi" in
3530                 "" \
3531                 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3532                         #OK
3533                         ;;
3534                 *)
3535                         echo "Unknown ABI used in --with-abi=$with_abi"
3536                         exit 1
3537                         ;;
3538                 esac
3540                 case "$with_mode" in
3541                 "" \
3542                 | arm | thumb )
3543                         #OK
3544                         ;;
3545                 *)
3546                         echo "Unknown mode used in --with-mode=$with_mode"
3547                         exit 1
3548                         ;;
3549                 esac
3551                 case "$with_tls" in
3552                 "" \
3553                 | gnu | gnu2)
3554                         # OK
3555                         ;;
3556                 *)
3557                         echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3558                         exit 1
3559                         ;;
3560                 esac
3562                 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3563                         echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\""  1>&2
3564                         exit 1
3565                 fi
3567                 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3568                         echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\""  1>&2
3569                         exit 1
3570                 fi
3572                 # Add extra multilibs
3573                 if test "x$with_multilib_list" != x; then
3574                         arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3575                         for arm_multilib in ${arm_multilibs}; do
3576                                 case ${arm_multilib} in
3577                                 aprofile)
3578                                 # Note that arm/t-aprofile is a
3579                                 # stand-alone make file fragment to be
3580                                 # used only with itself.  We do not
3581                                 # specifically use the
3582                                 # TM_MULTILIB_OPTION framework because
3583                                 # this shorthand is more
3584                                 # pragmatic. Additionally it is only
3585                                 # designed to work without any
3586                                 # with-cpu, with-arch with-mode
3587                                 # with-fpu or with-float options.
3588                                         if test "x$with_arch" != x \
3589                                             || test "x$with_cpu" != x \
3590                                             || test "x$with_float" != x \
3591                                             || test "x$with_fpu" != x \
3592                                             || test "x$with_mode" != x ; then
3593                                             echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2
3594                                             exit 1
3595                                         fi
3596                                         tmake_file="${tmake_file} arm/t-aprofile"
3597                                         break
3598                                         ;;
3599                                 default)
3600                                         ;;
3601                                 *)
3602                                         echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3603                                         exit 1
3604                                         ;;
3605                                 esac
3606                         done
3607                 fi
3608                 ;;
3610         fr*-*-*linux*)
3611                 supported_defaults=cpu
3612                 case "$with_cpu" in
3613                 fr400) ;;
3614                 fr550) ;;
3615                 *)
3616                         echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3617                         exit 1
3618                         ;;
3619                 esac
3620                 ;;
3622         fido-*-* | m68k*-*-*)
3623                 supported_defaults="arch cpu"
3624                 case "$with_arch" in
3625                 "" | "m68k"| "cf")
3626                         m68k_arch_family="$with_arch"
3627                         ;;
3628                 *)
3629                         echo "Invalid --with-arch=$with_arch" 1>&2
3630                         exit 1
3631                         ;;
3632                 esac
3634                 # We always have a $with_cpu setting here.
3635                 case "$with_cpu" in
3636                 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3637                         m68k_cpu_ident=$with_cpu
3638                         ;;
3639                 "m68020-40")
3640                         m68k_cpu_ident=m68020
3641                         tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3642                         ;;
3643                 "m68020-60")
3644                         m68k_cpu_ident=m68020
3645                         tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3646                         ;;
3647                 *)
3648                         # We need the C identifier rather than the string.
3649                         m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
3650                            'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
3651                             $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
3652                                  ${srcdir}/config/m68k/m68k-devices.def`
3653                         if [ x"$m68k_cpu_ident" = x ] ; then
3654                                 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
3655                                 exit 1
3656                         fi
3657                         with_cpu="mcpu=$with_cpu"
3658                         ;;
3659                 esac
3660                 ;;
3662         hppa*-*-*)
3663                 supported_defaults="arch schedule"
3665                 case "$with_arch" in
3666                 "" | 1.0 | 1.1 | 2.0)
3667                         # OK
3668                         ;;
3669                 *)
3670                         echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
3671                         exit 1
3672                         ;;
3673                 esac
3675                 case "$with_schedule" in
3676                 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
3677                         # OK
3678                         ;;
3679                 *)
3680                         echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
3681                         exit 1
3682                         ;;
3683                 esac
3684                 ;;
3686         i[34567]86-*-* | x86_64-*-*)
3687                 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
3688                 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3689                         eval "val=\$with_$which"
3690                         case " $x86_archs " in
3691                         *" ${val} "*)
3692                                 case "${target}" in
3693                                   x86_64-*-*)
3694                                       case "x$which" in
3695                                         *_32)
3696                                                 ;;
3697                                         *)
3698                                                 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
3699                                                 exit 1
3700                                                 ;;
3701                                       esac
3702                                       ;;
3703                                 esac
3704                                 # OK
3705                                 ;;
3706                         *)
3707                                 if test x${val} != x; then
3708                                         case " $x86_64_archs " in
3709                                         *" ${val} "*)
3710                                                 # OK
3711                                                 ;;
3712                                         *)
3713                                                 # Allow $x86_cpus --with-cpu=/--with-tune=
3714                                                 case "x$which" in
3715                                                 xcpu*|xtune*)
3716                                                         case " $x86_cpus " in
3717                                                         *" ${val} "*)
3718                                                                 # OK
3719                                                                 ;;
3720                                                         *)
3721                                                                 echo "Unknown CPU given in --with-$which=$val." 1>&2
3722                                                                 exit 1
3723                                                                 ;;
3724                                                         esac
3725                                                         ;;
3726                                                 *)
3727                                                         echo "Unknown CPU given in --with-$which=$val." 1>&2
3728                                                         exit 1
3729                                                         ;;
3730                                                 esac
3731                                         ;;
3732                                         esac
3733                                 fi
3734                                 ;;
3735                         esac
3736                 done
3737                 ;;
3739         mips*-*-*)
3740                 supported_defaults="abi arch arch_32 arch_64 float fpu nan tune tune_32 tune_64 divide llsc mips-plt synci"
3742                 case ${with_float} in
3743                 "" | soft | hard)
3744                         # OK
3745                         ;;
3746                 *)
3747                         echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3748                         exit 1
3749                         ;;
3750                 esac
3752                 case ${with_fpu} in
3753                 "" | single | double)
3754                         # OK
3755                         ;;
3756                 *)
3757                         echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
3758                         exit 1
3759                         ;;
3760                 esac
3762                 case ${with_nan} in
3763                 "" | 2008 | legacy)
3764                         # OK
3765                         ;;
3766                 *)
3767                         echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
3768                         exit 1
3769                         ;;
3770                 esac
3772                 case ${with_abi} in
3773                 "" | 32 | o64 | n32 | 64 | eabi)
3774                         # OK
3775                         ;;
3776                 *)
3777                         echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
3778                         exit 1
3779                         ;;
3780                 esac
3782                 case ${with_divide} in
3783                 "" | breaks | traps)
3784                         # OK
3785                         ;;
3786                 *)
3787                         echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
3788                         exit 1
3789                         ;;
3790                 esac
3792                 case ${with_llsc} in
3793                 yes)
3794                         with_llsc=llsc
3795                         ;;
3796                 no)
3797                         with_llsc="no-llsc"
3798                         ;;
3799                 "")
3800                         # OK
3801                         ;;
3802                 *)
3803                         echo "Unknown llsc type used in --with-llsc" 1>&2
3804                         exit 1
3805                         ;;
3806                 esac
3808                 case ${with_mips_plt} in
3809                 yes)
3810                         with_mips_plt=plt
3811                         ;;
3812                 no)
3813                         with_mips_plt=no-plt
3814                         ;;
3815                 "")
3816                         ;;
3817                 *)
3818                         echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
3819                         exit 1
3820                         ;;
3821                 esac
3823                 case ${with_synci} in
3824                 yes)
3825                         with_synci=synci
3826                         ;;
3827                 no)
3828                         with_synci=no-synci
3829                         ;;
3830                 "")
3831                         ;;
3832                 *)
3833                         echo "Unknown synci type used in --with-synci" 1>&2
3834                         exit 1
3835                         ;;
3836                 esac
3837                 ;;
3839         nds32*-*-*)
3840                 supported_defaults="arch nds32_lib"
3842                 # process --with-arch
3843                 case "${with_arch}" in
3844                 "" | v2 | v3 | v3m)
3845                         # OK
3846                         ;;
3847                 *)
3848                         echo "Cannot accept --with-arch=$with_arch, available values are: v2 v3 v3m" 1>&2
3849                         exit 1
3850                         ;;
3851                 esac
3853                 # process --with-nds32-lib
3854                 case "${with_nds32_lib}" in
3855                 "")
3856                         # the default library is newlib
3857                         with_nds32_lib=newlib
3858                         ;;
3859                 newlib)
3860                         # OK
3861                         ;;
3862                 mculib)
3863                         # OK
3864                         ;;
3865                 *)
3866                         echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
3867                         exit 1
3868                         ;;
3869                 esac
3870                 ;;
3872         powerpc*-*-* | rs6000-*-*)
3873                 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64"
3875                 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3876                         eval "val=\$with_$which"
3877                         case ${val} in
3878                         default32 | default64)
3879                                 case $which in
3880                                 cpu | tune)
3881                                         ;;
3882                                 *)
3883                                         echo "$val only valid for --with-cpu and --with-tune." 1>&2
3884                                         exit 1
3885                                         ;;
3886                                 esac
3887                                 with_which="with_$which"
3888                                 eval $with_which=
3889                                 ;;
3890                         405cr)
3891                                 tm_defines="${tm_defines} CONFIG_PPC405CR"
3892                                 eval "with_$which=405"
3893                                 ;;
3894                         "" | common | native \
3895                         | power | power[2345678] | power6x | powerpc | powerpc64 \
3896                         | rios | rios1 | rios2 | rsc | rsc1 | rs64a \
3897                         | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
3898                         | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
3899                         | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
3900                         | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
3901                         | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
3902                                 # OK
3903                                 ;;
3904                         *)
3905                                 echo "Unknown cpu used in --with-$which=$val." 1>&2
3906                                 exit 1
3907                                 ;;
3908                         esac
3909                 done
3911                 case "$with_abi" in
3912                 "" | elfv1 | elfv2 )
3913                         #OK
3914                         ;;
3915                 *)
3916                         echo "Unknown ABI used in --with-abi=$with_abi"
3917                         exit 1
3918                         ;;
3919                 esac
3920                 ;;
3922         s390*-*-*)
3923                 supported_defaults="arch mode tune"
3925                 for which in arch tune; do
3926                         eval "val=\$with_$which"
3927                         case ${val} in
3928                         "" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12)
3929                                 # OK
3930                                 ;;
3931                         *)
3932                                 echo "Unknown cpu used in --with-$which=$val." 1>&2
3933                                 exit 1
3934                                 ;;
3935                         esac
3936                 done
3938                 case ${with_mode} in
3939                 "" | esa | zarch)
3940                         # OK
3941                         ;;
3942                 *)
3943                         echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
3944                         exit 1
3945                         ;;
3946                 esac
3947                 ;;
3949         sh[123456ble]-*-* | sh-*-*)
3950                 supported_defaults="cpu"
3951                 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
3952                 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
3953                         # OK
3954                         ;;
3955                 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3956                         ;;
3957                 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
3958                         ;;
3959                 *)
3960                         echo "Unknown CPU used in --with-cpu=$with_cpu, known values:"  1>&2
3961                         echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
3962                         echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
3963                         echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
3964                         exit 1
3965                         ;;
3966                 esac
3967                 ;;
3968         sparc*-*-*)
3969                 supported_defaults="cpu float tune"
3971                 for which in cpu tune; do
3972                         eval "val=\$with_$which"
3973                         case ${val} in
3974                         "" | sparc | sparcv9 | sparc64 \
3975                         | v7 | cypress \
3976                         | v8 | supersparc | hypersparc | leon | leon3 \
3977                         | sparclite | f930 | f934 | sparclite86x \
3978                         | sparclet | tsc701 \
3979                         | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
3980                         | niagara3 | niagara4)
3981                                 # OK
3982                                 ;;
3983                         *)
3984                                 echo "Unknown cpu used in --with-$which=$val" 1>&2
3985                                 exit 1
3986                                 ;;
3987                         esac
3988                 done
3990                 case ${with_float} in
3991                 "" | soft | hard)
3992                         # OK
3993                         ;;
3994                 *)
3995                         echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3996                         exit 1
3997                         ;;
3998                 esac
3999                 ;;
4001         spu-*-*)
4002                 supported_defaults="arch tune"
4004                 for which in arch tune; do
4005                         eval "val=\$with_$which"
4006                         case ${val} in
4007                         "" | cell | celledp)
4008                                 # OK
4009                                 ;;
4010                         *)
4011                                 echo "Unknown cpu used in --with-$which=$val." 1>&2
4012                                 exit 1
4013                                 ;;
4014                         esac
4015                 done
4016                 ;;
4018         tic6x-*-*)
4019                 supported_defaults="arch"
4021                 case ${with_arch} in
4022                 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4023                         # OK
4024                         ;;
4025                 *)
4026                         echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4027                         exit 1
4028                         ;;
4029                 esac
4030                 ;;
4032         v850*-*-*)
4033                 supported_defaults=cpu
4034                 case ${with_cpu} in
4035                 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4036                         # OK
4037                         ;;
4038                 *)
4039                         echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4040                         exit 1
4041                         ;;
4042                 esac
4043                 ;;
4044 esac
4046 # Set some miscellaneous flags for particular targets.
4047 target_cpu_default2=
4048 case ${target} in
4049         aarch64*-*-*)
4050                 if test x"$target_cpu_cname" != x
4051                 then
4052                         target_cpu_default2=$target_cpu_cname
4053                 fi
4054                 ;;
4056         arm*-*-*)
4057                 if test x$target_cpu_cname = x
4058                 then
4059                         target_cpu_default2=TARGET_CPU_generic
4060                 else
4061                         target_cpu_default2=TARGET_CPU_$target_cpu_cname
4062                 fi
4063                 ;;
4065         hppa*-*-*)
4066                 if test x$gas = xyes
4067                 then
4068                         target_cpu_default2="MASK_GAS|MASK_JUMP_IN_DELAY"
4069                 fi
4070                 ;;
4072         fido*-*-* | m68k*-*-*)
4073                 target_cpu_default2=$m68k_cpu_ident
4074                 tmake_file="m68k/t-opts $tmake_file"
4075                 if [ x"$m68k_arch_family" != x ]; then
4076                         tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4077                 fi
4078                 ;;
4080         i[34567]86-*-darwin* | x86_64-*-darwin*)
4081                 ;;
4082         i[34567]86-*-linux* | x86_64-*-linux*)
4083                 tmake_file="$tmake_file i386/t-linux"
4084                 ;;
4085         i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4086                 tmake_file="$tmake_file i386/t-kfreebsd"
4087                 ;;
4088         i[34567]86-*-gnu*)
4089                 tmake_file="$tmake_file i386/t-gnu"
4090                 ;;
4091         i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4092                 ;;
4093         i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4094                 ;;
4095         i[34567]86-*-mingw* | x86_64-*-mingw*)
4096                 ;;
4097         i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4098                 ;;
4099         i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4100                 ;;
4101         ia64*-*-linux*)
4102                 ;;
4104         mips*-*-*)
4105                 if test x$gnu_ld = xyes
4106                 then
4107                         target_cpu_default2="MASK_SPLIT_ADDRESSES"
4108                 fi
4109                 case ${target} in
4110                         mips*el-*-*)
4111                                 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4112                                 ;;
4113                 esac
4114                 tmake_file="mips/t-mips $tmake_file"
4115                 ;;
4117         powerpc*-*-* | rs6000-*-*)
4118                 # FIXME: The PowerPC port uses the value set at compile time,
4119                 # although it's only cosmetic.
4120                 if test "x$with_cpu" != x
4121                 then
4122                         target_cpu_default2="\\\"$with_cpu\\\""
4123                 fi
4124                 out_file=rs6000/rs6000.c
4125                 c_target_objs="${c_target_objs} rs6000-c.o"
4126                 cxx_target_objs="${cxx_target_objs} rs6000-c.o"
4127                 tmake_file="rs6000/t-rs6000 ${tmake_file}"
4128                 ;;
4130         sh[123456ble]*-*-* | sh-*-*)
4131                 c_target_objs="${c_target_objs} sh-c.o"
4132                 cxx_target_objs="${cxx_target_objs} sh-c.o"
4133                 ;;
4135         sparc*-*-*)
4136                 # Some standard aliases.
4137                 case x$with_cpu in
4138                 xsparc)
4139                         with_cpu=v7
4140                         ;;
4141                 xsparcv9 | xsparc64)
4142                         with_cpu=v9
4143                         ;;
4144                 esac
4146                 if test x$with_tune = x ; then
4147                       case ${target} in
4148                       *-leon-*)
4149                           with_tune=leon
4150                           ;;
4151                       *-leon[3-9]*)
4152                           with_tune=leon3
4153                           ;;
4154                       esac
4155                 fi
4157                 # The SPARC port checks this value at compile-time.
4158                 target_cpu_default2="TARGET_CPU_$with_cpu"
4159                 ;;
4161         v850*-*-*)
4162                 case "x$with_cpu" in
4163                 x)
4164                         ;;
4165                 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4166                         target_cpu_default2="TARGET_CPU_$with_cpu"
4167                         ;;
4168                 xv850es)
4169                         target_cpu_default2="TARGET_CPU_v850e1"
4170                         ;;
4171                 esac
4172                 ;;
4173 esac
4176 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"
4177 for option in $all_defaults
4179         eval "val=\$with_"`echo $option | sed s/-/_/g`
4180         if test -n "$val"; then
4181                 case " $supported_defaults " in
4182                 *" $option "*)
4183                         ;;
4184                 *)
4185                         echo "This target does not support --with-$option." 2>&1
4186                         echo "Valid --with options are: $supported_defaults" 2>&1
4187                         exit 1
4188                         ;;
4189                 esac
4191                 if test "x$t" = x
4192                 then
4193                         t="{ \"$option\", \"$val\" }"
4194                 else
4195                         t="${t}, { \"$option\", \"$val\" }"
4196                 fi
4197         fi
4198 done
4200 if test "x$t" = x
4201 then
4202         configure_default_options="{ { NULL, NULL} }"
4203 else
4204         configure_default_options="{ ${t} }"
4207 if test "$target_cpu_default2" != ""
4208 then
4209         if test "$target_cpu_default" != ""
4210         then
4211                 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4212         else
4213                 target_cpu_default=$target_cpu_default2
4214         fi