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