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