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