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