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