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