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