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