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