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