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