AVX-512. 85/n. Add intrinsics headers.
[platform/upstream/gcc.git] / gcc / config.gcc
1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2014 Free Software Foundation, Inc.
3
4 #This file is part of GCC.
5
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.
10
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.
15
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/>.
19
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.
25
26 # When you change the cases in the OS or target switches, consider
27 # updating ../libgcc/config.host also.
28
29 # This file switches on the shell variable ${target}, and also uses the
30 # following shell variables:
31 #
32 #  with_*               Various variables as set by configure.
33 #
34 #  enable_threads       Either the name, yes or no depending on whether
35 #                       threads support was requested.
36 #
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.
46 #
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.
56 #
57 #  gas_flag             Either yes or no depending on whether GNU as was
58 #                       requested.
59 #
60 #  gnu_ld_flag          Either yes or no depending on whether GNU ld was
61 #                       requested.
62
63 # This file sets the following shell variables for use by the
64 # autoconf-generated configure script:
65 #
66 #  cpu_type             The name of the cpu, if different from the first
67 #                       chunk of the canonical target name.
68 #
69 #  tm_defines           List of target macros to define for all compilations.
70 #
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}.
81 #
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.
85 #
86 #  tm_p_file            Location of file with declarations for functions
87 #                       in $out_file.
88 #
89 #  out_file             The name of the machine description C support
90 #                       file, if different from "$cpu_type/$cpu_type.c".
91 #
92 #  common_out_file      The name of the source file for code shared between
93 #                       the compiler proper and the driver.
94 #
95 #  md_file              The name of the machine-description file, if
96 #                       different from "$cpu_type/$cpu_type.md".
97 #
98 #  tmake_file           A list of machine-description-specific
99 #                       makefile-fragments, if different from
100 #                       "$cpu_type/t-$cpu_type".
101 #
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".
105 #
106 #  extra_objs           List of extra objects that should be linked into
107 #                       the compiler proper (cc1, cc1obj, cc1plus)
108 #                       depending on target.
109 #
110 #  extra_gcc_objs       List of extra objects that should be linked into
111 #                       the compiler driver (gcc) depending on target.
112 #
113 #  extra_headers        List of used header files from the directory
114 #                       config/${cpu_type}.
115 #
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.
124 #
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.
130 #
131 #  extra_programs       List of extra executables compiled for this target
132 #                       machine, used when linking.
133 #
134 #  extra_options        List of target-dependent .opt files.
135 #
136 #  c_target_objs        List of extra target-dependent objects that be
137 #                       linked into the C compiler only.
138 #
139 #  cxx_target_objs      List of extra target-dependent objects that be
140 #                       linked into the C++ compiler only.
141 #
142 #  fortran_target_objs  List of extra target-dependent objects that be
143 #                       linked into the fortran compiler only.
144 #
145 #  target_gtfiles       List of extra source files with type information.
146 #
147 #  xm_defines           List of macros to define when compiling for the
148 #                       target machine.
149 #
150 #  xm_file              List of files to include when compiling for the
151 #                       target machine.
152 #
153 #  use_collect2         Set to yes or no, depending on whether collect2
154 #                       will be used.
155 #
156 #  target_cpu_default   Set to override the default target model.
157 #
158 #  gdb_needs_out_file_path
159 #                       Set to yes if gdb needs a dir command with
160 #                       `dirname $out_file`.
161 #
162 #  thread_file          Set to control which thread package to use.
163 #
164 #  gas                  Set to yes or no depending on whether the target
165 #                       system normally uses GNU as.
166 #
167 #  configure_default_options
168 #                       Set to an initializer for configure_default_options
169 #                       in configargs.h, based on --with-cpu et cetera.
170 #
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.
182
183 # The following variables are used in each case-construct to build up the
184 # outgoing variables:
185 #
186 #  gnu_ld               Set to yes or no depending on whether the target
187 #                       system normally uses GNU ld.
188 #
189 #  target_has_targetcm  Set to yes or no depending on whether the target
190 #                       has its own definition of targetcm.
191 #
192 #  target_has_targetm_common    Set to yes or no depending on whether the
193 #                       target has its own definition of targetm_common.
194
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='@'
232
233 # Don't carry these over build->host->target.  Please.
234 xm_file=
235 md_file=
236
237 # Obsolete configurations.
238 case ${target} in
239 # Currently there are no obsolete targets.
240  nothing                                \
241  )
242     if test "x$enable_obsolete" != xyes; then
243       echo "*** Configuration ${target} is obsolete." >&2
244       echo "*** Specify --enable-obsolete to build it anyway." >&2
245       echo "*** Support will be REMOVED in the next major release of GCC," >&2
246       echo "*** unless a maintainer comes forward." >&2
247       exit 1
248     fi;;
249 esac
250
251 # Unsupported targets list.  Do not put an entry in this list unless
252 # it would otherwise be caught by a more permissive pattern.  The list
253 # should be in alphabetical order.
254 case ${target} in
255  # Avoid special cases that are not obsolete
256    arm*-*-*eabi*                        \
257  )
258         ;;
259    arm*-wince-pe*                       \
260  | arm*-*-ecos-elf                      \
261  | arm*-*-elf                           \
262  | arm*-*-freebsd*                      \
263  | arm*-*-linux*                        \
264  | arm*-*-uclinux*                      \
265  | i[34567]86-go32-*                    \
266  | i[34567]86-*-go32*                   \
267  | m68k-*-uclinuxoldabi*                \
268  | mips64orion*-*-rtems*                \
269  | pdp11-*-bsd                          \
270  | sparc-hal-solaris2*                  \
271  | thumb-*-*                            \
272  | *-*-freebsd[12] | *-*-freebsd[12].*  \
273  | *-*-freebsd*aout*                    \
274  | *-*-linux*aout*                      \
275  | *-*-linux*coff*                      \
276  | *-*-linux*libc1*                     \
277  | *-*-linux*oldld*                     \
278  | *-*-rtemsaout*                       \
279  | *-*-rtemscoff*                       \
280  | *-*-solaris2                         \
281  | *-*-solaris2.[0-9]                   \
282  | *-*-solaris2.[0-9].*                 \
283  | *-*-sysv*                            \
284  | vax-*-vms*                           \
285  )
286         echo "*** Configuration ${target} not supported" 1>&2
287         exit 1
288         ;;
289 esac
290
291 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
292 # updated in each machine entry.  Also set default extra_headers for some
293 # machines.
294 tm_p_file=
295 cpu_type=`echo ${target} | sed 's/-.*$//'`
296 cpu_is_64bit=
297 case ${target} in
298 m32c*-*-*)
299         cpu_type=m32c
300         tmake_file=m32c/t-m32c
301         target_has_targetm_common=no
302         ;;
303 aarch64*-*-*)
304         cpu_type=aarch64
305         extra_headers="arm_neon.h arm_acle.h"
306         extra_objs="aarch64-builtins.o aarch-common.o"
307         target_has_targetm_common=yes
308         ;;
309 alpha*-*-*)
310         cpu_type=alpha
311         extra_options="${extra_options} g.opt"
312         ;;
313 am33_2.0-*-linux*)
314         cpu_type=mn10300
315         ;;
316 arc*-*-*)
317         cpu_type=arc
318         ;;
319 arm*-*-*)
320         cpu_type=arm
321         extra_objs="aarch-common.o"
322         extra_headers="mmintrin.h arm_neon.h arm_acle.h"
323         target_type_format_char='%'
324         c_target_objs="arm-c.o"
325         cxx_target_objs="arm-c.o"
326         extra_options="${extra_options} arm/arm-tables.opt"
327         ;;
328 avr-*-*)
329         cpu_type=avr
330         c_target_objs="avr-c.o"
331         cxx_target_objs="avr-c.o"
332         extra_options="${extra_options} avr/avr-tables.opt"
333         ;;
334 bfin*-*)
335         cpu_type=bfin
336         ;;
337 crisv32-*)
338         cpu_type=cris
339         ;;
340 frv*)   cpu_type=frv
341         extra_options="${extra_options} g.opt"
342         ;;
343 moxie*) cpu_type=moxie
344         target_has_targetm_common=no
345         ;;
346 fido-*-*)
347         cpu_type=m68k
348         extra_headers=math-68881.h
349         extra_options="${extra_options} m68k/m68k-tables.opt"
350         ;;
351 i[34567]86-*-*)
352         cpu_type=i386
353         c_target_objs="i386-c.o"
354         cxx_target_objs="i386-c.o"
355         extra_options="${extra_options} fused-madd.opt"
356         extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
357                        pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
358                        nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
359                        immintrin.h x86intrin.h avxintrin.h xopintrin.h
360                        ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
361                        lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
362                        avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
363                        rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
364                        adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
365                        avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
366                        shaintrin.h clflushoptintrin.h xsavecintrin.h
367                        xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
368                        avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h"
369         ;;
370 x86_64-*-*)
371         cpu_type=i386
372         c_target_objs="i386-c.o"
373         cxx_target_objs="i386-c.o"
374         extra_options="${extra_options} fused-madd.opt"
375         extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
376                        pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
377                        nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
378                        immintrin.h x86intrin.h avxintrin.h xopintrin.h
379                        ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
380                        lzcntintrin.h bmiintrin.h tbmintrin.h bmi2intrin.h
381                        avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
382                        rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
383                        adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
384                        avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
385                        shaintrin.h clflushoptintrin.h xsavecintrin.h
386                        xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
387                        avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h"
388         ;;
389 ia64-*-*)
390         extra_headers=ia64intrin.h
391         extra_options="${extra_options} g.opt fused-madd.opt"
392         ;;
393 hppa*-*-*)
394         cpu_type=pa
395         ;;
396 lm32*)
397         extra_options="${extra_options} g.opt"
398         ;;
399 m32r*-*-*)
400         cpu_type=m32r
401         extra_options="${extra_options} g.opt"
402         ;;
403 m68k-*-*)
404         extra_headers=math-68881.h
405         extra_options="${extra_options} m68k/m68k-tables.opt"
406         ;;
407 microblaze*-*-*)
408         cpu_type=microblaze
409         extra_options="${extra_options} g.opt"
410         ;;
411 mips*-*-*)
412         cpu_type=mips
413         extra_headers="loongson.h"
414         extra_options="${extra_options} g.opt mips/mips-tables.opt"
415         ;;
416 nds32*)
417         cpu_type=nds32
418         extra_headers="nds32_intrinsic.h"
419         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"
420         ;;
421 nios2-*-*)
422         cpu_type=nios2
423         extra_options="${extra_options} g.opt"
424         ;;
425 powerpc*-*-*)
426         cpu_type=rs6000
427         extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h"
428         case x$with_cpu in
429             xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500)
430                 cpu_is_64bit=yes
431                 ;;
432         esac
433         extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
434         ;;
435 rs6000*-*-*)
436         extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
437         ;;
438 sparc*-*-*)
439         cpu_type=sparc
440         c_target_objs="sparc-c.o"
441         cxx_target_objs="sparc-c.o"
442         extra_headers="visintrin.h"
443         ;;
444 spu*-*-*)
445         cpu_type=spu
446         ;;
447 s390*-*-*)
448         cpu_type=s390
449         extra_options="${extra_options} fused-madd.opt"
450         extra_headers="s390intrin.h htmintrin.h htmxlintrin.h"
451         ;;
452 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
453 sh[123456789lbe]*-*-* | sh-*-*)
454         cpu_type=sh
455         extra_options="${extra_options} fused-madd.opt"
456         extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
457         ;;
458 v850*-*-*)
459         cpu_type=v850
460         ;;
461 tic6x-*-*)
462         cpu_type=c6x
463         extra_headers="c6x_intrinsics.h"
464         extra_options="${extra_options} c6x/c6x-tables.opt"
465         ;;
466 xtensa*-*-*)
467         extra_options="${extra_options} fused-madd.opt"
468         ;;
469 tilegx*-*-*)
470         cpu_type=tilegx
471         ;;
472 tilepro*-*-*)
473         cpu_type=tilepro
474         ;;
475 esac
476
477 tm_file=${cpu_type}/${cpu_type}.h
478 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
479 then
480         tm_p_file=${cpu_type}/${cpu_type}-protos.h
481 fi
482 extra_modes=
483 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
484 then
485         extra_modes=${cpu_type}/${cpu_type}-modes.def
486 fi
487 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
488 then
489         extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
490 fi
491
492 case ${target} in
493 aarch64*-*-*)
494         tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
495         case ${with_abi} in
496         "")
497                 if test "x$with_multilib_list" = xilp32; then
498                         tm_file="aarch64/biarchilp32.h ${tm_file}"
499                 else
500                         tm_file="aarch64/biarchlp64.h ${tm_file}"
501                 fi
502                 ;;
503         ilp32)
504                 tm_file="aarch64/biarchilp32.h ${tm_file}"
505                 ;;
506         lp64)
507                 tm_file="aarch64/biarchlp64.h ${tm_file}"
508                 ;;
509         *)
510                 echo "Unknown ABI used in --with-abi=$with_abi"
511                 exit 1
512         esac
513         ;;
514 i[34567]86-*-*)
515         if test "x$with_abi" != x; then
516                 echo "This target does not support --with-abi."
517                 exit 1
518         fi
519         if test "x$enable_cld" = xyes; then
520                 tm_defines="${tm_defines} USE_IX86_CLD=1"
521         fi
522         if test "x$enable_frame_pointer" = xyes; then
523                 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
524         fi
525         tm_file="vxworks-dummy.h ${tm_file}"
526         ;;
527 x86_64-*-*)
528         case ${with_abi} in
529         "")
530                 if test "x$with_multilib_list" = xmx32; then
531                         tm_file="i386/biarchx32.h ${tm_file}"
532                 else
533                         tm_file="i386/biarch64.h ${tm_file}"
534                 fi
535                 ;;
536         64 | m64)
537                 tm_file="i386/biarch64.h ${tm_file}"
538                 ;;
539         x32 | mx32)
540                 tm_file="i386/biarchx32.h ${tm_file}"
541                 ;;
542         *)
543                 echo "Unknown ABI used in --with-abi=$with_abi"
544                 exit 1
545         esac
546         if test "x$enable_cld" = xyes; then
547                 tm_defines="${tm_defines} USE_IX86_CLD=1"
548         fi
549         if test "x$enable_frame_pointer" = xyes; then
550                 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
551         fi
552         tm_file="vxworks-dummy.h ${tm_file}"
553         ;;
554 arm*-*-*)
555         tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
556         tm_file="vxworks-dummy.h ${tm_file}"
557         ;;
558 mips*-*-* | sh*-*-* | sparc*-*-*)
559         tm_file="vxworks-dummy.h ${tm_file}"
560         ;;
561 esac
562
563 # On a.out targets, we need to use collect2.
564 case ${target} in
565 *-*-*aout*)
566         use_collect2=yes
567         ;;
568 esac
569
570 # Common C libraries.
571 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3"
572
573 # 32-bit x86 processors supported by --with-arch=.  Each processor
574 # MUST be separated by exactly one space.
575 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
576 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
577 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
578 pentium4 pentium4m pentiumpro prescott"
579
580 # 64-bit x86 processors supported by --with-arch=.  Each processor
581 # MUST be separated by exactly one space.
582 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
583 bdver3 bdver4 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \
584 core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \
585 sandybridge ivybridge haswell broadwell bonnell silvermont x86-64 native"
586
587 # Additional x86 processors supported by --with-cpu=.  Each processor
588 # MUST be separated by exactly one space.
589 x86_cpus="generic intel"
590
591 # Common parts for widely ported systems.
592 case ${target} in
593 *-*-darwin*)
594   tmake_file="t-darwin ${cpu_type}/t-darwin"
595   tm_file="${tm_file} darwin.h"
596   case ${target} in
597   *-*-darwin9*)
598     tm_file="${tm_file} darwin9.h"
599     ;;
600   *-*-darwin[12][0-9]*)
601     tm_file="${tm_file} darwin9.h darwin10.h"
602     ;;
603   esac
604   tm_file="${tm_file} ${cpu_type}/darwin.h"
605   tm_p_file="${tm_p_file} darwin-protos.h"
606   target_gtfiles="\$(srcdir)/config/darwin.c"
607   extra_options="${extra_options} darwin.opt"
608   c_target_objs="${c_target_objs} darwin-c.o"
609   cxx_target_objs="${cxx_target_objs} darwin-c.o"
610   fortran_target_objs="darwin-f.o"
611   target_has_targetcm=yes
612   extra_objs="darwin.o"
613   extra_gcc_objs="darwin-driver.o"
614   default_use_cxa_atexit=yes
615   use_gcc_stdint=wrap
616   case ${enable_threads} in
617     "" | yes | posix) thread_file='posix' ;;
618   esac
619   ;;
620 *-*-dragonfly*)
621   gas=yes
622   gnu_ld=yes
623   tmake_file="t-slibgcc"
624   case ${enable_threads} in
625     "" | yes | posix)
626       thread_file='posix'
627       ;;
628     no | single)
629       # Let these non-posix thread selections fall through if requested
630       ;;
631     *)
632       echo 'Unknown thread configuration for DragonFly BSD'
633       exit 1
634       ;;
635   esac
636   extra_options="$extra_options rpath.opt dragonfly.opt"
637   default_use_cxa_atexit=yes
638   use_gcc_stdint=wrap
639   ;;
640 *-*-freebsd*)
641   # This is the generic ELF configuration of FreeBSD.  Later
642   # machine-specific sections may refine and add to this
643   # configuration.
644   #
645   # Due to tm_file entry ordering issues that vary between cpu
646   # architectures, we only define fbsd_tm_file to allow the
647   # machine-specific section to dictate the final order of all
648   # entries of tm_file with the minor exception that components
649   # of the tm_file set here will always be of the form:
650   #
651   # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
652   #
653   # The machine-specific section should not tamper with this
654   # ordering but may order all other entries of tm_file as it
655   # pleases around the provided core setting.
656   gas=yes
657   gnu_ld=yes
658   fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
659   tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
660   tmake_file="t-slibgcc"
661   case ${enable_threads} in
662     no)
663       fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
664       ;;
665     "" | yes | posix)
666       thread_file='posix'
667       ;;
668     *)
669       echo 'Unknown thread configuration for FreeBSD'
670       exit 1
671       ;;
672   esac
673   fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
674   extra_options="$extra_options rpath.opt freebsd.opt"
675   case ${target} in
676     *-*-freebsd[345].*)
677       :;;
678     *)
679       default_use_cxa_atexit=yes;;
680   esac
681   use_gcc_stdint=wrap
682   ;;
683 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
684   extra_options="$extra_options gnu-user.opt"
685   gas=yes
686   gnu_ld=yes
687   case ${enable_threads} in
688     "" | yes | posix) thread_file='posix' ;;
689   esac
690   tmake_file="t-slibgcc"
691   case $target in
692     *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu)
693       :;;
694     *-*-gnu*)
695       native_system_header_dir=/include
696       ;;
697   esac
698   # Linux C libraries selection switch: glibc / uclibc / bionic.
699   # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
700   case $target in
701     *linux*)
702       tm_p_file="${tm_p_file} linux-protos.h"
703       tmake_file="${tmake_file} t-linux"
704       extra_objs="${extra_objs} linux.o"
705       extra_options="${extra_options} linux.opt"
706       ;;
707   esac
708   case $target in
709     *-*-*android*)
710       tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
711       ;;
712     *-*-*uclibc*)
713       tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
714       ;;
715     *)
716       tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
717       ;;
718   esac
719   # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
720   # is provided.
721   default_use_cxa_atexit=yes
722   use_gcc_tgmath=no
723   use_gcc_stdint=wrap
724   # Enable compilation for Android by default for *android* targets.
725   case $target in
726     *-*-*android*)
727       tm_defines="$tm_defines ANDROID_DEFAULT=1"
728       ;;
729     *)
730       tm_defines="$tm_defines ANDROID_DEFAULT=0"
731       ;;
732   esac
733   c_target_objs="${c_target_objs} glibc-c.o"
734   cxx_target_objs="${cxx_target_objs} glibc-c.o"
735   tmake_file="${tmake_file} t-glibc"
736   target_has_targetcm=yes
737   ;;
738 *-*-netbsd*)
739   tmake_file="t-slibgcc"
740   gas=yes
741   gnu_ld=yes
742
743   # NetBSD 2.0 and later get POSIX threads enabled by default.
744   # Allow them to be explicitly enabled on any other version.
745   case ${enable_threads} in
746     "")
747       case ${target} in
748         *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
749           thread_file='posix'
750           tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
751           ;;
752       esac
753       ;;
754     yes | posix)
755       thread_file='posix'
756       tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
757       ;;
758   esac
759
760   # NetBSD 2.0 and later provide __cxa_atexit(), which we use by
761   # default (unless overridden by --disable-__cxa_atexit).
762   case ${target} in
763     *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
764       default_use_cxa_atexit=yes
765       ;;
766   esac
767   ;;
768 *-*-openbsd*)
769   tmake_file="t-openbsd"
770   case ${enable_threads} in
771     yes)
772       thread_file='posix'
773       ;;
774   esac
775   case ${target} in
776     *-*-openbsd2.*|*-*-openbsd3.[012])
777       tm_defines="${tm_defines} HAS_LIBC_R=1" ;;
778   esac
779   case ${target} in
780     *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
781       default_use_cxa_atexit=yes
782       ;;
783   esac
784   ;;
785 *-*-rtems*)
786   case ${enable_threads} in
787     "" | yes | rtems) thread_file='rtems' ;;
788     posix) thread_file='posix' ;;
789     no) ;;
790     *)
791       echo 'Unknown thread configuration for RTEMS'
792       exit 1
793       ;;
794   esac
795   tmake_file="${tmake_file} t-rtems"
796   extra_options="${extra_options} rtems.opt"
797   default_use_cxa_atexit=yes
798   use_gcc_stdint=wrap
799   ;;
800 *-*-uclinux*)
801   extra_options="$extra_options gnu-user.opt"
802   use_gcc_stdint=wrap
803   tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
804   ;;
805 *-*-rdos*)
806   use_gcc_stdint=wrap
807   ;;
808 *-*-solaris2*)
809   # i?86-*-solaris2* needs to insert headers between cpu default and
810   # Solaris 2 specific ones.
811   sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
812   sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
813   sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
814   use_gcc_stdint=wrap
815   if test x$gnu_ld = xyes; then
816     tm_file="usegld.h ${tm_file}"
817   fi
818   if test x$gas = xyes; then
819     tm_file="usegas.h ${tm_file}"
820   fi
821   tm_p_file="${tm_p_file} sol2-protos.h"
822   tmake_file="${tmake_file} t-sol2 t-slibgcc"
823   c_target_objs="${c_target_objs} sol2-c.o"
824   cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
825   extra_objs="sol2.o sol2-stubs.o"
826   extra_options="${extra_options} sol2.opt"
827   case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
828     "":yes:* | yes:yes:* )
829       thread_file=posix
830       ;;
831   esac
832   ;;
833 *-*-*vms*)
834   extra_options="${extra_options} vms/vms.opt"
835   xmake_file=vms/x-vms
836   tmake_file="vms/t-vms t-slibgcc"
837   extra_objs="vms.o"
838   target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
839   tm_p_file="${tm_p_file} vms/vms-protos.h"
840   xm_file="vms/xm-vms.h"
841   c_target_objs="vms-c.o"
842   cxx_target_objs="vms-c.o"
843   fortran_target_objs="vms-f.o"
844   use_gcc_stdint=provide
845   tm_file="${tm_file} vms/vms-stdint.h"
846   if test x$gnu_ld != xyes; then
847     # Build wrappers for native case.
848     extra_programs="ld\$(exeext) ar\$(exeext)"
849     tmake_file="$tmake_file vms/t-vmsnative"
850   fi
851   ;;
852 *-*-vxworks*)
853   tmake_file=t-vxworks
854   xm_defines=POSIX
855   extra_options="${extra_options} vxworks.opt"
856   extra_objs="$extra_objs vxworks.o"
857   case ${enable_threads} in
858     no) ;;
859     "" | yes | vxworks) thread_file='vxworks' ;;
860     *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
861   esac
862   ;;
863 *-*-elf|arc*-*-elf*)
864   # Assume that newlib is being used and so __cxa_atexit is provided.
865   default_use_cxa_atexit=yes
866   use_gcc_stdint=wrap
867   ;;
868 esac
869
870 case ${target} in
871 aarch64*-*-elf)
872         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
873         tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
874         tmake_file="${tmake_file} aarch64/t-aarch64"
875         use_gcc_stdint=wrap
876         case $target in
877         aarch64_be-*)
878                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
879                 ;;
880         esac
881         aarch64_multilibs="${with_multilib_list}"
882         if test "$aarch64_multilibs" = "default"; then
883                 aarch64_multilibs="lp64,ilp32"
884         fi
885         aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
886         for aarch64_multilib in ${aarch64_multilibs}; do
887                 case ${aarch64_multilib} in
888                 ilp32 | lp64 )
889                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
890                         ;;
891                 *)
892                         echo "--with-multilib-list=${aarch64_multilib} not supported."
893                         exit 1
894                 esac
895         done
896         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
897         ;;
898 aarch64*-*-linux*)
899         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
900         tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
901         tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
902         case $target in
903         aarch64_be-*)
904                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
905                 ;;
906         esac
907         aarch64_multilibs="${with_multilib_list}"
908         if test "$aarch64_multilibs" = "default"; then
909                 # TODO: turn on ILP32 multilib build after its support is mature.
910                 # aarch64_multilibs="lp64,ilp32"
911                 aarch64_multilibs="lp64"
912         fi
913         aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
914         for aarch64_multilib in ${aarch64_multilibs}; do
915                 case ${aarch64_multilib} in
916                 ilp32 | lp64 )
917                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
918                         ;;
919                 *)
920                         echo "--with-multilib-list=${aarch64_multilib} not supported."
921                         exit 1
922                 esac
923         done
924         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
925         ;;
926 alpha*-*-linux*)
927         tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
928         tmake_file="${tmake_file} alpha/t-linux"
929         extra_options="${extra_options} alpha/elf.opt"
930         ;;
931 alpha*-*-freebsd*)
932         tm_file="elfos.h ${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
933         extra_options="${extra_options} alpha/elf.opt"
934         ;;
935 alpha*-*-netbsd*)
936         tm_file="elfos.h ${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h"
937         extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
938                        alpha/elf.opt"
939         ;;
940 alpha*-*-openbsd*)
941         tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
942         tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
943         extra_options="${extra_options} openbsd.opt alpha/elf.opt"
944         # default x-alpha is only appropriate for dec-osf.
945         ;;
946 alpha*-dec-*vms*)
947         tm_file="${tm_file} vms/vms.h alpha/vms.h"
948         tmake_file="${tmake_file} alpha/t-vms"
949         ;;
950 arc*-*-elf*)
951         extra_headers="arc-simd.h"
952         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
953         tmake_file="arc/t-arc-newlib arc/t-arc"
954         case x"${with_cpu}" in
955           xarc600|xarc601|xarc700)
956                 target_cpu_default="TARGET_CPU_$with_cpu"
957                 ;;
958         esac
959         if test x${with_endian} = x; then
960                 case ${target} in
961                 arc*be-*-* | arc*eb-*-*)        with_endian=big ;;
962                 *)                              with_endian=little ;;
963                 esac
964         fi
965         case ${with_endian} in
966         big|little)             ;;
967         *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
968         esac
969         case ${with_endian} in
970         big*)   tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
971         esac
972         ;;
973 arc*-*-linux-uclibc*)
974         extra_headers="arc-simd.h"
975         tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file}"
976         tmake_file="${tmake_file} arc/t-arc-uClibc arc/t-arc"
977         tm_defines="${tm_defines} TARGET_SDATA_DEFAULT=0"
978         tm_defines="${tm_defines} TARGET_MMEDIUM_CALLS_DEFAULT=1"
979         case x"${with_cpu}" in
980           xarc600|xarc601|xarc700)
981                 target_cpu_default="TARGET_CPU_$with_cpu"
982                 ;;
983         esac
984         if test x${with_endian} = x; then
985                 case ${target} in
986                 arc*be-*-* | arc*eb-*-*)        with_endian=big ;;
987                 *)                              with_endian=little ;;
988                 esac
989         fi
990         case ${with_endian} in
991         big|little)             ;;
992         *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
993         esac
994         case ${with_endian} in
995         big*)   tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
996         esac
997         ;;
998 arm-wrs-vxworks)
999         tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1000         extra_options="${extra_options} arm/vxworks.opt"
1001         tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1002         ;;
1003 arm*-*-netbsdelf*)
1004         tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1005         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1006         tmake_file="${tmake_file} arm/t-arm"
1007         ;;
1008 arm*-*-linux-*)                 # ARM GNU/Linux with ELF
1009         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"
1010         extra_options="${extra_options} linux-android.opt"
1011         case $target in
1012         arm*b-*-linux*)
1013             tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1014             ;;
1015         esac
1016         tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1017         tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1018         # Define multilib configuration for arm-linux-androideabi.
1019         case ${target} in
1020         *-androideabi)
1021             tmake_file="$tmake_file arm/t-linux-androideabi"
1022             ;;
1023         esac
1024         # The EABI requires the use of __cxa_atexit.
1025         default_use_cxa_atexit=yes
1026         with_tls=${with_tls:-gnu}
1027         ;;
1028 arm*-*-uclinux*eabi*)           # ARM ucLinux
1029         tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1030         tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1031         tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1032         # The EABI requires the use of __cxa_atexit.
1033         default_use_cxa_atexit=yes
1034         ;;
1035 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
1036         case ${target} in
1037         arm*eb-*-eabi*)
1038           tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1039         esac
1040         default_use_cxa_atexit=yes
1041         tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1042         tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1043         case ${target} in
1044         arm*-*-eabi*)
1045           tm_file="$tm_file newlib-stdint.h"
1046           tmake_file="${tmake_file} arm/t-bpabi"
1047           use_gcc_stdint=wrap
1048           ;;
1049         arm*-*-rtems*)
1050           tm_file="${tm_file} rtems.h arm/rtems-eabi.h newlib-stdint.h"
1051           tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems-eabi"
1052           ;;
1053         arm*-*-symbianelf*)
1054           tm_file="${tm_file} arm/symbian.h"
1055           # We do not include t-bpabi for Symbian OS because the system
1056           # provides its own implementation of the BPABI functions.
1057           tmake_file="${tmake_file} arm/t-symbian"
1058           ;;
1059         esac
1060         tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
1061         ;;
1062 avr-*-rtems*)
1063         tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
1064         tmake_file="${tmake_file} avr/t-avr avr/t-multilib avr/t-rtems"
1065         extra_gcc_objs="driver-avr.o avr-devices.o"
1066         extra_objs="avr-devices.o avr-log.o"
1067         ;;
1068 avr-*-*)
1069         tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/avr-stdint.h"
1070         if test x${with_avrlibc} != xno; then
1071             tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1072             tm_defines="${tm_defines} WITH_AVRLIBC"
1073         fi
1074         tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1075         use_gcc_stdint=wrap
1076         extra_gcc_objs="driver-avr.o avr-devices.o"
1077         extra_objs="avr-devices.o avr-log.o"
1078         ;;
1079 bfin*-elf*)
1080         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1081         tmake_file=bfin/t-bfin-elf
1082         use_collect2=no
1083         ;;
1084 bfin*-uclinux*)
1085         tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1086         tmake_file=bfin/t-bfin-uclinux
1087         use_collect2=no
1088         ;;
1089 bfin*-linux-uclibc*)
1090         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"
1091         tmake_file="bfin/t-bfin-linux t-slibgcc t-linux"
1092         use_collect2=no
1093         ;;
1094 bfin*-rtems*)
1095         tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1096         tmake_file="${tmake_file} bfin/t-rtems"
1097         ;;
1098 bfin*-*)
1099         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1100         use_collect2=no
1101         use_gcc_stdint=wrap
1102         ;;
1103 cr16-*-elf)
1104         tm_file="elfos.h ${tm_file}"
1105         tmake_file="${tmake_file} cr16/t-cr16 "
1106         use_collect2=no
1107         ;;
1108 crisv32-*-elf | crisv32-*-none)
1109         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1110         tmake_file="cris/t-cris"
1111         target_cpu_default=32
1112         gas=yes
1113         extra_options="${extra_options} cris/elf.opt"
1114         use_gcc_stdint=wrap
1115         ;;
1116 cris-*-elf | cris-*-none)
1117         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1118         tmake_file="cris/t-cris cris/t-elfmulti"
1119         gas=yes
1120         extra_options="${extra_options} cris/elf.opt"
1121         use_gcc_stdint=wrap
1122         ;;
1123 crisv32-*-linux* | cris-*-linux*)
1124         tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1125         tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1126         extra_options="${extra_options} cris/linux.opt"
1127         case $target in
1128           cris-*-*)
1129                 target_cpu_default=10
1130                 ;;
1131           crisv32-*-*)
1132                 target_cpu_default=32
1133                 ;;
1134         esac
1135         ;;
1136 epiphany-*-elf )
1137         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1138         tmake_file="epiphany/t-epiphany"
1139         extra_options="${extra_options} fused-madd.opt"
1140         extra_objs="$extra_objs mode-switch-use.o resolve-sw-modes.o"
1141         tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1142         extra_headers="epiphany_intrinsics.h"
1143         ;;
1144 fr30-*-elf)
1145         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1146         ;;
1147 frv-*-elf)
1148         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1149         tmake_file=frv/t-frv
1150         ;;
1151 frv-*-*linux*)
1152         tm_file="dbxelf.h elfos.h ${tm_file} \
1153                  gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1154         tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1155         ;;
1156 moxie-*-elf)
1157         gas=yes
1158         gnu_ld=yes
1159         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1160         tmake_file="${tmake_file} moxie/t-moxie"
1161         ;;
1162 moxie-*-uclinux*)
1163         gas=yes
1164         gnu_ld=yes
1165         tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1166         tmake_file="${tmake_file} moxie/t-moxie"
1167         ;;
1168 moxie-*-rtems*)
1169         tmake_file="${tmake_file} moxie/t-moxie"
1170         tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1171         ;;
1172 moxie-*-moxiebox*)
1173         gas=yes
1174         gnu_ld=yes
1175         tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1176         tmake_file="${tmake_file} moxie/t-moxiebox"
1177         ;;
1178 h8300-*-rtems*)
1179         tmake_file="${tmake_file} h8300/t-h8300 h8300/t-rtems"
1180         tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h"
1181         ;;
1182 h8300-*-elf*)
1183         tmake_file="h8300/t-h8300"
1184         tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1185         ;;
1186 hppa*64*-*-linux*)
1187         target_cpu_default="MASK_PA_11|MASK_PA_20"
1188         tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1189                  glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1190                  pa/pa64-linux.h"
1191         gas=yes gnu_ld=yes
1192         ;;
1193 hppa*-*-linux*)
1194         target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1195         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1196                  pa/pa32-regs.h pa/pa32-linux.h"
1197         tmake_file="${tmake_file} pa/t-linux"
1198         ;;
1199 hppa*-*-openbsd*)
1200         target_cpu_default="MASK_PA_11"
1201         tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1202                  pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1203         extra_options="${extra_options} openbsd.opt"
1204         gas=yes
1205         gnu_ld=yes
1206         ;;
1207 hppa[12]*-*-hpux10*)
1208         case ${target} in
1209         hppa1.1-*-* | hppa2*-*-*)
1210                 target_cpu_default="MASK_PA_11"
1211                 ;;
1212         esac
1213         tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1214                  pa/pa-hpux.h pa/pa-hpux10.h"
1215         extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1216         case ${target} in
1217         *-*-hpux10.[1-9]*)
1218                 tm_file="${tm_file} pa/pa-hpux1010.h"
1219                 extra_options="${extra_options} pa/pa-hpux1010.opt"
1220                 ;;
1221         esac
1222         use_gcc_stdint=provide
1223         tm_file="${tm_file} hpux-stdint.h"
1224         tmake_file="t-slibgcc"
1225         case ${enable_threads} in
1226           "")
1227             if test x$have_pthread_h = xyes ; then
1228               tmake_file="${tmake_file} pa/t-dce-thr"
1229             fi
1230             ;;
1231           yes | dce)
1232             tmake_file="${tmake_file} pa/t-dce-thr"
1233             ;;
1234         esac
1235         use_collect2=yes
1236         gas=yes
1237         if test "x$with_dwarf2" != x; then
1238                 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1239                 dwarf2=no
1240         fi
1241         ;;
1242 hppa*64*-*-hpux11*)
1243         target_cpu_default="MASK_PA_11|MASK_PA_20"
1244         if test x$gnu_ld = xyes
1245         then
1246                 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1247         fi
1248         tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1249                  pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1250                  pa/pa-hpux11.h"
1251         case ${target} in
1252         *-*-hpux11.[12]*)
1253                 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1254                 extra_options="${extra_options} pa/pa-hpux1111.opt"
1255                 ;;
1256         *-*-hpux11.[3-9]*)
1257                 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1258                 extra_options="${extra_options} pa/pa-hpux1131.opt"
1259                 ;;
1260         *)
1261                 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1262                 ;;
1263         esac
1264         extra_options="${extra_options} pa/pa-hpux.opt \
1265                        pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1266         tmake_file="t-slibgcc"
1267         case x${enable_threads} in
1268         x | xyes | xposix )
1269                 thread_file=posix
1270                 ;;
1271         esac
1272         gas=yes
1273         case ${target} in
1274           *-*-hpux11.[01]*)
1275                 use_gcc_stdint=provide
1276                 tm_file="${tm_file} hpux-stdint.h"
1277                 ;;
1278           *-*-hpux11.[23]*)
1279                 use_gcc_stdint=wrap
1280                 tm_file="${tm_file} hpux-stdint.h"
1281                 ;;
1282         esac
1283         ;;
1284 hppa[12]*-*-hpux11*)
1285         case ${target} in
1286         hppa1.1-*-* | hppa2*-*-*)
1287                 target_cpu_default="MASK_PA_11"
1288                 ;;
1289         esac
1290         tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1291                  pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1292         extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1293                        hpux11.opt"
1294         case ${target} in
1295         *-*-hpux11.[12]*)
1296                 tm_file="${tm_file} pa/pa-hpux1111.h"
1297                 extra_options="${extra_options} pa/pa-hpux1111.opt"
1298                 ;;
1299         *-*-hpux11.[3-9]*)
1300                 tm_file="${tm_file} pa/pa-hpux1131.h"
1301                 extra_options="${extra_options} pa/pa-hpux1131.opt"
1302                 ;;
1303         esac
1304         tmake_file="t-slibgcc"
1305         case x${enable_threads} in
1306         x | xyes | xposix )
1307                 thread_file=posix
1308                 ;;
1309         esac
1310         use_collect2=yes
1311         gas=yes
1312         case ${target} in
1313           *-*-hpux11.[01]*)
1314                 use_gcc_stdint=provide
1315                 tm_file="${tm_file} hpux-stdint.h"
1316                 ;;
1317           *-*-hpux11.[23]*)
1318                 use_gcc_stdint=wrap
1319                 tm_file="${tm_file} hpux-stdint.h"
1320                 ;;
1321         esac
1322         if test "x$with_dwarf2" != x; then
1323                 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1324                 dwarf2=no
1325         fi
1326         ;;
1327 i[34567]86-*-darwin*)
1328         need_64bit_isa=yes
1329         # Baseline choice for a machine that allows m64 support.
1330         with_cpu=${with_cpu:-core2}
1331         tmake_file="${tmake_file} t-slibgcc"
1332         ;;
1333 x86_64-*-darwin*)
1334         with_cpu=${with_cpu:-core2}
1335         tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1336         tm_file="${tm_file} ${cpu_type}/darwin64.h"
1337         ;;
1338 i[34567]86-*-elf*)
1339         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1340         ;;
1341 x86_64-*-elf*)
1342         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1343         ;;
1344 i[34567]86-*-rdos*)
1345     tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1346     ;;
1347 x86_64-*-rdos*)
1348     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"
1349     tmake_file="i386/t-i386elf t-svr4"
1350     ;;
1351 i[34567]86-*-dragonfly*)
1352         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1353         tmake_file="${tmake_file} i386/t-crtstuff"
1354         ;;
1355 x86_64-*-dragonfly*)
1356         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"
1357         tmake_file="${tmake_file} i386/t-crtstuff"
1358         ;;
1359 i[34567]86-*-freebsd*)
1360         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1361         ;;
1362 x86_64-*-freebsd*)
1363         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"
1364         ;;
1365 i[34567]86-*-netbsdelf*)
1366         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
1367         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1368         ;;
1369 x86_64-*-netbsd*)
1370         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"
1371         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1372         ;;
1373 i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
1374         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"
1375         extra_options="${extra_options} openbsd.opt"
1376         # needed to unconfuse gdb
1377         tmake_file="${tmake_file} t-openbsd i386/t-openbsd"
1378         # we need collect2 until our bug is fixed...
1379         use_collect2=yes
1380         ;;
1381 i[34567]86-*-openbsd*)
1382         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1383         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1384         extra_options="${extra_options} openbsd.opt"
1385         gas=yes
1386         gnu_ld=yes
1387         ;;
1388 x86_64-*-openbsd*)
1389         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1390         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1391         extra_options="${extra_options} openbsd.opt"
1392         gas=yes
1393         gnu_ld=yes
1394         ;;
1395 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1396                         # Intel 80386's running GNU/*
1397                         # with ELF format using glibc 2
1398         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1399         case ${target} in
1400         i[34567]86-*-linux*)
1401                 tm_file="${tm_file} linux.h linux-android.h"
1402                 extra_options="${extra_options} linux-android.opt"
1403                 # Assume modern glibc
1404                 default_gnu_indirect_function=yes
1405                 if test x$enable_targets = xall; then
1406                         tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1407                         tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1408                         tmake_file="${tmake_file} i386/t-linux64"
1409                         x86_multilibs="${with_multilib_list}"
1410                         if test "$x86_multilibs" = "default"; then
1411                                 x86_multilibs="m64,m32"
1412                         fi
1413                         x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1414                         for x86_multilib in ${x86_multilibs}; do
1415                                 case ${x86_multilib} in
1416                                 m32 | m64 | mx32)
1417                                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1418                                         ;;
1419                                 *)
1420                                         echo "--with-multilib-list=${x86_with_multilib} not supported."
1421                                         exit 1
1422                                 esac
1423                         done
1424                         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1425                         need_64bit_isa=yes
1426                         if test x$with_cpu = x; then
1427                                 if test x$with_cpu_64 = x; then
1428                                         with_cpu_64=generic
1429                                 fi
1430                         else
1431                                 case " $x86_cpus $x86_archs $x86_64_archs " in
1432                                 *" $with_cpu "*)
1433                                         ;;
1434                                 *)
1435                                         echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1436                                         echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1437                                         exit 1
1438                                         ;;
1439                                 esac
1440                         fi
1441                 else
1442                         tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1443                 fi
1444                 ;;
1445         i[34567]86-*-knetbsd*-gnu)
1446                 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h"
1447                 ;;
1448         i[34567]86-*-kfreebsd*-gnu)
1449                 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1450                 ;;
1451         i[34567]86-*-kopensolaris*-gnu)
1452                 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1453                 ;;
1454         i[34567]86-*-gnu*)
1455                 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1456                 ;;
1457         esac
1458         ;;
1459 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
1460         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1461                  i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1462         case ${target} in
1463         x86_64-*-linux*)
1464                 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1465                 extra_options="${extra_options} linux-android.opt"
1466                 # Assume modern glibc
1467                 default_gnu_indirect_function=yes
1468                 ;;
1469         x86_64-*-kfreebsd*-gnu)
1470                 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1471                 ;;
1472         x86_64-*-knetbsd*-gnu)
1473                 tm_file="${tm_file} knetbsd-gnu.h"
1474                 ;;
1475         esac
1476         tmake_file="${tmake_file} i386/t-linux64"
1477         x86_multilibs="${with_multilib_list}"
1478         if test "$x86_multilibs" = "default"; then
1479                 case ${with_abi} in
1480                 x32 | mx32)
1481                         x86_multilibs="mx32"
1482                         ;;
1483                 *)
1484                         x86_multilibs="m64,m32"
1485                         ;;
1486                 esac
1487         fi
1488         x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1489         for x86_multilib in ${x86_multilibs}; do
1490                 case ${x86_multilib} in
1491                 m32 | m64 | mx32)
1492                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1493                         ;;
1494                 *)
1495                         echo "--with-multilib-list=${x86_with_multilib} not supported."
1496                         exit 1
1497                 esac
1498         done
1499         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1500         ;;
1501 i[34567]86-pc-msdosdjgpp*)
1502         xm_file=i386/xm-djgpp.h
1503         tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1504         native_system_header_dir=/dev/env/DJDIR/include
1505         extra_options="${extra_options} i386/djgpp.opt"
1506         gnu_ld=yes
1507         gas=yes
1508         use_gcc_stdint=wrap
1509         ;;
1510 i[34567]86-*-lynxos*)
1511         xm_defines=POSIX
1512         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1513         tmake_file="${tmake_file} t-lynx"
1514         extra_options="${extra_options} lynx.opt"
1515         thread_file=lynx
1516         gnu_ld=yes
1517         gas=yes
1518         ;;
1519 i[34567]86-*-nto-qnx*)
1520         tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1521         extra_options="${extra_options} i386/nto.opt"
1522         gnu_ld=yes
1523         gas=yes
1524         ;;
1525 i[34567]86-*-rtems*)
1526         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"
1527         tmake_file="${tmake_file} i386/t-rtems"
1528         ;;
1529 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1530         # Set default arch_32 to pentium4, tune_32 to generic like the other
1531         # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1532         with_arch_32=${with_arch_32:-pentium4}
1533         with_tune_32=${with_tune_32:-generic}
1534         tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1535         tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1536         tmake_file="$tmake_file i386/t-sol2"
1537         need_64bit_isa=yes
1538         if test x$with_cpu = x; then
1539                 if test x$with_cpu_64 = x; then
1540                         with_cpu_64=generic
1541                 fi
1542         else
1543                 case " $x86_cpus $x86_archs $x86_64_archs " in
1544                 *" $with_cpu "*)
1545                         ;;
1546                 *)
1547                         echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1548                         echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1549                         exit 1
1550                         ;;
1551                 esac
1552         fi
1553         ;;
1554 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
1555         tm_file="${tm_file} i386/unix.h i386/att.h elfos.h vx-common.h"
1556         case ${target} in
1557           *-vxworksae*)
1558             tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1559             tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1560             ;;
1561           *)
1562             tm_file="${tm_file} vxworks.h i386/vxworks.h"
1563             tmake_file="${tmake_file} i386/t-vxworks"
1564             ;;
1565         esac
1566         ;;
1567 i[34567]86-*-cygwin*)
1568         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"
1569         xm_file=i386/xm-cygwin.h
1570         tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1571         target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1572         extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1573         extra_objs="winnt.o winnt-stubs.o"
1574         c_target_objs="${c_target_objs} msformat-c.o"
1575         cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1576         if test x$enable_threads = xyes; then
1577                 thread_file='posix'
1578         fi
1579         default_use_cxa_atexit=yes
1580         use_gcc_stdint=wrap
1581         ;;
1582 x86_64-*-cygwin*)
1583         need_64bit_isa=yes
1584         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"
1585         xm_file=i386/xm-cygwin.h
1586         tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1587         target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1588         extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1589         extra_objs="winnt.o winnt-stubs.o"
1590         c_target_objs="${c_target_objs} msformat-c.o"
1591         cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1592         if test x$enable_threads = xyes; then
1593                 thread_file='posix'
1594         fi
1595         default_use_cxa_atexit=yes
1596         use_gcc_stdint=wrap
1597         tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1598         ;;
1599 i[34567]86-*-mingw* | x86_64-*-mingw*)
1600         tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1601         xm_file=i386/xm-mingw32.h
1602         c_target_objs="${c_target_objs} winnt-c.o"
1603         cxx_target_objs="${cxx_target_objs} winnt-c.o"
1604         target_has_targetcm="yes"
1605         case ${target} in
1606                 x86_64-*-* | *-w64-*)
1607                         need_64bit_isa=yes
1608                         ;;
1609                 *)
1610                         ;;
1611         esac
1612         if test x$enable_threads = xposix ; then
1613                 tm_file="${tm_file} i386/mingw-pthread.h"
1614         fi
1615         tm_file="${tm_file} i386/mingw32.h"
1616         # This makes the logic if mingw's or the w64 feature set has to be used
1617         case ${target} in
1618                 *-w64-*)
1619                         user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1620                         user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1621                         tm_file="${tm_file} i386/mingw-w64.h"
1622                         if test x$enable_targets = xall; then
1623                                 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1624                                 if test x$with_cpu = x; then
1625                                         if test x$with_cpu_64 = x; then
1626                                                 with_cpu_64=generic
1627                                         fi
1628                                 else
1629                                         case " $x86_cpus $x86_archs $x86_64_archs " in
1630                                         *" $with_cpu "*)
1631                                                 ;;
1632                                         *)
1633                                                 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1634                                                 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1635                                                 exit 1
1636                                                 ;;
1637                                         esac
1638                                 fi
1639                         fi
1640                         ;;
1641                 *)
1642                         ;;
1643         esac
1644         tm_file="${tm_file} i386/mingw-stdint.h"
1645         tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1646         case ${target} in
1647                x86_64-w64-*)
1648                         tmake_file="${tmake_file} i386/t-mingw-w64"
1649                         ;;
1650                i[34567]86-w64-*)
1651                         tmake_file="${tmake_file} i386/t-mingw-w32"
1652                         ;;
1653         esac
1654         native_system_header_dir=/mingw/include
1655         target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1656         extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1657         case ${target} in
1658                 *-w64-*)
1659                         extra_options="${extra_options} i386/mingw-w64.opt"
1660                         ;;
1661                 *)
1662                         ;;
1663         esac
1664         extra_objs="winnt.o winnt-stubs.o"
1665         c_target_objs="${c_target_objs} msformat-c.o"
1666         cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1667         gas=yes
1668         gnu_ld=yes
1669         default_use_cxa_atexit=yes
1670         use_gcc_stdint=wrap
1671         case ${enable_threads} in
1672           "" | yes | win32)
1673             thread_file='win32'
1674             ;;
1675           posix)
1676             thread_file='posix'
1677             ;;
1678         esac
1679         case ${target} in
1680                 *mingw32crt*)
1681                         tm_file="${tm_file} i386/crtdll.h"
1682                         ;;
1683                 *mingw32msv* | *mingw*)
1684                         ;;
1685         esac
1686         ;;
1687 i[34567]86-*-interix[3-9]*)
1688         tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h"
1689         tmake_file="${tmake_file} i386/t-interix"
1690         extra_options="${extra_options} rpath.opt i386/interix.opt"
1691         extra_objs="winnt.o winnt-stubs.o"
1692         target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1693         if test x$enable_threads = xyes ; then
1694                 thread_file='posix'
1695         fi
1696         if test x$stabs = xyes ; then
1697                 tm_file="${tm_file} dbxcoff.h"
1698         fi
1699         ;;
1700 ia64*-*-elf*)
1701         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1702         tmake_file="ia64/t-ia64"
1703         target_cpu_default="0"
1704         if test x$gas = xyes
1705         then
1706                 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1707         fi
1708         if test x$gnu_ld = xyes
1709         then
1710                 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1711         fi
1712         ;;
1713 ia64*-*-freebsd*)
1714         tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1715         target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1716         tmake_file="${tmake_file} ia64/t-ia64"
1717         ;;
1718 ia64*-*-linux*)
1719         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1720         tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1721         target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1722         ;;
1723 ia64*-*-hpux*)
1724         tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1725         tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1726         target_cpu_default="MASK_GNU_AS"
1727         case x$enable_threads in
1728         x | xyes | xposix )
1729                 thread_file=posix
1730                 ;;
1731         esac
1732         use_collect2=no
1733         c_target_objs="ia64-c.o"
1734         cxx_target_objs="ia64-c.o"
1735         extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1736         use_gcc_stdint=wrap
1737         tm_file="${tm_file} hpux-stdint.h"
1738         case ${target} in
1739         *-*-hpux11.3*)
1740                 tm_file="${tm_file} ia64/hpux-unix2003.h"
1741                 ;;
1742         esac
1743         ;;
1744 ia64-hp-*vms*)
1745         tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1746         tmake_file="${tmake_file} ia64/t-ia64"
1747         target_cpu_default="0"
1748         if test x$gas = xyes
1749         then
1750                 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1751         fi
1752         extra_options="${extra_options} ia64/vms.opt"
1753         ;;
1754 iq2000*-*-elf*)
1755         tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1756         out_file=iq2000/iq2000.c
1757         md_file=iq2000/iq2000.md
1758         ;;
1759 lm32-*-elf*)
1760         tm_file="dbxelf.h elfos.h ${tm_file}"
1761         tmake_file="${tmake_file} lm32/t-lm32"
1762         ;;
1763 lm32-*-rtems*)
1764         tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1765         tmake_file="${tmake_file} lm32/t-lm32"
1766         tmake_file="${tmake_file} lm32/t-rtems"
1767          ;;
1768 lm32-*-uclinux*)
1769         tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1770         tmake_file="${tmake_file} lm32/t-lm32"
1771         ;;
1772 m32r-*-elf*)
1773         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1774         ;;
1775 m32rle-*-elf*)
1776         tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1777         ;;
1778 m32r-*-rtems*)
1779         tm_file="dbxelf.h elfos.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h"
1780         tmake_file="${tmake_file} m32r/t-m32r"
1781         ;;
1782 m32r-*-linux*)
1783         tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1784         tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1785         gnu_ld=yes
1786         if test x$enable_threads = xyes; then
1787                 thread_file='posix'
1788         fi
1789         ;;
1790 m32rle-*-linux*)
1791         tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1792         tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1793         gnu_ld=yes
1794         if test x$enable_threads = xyes; then
1795                 thread_file='posix'
1796         fi
1797         ;;
1798 m68k-*-elf* | fido-*-elf*)
1799         case ${target} in
1800         fido-*-elf*)
1801                 # Check that $with_cpu makes sense.
1802                 case $with_cpu in
1803                 "" | "fidoa")
1804                         ;;
1805                 *)
1806                         echo "Cannot accept --with-cpu=$with_cpu"
1807                         exit 1
1808                         ;;
1809                 esac
1810                 with_cpu=fidoa
1811                 ;;
1812         *)
1813                 default_m68k_cpu=68020
1814                 default_cf_cpu=5206
1815                 ;;
1816         esac
1817         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"
1818         tm_defines="${tm_defines} MOTOROLA=1"
1819         tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1820         # Add multilibs for targets other than fido.
1821         case ${target} in
1822         fido-*-elf*)
1823                 ;;
1824         *)
1825                 tmake_file="$tmake_file m68k/t-mlibs"
1826                 ;;
1827         esac
1828         ;;
1829 m68k*-*-netbsdelf*)
1830         default_m68k_cpu=68020
1831         default_cf_cpu=5475
1832         tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
1833         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1834         tm_defines="${tm_defines} MOTOROLA=1"
1835         ;;
1836 m68k*-*-openbsd*)
1837         default_m68k_cpu=68020
1838         default_cf_cpu=5475
1839         # needed to unconfuse gdb
1840         tm_defines="${tm_defines} OBSD_OLD_GAS"
1841         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1842         extra_options="${extra_options} openbsd.opt"
1843         tmake_file="t-openbsd m68k/t-openbsd"
1844         # we need collect2 until our bug is fixed...
1845         use_collect2=yes
1846         ;;
1847 m68k-*-uclinux*)                # Motorola m68k/ColdFire running uClinux
1848                                 # with uClibc, using the new GNU/Linux-style
1849                                 # ABI.
1850         default_m68k_cpu=68020
1851         default_cf_cpu=5206
1852         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"
1853         extra_options="${extra_options} m68k/uclinux.opt"
1854         tm_defines="${tm_defines} MOTOROLA=1"
1855         tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1856         ;;
1857 m68k-*-linux*)                  # Motorola m68k's running GNU/Linux
1858                                 # with ELF format using glibc 2
1859                                 # aka the GNU/Linux C library 6.
1860         default_m68k_cpu=68020
1861         default_cf_cpu=5475
1862         with_arch=${with_arch:-m68k}
1863         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
1864         extra_options="${extra_options} m68k/ieee.opt"
1865         tm_defines="${tm_defines} MOTOROLA=1"
1866         tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
1867         ;;
1868 m68k-*-rtems*)
1869         default_m68k_cpu=68020
1870         default_cf_cpu=5206
1871         tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
1872         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"
1873         tm_defines="${tm_defines} MOTOROLA=1"
1874         ;;
1875 mcore-*-elf)
1876         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
1877         tmake_file=mcore/t-mcore
1878         inhibit_libc=true
1879         ;;
1880 mep-*-*)
1881         tm_file="dbxelf.h elfos.h ${tm_file}"
1882         tmake_file=mep/t-mep
1883         c_target_objs="mep-pragma.o"
1884         cxx_target_objs="mep-pragma.o"
1885         if test -d "${srcdir}/../newlib/libc/include" &&
1886            test "x$with_headers" = x; then
1887                 with_headers=yes
1888         fi
1889         use_gcc_stdint=wrap
1890         ;;
1891 microblaze*-linux*)
1892         case $target in
1893                 microblazeel-*)
1894                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1895                         ;;
1896                 microblaze-*)
1897                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1898                         ;;
1899         esac
1900         tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
1901         tm_file="${tm_file} glibc-stdint.h"
1902         c_target_objs="${c_target_objs} microblaze-c.o"
1903         cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1904         tmake_file="${tmake_file} microblaze/t-microblaze"
1905         tmake_file="${tmake_file} microblaze/t-microblaze-linux"
1906         ;;
1907 microblaze*-*-rtems*)
1908         case $target in
1909                 microblazeel-*)
1910                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1911                         ;;
1912                 microblaze-*)
1913                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1914                         ;;
1915         esac
1916         tm_file="${tm_file} dbxelf.h"
1917         tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
1918         c_target_objs="${c_target_objs} microblaze-c.o"
1919         cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1920         tmake_file="${tmake_file} microblaze/t-microblaze"
1921         tmake_file="${tmake_file} microblaze/t-rtems"
1922         ;;
1923 microblaze*-*-elf)
1924         case $target in
1925                 microblazeel-*)
1926                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1927                         ;;
1928                 microblaze-*)
1929                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1930                         ;;
1931         esac
1932         tm_file="${tm_file} dbxelf.h newlib-stdint.h"
1933         c_target_objs="${c_target_objs} microblaze-c.o"
1934         cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1935         tmake_file="${tmake_file} microblaze/t-microblaze"
1936         ;;
1937 mips*-*-netbsd*)                        # NetBSD/mips, either endian.
1938         target_cpu_default="MASK_ABICALLS"
1939         tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
1940         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1941         ;;
1942 mips*-mti-linux*)
1943         tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h mips/mti-linux.h"
1944         extra_options="${extra_options} linux-android.opt"
1945         tmake_file="${tmake_file} mips/t-mti-linux"
1946         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
1947         gnu_ld=yes
1948         gas=yes
1949         ;;
1950 mips64*-*-linux* | mipsisa64*-*-linux*)
1951         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 mips/linux-common.h"
1952         extra_options="${extra_options} linux-android.opt"
1953         tmake_file="${tmake_file} mips/t-linux64"
1954         tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
1955         case ${target} in
1956                 mips64el-st-linux-gnu)
1957                         tm_file="${tm_file} mips/st.h"
1958                         tmake_file="${tmake_file} mips/t-st"
1959                         ;;
1960                 mips64octeon*-*-linux*)
1961                         tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
1962                         target_cpu_default=MASK_SOFT_FLOAT_ABI
1963                         ;;
1964                 mipsisa64r2*-*-linux*)
1965                         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
1966                         ;;
1967         esac
1968         gnu_ld=yes
1969         gas=yes
1970         ;;
1971 mips*-*-linux*)                         # Linux MIPS, either endian.
1972         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"
1973         extra_options="${extra_options} linux-android.opt"
1974         if test x$enable_targets = xall; then
1975                 tmake_file="${tmake_file} mips/t-linux64"
1976         fi
1977         tm_file="${tm_file} mips/linux-common.h"
1978         case ${target} in
1979         mipsisa32r2*)
1980                 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
1981                 ;;
1982         mipsisa32*)
1983                 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
1984         esac
1985         ;;
1986 mips*-mti-elf*)
1987         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
1988         tmake_file="mips/t-mti-elf"
1989         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
1990         ;;
1991 mips*-sde-elf*)
1992         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
1993         tmake_file="mips/t-sde"
1994         extra_options="${extra_options} mips/sde.opt"
1995         case "${with_newlib}" in
1996           yes)
1997             # newlib / libgloss.
1998             ;;
1999           *)
2000             # MIPS toolkit libraries.
2001             tm_file="$tm_file mips/sdemtk.h"
2002             tmake_file="$tmake_file mips/t-sdemtk"
2003             case ${enable_threads} in
2004               "" | yes | mipssde)
2005                 thread_file='mipssde'
2006                 ;;
2007             esac
2008             ;;
2009         esac
2010         case ${target} in
2011           mipsisa32r2*)
2012             tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2013             ;;
2014           mipsisa32*)
2015             tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2016             ;;
2017           mipsisa64r2*)
2018             tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2019             ;;
2020           mipsisa64*)
2021             tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2022             ;;
2023         esac
2024         ;;
2025 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2026 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2027 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2028 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*)
2029         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2030         tmake_file="mips/t-isa3264"
2031         case ${target} in
2032           mipsisa32r2*)
2033             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2034             ;;
2035           mipsisa32*)
2036             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2037             ;;
2038           mipsisa64r2*)
2039             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2040             ;;
2041           mipsisa64*)
2042             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2043             ;;
2044         esac
2045         case ${target} in
2046           mipsisa32*-*-elfoabi*)
2047             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2048             tm_file="${tm_file} mips/elfoabi.h"
2049             ;;
2050           mipsisa64*-*-elfoabi*)
2051             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2052             tm_file="${tm_file} mips/elfoabi.h"
2053             ;;
2054           *-*-elf*)
2055             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2056             ;;
2057         esac
2058         ;;
2059 mipsisa64sr71k-*-elf*)
2060         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2061         tmake_file=mips/t-sr71k
2062         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2063         ;;
2064 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2065         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2066         tmake_file="mips/t-elf mips/t-sb1"
2067         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2068         ;;
2069 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2070         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2071         tmake_file="mips/t-elf"
2072         ;;
2073 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2074         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2075         tmake_file="mips/t-elf"
2076         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2077         ;;
2078 mips64-*-elf* | mips64el-*-elf*)
2079         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2080         tmake_file="mips/t-elf"
2081         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2082         ;;
2083 mips64vr-*-elf* | mips64vrel-*-elf*)
2084         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2085         tmake_file=mips/t-vr
2086         tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2087         ;;
2088 mips64orion-*-elf* | mips64orionel-*-elf*)
2089         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2090         tmake_file="mips/t-elf"
2091         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2092         ;;
2093 mips*-*-rtems*)
2094         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2095         tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2096         ;;
2097 mips-wrs-vxworks)
2098         tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2099         tmake_file="${tmake_file} mips/t-vxworks"
2100         ;;
2101 mipstx39-*-elf* | mipstx39el-*-elf*)
2102         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2103         tmake_file="mips/t-r3900"
2104         ;;
2105 mmix-knuth-mmixware)
2106         tm_file="${tm_file} newlib-stdint.h"
2107         use_gcc_stdint=wrap
2108         ;;
2109 mn10300-*-*)
2110         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2111         if test x$stabs = xyes
2112         then
2113                 tm_file="${tm_file} dbx.h"
2114         fi
2115         use_collect2=no
2116         use_gcc_stdint=wrap
2117         ;;
2118 msp430*-*-*)
2119         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2120         c_target_objs="msp430-c.o"
2121         cxx_target_objs="msp430-c.o"
2122         tmake_file="${tmake_file} msp430/t-msp430"
2123         ;;
2124 nds32le-*-*)
2125         target_cpu_default="0"
2126         tm_defines="${tm_defines}"
2127         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2128         tmake_file="nds32/t-nds32 nds32/t-mlibs"
2129         ;;
2130 nds32be-*-*)
2131         target_cpu_default="0|MASK_BIG_ENDIAN"
2132         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2133         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2134         tmake_file="nds32/t-nds32 nds32/t-mlibs"
2135         ;;
2136 nios2-*-*)
2137         tm_file="elfos.h ${tm_file}"
2138         tmake_file="${tmake_file} nios2/t-nios2"
2139         case ${target} in
2140         nios2-*-linux*)
2141                 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2142                 ;;
2143         nios2-*-elf*)
2144                 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2145                 extra_options="${extra_options} nios2/elf.opt"
2146                 ;;
2147         nios2-*-rtems*)
2148                 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2149                 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2150                 ;;
2151         esac
2152         ;;
2153 pdp11-*-*)
2154         tm_file="${tm_file} newlib-stdint.h"
2155         use_gcc_stdint=wrap
2156         ;;
2157 # port not yet contributed
2158 #powerpc-*-openbsd*)
2159 #       tmake_file="${tmake_file} rs6000/t-fprules"
2160 #       extra_headers=
2161 #       ;;
2162 powerpc-*-darwin*)
2163         extra_options="${extra_options} rs6000/darwin.opt"
2164         case ${target} in
2165           *-darwin1[0-9]* | *-darwin[8-9]*)
2166             tmake_file="${tmake_file} rs6000/t-darwin8"
2167             tm_file="${tm_file} rs6000/darwin8.h"
2168             ;;
2169           *-darwin7*)
2170             tm_file="${tm_file} rs6000/darwin7.h"
2171             ;;
2172           *-darwin[0-6]*)
2173             ;;
2174         esac
2175         tmake_file="${tmake_file} t-slibgcc"
2176         extra_headers=altivec.h
2177         ;;
2178 powerpc64-*-darwin*)
2179         extra_options="${extra_options} ${cpu_type}/darwin.opt"
2180         tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2181         tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2182         extra_headers=altivec.h
2183         ;;
2184 powerpc*-*-freebsd*)
2185         tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2186         extra_options="${extra_options} rs6000/sysv4.opt"
2187         tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2188         case ${target} in
2189              powerpc64*)
2190                 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2191                 tmake_file="${tmake_file} rs6000/t-freebsd64"
2192                 extra_options="${extra_options} rs6000/linux64.opt"
2193                 ;;
2194              *)
2195                 tm_file="${tm_file} rs6000/freebsd.h"
2196                 ;;
2197         esac
2198         ;;
2199 powerpc-*-netbsd*)
2200         tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2201         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2202         tmake_file="${tmake_file} rs6000/t-netbsd"
2203         extra_options="${extra_options} rs6000/sysv4.opt"
2204         ;;
2205 powerpc-*-eabispe*)
2206         tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabispe.h"
2207         extra_options="${extra_options} rs6000/sysv4.opt"
2208         tmake_file="rs6000/t-spe rs6000/t-ppccomm"
2209         use_gcc_stdint=wrap
2210         ;;
2211 powerpc-*-eabisimaltivec*)
2212         tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h rs6000/eabialtivec.h"
2213         extra_options="${extra_options} rs6000/sysv4.opt"
2214         tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2215         use_gcc_stdint=wrap
2216         ;;
2217 powerpc-*-eabisim*)
2218         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"
2219         extra_options="${extra_options} rs6000/sysv4.opt"
2220         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2221         use_gcc_stdint=wrap
2222         ;;
2223 powerpc-*-elf*)
2224         tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2225         extra_options="${extra_options} rs6000/sysv4.opt"
2226         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2227         ;;
2228 powerpc-*-eabialtivec*)
2229         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"
2230         extra_options="${extra_options} rs6000/sysv4.opt"
2231         tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2232         use_gcc_stdint=wrap
2233         ;;
2234 powerpc-xilinx-eabi*)
2235         tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/singlefp.h rs6000/xfpu.h rs6000/xilinx.h"
2236         extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
2237         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2238         use_gcc_stdint=wrap
2239         ;;
2240 powerpc-*-eabi*)
2241         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"
2242         extra_options="${extra_options} rs6000/sysv4.opt"
2243         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2244         use_gcc_stdint=wrap
2245         ;;
2246 powerpc-*-rtems*)
2247         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"
2248         extra_options="${extra_options} rs6000/sysv4.opt"
2249         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2250         ;;
2251 powerpc*-*-linux*)
2252         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2253         extra_options="${extra_options} rs6000/sysv4.opt"
2254         tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2255         extra_objs="$extra_objs rs6000-linux.o"
2256         case ${target} in
2257             powerpc*le-*-*)
2258                 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2259         esac
2260         maybe_biarch=yes
2261         case ${target} in
2262             powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
2263                 echo "*** Configuration ${target} not supported" 1>&2
2264                 exit 1
2265                 ;;
2266             powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
2267                 maybe_biarch=
2268                 ;;
2269             powerpc64*-*-linux*)
2270                 test x$with_cpu != x || cpu_is_64bit=yes
2271                 maybe_biarch=always
2272                 ;;
2273         esac
2274         case ${maybe_biarch}:${enable_targets}:${cpu_is_64bit} in
2275             always:* | yes:*powerpc64* | yes:all:* | yes:*:yes)
2276                 if test x$cpu_is_64bit = xyes; then
2277                     tm_file="${tm_file} rs6000/default64.h"
2278                 fi
2279                 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2280                 tmake_file="$tmake_file rs6000/t-linux64"
2281                 case ${target} in
2282                     powerpc*le-*-*)
2283                         tmake_file="$tmake_file rs6000/t-linux64le"
2284                         case ${enable_targets} in
2285                             all | *powerpc64-* | *powerpc-*)
2286                                 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2287                         esac ;;
2288                     *)
2289                         case ${enable_targets} in
2290                             all | *powerpc64le-* | *powerpcle-*)
2291                                 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2292                         esac ;;
2293                 esac
2294                 extra_options="${extra_options} rs6000/linux64.opt"
2295                 ;;
2296             *)
2297                 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2298                 tmake_file="$tmake_file rs6000/t-linux"
2299                 ;;
2300         esac
2301         case ${target} in
2302             powerpc*-*-linux*ppc476*)
2303                 tm_file="${tm_file} rs6000/476.h"
2304                 extra_options="${extra_options} rs6000/476.opt" ;;
2305             powerpc*-*-linux*altivec*)
2306                 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2307             powerpc*-*-linux*spe*)
2308                 tm_file="${tm_file} rs6000/linuxspe.h rs6000/e500.h" ;;
2309             powerpc*-*-linux*paired*)
2310                 tm_file="${tm_file} rs6000/750cl.h" ;;
2311         esac
2312         if test x${enable_secureplt} = xyes; then
2313                 tm_file="rs6000/secureplt.h ${tm_file}"
2314         fi
2315         ;;
2316 powerpc-wrs-vxworks|powerpc-wrs-vxworksae|powerpc-wrs-vxworksmils)
2317         tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2318         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2319         extra_options="${extra_options} rs6000/sysv4.opt"
2320         extra_headers=ppc-asm.h
2321         case ${target} in
2322           *-vxworksmils*)
2323             tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksmils.h"
2324             tmake_file="${tmake_file} rs6000/t-vxworksmils"
2325             ;;
2326           *-vxworksae*)
2327             tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h"
2328             tmake_file="${tmake_file} rs6000/t-vxworksae"
2329             ;;
2330           *-vxworks*)
2331             tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h"
2332             ;;
2333         esac
2334         ;;
2335 powerpc-*-lynxos*)
2336         xm_defines=POSIX
2337         tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2338         tmake_file="t-lynx rs6000/t-lynx"
2339         extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2340         thread_file=lynx
2341         gnu_ld=yes
2342         gas=yes
2343         ;;
2344 powerpcle-*-elf*)
2345         tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2346         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2347         extra_options="${extra_options} rs6000/sysv4.opt"
2348         ;;
2349 powerpcle-*-eabisim*)
2350         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"
2351         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2352         extra_options="${extra_options} rs6000/sysv4.opt"
2353         use_gcc_stdint=wrap
2354         ;;
2355 powerpcle-*-eabi*)
2356         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"
2357         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2358         extra_options="${extra_options} rs6000/sysv4.opt"
2359         use_gcc_stdint=wrap
2360         ;;
2361 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2362         tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2363         tmake_file="rs6000/t-aix43 t-slibgcc"
2364         extra_options="${extra_options} rs6000/aix64.opt"
2365         use_collect2=yes
2366         thread_file='aix'
2367         use_gcc_stdint=provide
2368         extra_headers=
2369         ;;
2370 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2371         tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2372         extra_options="${extra_options} rs6000/aix64.opt"
2373         tmake_file="rs6000/t-aix43 t-slibgcc"
2374         use_collect2=yes
2375         thread_file='aix'
2376         use_gcc_stdint=wrap
2377         extra_headers=
2378         ;;
2379 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2380         tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2381         tmake_file="rs6000/t-aix52 t-slibgcc"
2382         extra_options="${extra_options} rs6000/aix64.opt"
2383         use_collect2=yes
2384         thread_file='aix'
2385         use_gcc_stdint=wrap
2386         extra_headers=
2387         ;;
2388 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2389         tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2390         tmake_file="rs6000/t-aix52 t-slibgcc"
2391         extra_options="${extra_options} rs6000/aix64.opt"
2392         use_collect2=yes
2393         thread_file='aix'
2394         use_gcc_stdint=wrap
2395         extra_headers=altivec.h
2396         ;;
2397 rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
2398         tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2399         tmake_file="rs6000/t-aix52 t-slibgcc"
2400         extra_options="${extra_options} rs6000/aix64.opt"
2401         use_collect2=yes
2402         thread_file='aix'
2403         use_gcc_stdint=wrap
2404         extra_headers=altivec.h
2405         ;;
2406 rl78-*-elf*)
2407         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2408         target_has_targetm_common=no
2409         c_target_objs="rl78-c.o"
2410         cxx_target_objs="rl78-c.o"
2411         tmake_file="${tmake_file} rl78/t-rl78"
2412         ;;
2413 rx-*-elf*)
2414         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2415         tmake_file="${tmake_file} rx/t-rx"
2416         ;;
2417 s390-*-linux*)
2418         default_gnu_indirect_function=yes
2419         tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2420         if test x$enable_targets = xall; then
2421                 tmake_file="${tmake_file} s390/t-linux64"
2422         fi
2423         ;;
2424 s390x-*-linux*)
2425         default_gnu_indirect_function=yes
2426         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2427         tm_p_file="linux-protos.h s390/s390-protos.h"
2428         md_file=s390/s390.md
2429         extra_modes=s390/s390-modes.def
2430         out_file=s390/s390.c
2431         tmake_file="${tmake_file} s390/t-linux64"
2432         ;;
2433 s390x-ibm-tpf*)
2434         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2435         tm_p_file=s390/s390-protos.h
2436         md_file=s390/s390.md
2437         extra_modes=s390/s390-modes.def
2438         out_file=s390/s390.c
2439         thread_file='tpf'
2440         extra_options="${extra_options} s390/tpf.opt"
2441         ;;
2442 sh-*-elf* | sh[12346l]*-*-elf* | \
2443   sh-*-linux* | sh[2346lbe]*-*-linux* | \
2444   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
2445   sh64-*-netbsd* | sh64l*-*-netbsd*)
2446         tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2447         if test x${with_endian} = x; then
2448                 case ${target} in
2449                 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2450                 shbe-*-* | sheb-*-*)               with_endian=big,little ;;
2451                 sh[1234]l* | sh[34]*-*-linux*)     with_endian=little ;;
2452                 shl* | sh64l* | sh*-*-linux* | \
2453                   sh5l* | sh-superh-elf)           with_endian=little,big ;;
2454                 sh[1234]*-*-*)                     with_endian=big ;;
2455                 *)                                 with_endian=big,little ;;
2456                 esac
2457         fi
2458         # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2459         #  First word : the default endian.
2460         #  Second word: the secondary endian (optional).
2461         case ${with_endian} in
2462         big)            TM_ENDIAN_CONFIG=mb ;;
2463         little)         TM_ENDIAN_CONFIG=ml ;;
2464         big,little)     TM_ENDIAN_CONFIG="mb ml" ;;
2465         little,big)     TM_ENDIAN_CONFIG="ml mb" ;;
2466         *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
2467         esac
2468         case ${with_endian} in
2469         little*)        tm_file="sh/little.h ${tm_file}" ;;
2470         esac
2471         tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2472         case ${target} in
2473         sh*-*-linux*)   tmake_file="${tmake_file} sh/t-linux"
2474                         tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2475         sh*-*-netbsd*)
2476                         tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h"
2477                         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2478
2479                         ;;
2480         sh*-superh-elf) if test x$with_libgloss != xno; then
2481                                 with_libgloss=yes
2482                                 tm_file="${tm_file} sh/newlib.h"
2483                         fi
2484                         tm_file="${tm_file} sh/embed-elf.h"
2485                         tm_file="${tm_file} sh/superh.h"
2486                         extra_options="${extra_options} sh/superh.opt" ;;
2487         *)              if test x$with_newlib = xyes \
2488                            && test x$with_libgloss = xyes; then
2489                                 tm_file="${tm_file} sh/newlib.h"
2490                         fi
2491                         tm_file="${tm_file} sh/embed-elf.h" ;;
2492         esac
2493         case ${target} in
2494         sh5*-*-netbsd*)
2495                 # SHmedia, 32-bit ABI
2496                 tmake_file="${tmake_file} sh/t-sh64"
2497                 ;;
2498         sh64*-netbsd*)
2499                 # SHmedia, 64-bit ABI
2500                 tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5-64"
2501                 ;;
2502         *-*-netbsd)
2503                 ;;
2504         sh64*-*-linux*)
2505                 tmake_file="${tmake_file} sh/t-sh64"
2506                 tm_file="${tm_file} sh/sh64.h"
2507                 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2508                 ;;
2509         sh64*)
2510                 tmake_file="${tmake_file} sh/t-sh64"
2511                 tm_file="${tm_file} sh/sh64.h"
2512                 if test x$with_newlib = xyes; then
2513                         tm_file="${tm_file} newlib-stdint.h"
2514                 fi
2515                 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2516                 ;;
2517         *-*-elf*)
2518                 tm_file="${tm_file} newlib-stdint.h"
2519                 ;;
2520         esac
2521         # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2522         case `echo ${target} | sed 's/e[lb]-/-/'` in
2523         sh64*-*-netbsd*)        sh_cpu_target=sh5-64media ;;
2524         sh64* | sh5*-*-netbsd*) sh_cpu_target=sh5-32media ;;
2525         sh4a_single_only*)      sh_cpu_target=sh4a-single-only ;;
2526         sh4a_single*)           sh_cpu_target=sh4a-single ;;
2527         sh4a_nofpu*)            sh_cpu_target=sh4a-nofpu ;;
2528         sh4al)                  sh_cpu_target=sh4al ;;
2529         sh4a*)                  sh_cpu_target=sh4a ;;
2530         sh4_single_only*)       sh_cpu_target=sh4-single-only ;;
2531         sh4_single*)            sh_cpu_target=sh4-single ;;
2532         sh4_nofpu*)             sh_cpu_target=sh4-nofpu ;;
2533         sh4* | sh-superh-*)     sh_cpu_target=sh4 ;;
2534         sh3e*)                  sh_cpu_target=sh3e ;;
2535         sh*-*-netbsd* | sh3*)   sh_cpu_target=sh3 ;;
2536         sh2a_single_only*)      sh_cpu_target=sh2a-single-only ;;
2537         sh2a_single*)           sh_cpu_target=sh2a-single ;;
2538         sh2a_nofpu*)            sh_cpu_target=sh2a-nofpu ;;
2539         sh2a*)                  sh_cpu_target=sh2a ;;
2540         sh2e*)                  sh_cpu_target=sh2e ;;
2541         sh2*)                   sh_cpu_target=sh2 ;;
2542         *)                      sh_cpu_target=sh1 ;;
2543         esac
2544         # did the user say --without-fp ?
2545         if test x$with_fp = xno; then
2546                 case ${sh_cpu_target} in
2547                 sh5-*media)     sh_cpu_target=${sh_cpu_target}-nofpu ;;
2548                 sh4al | sh1)    ;;
2549                 sh4a* )         sh_cpu_target=sh4a-nofpu ;;
2550                 sh4*)           sh_cpu_target=sh4-nofpu ;;
2551                 sh3*)           sh_cpu_target=sh3 ;;
2552                 sh2a*)          sh_cpu_target=sh2a-nofpu ;;
2553                 sh2*)           sh_cpu_target=sh2 ;;
2554                 *)      echo --without-fp not available for $target: ignored
2555                 esac
2556                 tm_defines="$tm_defines STRICT_NOFPU=1"
2557         fi
2558         sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2559         case $sh_cpu_default in
2560         sh5-64media-nofpu | sh5-64media | \
2561           sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
2562           sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2563           sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2564           sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2565           sh3e | sh3 | sh2e | sh2 | sh1) ;;
2566         "")     sh_cpu_default=${sh_cpu_target} ;;
2567         *)      echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2568         esac
2569         sh_multilibs=${with_multilib_list}
2570         if test "$sh_multilibs" = "default" ; then
2571                 case ${target} in
2572                 sh64-superh-linux* | \
2573                 sh[1234]*)      sh_multilibs=${sh_cpu_target} ;;
2574                 sh64* | sh5*)   sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
2575                 sh-superh-*)    sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2576                 sh*-*-linux*)   sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2577                 sh*-*-netbsd*)  sh_multilibs=m3,m3e,m4 ;;
2578                 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2579                 esac
2580                 if test x$with_fp = xno; then
2581                         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`"
2582                 fi
2583         fi
2584         target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2585         tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2586         tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2587         sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2588         for sh_multilib in ${sh_multilibs}; do
2589                 case ${sh_multilib} in
2590                 m1 | m2 | m2e | m3 | m3e | \
2591                 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2592                 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2593                 m2a | m2a-single | m2a-single-only | m2a-nofpu | \
2594                 m5-64media | m5-64media-nofpu | \
2595                 m5-32media | m5-32media-nofpu | \
2596                 m5-compact | m5-compact-nofpu)
2597                         # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2598                         # It is passed to MULTIILIB_OPTIONS verbatim.
2599                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2600                         tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2601                         ;;
2602                 \!*)    # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2603                         # It is passed the MULTILIB_EXCEPTIONS verbatim.
2604                         TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2605                 *)
2606                         echo "with_multilib_list=${sh_multilib} not supported."
2607                         exit 1
2608                         ;;
2609                 esac
2610         done
2611         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2612         if test x${enable_incomplete_targets} = xyes ; then
2613                 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"
2614         fi
2615         tm_file="$tm_file ./sysroot-suffix.h"
2616         tmake_file="$tmake_file t-sysroot-suffix"
2617         ;;
2618 sh-*-rtems*)
2619         tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2620         tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2621         ;;
2622 sh-wrs-vxworks)
2623         tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2624         tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2625         ;;
2626 sparc-*-elf*)
2627         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2628         case ${target} in
2629             *-leon-*)
2630                 tmake_file="sparc/t-sparc sparc/t-leon"
2631                 ;;
2632             *-leon[3-9]*)
2633                 tmake_file="sparc/t-sparc sparc/t-leon3"
2634                 ;;
2635             *)
2636                 tmake_file="sparc/t-sparc sparc/t-elf"
2637                 ;;
2638         esac
2639         ;;
2640 sparc-*-rtems*)
2641         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2642         tmake_file="${tmake_file} sparc/t-sparc sparc/t-elf sparc/t-rtems"
2643         ;;
2644 sparc-*-linux*)
2645         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2646         extra_options="${extra_options} sparc/long-double-switch.opt"
2647         case ${target} in
2648             *-leon-*)
2649                 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2650                 ;;
2651             *-leon[3-9]*)
2652                 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2653                 ;;
2654             *)
2655                 tmake_file="${tmake_file} sparc/t-sparc"
2656                 ;;
2657         esac
2658         if test x$enable_targets = xall; then
2659                 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2660                 tmake_file="${tmake_file} sparc/t-linux64"
2661         else
2662                 tm_file="${tm_file} sparc/linux.h"
2663                 tmake_file="${tmake_file} sparc/t-linux"
2664         fi
2665         ;;
2666 sparc-*-netbsdelf*)
2667         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2668         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2669         extra_options="${extra_options} sparc/long-double-switch.opt"
2670         tmake_file="${tmake_file} sparc/t-sparc"
2671         ;;
2672 sparc*-*-solaris2*)
2673         tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2674         case ${target} in
2675             sparc64-*-* | sparcv9-*-*)
2676                 tm_file="sparc/default-64.h ${tm_file}"
2677                 ;;
2678             *)
2679                 test x$with_cpu != x || with_cpu=v9
2680                 ;;
2681         esac
2682         tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2683         ;;
2684 sparc-wrs-vxworks)
2685         tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2686         tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2687         ;;
2688 sparc64-*-elf*)
2689         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2690         extra_options="${extra_options}"
2691         tmake_file="${tmake_file} sparc/t-sparc"
2692         ;;
2693 sparc64-*-rtems*)
2694         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2695         extra_options="${extra_options}"
2696         tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2697         ;;
2698 sparc64-*-linux*)
2699         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"
2700         extra_options="${extra_options} sparc/long-double-switch.opt"
2701         tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2702         ;;
2703 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2704         tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2705         extra_options="${extra_options} sparc/long-double-switch.opt"
2706         case "x$with_cpu" in
2707                 xultrasparc) ;;
2708                 x) with_cpu=ultrasparc ;;
2709                 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2710         esac
2711         tmake_file="${tmake_file} sparc/t-sparc"
2712         ;;
2713 sparc64-*-netbsd*)
2714         tm_file="sparc/biarch64.h ${tm_file}"
2715         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2716         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2717         extra_options="${extra_options} sparc/long-double-switch.opt"
2718         tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2719         ;;
2720 sparc64-*-openbsd*)
2721         tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2722         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2723         extra_options="${extra_options} openbsd.opt"
2724         extra_options="${extra_options}"
2725         gas=yes gnu_ld=yes
2726         with_cpu=ultrasparc
2727         tmake_file="${tmake_file} sparc/t-sparc"
2728         ;;
2729 spu-*-elf*)
2730         tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2731         tmake_file="spu/t-spu-elf"
2732         native_system_header_dir=/include
2733         extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2734         extra_modes=spu/spu-modes.def
2735         c_target_objs="${c_target_objs} spu-c.o"
2736         cxx_target_objs="${cxx_target_objs} spu-c.o"
2737         ;;
2738 tic6x-*-elf)
2739         tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
2740         tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
2741         tmake_file="c6x/t-c6x c6x/t-c6x-elf"
2742         use_collect2=no
2743         ;;
2744 tic6x-*-uclinux)
2745         tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
2746         tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
2747         tm_file="${tm_file} ./sysroot-suffix.h"
2748         tmake_file="t-sysroot-suffix t-slibgcc"
2749         tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
2750         use_collect2=no
2751         ;;
2752 tilegx*-*-linux*)
2753         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
2754         tmake_file="${tmake_file} tilegx/t-tilegx"
2755         extra_objs="${extra_objs} mul-tables.o"
2756         c_target_objs="${c_target_objs} tilegx-c.o"
2757         cxx_target_objs="${cxx_target_objs} tilegx-c.o"
2758         extra_headers="feedback.h"
2759         case $target in
2760         tilegxbe-*)
2761                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2762                 ;;
2763         esac
2764         ;;
2765 tilepro*-*-linux*)
2766         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
2767         tmake_file="${tmake_file} tilepro/t-tilepro"
2768         extra_objs="${extra_objs} mul-tables.o"
2769         c_target_objs="${c_target_objs} tilepro-c.o"
2770         cxx_target_objs="${cxx_target_objs} tilepro-c.o"
2771         extra_headers="feedback.h"
2772         ;;
2773 v850-*-rtems*)
2774         target_cpu_default="TARGET_CPU_generic"
2775         tm_file="dbxelf.h elfos.h v850/v850.h"
2776         tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
2777         tmake_file="${tmake_file} v850/t-v850"
2778         tmake_file="${tmake_file} v850/t-rtems"
2779         use_collect2=no
2780         c_target_objs="v850-c.o"
2781         cxx_target_objs="v850-c.o"
2782         ;;
2783 v850*-*-*)
2784         case ${target} in
2785         v850e3v5-*-*)
2786                 target_cpu_default="TARGET_CPU_v850e3v5"
2787                 ;;
2788         v850e2v3-*-*)
2789                 target_cpu_default="TARGET_CPU_v850e2v3"
2790                 ;;
2791         v850e2-*-*)
2792                 target_cpu_default="TARGET_CPU_v850e2"
2793                 ;;
2794         v850e1-*-* | v850es-*-*)
2795                 target_cpu_default="TARGET_CPU_v850e1"
2796                 ;;
2797         v850e-*-*)
2798                 target_cpu_default="TARGET_CPU_v850e"
2799                 ;;
2800         v850-*-*)
2801                 target_cpu_default="TARGET_CPU_generic"
2802                 ;;
2803         esac
2804         tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
2805         if test x$stabs = xyes
2806         then
2807                 tm_file="${tm_file} dbx.h"
2808         fi
2809         use_collect2=no
2810         c_target_objs="v850-c.o"
2811         cxx_target_objs="v850-c.o"
2812         use_gcc_stdint=wrap
2813         ;;
2814 vax-*-linux*)
2815         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
2816         extra_options="${extra_options} vax/elf.opt"
2817         ;;
2818 vax-*-netbsdelf*)
2819         tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
2820         extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
2821         ;;
2822 vax-*-openbsd*)
2823         tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-pthread.h vax/openbsd.h"
2824         extra_options="${extra_options} openbsd.opt"
2825         use_collect2=yes
2826         ;;
2827 xstormy16-*-elf)
2828         # For historical reasons, the target files omit the 'x'.
2829         tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
2830         tm_p_file=stormy16/stormy16-protos.h
2831         md_file=stormy16/stormy16.md
2832         out_file=stormy16/stormy16.c
2833         extra_options=stormy16/stormy16.opt
2834         tmake_file="stormy16/t-stormy16"
2835         ;;
2836 xtensa*-*-elf*)
2837         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
2838         extra_options="${extra_options} xtensa/elf.opt"
2839         ;;
2840 xtensa*-*-linux*)
2841         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
2842         tmake_file="${tmake_file} xtensa/t-xtensa"
2843         ;;
2844 am33_2.0-*-linux*)
2845         tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
2846         gas=yes gnu_ld=yes
2847         use_collect2=no
2848         ;;
2849 m32c-*-rtems*)
2850         tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
2851         c_target_objs="m32c-pragma.o"
2852         cxx_target_objs="m32c-pragma.o"
2853         ;;
2854 m32c-*-elf*)
2855         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2856         c_target_objs="m32c-pragma.o"
2857         cxx_target_objs="m32c-pragma.o"
2858         ;;
2859 *)
2860         echo "*** Configuration ${target} not supported" 1>&2
2861         exit 1
2862         ;;
2863 esac
2864
2865 case ${target} in
2866 i[34567]86-*-linux* | x86_64-*-linux*)
2867         tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
2868         ;;
2869 i[34567]86-*-* | x86_64-*-*)
2870         tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
2871         ;;
2872 powerpc*-*-* | rs6000-*-*)
2873         tm_file="${tm_file} rs6000/option-defaults.h"
2874 esac
2875
2876 if [ "$target_has_targetcm" = "no" ]; then
2877   c_target_objs="$c_target_objs default-c.o"
2878   cxx_target_objs="$cxx_target_objs default-c.o"
2879 fi
2880
2881 if [ "$common_out_file" = "" ]; then
2882   if [ "$target_has_targetm_common" = "yes" ]; then
2883     common_out_file="$cpu_type/$cpu_type-common.c"
2884   else
2885     common_out_file="default-common.c"
2886   fi
2887 fi
2888
2889 # Support for --with-cpu and related options (and a few unrelated options,
2890 # too).
2891 case ${with_cpu} in
2892   yes | no)
2893     echo "--with-cpu must be passed a value" 1>&2
2894     exit 1
2895     ;;
2896 esac
2897
2898 # Set arch and cpu from ${target} and ${target_noncanonical}.  Set cpu
2899 # to generic if there is no processor scheduler model for the target.
2900 arch=
2901 cpu=
2902 arch_without_sse2=no
2903 arch_without_64bit=no
2904 case ${target} in
2905   i386-*-freebsd*)
2906     if test $fbsd_major -ge 6; then
2907       arch=i486
2908     else
2909       arch=i386
2910     fi
2911     cpu=generic
2912     arch_without_sse2=yes
2913     arch_without_64bit=yes
2914     ;;
2915   i386-*-*)
2916     arch=i386
2917     cpu=i386
2918     arch_without_sse2=yes
2919     arch_without_64bit=yes
2920     ;;
2921   i486-*-*)
2922     arch=i486
2923     cpu=i486
2924     arch_without_sse2=yes
2925     arch_without_64bit=yes
2926     ;;
2927   i586-*-*)
2928     arch_without_sse2=yes
2929     arch_without_64bit=yes
2930     case ${target_noncanonical} in
2931       k6_2-*)
2932         arch=k6-2
2933         cpu=k6-2
2934         ;;
2935       k6_3-*)
2936         arch=k6-3
2937         cpu=k6-3
2938         ;;
2939       k6-*)
2940         arch=k6
2941         cpu=k6
2942         ;;
2943       pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
2944         arch=pentium-mmx
2945         cpu=pentium-mmx
2946         ;;
2947       *)
2948         arch=pentium
2949         cpu=pentium
2950         ;;
2951     esac
2952     ;;
2953   i686-*-* | i786-*-*)
2954     case ${target_noncanonical} in
2955       bdver4-*)
2956         arch=bdver4
2957         cpu=bdver4
2958         ;;
2959       bdver3-*)
2960         arch=bdver3
2961         cpu=bdver3
2962         ;;
2963       bdver2-*)
2964         arch=bdver2
2965         cpu=bdver2
2966         ;;
2967       bdver1-*)
2968         arch=bdver1
2969         cpu=bdver1
2970         ;;
2971       btver1-*)
2972         arch=btver1
2973         cpu=btver1
2974         ;;
2975       btver2-*)
2976         arch=btver2
2977         cpu=btver2
2978         ;;
2979       amdfam10-*|barcelona-*)
2980         arch=amdfam10
2981         cpu=amdfam10
2982         ;;
2983       k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
2984         arch=k8-sse3
2985         cpu=k8-sse3
2986         ;;
2987       k8-*|opteron-*|athlon64-*|athlon_fx-*)
2988         arch=k8
2989         cpu=k8
2990         ;;
2991       athlon_xp-*|athlon_mp-*|athlon_4-*)
2992         arch=athlon-4
2993         cpu=athlon-4
2994         arch_without_sse2=yes
2995         arch_without_64bit=yes
2996         ;;
2997       athlon_tbird-*|athlon-*)
2998         arch=athlon
2999         cpu=athlon
3000         arch_without_sse2=yes
3001         ;;
3002       geode-*)
3003         arch=geode
3004         cpu=geode
3005         arch_without_sse2=yes
3006         ;;
3007       pentium2-*)
3008         arch=pentium2
3009         cpu=pentium2
3010         arch_without_sse2=yes
3011         ;;
3012       pentium3-*|pentium3m-*)
3013         arch=pentium3
3014         cpu=pentium3
3015         arch_without_sse2=yes
3016         ;;
3017       pentium4-*|pentium4m-*)
3018         arch=pentium4
3019         cpu=pentium4
3020         ;;
3021       prescott-*)
3022         arch=prescott
3023         cpu=prescott
3024         ;;
3025       nocona-*)
3026         arch=nocona
3027         cpu=nocona
3028         ;;
3029       atom-*)
3030         arch=atom
3031         cpu=atom
3032         ;;
3033       slm-*)
3034         arch=slm
3035         cpu=slm
3036         ;;
3037       core2-*)
3038         arch=core2
3039         cpu=core2
3040         ;;
3041       corei7-*)
3042         arch=corei7
3043         cpu=corei7
3044         ;;
3045       corei7_avx-*)
3046         arch=corei7-avx
3047         cpu=corei7-avx
3048         ;;
3049       pentium_m-*)
3050         arch=pentium-m
3051         cpu=pentium-m
3052         ;;
3053       pentiumpro-*)
3054         arch=pentiumpro
3055         cpu=pentiumpro
3056         arch_without_sse2=yes
3057         ;;
3058       *)
3059         arch=pentiumpro
3060         cpu=generic
3061         arch_without_sse2=yes
3062         arch_without_64bit=yes
3063         ;;
3064     esac
3065     ;;
3066   x86_64-*-*)
3067     case ${target_noncanonical} in
3068       bdver4-*)
3069         arch=bdver4
3070         cpu=bdver4
3071         ;;
3072       bdver3-*)
3073         arch=bdver3
3074         cpu=bdver3
3075         ;;
3076       bdver2-*)
3077         arch=bdver2
3078         cpu=bdver2
3079         ;;
3080       bdver1-*)
3081         arch=bdver1
3082         cpu=bdver1
3083         ;;
3084       btver1-*)
3085         arch=btver1
3086         cpu=btver1
3087         ;;
3088       btver2-*)
3089         arch=btver2
3090         cpu=btver2
3091         ;;
3092       amdfam10-*|barcelona-*)
3093         arch=amdfam10
3094         cpu=amdfam10
3095         ;;
3096       k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3097         arch=k8-sse3
3098         cpu=k8-sse3
3099         ;;
3100       k8-*|opteron-*|athlon_64-*)
3101         arch=k8
3102         cpu=k8
3103         ;;
3104       nocona-*)
3105         arch=nocona
3106         cpu=nocona
3107         ;;
3108       atom-*)
3109         arch=atom
3110         cpu=atom
3111         ;;
3112       slm-*)
3113         arch=slm
3114         cpu=slm
3115         ;;
3116       core2-*)
3117         arch=core2
3118         cpu=core2
3119         ;;
3120       corei7-*)
3121         arch=corei7
3122         cpu=corei7
3123         ;;
3124       *)
3125         arch=x86-64
3126         cpu=generic
3127         ;;
3128     esac
3129     ;;
3130 esac
3131
3132 # If there is no $with_cpu option, try to infer one from ${target}.
3133 # This block sets nothing except for with_cpu.
3134 if test x$with_cpu = x ; then
3135   case ${target} in
3136     i[34567]86-*-*|x86_64-*-*)
3137       with_cpu=$cpu
3138       ;;
3139     alphaev6[78]*-*-*)
3140       with_cpu=ev67
3141       ;;
3142     alphaev6*-*-*)
3143       with_cpu=ev6
3144       ;;
3145     alphapca56*-*-*)
3146       with_cpu=pca56
3147       ;;
3148     alphaev56*-*-*)
3149       with_cpu=ev56
3150       ;;
3151     alphaev5*-*-*)
3152       with_cpu=ev5
3153       ;;
3154     frv-*-*linux* | frv400-*-*linux*)
3155       with_cpu=fr400
3156       ;;
3157     frv550-*-*linux*)
3158       with_cpu=fr550
3159       ;;
3160     m68k*-*-*)
3161       case "$with_arch" in
3162         "cf")
3163           with_cpu=${default_cf_cpu}
3164           ;;
3165         "" | "m68k")
3166           with_cpu=m${default_m68k_cpu}
3167           ;;
3168       esac
3169       ;;
3170     powerpc*-*-*spe*)
3171       if test x$enable_e500_double = xyes; then
3172          with_cpu=8548
3173       else
3174          with_cpu=8540
3175       fi       
3176       ;;
3177     sparc*-*-*)
3178       case ${target} in
3179         *-leon-*)
3180           with_cpu=leon
3181           ;;
3182         *-leon[3-9]*)
3183           with_cpu=leon3
3184           ;;
3185         *-leon[3-9]v7*)
3186           with_cpu=leon3v7
3187           ;;
3188         *)
3189           with_cpu="`echo ${target} | sed 's/-.*$//'`"
3190           ;;
3191       esac
3192       ;;
3193   esac
3194
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
3209 fi
3210
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
3219
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
3247
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
3278 fi
3279
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
3289 fi
3290
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
3299 fi
3300
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
3323 fi
3324
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
3333 fi
3334
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
3347 fi
3348
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.
3354
3355 supported_defaults=
3356 case "${target}" in
3357         aarch64*-*-*)
3358                 supported_defaults="abi cpu arch"
3359                 for which in cpu arch; do
3360
3361                         eval "val=\$with_$which"
3362                         base_val=`echo $val | sed -e 's/\+.*//'`
3363                         ext_val=`echo $val | sed -e 's/[a-z0-9\-]\+//'`
3364
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
3372
3373                         ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3374
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
3381
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
3398
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//'`
3404
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
3409
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/).*$//'`
3419
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
3427
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
3435
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                 ;;
3447
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                 ;;
3465
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                 ;;
3476
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
3499
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
3511
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
3522
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
3534
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
3545
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
3556
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
3567
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
3572
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
3577
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                 ;;
3615
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                 ;;
3627
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
3639
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                 ;;
3667
3668         hppa*-*-*)
3669                 supported_defaults="arch schedule"
3670
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
3680
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                 ;;
3691
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                 ;;
3744
3745         mips*-*-*)
3746                 supported_defaults="abi arch arch_32 arch_64 float fpu nan tune tune_32 tune_64 divide llsc mips-plt synci"
3747
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
3757
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
3767
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
3777
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
3787
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
3797
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
3813
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
3828
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                 ;;
3844
3845         nds32*-*-*)
3846                 supported_defaults="arch nds32_lib"
3847
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
3858
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                 ;;
3877
3878         powerpc*-*-* | rs6000-*-*)
3879                 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64"
3880
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
3916
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                 ;;
3927
3928         s390*-*-*)
3929                 supported_defaults="arch mode tune"
3930
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
3943
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                 ;;
3954
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"
3976
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 | leon3v7 \
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
3995
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                 ;;
4006
4007         spu-*-*)
4008                 supported_defaults="arch tune"
4009
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                 ;;
4023
4024         tic6x-*-*)
4025                 supported_defaults="arch"
4026
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                 ;;
4037
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
4051
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                 ;;
4061
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                 ;;
4070
4071         hppa*-*-*)
4072                 if test x$gas = xyes
4073                 then
4074                         target_cpu_default2="MASK_GAS"
4075                 fi
4076                 ;;
4077
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                 ;;
4085
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                 ;;
4109
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                 ;;
4122
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                 ;;
4135
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                 ;;
4140
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
4151
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
4162
4163                 # The SPARC port checks this value at compile-time.
4164                 target_cpu_default2="TARGET_CPU_$with_cpu"
4165                 ;;
4166
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
4180
4181 t=
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
4184 do
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
4196
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
4205
4206 if test "x$t" = x
4207 then
4208         configure_default_options="{ { NULL, NULL} }"
4209 else
4210         configure_default_options="{ ${t} }"
4211 fi
4212
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
4221 fi