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