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