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